add birectional option for set Chain
[osm/vim-emu.git] / src / emuvim / api / zerorpc / network.py
index f21ce99..78083b0 100644 (file)
@@ -64,27 +64,38 @@ class DCNetworkApi(object):
     def __init__(self, net):
         self.net = net
 
-    def network_action_start(self, vnf_src_name, vnf_dst_name, vnf_src_interface=None, vnf_dst_interface=None):
+    def network_action_start(self, vnf_src_name, vnf_dst_name, kwargs):
         # 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_interface, vnf_dst_interface)
+                vnf_src_name, vnf_dst_name,
+                vnf_src_interface=kwargs.get('vnf_src_interface'),
+                vnf_dst_interface=kwargs.get('vnf_dst_interface'),
+                weight=kwargs.get('weight'),
+                match=kwargs.get('match'),
+                bidirectional=kwargs.get('bidirectional'))
             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, vnf_src_interface=None, vnf_dst_interface=None):
+    def network_action_stop(self, vnf_src_name, vnf_dst_name, kwargs):
         # 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, vnf_src_interface, vnf_dst_interface, cmd='del-flows')
+                vnf_src_name, vnf_dst_name,
+                vnf_src_interface=kwargs.get('vnf_src_interface'),
+                vnf_dst_interface=kwargs.get('vnf_dst_interface'),
+                cmd='del-flows',
+                weight=kwargs.get('weight'),
+                match=kwargs.get('match'),
+                bidirectional=kwargs.get('bidirectional'))
             return c
         except Exception as ex:
             logging.exception("RPC error.")
@@ -101,33 +112,14 @@ class DCNetworkApi(object):
             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")
+    def stop_metric(self, vnf_name, vnf_interface, metric):
+        logging.debug("RPC CALL: stop metric")
         try:
-            c = self.net.monitor_agent.remove_metric(vnf_name, vnf_interface, metric)
+            c = self.net.monitor_agent.stop_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, vnf_interface, metric):
-        logging.debug("RPC CALL: get rate")
-        try:
-            c = self.net.monitor_agent.get_rate(vnf_name, vnf_interface, metric)
-            return c
-        except Exception as ex:
-            logging.exception("RPC error.")
-            return ex.message