Test: Cluster based scenarios with multiple OVS switches
and CORD apps .
Change-Id: I47068d545f7b1f3ff5f4ec08254abe7469f91b99
diff --git a/src/test/utils/ACL.py b/src/test/utils/ACL.py
index 74a9e52..55333c4 100644
--- a/src/test/utils/ACL.py
+++ b/src/test/utils/ACL.py
@@ -19,6 +19,7 @@
from scapy.all import *
from OnosCtrl import OnosCtrl, get_mac, get_controller
from OnosFlowCtrl import OnosFlowCtrl
+log.setLevel('INFO')
conf.verb = 0 # Disable Scapy verbosity
conf.checkIPaddr = 0 # Don't check response packets for matching destination IPs
@@ -49,7 +50,7 @@
self.iface_ip = iface_ip
self.device_id = OnosCtrl.get_device_id()
- def adding_acl_rule(self, ipv4Prefix, srcIp, dstIp, ipProto ='null', dstTpPort='null', action= 'include'):
+ def adding_acl_rule(self, ipv4Prefix, srcIp, dstIp, ipProto ='null', dstTpPort='null', action= 'include',controller=None):
'''This function is generating ACL json file and post to ONOS for creating a ACL rule'''
if ipv4Prefix is 'v4':
acl_dict = {}
@@ -62,21 +63,39 @@
if dstTpPort is not 'null':
acl_dict['dstTpPort'] = '{}'.format(dstTpPort)
json_data = json.dumps(acl_dict)
- resp = requests.post(self.add_acl_rule_url, auth = self.auth, data = json_data)
+ if controller is None:
+ # if controller ip is not passed, it will default controller ip
+ resp = requests.post(self.add_acl_rule_url, auth = self.auth, data = json_data)
+ else:
+ add_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules' %(controller)
+ log.info('add_acl_rule_acl url is %s'%add_acl_rule_url)
+ resp = requests.post(add_acl_rule_url, auth = self.auth, data = json_data)
return resp.ok, resp.status_code
- def get_acl_rules(self):
+ def get_acl_rules(self,controller=None):
'''This function is getting a ACL rules from ONOS with json formate'''
- resp = requests.get(self.add_acl_rule_url, auth = self.auth)
+ if controller is None:
+ resp = requests.get(self.add_acl_rule_url, auth = self.auth)
+ else:
+ add_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules' %(controller)
+ log.info('get_acl_rule_url is %s'%add_acl_rule_url)
+ resp = requests.get(add_acl_rule_url, auth = self.auth)
return resp
@classmethod
- def remove_acl_rule(cls,id = None):
+ def remove_acl_rule(cls,id = None,controller=None):
'''This function is delete one or all ACL rules in ONOS'''
if id is None:
- remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules' %(cls.controller)
+ if controller is None:
+ remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules' %(cls.controller)
+ else:
+ remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules' %(controller)
else:
- remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules/%s' %(cls.controller, id)
+ if controller is None:
+ remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules/%s' %(cls.controller, id)
+ else:
+ remove_acl_rule_url = 'http://%s:8181/onos/v1/acl/rules/%s' %(controller, id)
+ log.info('remove_acl_rule_url is %s'%remove_acl_rule_url)
resp = requests.delete(remove_acl_rule_url, auth = cls.auth)
return resp.ok, resp.status_code