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=4815fa7ab85b46f4f0a3177dcbfd47b0a3371b75;hb=9795d499371f68b6cbccb6158a516a29b9ecb5ed;hpb=307aa1f4774345d9e9a70c02eeee312ecb1b13cf diff --git a/src/emuvim/api/zerorpc/compute.py b/src/emuvim/api/zerorpc/compute.py old mode 100644 new mode 100755 index 4815fa7..b612e87 --- a/src/emuvim/api/zerorpc/compute.py +++ b/src/emuvim/api/zerorpc/compute.py @@ -1,4 +1,31 @@ """ +Copyright (c) 2015 SONATA-NFV and Paderborn University +ALL RIGHTS RESERVED. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION] +nor the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written +permission. + +This work has been performed in the framework of the SONATA project, +funded by the European Commission under Grant number 671517 through +the Horizon 2020 and 5G-PPP programmes. The authors would like to +acknowledge the contributions of their colleagues of the SONATA +partner consortium (www.sonata-nfv.eu). +""" +""" Distributed Cloud Emulator (dcemulator) (c) 2015 by Manuel Peuster """ @@ -7,9 +34,6 @@ import logging import threading import zerorpc -import paramiko -import ipaddress - logging.basicConfig(level=logging.INFO) @@ -116,58 +140,6 @@ class MultiDatacenterApi(object): logging.exception("RPC error.") return ex.message - def compute_profile(self, dc_label, compute_name, image, 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, 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) - # 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) - - ## 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): logging.debug("RPC CALL: datacenter list") try: @@ -184,9 +156,4 @@ class MultiDatacenterApi(object): logging.exception("RPC error.") return ex.message -''' -if __name__ == "__main__": - test = MultiDatacenterApi({}) - test.compute_profile('dc1','vnf1', 'image',network='',command='test',other='other') -'''