X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fzerorpc%2Fcompute.py;h=b612e87760b8449b799b1299e91c9bb3172fb3be;hp=5e5d0de1f36cebdf92e41368111c88fdf22ea275;hb=9795d499371f68b6cbccb6158a516a29b9ecb5ed;hpb=79ef6aee3dc52f49d1261e40ec5f258fb4372a1e diff --git a/src/emuvim/api/zerorpc/compute.py b/src/emuvim/api/zerorpc/compute.py index 5e5d0de..b612e87 100755 --- a/src/emuvim/api/zerorpc/compute.py +++ b/src/emuvim/api/zerorpc/compute.py @@ -34,11 +34,6 @@ import logging import threading import zerorpc -import paramiko -import ipaddress -import time -import gevent - logging.basicConfig(level=logging.INFO) @@ -145,108 +140,6 @@ class MultiDatacenterApi(object): logging.exception("RPC error.") return ex.message - @zerorpc.stream - def compute_profile(self, dc_label, compute_name, kwargs): - # note: zerorpc does not support keyword arguments - - ## VIM/dummy gatekeeper's tasks: - # start vnf - vnf_status = self.compute_action_start( dc_label, compute_name, - kwargs.get('image'), - kwargs.get('network'), - kwargs.get('command')) - # start traffic source (with fixed ip addres, no use for now...) - psrc_status = self.compute_action_start( dc_label, 'psrc', 'profile_source', [{'id':'output'}], None) - # start traffic sink (with fixed ip addres) - psink_status = self.compute_action_start(dc_label, 'psink', 'profile_sink', [{'id': 'input'}], None) - # link vnf to traffic source - DCNetwork = self.dcs.get(dc_label).net - DCNetwork.setChain('psrc', compute_name, - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='add-flow', weight=None, bidirectional=True) - DCNetwork.setChain('psrc', compute_name, - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='add-flow', weight=None, - match='dl_type=0x0800,nw_proto=17,udp_dst=5001', - cookie=10) - DCNetwork.setChain( compute_name, 'psink', - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='add-flow', weight=None, bidirectional=True) - DCNetwork.setChain(compute_name, 'psink', - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='add-flow', weight=None, - match='dl_type=0x0800,nw_proto=17,udp_dst=5001', - cookie=11) - - ## SSM/SP tasks: - # start traffic generation - ''' - for nw in psrc_status.get('network'): - if nw.get('intf_name') == 'output': - psrc_output_ip = unicode(nw['ip']) - break - dummy_iperf_server_ip = ipaddress.IPv4Address(psrc_output_ip) + 1 - ''' - for nw in psink_status.get('network'): - if nw.get('intf_name') == 'input': - psink_input_ip = nw['ip'] - break - - - # get monitor data and analyze - vnf_uuid = vnf_status['id'] - psrc_mgmt_ip = psrc_status['docker_network'] - - # query rate - - #need to wait a bit before containers are fully up? - time.sleep(2) - - def generate(): - for rate in [0, 1, 2, 3]: - #logging.info('query:{0}'.format(query_cpu)) - - output_line = DCNetwork.monitor_agent.profile(psrc_mgmt_ip, rate, psink_input_ip, vnf_uuid) - gevent.sleep(0) - yield output_line - - # query loss - - - # create table - - ## VIM/dummy gatekeeper's tasks: - # remove vnfs and chain - DCNetwork.setChain('psrc', compute_name, - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='del-flows', weight=None, bidirectional=True) - DCNetwork.setChain('psrc', compute_name, - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='del-flows', weight=None, - match='dl_type=0x0800,nw_proto=17,udp_dst=5001', - cookie=10) - DCNetwork.setChain(compute_name, 'psink', - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='del-flows', weight=None, bidirectional=True) - DCNetwork.setChain(compute_name, 'psink', - vnf_src_interface='output', - vnf_dst_interface=kwargs.get('input'), - cmd='del-flows', weight=None, - match='dl_type=0x0800,nw_proto=17,udp_dst=5001', - cookie=11) - self.compute_action_stop(dc_label, compute_name) - self.compute_action_stop(dc_label, 'psink') - self.compute_action_stop(dc_label, 'psrc') - - return generate() - def datacenter_list(self): logging.debug("RPC CALL: datacenter list") try: