X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fzerorpc%2Fcompute.py;h=4815fa7ab85b46f4f0a3177dcbfd47b0a3371b75;hb=898a2af8cc32f6814fa3a0971ef71f4936f42171;hp=39ccec29a86a2086b5d5b9c39f4039a7c6142b60;hpb=5b37641a26aef3691b6f5ad2e3d1b768841eee8f;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/zerorpc/compute.py b/src/emuvim/api/zerorpc/compute.py index 39ccec2..4815fa7 100644 --- a/src/emuvim/api/zerorpc/compute.py +++ b/src/emuvim/api/zerorpc/compute.py @@ -7,6 +7,9 @@ import logging import threading import zerorpc +import paramiko +import ipaddress + logging.basicConfig(level=logging.INFO) @@ -118,18 +121,51 @@ class MultiDatacenterApi(object): ## VIM/dummy gatekeeper's tasks: # start vnf - vnf_status = self.compute_action_start(self, dc_label, compute_name, image, + vnf_status = self.compute_action_start( dc_label, compute_name, image, kwargs.get('network'), kwargs.get('command')) # start traffic source (with fixed ip addres, no use for now...) - self.compute_action_start(self, dc_label, 'psrc', 'profile_source', [{'id':'output'}], None) + psrc_status = self.compute_action_start( dc_label, 'psrc', 'profile_source', [{'id':'output'}], None) # link vnf to traffic source DCNetwork = self.dcs.get(dc_label).net - DCNetwork.setChain() - - - + DCNetwork.setChain('psrc', compute_name, + vnf_src_interface='output', + vnf_dst_interface=kwargs.get('input'), + cmd='add-flow', weight=None) + + ## 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 + iperf_cmd = 'iperf -c {0} -u -l18 -b10M -t1000 &'.format(dummy_iperf_server_ip) + + psrc_mgmt_ip = psrc_status['docker_network'] + psrc_user='root' + psrc_passw='root' + + # use ssh login when starting command externally + ret = self.dcs.get(dc_label).containers.get('psrc').pexec(iperf_cmd) + logging.info(ret) + self.dcs.get(dc_label).containers.get('psrc').monitor() + + #ssh does not work when exectuted via zerorpc command + #psrc_mgmt_ip = '172.17.0.3' + #ssh = paramiko.SSHClient() + #ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + #ssh.connect(psrc_mgmt_ip, username='steven', password='test') + #ssh.connect(psrc_mgmt_ip, username='root', password='root') + + #iperf_cmd = 'iperf -c {0} -u -l18 -b10M -t1000'.format(dummy_iperf_server_ip) + #stdin, stdout, stderr = ssh.exec_command(iperf_cmd) + # get monitor data and analyze + + # create table + ## VIM/dummy gatekeeper's tasks: + # remove vnfs and chain def datacenter_list(self):