diff options
Diffstat (limited to 'testcases/Controllers/ONOS')
-rw-r--r-- | testcases/Controllers/ONOS/Sfc/Sfc.py | 321 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Sfc/Sfc_fun.py | 168 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/adapters/client.py | 14 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/adapters/connection.py | 18 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/adapters/environment.py | 39 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/adapters/foundation.py | 59 | ||||
-rwxr-xr-x | testcases/Controllers/ONOS/Teston/onosfunctest.py | 45 |
7 files changed, 335 insertions, 329 deletions
diff --git a/testcases/Controllers/ONOS/Sfc/Sfc.py b/testcases/Controllers/ONOS/Sfc/Sfc.py index 99d07aae..28611982 100644 --- a/testcases/Controllers/ONOS/Sfc/Sfc.py +++ b/testcases/Controllers/ONOS/Sfc/Sfc.py @@ -1,7 +1,7 @@ """Script to Test the SFC scenarios in ONOS.""" # !/usr/bin/python # -# Copyright (c) 2015 All rights reserved +# Copyright (c) CREATED5 All rights reserved # This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at @@ -15,198 +15,196 @@ # Testcase 1 : Prerequisites configuration for SFC # Testcase 2 : Creation of 3 VNF Nodes and Attaching Ports -# TestCase 3 : Configure SFC [Port pair,Port Group ,Flow classifer -# TestCase 4 : Configure Port Chain and verify the flows are added. -# TestCase 5 : Verify traffic with VNF node. -# TestCase 6 : Remove the Port Chain and Verify the traffic. +# Testcase 3 : Configure SFC [Port pair,Port Group ,Flow classifer +# Testcase 4 : Configure Port Chain and verify the flows are added. +# Testcase 5 : Verify traffic with VNF node. +# Testcase 6 : Remove the Port Chain and Verify the traffic. # Testcase 7 : Cleanup # ########################################################################### # +import time import functest.utils.functest_logger as ft_logger import functest.utils.functest_utils as functest_utils -import time from Sfc_fun import Sfc_fun +logger = ft_logger.Logger("sfc").getLogger() +Sfc_obj = Sfc_fun() -class Sfc: - """Script to Test the SFC scenarios in ONOS.""" - logger = ft_logger.Logger("sfc").getLogger() - Sfc_obj = Sfc_fun() - start_time = time.time() - status = "PASS" - print("################################################################") - print(" OPNFV SFC Script ") - print("################################################################") +OK = 200 +CREATED = 201 +ACCEPTED = 202 +NO_CONTENT = 204 + + +def PreConfig(): logger.info("Testcase 1 : Prerequisites configuration for SFC") - ######################################################################### - logger.info("\t1.1 Creation of Auth-Token") - if (Sfc_obj.getToken() == 200): - logger.info("\t\tCreation of Token is successfull") - else: - status = "FAIL" - logger.error("\t\t : Creation of Token is NOT successfull") - ######################################################################### - logger.info("\t1.2 Creation of Network") - if (Sfc_obj.createNetworks() == 201): - logger.info("\t\tCreation of network is successfull") - else: - status = "FAIL" - logger.error("\t\t : Creation of network is NOT successfull") - ######################################################################### - logger.info("\t1.3 Creation of Subnetwork") - if (Sfc_obj.createSubnets() == 201): - logger.info("\t\tCreation of Subnetwork is successfull") - else: - status = "FAIL" - logger.error("\t\t : Creation of Subnetwork is NOT successfull") - print ("\n###########################################################\n") - ######################################################################## - logger.info("Testcase 2 : Creation of 3 VNF Nodes and Attaching Ports") - ######################################################################### - logger.info("\t2.1 Creation of Ports") - if (Sfc_obj.createPorts() == 201): - logger.info("\t\tCreation of Port is successfull") - else: - status = "FAIL" - logger.error("\t\t : Creation of Port is NOT successfull") - ######################################################################### - logger.info("\t2.2 Creation of VM-Compute-Node") - if (Sfc_obj.createVm() == 202): - logger.info("\t\tCreation of VM is successfull") - else: - status = "FAIL" - logger.error("\t\t : Creation of VM is NOT successfull") - ######################################################################### - logger.info("\t2.3 Check VM Status") - if (Sfc_obj.checkVmState() == 200): - logger.info("\t\tVM are in active state") - else: - status = "FAIL" - logger.error("\t\t : VM is NOT Active") - ######################################################################### - logger.info("\t\t2.4 Router Creation") - if (Sfc_obj.createRouter() == 201): - logger.info("\t\t Router Creation is Successful") - else: - status = "FAIL" - logger.error("\t\t : Router Creation is NOT Successful") - ######################################################################### - logger.info("\t\t2.5 Attachement of Interface to VM") - if (Sfc_obj.attachInterface() == 200): - logger.info("\t\t Interface attached to VM") - else: - status = "FAIL" - logger.error("\t\t : Interface NOT attached to VM") - ######################################################################### - logger.info("\t\t2.6 Attachement of FLoating Ip to VM") - if (Sfc_obj.addFloatingIp() == 202): - logger.info("\t\t Floating Ip attached to VM SUccessful") - else: - status = "FAIL" - logger.error("\t\t : Floating Ip NOT attached to VM ") - print ("\n###########################################################\n") - ######################################################################## - logger.info( - "TestCase 3 : Configure SFC [Portair,PortGroup,Flow classifer]") - ######################################################################### - logger.info("\t3.1 Creation of Port Pair") - if (Sfc_obj.createPortPair() == 201): - logger.info("\t\tCreation of Port pair is successful") - else: - status = "FAIL" - logger.error("\t\t : Creation of Port pair is NOT successful") + logger.info("1.1 Creation of Auth-Token") + if (Sfc_obj.getToken() == OK): + logger.info("Creation of Token is successfull") + else: + logger.error(" : Creation of Token is NOT successfull") + fail() + logger.info("1.2 Creation of Network") + if (Sfc_obj.createNetworks() == CREATED): + logger.info("Creation of network is successfull") + else: + logger.error(" : Creation of network is NOT successfull") + fail() + logger.info("1.3 Creation of Subnetwork") - ######################################################################### - logger.info("\t3.2 Getting the Port Pair ID") - if (Sfc_obj.getPortPair() == 200): - logger.info("\t\tSuccessfully got Port Pair ID") + if (Sfc_obj.createSubnets() == CREATED): + logger.info("Creation of Subnetwork is successfull") else: - status = "FAIL" - logger.error("\t\t : UnSuccessfully got Port Pair ID") + logger.error(" : Creation of Subnetwork is NOT successfull") + fail() - ######################################################################### - logger.info("\t3.3 Creation of Port Pair Group") - if (Sfc_obj.createPortGroup() == 201): - logger.info("\t\tPort Pair Group successfully Created") - else: - status = "FAIL" - logger.error("\t\t : Port Pair Group NOT successfully Created") - ######################################################################### - logger.info("\t3.4 Getting Port Pair Group ID ") +def CreateNodes(): + logger.info("Testcase 2 : Creation of 3 VNF Nodes and Attaching Ports") + logger.info("2.1 Creation of Ports") + if (Sfc_obj.createPorts() == CREATED): + logger.info("Creation of Port is successfull") + else: + logger.error(" : Creation of Port is NOT successfull") + fail() + logger.info("2.2 Creation of VM-Compute-Node") + if (Sfc_obj.createVm() == ACCEPTED): + logger.info("Creation of VM is successfull") + else: + logger.error(" : Creation of VM is NOT successfull") + fail() + logger.info("2.3 Check VM Status") + if (Sfc_obj.checkVmState() == OK): + logger.info("VM are in active state") + else: + logger.error(" : VM is NOT Active") + fail() + logger.info("2.4 Router Creation") + if (Sfc_obj.createRouter() == CREATED): + logger.info("Creation of Router is Successful") + else: + logger.error(" : Router Creation is NOT Successful") + fail() + logger.info("2.5 Attachement of Interface to VM") + if (Sfc_obj.attachInterface() == OK): + logger.info("Interface attached to VM") + else: + logger.error(" : Interface NOT attached to VM") + fail() + logger.info("2.6 Attachement of FLoating Ip to VM") + if (Sfc_obj.addFloatingIp() == ACCEPTED): + logger.info("Floating Ip attached to VM SUccessful") + else: + logger.error(" : Floating Ip NOT attached to VM ") + fail() - if (Sfc_obj.getPortGroup() == 200): - logger.info("\t\tPort Pair Group ID successfully received") - else: - status = "FAIL" - logger.error("\t\t : Port Pair Group ID NOT successfully received") - ######################################################################### - logger.info("\t3.5 Creation of Flow Classifier") - if (Sfc_obj.createFlowClassifier() == 201): - logger.info("\t\tFlow Classifier successfully Created") - else: - status = "FAIL" - logger.error("\t\t : Flow Classifier NOT successfully Created") - print ("\n###########################################################\n") - ######################################################################## +def ConfigSfc(): logger.info( - "TestCase 4 : Configure Port Chain and verify flows are added") - ######################################################################### - logger.info("\t4.1 Creation of PortChain") - if (Sfc_obj.createPortChain() == 201): - logger.info("\t\tPortChain successfully Created") + "Testcase 3 : Configure SFC [Portair,PortGroup,Flow classifer]") + logger.info("3.1 Creation of Port Pair") + if (Sfc_obj.createPortPair() == CREATED): + logger.info("Creation of Port pair is successful") + else: + logger.error(" : Creation of Port pair is NOT successful") + fail() + logger.info("3.2 Getting the Port Pair ID") + if (Sfc_obj.getPortPair() == OK): + logger.info("Port Pair ID is successfully got") + else: + logger.error(" : UnSuccessfully got Port Pair ID") + fail() + logger.info("3.3 Creation of Port Pair Group") + if (Sfc_obj.createPortGroup() == CREATED): + logger.info("Creation of Port Pair Group is successful") + else: + logger.error(" : Creation of Port Pair Group is NOT successful") + fail() + logger.info("3.4 Getting Port Pair Group ID ") + if (Sfc_obj.getPortGroup() == OK): + logger.info("Port Pair Group ID is successfully received") + else: + logger.error(" : Port Pair Group ID is NOT successfully got") + fail() + logger.info("3.5 Creation of Flow Classifier") + if (Sfc_obj.createFlowClassifier() == CREATED): + logger.info("Creation of Flow Classifier is successful") + else: + logger.error(" : Creation of Flow Classifier is NOT successful") + fail() + logger.info( + "Testcase 4 : Configure Port Chain and verify flows are added") + logger.info("4.1 Creation of Port Chain") + if (Sfc_obj.createPortChain() == CREATED): + logger.info("Creation of Port Chain is successful") else: - status = "FAIL" - logger.error("\t\tPortChain NOT successfully Created") - print ("\n###########################################################\n") - ######################################################################### - logger.info("\tTestCase 5 : Verify traffic with VNF node.") + logger.error("Creation of Port Chain is NOT successful") + + +def VerifySfcTraffic(): + status = "PASS" + logger.info("Testcase 5 : Verify traffic with VNF node.") if (Sfc_obj.loginToVM() == "1"): - logger.info("\t\tSFC function Working") + logger.info("SFC function Working") else: + logger.error(" : SFC function not working") status = "FAIL" - logger.error("\t\t : SFC function not working") - print ("\n###########################################################\n") - ######################################################################### - logger.info("TestCase 6 : Remove the Port Chain and Verify the traffic") - if (Sfc_obj.deletePortChain() == 204): + + logger.info("Testcase 6 : Remove the Port Chain and Verify the traffic") + if (Sfc_obj.deletePortChain() == NO_CONTENT): if (Sfc_obj.loginToVM() == "0"): - logger.info("\t\tSFC function is removed Successfully") + logger.info("SFC function is removed Successfully") else: + logger.error(":SFC function not Removed. Have some problem") status = "FAIL" - logger.error("\t\t:SFC function not Removed.Have some problem") - if (Sfc_obj.deleteFlowClassifier() == 204): - if (Sfc_obj.deletePortGroup() == 204): - if (Sfc_obj.deletePortPair() == 204): + if (Sfc_obj.deleteFlowClassifier() == NO_CONTENT): + if (Sfc_obj.deletePortGroup() == NO_CONTENT): + if (Sfc_obj.deletePortPair() == NO_CONTENT): logger.info( - "\t\tSFC configuration is deleted successfully") + "SFC configuration is deleted successfully") else: - status = "FAIL" - logger.error("\t\t : Port pair configuration is NOT\ + logger.error(" : Port pair configuration is NOT\ deleted successfully") + status = "FAIL" else: - status = "FAIL" - logger.error("\t\t : Port Group configuration is NOT \ + logger.error(" : Port Group configuration is NOT \ deleted successfully") - else: status = "FAIL" - logger.error("\t\t : Flow classifier configuration is NOT \ + else: + logger.error(" : Flow classifier configuration is NOT \ deleted successfully") + status = "FAIL" else: - status = "FAIL" - logger.error("\t\t:PortChain configuration is NOT deleted \ + logger.error(":PortChain configuration is NOT deleted \ successfully") - print ("\n###########################################################n") - ####################################################################### + status = "FAIL" + if (status == "FAIL"): + fail() + + +def CleanUp(): logger.info("Testcase 7 : Cleanup") - if (Sfc_obj.cleanup() == 204): - logger.info("\t\tCleanUp is successfull") + if (Sfc_obj.cleanup() == NO_CONTENT): + logger.info("CleanUp is successfull") else: - status = "FAIL" - logger.error("\t\t : CleanUp is NOT successfull") - print ("###############################################################") + logger.error(" : CleanUp is NOT successfull") + + +def fail(): + CleanUp() + exit(-1) + + +def main(): + """Script to Test the SFC scenarios in ONOS.""" + start_time = time.time() + PreConfig() + CreateNodes() + ConfigSfc() + VerifySfcTraffic() + CleanUp() + status = "PASS" logger.info("Summary :") try: logger.debug("Push ONOS SFC results into DB") @@ -226,8 +224,5 @@ class Sfc: except: logger.error("Error pushing results into Database") - if status == "FAIL": - EXIT_CODE = -1 - exit(EXIT_CODE) - - print("############################END OF SCRIPT ######################") +if __name__ == '__main__': + main() diff --git a/testcases/Controllers/ONOS/Sfc/Sfc_fun.py b/testcases/Controllers/ONOS/Sfc/Sfc_fun.py index 0d9eaf80..69e076d0 100644 --- a/testcases/Controllers/ONOS/Sfc/Sfc_fun.py +++ b/testcases/Controllers/ONOS/Sfc/Sfc_fun.py @@ -1,14 +1,19 @@ -"""SFC functions.""" +import os +import re +import time import json +import requests + from multiprocessing import Process from multiprocessing import Queue -import os -import re -import time +from pexpect import pxssh import functest.utils.functest_logger as ft_logger -from pexpect import pxssh -import requests + +OK = 200 +CREATED = 201 +ACCEPTED = 202 +NO_CONTENT = 204 class Sfc_fun: @@ -105,10 +110,10 @@ class Sfc_fun: url = 'http://' + self.keystone_hostname + \ ':5000/' + self.osver + '/tokens' data = '{"auth": {"tenantName": "admin", "passwordCredentials":\ - { "username": "admin", "password": "console"}}}' + { "username": "admin", "password": "console"}}}' headers = {"Accept": "application/json"} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): json1_data = json.loads(response.content) self.logger.debug(response.status_code) self.logger.debug(response.content) @@ -133,7 +138,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): + if (response.status_code == CREATED): self.logger.debug(response.status_code) self.logger.debug(response.content) @@ -164,7 +169,7 @@ class Sfc_fun: "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): + if (response.status_code == CREATED): self.logger.debug(response.status_code) self.logger.debug(response.content) json1_data = json.loads(response.content) @@ -197,7 +202,7 @@ class Sfc_fun: "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): + if (response.status_code == CREATED): self.logger.debug(response.status_code) self.logger.debug(response.content) @@ -217,10 +222,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "Content-Type": "application/\ octet-stream", "X-Auth-Token": self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tFireWall Image is available") + self.logger.info("FireWall Image is available") json1_data = json.loads(response.content) self.logger.debug(json1_data) self.image_id = json1_data['images'][0]['id'] @@ -233,10 +238,10 @@ class Sfc_fun: "application/json", "X-Auth-Token": self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tFlavor is available") + self.logger.info("Flavor is available") json1_data = json.loads(response.content) self.logger.debug(json1_data) self.flavorRef = json1_data['flavors'][0]['id'] @@ -267,10 +272,11 @@ class Sfc_fun: headers = {"Accept": "application/json", "Content-Type": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 202): + if (response.status_code == ACCEPTED): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tCreation of VM is successfull") + info = "Creation of VM" + str(y) + " is successfull" + self.logger.debug(info) json1_data = json.loads(response.content) self.logger.debug(json1_data) @@ -291,18 +297,19 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) json1_data = json.loads(response.content) self.logger.debug(json1_data) self.vm_active = json1_data['servers'][0]['status'] if (self.vm_active == "ACTIVE"): - print ("\t\t\t\t\t\tVM" + str(y) + " is Active : " + - self.vm_active) + info = "VM" + str(y) + \ + " is Active : " + self.vm_active else: - print ("\t\t\t\t\t\tVM" + str(y) + " is NOT Active : " + - self.vm_active) + info = "VM" + str(y) + " is NOT Active : " + \ + self.vm_active + self.logger.debug(info) else: return(response.status_code) return(response.status_code) @@ -328,9 +335,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): - print ("\t\t\t\tCreation of Port Pair PP" + str(p) + - " is successful") + if (response.status_code == CREATED): + info = "Creation of Port Pair PP" + str(p) + \ + " is successful" + self.logger.debug(info) else: return(response.status_code) @@ -345,7 +353,7 @@ class Sfc_fun: self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) json1_data = json.loads(response.content) @@ -373,9 +381,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): - print ("\t\t\t\tCreation of Port Group PG" + str(p) + - "is successful") + if (response.status_code == CREATED): + info = "Creation of Port Group PG" + str(p) + \ + "is successful" + self.logger.debug(info) else: return(response.status_code) @@ -390,7 +399,7 @@ class Sfc_fun: self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) json1_data = json.loads(response.content) @@ -421,10 +430,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): + if (response.status_code == CREATED): json1_data = json.loads(response.content) self.flow_class_if = json1_data['flow_classifier']['id'] - self.logger.info("\tCreation of Flow Classifier is successful") + self.logger.debug("Creation of Flow Classifier is successful") return(response.status_code) else: return(response.status_code) @@ -452,8 +461,8 @@ class Sfc_fun: "Content-Type": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): - self.logger.info("\tCreation of PORT CHAIN is successful") + if (response.status_code == CREATED): + self.logger.debug("Creation of PORT CHAIN is successful") json1_data = json.loads(response.content) self.PC_id = json1_data['port_chain']['id'] return(response.status_code) @@ -466,13 +475,13 @@ class Sfc_fun: response = requests.get('http://' + self.onos_hostname + ':8181/onos/v1/flows', auth=("karaf", "karaf")) - if (response.status_code == 200): - self.logger.info("\tFlow is successfully Queries") + if (response.status_code == OK): + self.logger.debug("Flow is successfully Queries") json1_data = json.loads(response.content) self.flowadd = json1_data['flows'][0]['state'] if (self.flowadd == "ADDED"): - self.logger.info("\tFlow is successfully added to OVS") + self.logger.info("Flow is successfully added to OVS") return(response.status_code) else: return(404) @@ -495,10 +504,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 201): + if (response.status_code == CREATED): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tCreation of Router is successfull") + self.logger.debug("Creation of Router is successfull") json1_data = json.loads(response.content) self.logger.debug(json1_data) self.router_id = json1_data['router']['id'] @@ -513,7 +522,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.get(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) json1_data = json.loads(response.content) @@ -525,7 +534,7 @@ class Sfc_fun: return(response.status_code) ############################################################ - self.logger.info("\tAttachment of Instance interface to Router") + self.logger.info("Attachment of Instance interface to Router") Dicdata = {} if self.subnetId != '': Dicdata['subnet_id'] = self.subnetId @@ -536,14 +545,14 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.put(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tInterface attached successfull") + self.logger.info("Interface attached successfull") else: return(response.status_code) ############################################################ - self.logger.info("\tAttachment of Gateway to Router") + self.logger.info("Attachment of Gateway to Router") Dicdata1 = {} if self.pub_net_id != 0: @@ -557,10 +566,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.put(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tGateway Interface attached successfull") + self.logger.info("Gateway Interface attached successfull") return(response.status_code) else: return(response.status_code) @@ -576,16 +585,16 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tFloating ip created successfully") + self.logger.info("Floating ip created successfully") json1_data = json.loads(response.content) self.logger.debug(json1_data) self.vm_public_ip.append(json1_data['floating_ip']['ip']) self.vm_public_id.append(json1_data['floating_ip']['id']) else: - self.logger.error("\tFloating ip NOT created successfully") + self.logger.error("Floating ip NOT created successfully") Dicdata1 = {} if self.address != '': @@ -598,10 +607,10 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.post(url, headers=headers, data=data) - if(response.status_code == 202): + if(response.status_code == ACCEPTED): self.logger.debug(response.status_code) self.logger.debug(response.content) - self.logger.info("\tPublic Ip successfully added to VM") + self.logger.info("Public Ip successfully added to VM") else: return(response.status_code) return(response.status_code) @@ -623,9 +632,9 @@ class Sfc_fun: ping_re = re.search("transmitted.*received", s.before).group() x = re.split('\s+', ping_re) if (x[1] >= "1"): - self.logger.info("\tPing is Successfull") + self.logger.info("Ping is Successfull") else: - self.logger.info("\tPing is NOT Successfull") + self.logger.info("Ping is NOT Successfull") def vm1(queue1): s = pxssh.pxssh() @@ -638,10 +647,10 @@ class Sfc_fun: output_pack = s.before if(output_pack.find("nshc") != -1): - self.logger.info("\tThe packet has reached VM2 Instance") + self.logger.info("The packet has reached VM2 Instance") queue1.put("1") else: - self.logger.info("\tPacket not received in Instance") + self.logger.info("Packet not received in Instance") queue1.put("0") def ping(ip, timeout=300): @@ -670,7 +679,7 @@ class Sfc_fun: p1.join(10) return (queue1.get()) else: - print("Thread didnt run") + self.logger.error("Thread didnt run") """##################################################################""" """ ######################## Stats Functions ################# #####""" @@ -680,8 +689,8 @@ class Sfc_fun: response = requests.get('http://' + self.onos_hostname + ':8181/onos/vtn/portChainDeviceMap/' + self.PC_id, auth=("karaf", "karaf")) - if (response.status_code == 200): - self.logger.info("\tPortChainDeviceMap is successfully Queries") + if (response.status_code == OK): + self.logger.info("PortChainDeviceMap is successfully Queries") return(response.status_code) else: return(response.status_code) @@ -691,8 +700,8 @@ class Sfc_fun: response = requests.get('http://' + self.onos_hostname + ':8181/onos/vtn/portChainSfMap/' + self.PC_id, auth=("karaf", "karaf")) - if (response.status_code == 200): - self.logger.info("\tportChainSfMap is successfully Queries") + if (response.status_code == OK): + self.logger.info("portChainSfMap is successfully Queries") return(response.status_code) else: return(response.status_code) @@ -706,7 +715,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "Content-Type": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) return(response.status_code) @@ -720,7 +729,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) return(response.status_code) @@ -735,10 +744,9 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) - print ("\n\t\tPort " + self.port_grp_id[p] + "Deleted") else: return(response.status_code) return(response.status_code) @@ -751,7 +759,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) else: @@ -760,21 +768,21 @@ class Sfc_fun: def cleanup(self): """Cleanup.""" - print ("\n\t\tDeleting the VMs") + self.logger.info("Deleting VMs") for y in range(0, 3): url = 'http://' + self.nova_hostname + \ ':8774/v2.1/servers/' + self.vm[y] headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) - print ("\n\t\tVM" + str(y) + " is Deleted : ") + self.logger.debug("VM" + str(y) + " is Deleted : ") time.sleep(10) else: return(response.status_code) - print ("\n\t\tDeletion of Ports") + self.logger.info("Deleting Ports") for x in range(self.i, self.numTerms): url = 'http://' + self.neutron_hostname + ':9696/' + self.osver + \ '/ports/' + self.port_num[x] @@ -782,13 +790,13 @@ class Sfc_fun: self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) - print ("\n\t\tPort" + str(x) + " Deleted") + self.logger.debug("Port" + str(x) + " Deleted") else: return(response.status_code) - print ("\n\t\tDeleting Router") + self.logger.info("Deleting Router") Dicdata = {} Dicdata['external_gateway_info'] = {} @@ -799,7 +807,7 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.put(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): self.logger.debug(response.status_code) self.logger.debug(response.content) Dicdata1 = {} @@ -812,16 +820,15 @@ class Sfc_fun: headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.put(url, headers=headers, data=data) - if (response.status_code == 200): + if (response.status_code == OK): url = ('http://' + self.neutron_hostname + ':9696/' + self.osver + '/routers/' + self.router_id) headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) - print ("\n\t\tDeletion of Router is successfull") else: return(response.status_code) else: @@ -829,27 +836,26 @@ class Sfc_fun: else: return(response.status_code) - print ("\n\t\tDeletion of Network") + self.logger.info("Deleting Network") url = 'http://' + self.neutron_hostname + ':9696/' + self.osver + \ '/networks/' + self.net_id headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) - print ("\n\t\tNetwork deleted Successfully") else: return(response.status_code) - print ("\n\t\tDeletion of Floating ip") + self.logger.info("Deleting Floating ip") for ip_num in range(0, 2): url = 'http://' + self.neutron_hostname + ':9696/' + self.osver + \ '/floatingips/' + self.vm_public_id[ip_num] headers = {"Accept": "application/json", "X-Auth-Token": self.token_id} response = requests.delete(url, headers=headers) - if (response.status_code == 204): + if (response.status_code == NO_CONTENT): self.logger.debug(response.status_code) self.logger.debug(response.content) else: diff --git a/testcases/Controllers/ONOS/Teston/adapters/client.py b/testcases/Controllers/ONOS/Teston/adapters/client.py index 77de092e..6b3285e5 100644 --- a/testcases/Controllers/ONOS/Teston/adapters/client.py +++ b/testcases/Controllers/ONOS/Teston/adapters/client.py @@ -10,15 +10,19 @@ Description: # http://www.apache.org/licenses/LICENSE-2.0 # """ -from environment import environment -import time +import json import pexpect import requests -import json +import time + +from environment import environment +import functest.utils.functest_logger as ft_logger class client(environment): + logger = ft_logger.Logger("client").getLogger() + def __init__(self): environment.__init__(self) self.loginfo = environment() @@ -50,7 +54,7 @@ class client(environment): [len(lastshowscreeninfo)::]) lastshowscreeninfo = curshowscreeninfo if Result == 0: - print "Done!" + self.logger.info("Done!") return time.sleep(1) circletime += 1 @@ -61,7 +65,7 @@ class client(environment): def onosstart(self): # This is the compass run machine user&pass,you need to modify - print "Test Begin....." + self.logger.info("Test Begin.....") self.OnosConnectionSet() masterhandle = self.SSHlogin(self.localhost, self.masterusername, self.masterpassword) diff --git a/testcases/Controllers/ONOS/Teston/adapters/connection.py b/testcases/Controllers/ONOS/Teston/adapters/connection.py index 16f2ef32..b2a2e3d8 100644 --- a/testcases/Controllers/ONOS/Teston/adapters/connection.py +++ b/testcases/Controllers/ONOS/Teston/adapters/connection.py @@ -16,11 +16,15 @@ Description: import os import pexpect import re + from foundation import foundation +import functest.utils.functest_logger as ft_logger class connection(foundation): + logger = ft_logger.Logger("connection").getLogger() + def __init__(self): foundation.__init__(self) self.loginfo = foundation() @@ -33,7 +37,7 @@ class connection(foundation): username: login user name password: login password """ - print("Now Adding an user to known hosts " + ipaddr) + self.logger.info("Now Adding an user to known hosts " + ipaddr) login = handle login.sendline("ssh -l %s -p 8101 %s" % (username, ipaddr)) index = 0 @@ -78,7 +82,7 @@ class connection(foundation): """ Generate ssh keys, used for some server have no sshkey. """ - print "Now Generating SSH keys..." + self.logger.info("Now Generating SSH keys...") # Here file name may be id_rsa or id_ecdsa or others # So here will have a judgement keysub = handle @@ -112,7 +116,7 @@ class connection(foundation): parameters: password: root login password """ - print("Now changing to user root") + self.logger.info("Now changing to user root") login = pexpect.spawn("su - root") index = 0 while index != 2: @@ -129,7 +133,7 @@ class connection(foundation): """ Exit root user. """ - print("Now Release user root") + self.logger.info("Now Release user root") login = pexpect.spawn("exit") index = login.expect(['logout', pexpect.EOF, pexpect.TIMEOUT]) if index == 0: @@ -145,7 +149,7 @@ class connection(foundation): parameters: envalue: environment value to add """ - print "Now Adding bash environment" + self.logger.info("Now Adding bash environment") fileopen = open("/etc/profile", 'r') findContext = 1 while findContext: @@ -165,7 +169,7 @@ class connection(foundation): Change ONOS root path in file:bash_profile onospath: path of onos root """ - print "Now Changing ONOS Root Path" + self.logger.info("Now Changing ONOS Root Path") filepath = onospath + 'onos/tools/dev/bash_profile' line = open(filepath, 'r').readlines() lenall = len(line) - 1 @@ -175,7 +179,7 @@ class connection(foundation): NewFile = open(filepath, 'w') NewFile.writelines(line) NewFile.close - print "Done!" + self.logger.info("Done!") def OnosConnectionSet(self): """ diff --git a/testcases/Controllers/ONOS/Teston/adapters/environment.py b/testcases/Controllers/ONOS/Teston/adapters/environment.py index 23167733..f2755b66 100644 --- a/testcases/Controllers/ONOS/Teston/adapters/environment.py +++ b/testcases/Controllers/ONOS/Teston/adapters/environment.py @@ -15,17 +15,21 @@ Description: # """ -import os -import time import pexpect +import pxssh import re +import os import sys -import pxssh +import time + from connection import connection +import functest.utils.functest_logger as ft_logger class environment(connection): + logger = ft_logger.Logger("environment").getLogger() + def __init__(self): connection.__init__(self) self.loginfo = connection() @@ -39,9 +43,9 @@ class environment(connection): handle: current working handle codeurl: clone code url """ - print "Now loading test codes! Please wait in patient..." + self.logger.info("Now loading test codes! Please wait in patient...") originalfolder = sys.path[0] - print originalfolder + self.logger.info(originalfolder) gitclone = handle gitclone.sendline("git clone " + codeurl) index = 0 @@ -82,7 +86,7 @@ class environment(connection): parameters: handle(input): current working handle """ - print "Now Cleaning test environment" + self.logger.info("Now Cleaning test environment") handle.sendline("sudo apt-get install -y mininet") handle.prompt() handle.sendline("sudo pip install configobj") @@ -102,7 +106,7 @@ class environment(connection): cmd(input): onos-push-keys xxx(xxx is device) password(input): login in password """ - print "Now Pushing Onos Keys:" + cmd + self.logger.info("Now Pushing Onos Keys:" + cmd) Pushkeys = handle Pushkeys.sendline(cmd) Result = 0 @@ -121,7 +125,7 @@ class environment(connection): break time.sleep(2) Pushkeys.prompt() - print "Done!" + self.logger.info("Done!") def SetOnosEnvVar(self, handle, masterpass, agentpass): """ @@ -131,13 +135,14 @@ class environment(connection): masterpass: scripts running server's password agentpass: onos cluster&compute node password """ - print "Now Setting test environment" + self.logger.info("Now Setting test environment") for host in self.hosts: - print "try to connect " + str(host) + self.logger.info("try to connect " + str(host)) result = self.CheckSshNoPasswd(host) if not result: - print ("ssh login failed,try to copy master publickey" + - "to agent " + str(host)) + self.logger.info( + "ssh login failed,try to copy master publickey" + + "to agent " + str(host)) self.CopyPublicKey(host) self.OnosPushKeys(handle, "onos-push-keys " + self.OCT, masterpass) self.OnosPushKeys(handle, "onos-push-keys " + self.OC1, agentpass) @@ -173,7 +178,7 @@ class environment(connection): user: onos&compute node user password: onos&compute node password """ - print "Now Changing ONOS name&password" + self.logger.info("Now Changing ONOS name&password") filepath = self.home + '/onos/tools/build/envDefaults' line = open(filepath, 'r').readlines() lenall = len(line) - 1 @@ -187,7 +192,7 @@ class environment(connection): NewFile = open(filepath, 'w') NewFile.writelines(line) NewFile.close - print "Done!" + self.logger.info("Done!") def ChangeTestCasePara(self, testcase, user, password): """ @@ -196,7 +201,7 @@ class environment(connection): user: onos&compute node user password: onos&compute node password """ - print "Now Changing " + testcase + " name&password" + self.logger.info("Now Changing " + testcase + " name&password") if self.masterusername == 'root': filepath = '/root/' else: @@ -232,7 +237,7 @@ class environment(connection): login.sendline('ls -l') # match prompt login.prompt() - print("SSH login " + ipaddr + " success!") + self.logger.info("SSH login " + ipaddr + " success!") return login def SSHRelease(self, handle): @@ -256,7 +261,7 @@ class environment(connection): str(publickey) + ">>/root/.ssh/authorized_keys\'") tmphandle.prompt() self.SSHRelease(tmphandle) - print "Add OCT PublicKey to " + host + " success" + self.logger.info("Add OCT PublicKey to " + host + " success") def OnosEnvSetup(self, handle): """ diff --git a/testcases/Controllers/ONOS/Teston/adapters/foundation.py b/testcases/Controllers/ONOS/Teston/adapters/foundation.py index 70c84ac0..5c42c35e 100644 --- a/testcases/Controllers/ONOS/Teston/adapters/foundation.py +++ b/testcases/Controllers/ONOS/Teston/adapters/foundation.py @@ -17,8 +17,7 @@ import os import re import time -import yaml -from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO +import functest.utils.functest_utils as ft_utils class foundation: @@ -26,7 +25,7 @@ class foundation: def __init__(self): # currentpath = os.getcwd() - REPO_PATH = FUNCTEST_REPO + '/' + REPO_PATH = ft_utils.FUNCTEST_REPO + '/' currentpath = REPO_PATH + 'testcases/Controllers/ONOS/Teston/CI' self.cipath = currentpath self.logdir = os.path.join(currentpath, 'log') @@ -49,42 +48,36 @@ class foundation: filemode='w') filelog = logging.FileHandler(self.logfilepath) logging.getLogger('Functest').addHandler(filelog) - print loginfo logging.info(loginfo) def getdefaultpara(self): """ Get Default Parameters value """ - with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: - functest_yaml = yaml.safe_load(f) - - self.Result_DB = str(functest_yaml.get("results").get("test_db_url")) - self.masterusername = str(functest_yaml.get("ONOS").get("general"). - get('onosbench_username')) - self.masterpassword = str(functest_yaml.get("ONOS").get("general"). - get("onosbench_password")) - self.agentusername = str(functest_yaml.get("ONOS").get("general"). - get("onoscli_username")) - self.agentpassword = str(functest_yaml.get("ONOS").get("general"). - get("onoscli_password")) - self.runtimeout = functest_yaml.get("ONOS").get("general").get( - "runtimeout") - self.OCT = str(functest_yaml.get("ONOS").get("environment").get("OCT")) - self.OC1 = str(functest_yaml.get("ONOS").get("environment").get("OC1")) - self.OC2 = str(functest_yaml.get("ONOS").get("environment").get("OC2")) - self.OC3 = str(functest_yaml.get("ONOS").get("environment").get("OC3")) - self.OCN = str(functest_yaml.get("ONOS").get("environment").get("OCN")) - self.OCN2 = str(functest_yaml.get("ONOS"). - get("environment").get("OCN2")) - self.installer_master = str(functest_yaml.get("ONOS"). - get("environment").get("installer_master")) - self.installer_master_username = str(functest_yaml.get("ONOS"). - get("environment"). - get("installer_master_username")) - self.installer_master_password = str(functest_yaml.get("ONOS"). - get("environment"). - get("installer_master_password")) + self.Result_DB = str( + ft_utils.get_functest_config('results.test_db_url')) + self.masterusername = str( + ft_utils.get_functest_config('ONOS.general.onosbench_username')) + self.masterpassword = str( + ft_utils.get_functest_config('ONOS.general.onosbench_password')) + self.agentusername = str( + ft_utils.get_functest_config('ONOS.general.onoscli_username')) + self.agentpassword = str( + ft_utils.get_functest_config('ONOS.general.onoscli_password')) + self.runtimeout = \ + ft_utils.get_functest_config('ONOS.general.runtimeout') + self.OCT = str(ft_utils.get_functest_config('ONOS.environment.OCT')) + self.OC1 = str(ft_utils.get_functest_config('ONOS.environment.OC1')) + self.OC2 = str(ft_utils.get_functest_config('ONOS.environment.OC2')) + self.OC3 = str(ft_utils.get_functest_config('ONOS.environment.OC3')) + self.OCN = str(ft_utils.get_functest_config('ONOS.environment.OCN')) + self.OCN2 = str(ft_utils.get_functest_config('ONOS.environment.OCN2')) + self.installer_master = str( + ft_utils.get_functest_config('ONOS.environment.installer_master')) + self.installer_master_username = str(ft_utils.get_functest_config( + 'ONOS.environment.installer_master_username')) + self.installer_master_password = str(ft_utils.get_functest_config( + 'ONOS.environment.installer_master_password')) self.hosts = [self.OC1, self.OCN, self.OCN2] self.localhost = self.OCT diff --git a/testcases/Controllers/ONOS/Teston/onosfunctest.py b/testcases/Controllers/ONOS/Teston/onosfunctest.py index 01537b99..c8045fd1 100755 --- a/testcases/Controllers/ONOS/Teston/onosfunctest.py +++ b/testcases/Controllers/ONOS/Teston/onosfunctest.py @@ -20,11 +20,11 @@ import re import time import argparse +from neutronclient.v2_0 import client as neutronclient + import functest.utils.functest_logger as ft_logger -import functest.utils.functest_utils as functest_utils +import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as openstack_utils -from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH -from neutronclient.v2_0 import client as neutronclient parser = argparse.ArgumentParser() parser.add_argument("-t", "--testcase", help="Testcase name") @@ -35,12 +35,11 @@ args = parser.parse_args() logger = ft_logger.Logger("onos").getLogger() # onos parameters -TEST_DB = functest_utils.get_parameter_from_yaml( - "results.test_db_url") -ONOS_REPO_PATH = functest_utils.get_parameter_from_yaml( - "general.directories.dir_repos") -ONOS_CONF_DIR = functest_utils.get_parameter_from_yaml( - "general.directories.dir_functest_conf") +TEST_DB = ft_utils.get_functest_config("results.test_db_url") +ONOS_REPO_PATH = \ + ft_utils.get_functest_config("general.directories.dir_repos") +ONOS_CONF_DIR = \ + ft_utils.get_functest_config("general.directories.dir_functest_conf") ONOSCI_PATH = ONOS_REPO_PATH + "/" starttime = datetime.datetime.now() @@ -49,14 +48,14 @@ HOME = os.environ['HOME'] + "/" INSTALLER_TYPE = os.environ['INSTALLER_TYPE'] DEPLOY_SCENARIO = os.environ['DEPLOY_SCENARIO'] ONOSCI_PATH = ONOS_REPO_PATH + "/" -GLANCE_IMAGE_NAME = functest_utils.get_parameter_from_yaml( - "onos_sfc.image_name") -GLANCE_IMAGE_FILENAME = functest_utils.get_parameter_from_yaml( - "onos_sfc.image_file_name") -GLANCE_IMAGE_PATH = functest_utils.get_parameter_from_yaml( - "general.directories.dir_functest_data") + "/" + GLANCE_IMAGE_FILENAME -SFC_PATH = REPO_PATH + "/" + functest_utils.get_parameter_from_yaml( - "general.directories.dir_onos_sfc") +GLANCE_IMAGE_NAME = ft_utils.get_functest_config("onos_sfc.image_name") +GLANCE_IMAGE_FILENAME = \ + ft_utils.get_functest_config("onos_sfc.image_file_name") +GLANCE_IMAGE_PATH = \ + ft_utils.get_functest_config("general.directories.dir_functest_data") + \ + "/" + GLANCE_IMAGE_FILENAME +SFC_PATH = ft_utils.FUNCTEST_REPO + "/" + \ + ft_utils.get_functest_config("general.directories.dir_onos_sfc") def RunScript(testname): @@ -243,12 +242,12 @@ def OnosTest(): except: logger.error("Unable to set ONOS criteria") - functest_utils.push_results_to_db("functest", - "onos", - start_time, - stop_time, - status, - result) + ft_utils.push_results_to_db("functest", + "onos", + start_time, + stop_time, + status, + result) except: logger.error("Error pushing results into Database") |