Loading ccnode/handlers.py +74 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from sjrpc.utils import RpcHandler from sjrpc.utils import pure from errors import HostError, HypervisorError from common import LocalHost from jobs import ReceiveFileJob, SendFileJob from jobs import ReceiveFileJob, SendFileJob, DrbdCopyJob, TCPTunnelJob from __init__ import __version__ #FIXME should not be needed Loading Loading @@ -683,6 +683,79 @@ class NodeHandler(RpcHandler): except: pass ### # Migration and helpers @pure def tun_setup(self, local=True): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # create the job job = TCPTunnelJob(jobmgr) job.prepare() job.start_now() # start listening job.tunnel_listen(local) # build a ressource return { 'jid' : job.get_id(), 'key' : 'FIXME', 'port' : job.tunnel_get_server_port(), } @pure def tun_connect(self, res, remote_res, remote_ip): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # get the job job = jobmgr.get_job(res['jid']) # connect to the remote endpoint job.tunnel_connect((remote_ip, remote_res['port'])) @pure def tun_connect_hv(self, res, migration=False): ''' ''' # FIXME magic values ip = '127.0.0.1' if migration and self._host_handle.get_hv_type() == 'xen': port = 8002 else: port = 16509 # facilities jobmgr = self._host_handle.jobmgr # get the job job = jobmgr.get_job(res['jid']) # connect to libvirt job.tunnel_connect((ip, port)) @pure def tun_destroy(self, res): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # stop the tunnel jobmgr.cancel(res['jid']) @pure def vm_migrate_tunneled(self, name, tun_res): ''' ''' debug('request for tunneled migration of VM `%s`', name) # local listenning tunnel port tun_port = tun_res.get('port') debug('tunnel port = `%d`', tun_port) # acquire vm object vm = self._host_handle.vm_get(name) # migrate vm.migrate('127.0.0.1', tun_port) ################################## # Storage control ################################## Loading Loading
ccnode/handlers.py +74 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from sjrpc.utils import RpcHandler from sjrpc.utils import pure from errors import HostError, HypervisorError from common import LocalHost from jobs import ReceiveFileJob, SendFileJob from jobs import ReceiveFileJob, SendFileJob, DrbdCopyJob, TCPTunnelJob from __init__ import __version__ #FIXME should not be needed Loading Loading @@ -683,6 +683,79 @@ class NodeHandler(RpcHandler): except: pass ### # Migration and helpers @pure def tun_setup(self, local=True): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # create the job job = TCPTunnelJob(jobmgr) job.prepare() job.start_now() # start listening job.tunnel_listen(local) # build a ressource return { 'jid' : job.get_id(), 'key' : 'FIXME', 'port' : job.tunnel_get_server_port(), } @pure def tun_connect(self, res, remote_res, remote_ip): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # get the job job = jobmgr.get_job(res['jid']) # connect to the remote endpoint job.tunnel_connect((remote_ip, remote_res['port'])) @pure def tun_connect_hv(self, res, migration=False): ''' ''' # FIXME magic values ip = '127.0.0.1' if migration and self._host_handle.get_hv_type() == 'xen': port = 8002 else: port = 16509 # facilities jobmgr = self._host_handle.jobmgr # get the job job = jobmgr.get_job(res['jid']) # connect to libvirt job.tunnel_connect((ip, port)) @pure def tun_destroy(self, res): ''' ''' # facilities jobmgr = self._host_handle.jobmgr # stop the tunnel jobmgr.cancel(res['jid']) @pure def vm_migrate_tunneled(self, name, tun_res): ''' ''' debug('request for tunneled migration of VM `%s`', name) # local listenning tunnel port tun_port = tun_res.get('port') debug('tunnel port = `%d`', tun_port) # acquire vm object vm = self._host_handle.vm_get(name) # migrate vm.migrate('127.0.0.1', tun_port) ################################## # Storage control ################################## Loading