From a7c6732839c2e0195ca1d3cf25883a17cb67cca1 Mon Sep 17 00:00:00 2001 From: wuwenbin2 Date: Mon, 5 Sep 2016 19:46:33 +0800 Subject: Optimize onos-sfc 1.Delete print and format in onos-sfc 2.Split class into serveral methods in Sfc.py 3.Update Fail process 4.Use vars of HTTP status code Change-Id: Ifb2fc5c570e2c2aa2cfb173eadb32c688a84969e Signed-off-by: wuwenbin2 (cherry picked from commit ccb598c098c813cab4e3e4a3e0f3b2bf0d994489) --- testcases/Controllers/ONOS/Sfc/Sfc.py | 321 +++++++++++++++++----------------- 1 file changed, 158 insertions(+), 163 deletions(-) (limited to 'testcases/Controllers/ONOS/Sfc/Sfc.py') diff --git a/testcases/Controllers/ONOS/Sfc/Sfc.py b/testcases/Controllers/ONOS/Sfc/Sfc.py index 99d07aaed..28611982b 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() -- cgit 1.2.3-korg