X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fzerorpc%2Fnetwork.py;h=f21ce991633e618ad1f769df15da3a4dd103db4f;hb=7da4970fbf9548d755decc1361d5d9d548cc0f3c;hp=f2321664c8534a5ca662e2e65e9e27ed9bc1e806;hpb=a541a3b3cfa1aa3e0a73c680773db9e78736afd3;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/zerorpc/network.py b/src/emuvim/api/zerorpc/network.py index f232166..f21ce99 100644 --- a/src/emuvim/api/zerorpc/network.py +++ b/src/emuvim/api/zerorpc/network.py @@ -64,37 +64,67 @@ class DCNetworkApi(object): def __init__(self, net): self.net = net - def network_action_start(self, vnf_src_name, vnf_dst_name): + def network_action_start(self, vnf_src_name, vnf_dst_name, vnf_src_interface=None, vnf_dst_interface=None): # call DCNetwork method, not really datacenter specific API for now... # provided dc name needs to be part of API endpoint # no check if vnfs are really connected to this datacenter... logging.debug("RPC CALL: network chain start") try: c = self.net.setChain( - vnf_src_name, vnf_dst_name) + vnf_src_name, vnf_dst_name, vnf_src_interface, vnf_dst_interface) return str(c) except Exception as ex: logging.exception("RPC error.") return ex.message - def network_action_stop(self, vnf_src_name, vnf_dst_name): + def network_action_stop(self, vnf_src_name, vnf_dst_name, vnf_src_interface=None, vnf_dst_interface=None): # call DCNetwork method, not really datacenter specific API for now... # provided dc name needs to be part of API endpoint # no check if vnfs are really connected to this datacenter... logging.debug("RPC CALL: network chain stop") try: c = self.net.setChain( - vnf_src_name, vnf_dst_name, cmd='del-flows') + vnf_src_name, vnf_dst_name, vnf_src_interface, vnf_dst_interface, cmd='del-flows') + return c + except Exception as ex: + logging.exception("RPC error.") + return ex.message + + # setup the rate measurement for a vnf interface + def setup_metric(self, vnf_name, vnf_interface, metric): + logging.debug("RPC CALL: setup metric") + try: + c = self.net.monitor_agent.setup_metric(vnf_name, vnf_interface, metric) + return c + except Exception as ex: + logging.exception("RPC error.") + return ex.message + + # remove the rate measurement for a vnf interface + def remove_metric(self, vnf_name, vnf_interface, metric): + logging.debug("RPC CALL: setup metric") + try: + c = self.net.monitor_agent.remove_metric(vnf_name, vnf_interface, metric) + return c + except Exception as ex: + logging.exception("RPC error.") + return ex.message + + # setup the rate measurement for a vnf interface + def monitor_setup_rate_measurement(self, vnf_name, vnf_interface, metric): + logging.debug("RPC CALL: get rate") + try: + c = self.net.monitor_agent.setup_rate_measurement(vnf_name, vnf_interface, metric) return c except Exception as ex: logging.exception("RPC error.") return ex.message # get egress(default) or ingress rate of a vnf - def monitor_get_rate(self, vnf_name, direction): + def monitor_get_rate(self, vnf_name, vnf_interface, metric): logging.debug("RPC CALL: get rate") try: - c = self.net.monitor_agent.get_rate(vnf_name, direction) + c = self.net.monitor_agent.get_rate(vnf_name, vnf_interface, metric) return c except Exception as ex: logging.exception("RPC error.")