Loading cloudcontrol/node/hypervisor/__init__.py +30 −1 Original line number Diff line number Diff line import logging import socket import weakref from StringIO import StringIO from itertools import chain, imap from xml.etree import cElementTree as et import libvirt from sjrpc.utils import threadless from sjrpc.utils import threadless, pass_connection from cloudcontrol.node.host import Handler as HostHandler from cloudcontrol.node.tags import Tag, tag_inspector, get_tags Loading Loading @@ -127,6 +128,7 @@ class Handler(HostHandler): self.main.reset_handler('drbd_takeover', self.drbd_takeover) self.main.reset_handler('drbd_sync_status', self.drbd_sync_status) self.main.reset_handler('drbd_shutdown', self.drbd_shutdown) self.main.reset_handler('vm_open_console', self.vm_open_console) # if everything went fine, unregister the timer self.timer.stop() Loading Loading @@ -185,6 +187,7 @@ class Handler(HostHandler): self.main.remove_handler('drbd_takeover') self.main.remove_handler('drbd_sync_status') self.main.remove_handler('drbd_shutdown') self.main.remove_handler('vm_open_console') # launch connection timer self.timer.start() Loading Loading @@ -349,6 +352,32 @@ class Handler(HostHandler): logger.debug('Sucessfuly live migrated vm %s', name) @threadless @pass_connection def vm_open_console(self, conn, name): """ :param conn: sjRPC connection instance :param name: VM name """ vm = self.hypervisor.domains[name] # create connection to the VM console try: endpoint = vm.open_console() except socket.error: # cannot create socketpair logger.error('Cannot create connection to VM console') raise def on_close(tun): """Method of Tunnel protocol close callback.""" tun.endpoint.close() vm.close_console() # connect as tunnel endpoint proto = conn.create_tunnel(endpoint=endpoint, on_close=on_close) return proto.label def vol_create(self, pool, name, size): logger.debug('Volume create %s, pool %s, size %s', name, pool, size) try: Loading Loading
cloudcontrol/node/hypervisor/__init__.py +30 −1 Original line number Diff line number Diff line import logging import socket import weakref from StringIO import StringIO from itertools import chain, imap from xml.etree import cElementTree as et import libvirt from sjrpc.utils import threadless from sjrpc.utils import threadless, pass_connection from cloudcontrol.node.host import Handler as HostHandler from cloudcontrol.node.tags import Tag, tag_inspector, get_tags Loading Loading @@ -127,6 +128,7 @@ class Handler(HostHandler): self.main.reset_handler('drbd_takeover', self.drbd_takeover) self.main.reset_handler('drbd_sync_status', self.drbd_sync_status) self.main.reset_handler('drbd_shutdown', self.drbd_shutdown) self.main.reset_handler('vm_open_console', self.vm_open_console) # if everything went fine, unregister the timer self.timer.stop() Loading Loading @@ -185,6 +187,7 @@ class Handler(HostHandler): self.main.remove_handler('drbd_takeover') self.main.remove_handler('drbd_sync_status') self.main.remove_handler('drbd_shutdown') self.main.remove_handler('vm_open_console') # launch connection timer self.timer.start() Loading Loading @@ -349,6 +352,32 @@ class Handler(HostHandler): logger.debug('Sucessfuly live migrated vm %s', name) @threadless @pass_connection def vm_open_console(self, conn, name): """ :param conn: sjRPC connection instance :param name: VM name """ vm = self.hypervisor.domains[name] # create connection to the VM console try: endpoint = vm.open_console() except socket.error: # cannot create socketpair logger.error('Cannot create connection to VM console') raise def on_close(tun): """Method of Tunnel protocol close callback.""" tun.endpoint.close() vm.close_console() # connect as tunnel endpoint proto = conn.create_tunnel(endpoint=endpoint, on_close=on_close) return proto.label def vol_create(self, pool, name, size): logger.debug('Volume create %s, pool %s, size %s', name, pool, size) try: Loading