diff options
Diffstat (limited to 'framework/scripts/tests/Teston/testcases/FUNCvirNetNB/FUNCvirNetNB.py')
-rw-r--r-- | framework/scripts/tests/Teston/testcases/FUNCvirNetNB/FUNCvirNetNB.py | 795 |
1 files changed, 795 insertions, 0 deletions
diff --git a/framework/scripts/tests/Teston/testcases/FUNCvirNetNB/FUNCvirNetNB.py b/framework/scripts/tests/Teston/testcases/FUNCvirNetNB/FUNCvirNetNB.py new file mode 100644 index 00000000..4ea8a359 --- /dev/null +++ b/framework/scripts/tests/Teston/testcases/FUNCvirNetNB/FUNCvirNetNB.py @@ -0,0 +1,795 @@ +""" +Description: This test is to determine if North bound + can handle the request + +List of test cases: +CASE1 - Variable initialization and optional pull and build ONOS package +CASE2 - Create Network northbound test +CASE3 - Update Network northbound test +CASE4 - Delete Network northbound test +CASE5 - Create Subnet northbound test +CASE6 - Update Subnet northbound test +CASE7 - Delete Subnet northbound test +CASE8 - Create Virtualport northbound test +CASE9 - Update Virtualport northbound test +CASE10 - Delete Virtualport northbound test +CASE11 - Post Error Json Create Network test +CASE12 - Post Error Json Create Subnet test +CASE13 - Post Error Json Create Virtualport test + +lanqinglong@huawei.com +""" +import os + +class FUNCvirNetNB: + + def __init__( self ): + self.default = '' + + def CASE1( self, main ): + """ + CASE1 is to compile ONOS and push it to the test machines + + Startup sequence: + cell<name> + onos-verify-cell + NOTE:temporary - onos-remove-raft-logs + onos-uninstall + git pull + mvn clean install + onos-package + onos-install -f + onos-wait-for-start + start cli sessions + start vtnrsc + """ + + import time + import os + main.log.info( "ONOS Single node Start "+ + "VirtualNet Northbound test - initialization" ) + main.case( "Setting up test environment" ) + main.caseExplanation = "Setup the test environment including "+\ + "installing ONOS,start ONOS." + + # load some variables from the params file + PULLCODE = False + if main.params['GIT']['pull'] =='True': + PULLCODE = True + gitBranch = main.params['GIT']['branch'] + cellName = main.params['ENV']['cellName'] + ipList = os.getenv( main.params['CTRL']['ip1'] ) + + main.step("Create cell file and apply to environment") + cellAppString = main.params['ENV']['cellApps'] + main.ONOSbench.createCellFile(main.ONOSbench.ip_address,cellName, + main.Mininet1.ip_address, + cellAppString,ipList ) + + cellResult = main.ONOSbench.setCell(cellName) + verifyResult = main.ONOSbench.verifyCell() + + stepResult = cellResult and verifyResult + utilities.assert_equals( expect=main.TRUE, + actual=stepResult, + onpass="Successfully applied cell to " + \ + "environment", + onfail="Failed to apply cell to environment " ) + + #FIXME:this is short term fix + main.log.info( "Removing raft logs" ) + main.ONOSbench.onosRemoveRaftLogs() + + main.CLIs = [] + main.nodes = [] + main.numCtrls=1 + main.startUpSleep = int( main.params[ 'SLEEP' ][ 'startup' ] ) + + for i in range ( 1, main.numCtrls +1): + try: + main.CLIs.append( getattr( main, 'ONOScli' + str(i) ) ) + main.nodes.append( getattr( main, 'ONOS' + str(i) ) ) + ipList.append( main.nodes[ -1 ].ip_address ) + except AttributeError: + break + + main.log.info( "Uninstalling ONOS" ) + for node in main.nodes: + main.ONOSbench.onosUninstall( node.ip_address ) + + #Make sure ONOS is DEAD + main.log.info( "Killing any ONOS processes" ) + killResults = main.TRUE + for node in main.nodes: + killed = main.ONOSbench.onosKill( node.ip_address ) + killResults = killResults and killed + + cleanInstallResult = main.TRUE + gitPullResult = main.TRUE + main.log.info( "Git checkout and pull " + gitBranch ) + if PULLCODE: + main.ONOSbench.gitCheckout ( gitBranch ) + gitPullResult = main.ONOSbench.gitPull() + # values of 1 or 3 are good + utilities.assert_lesser ( expect=0, actual=gitPullResult, + onpass="Git pull successful", + onfail ="Git pull failed" ) + main.ONOSbench.getVersion( report =True ) + main.step( "Using mvn clean install" ) + cleanInstallResult= main.TRUE + if PULLCODE and gitPullResult == main.TRUE: + cleanInstallResult = main.ONOSbench.cleanInstall() + else: + main.log.warn("Did not pull new code so skipping mvn "+ + "clean install") + + utilities.assert_equals( expect=main.TRUE, + actual=cleanInstallResult, + onpass="MCI successful", + onfail="MCI failed" ) + + main.step( "Creating ONOS package" ) + packageResult = main.ONOSbench.onosPackage() + utilities.assert_equals( expect=main.TRUE, + actual=packageResult, + onpass="Successfully created ONOS package", + onfail="Failed to create ONOS package " ) + time.sleep( main.startUpSleep ) + + main.step( "Installing ONOS package" ) + onosInstallResult = main.ONOSbench.onosInstall( + options="-f",node=main.nodes[0].ip_address ) + utilities.assert_equals( expect=main.TRUE, actual=onosInstallResult, + onpass="ONOS install successful", + onfail="ONOS install failed" ) + time.sleep( main.startUpSleep ) + + main.step( "Checking if ONOS is up yet" ) + + for i in range( 2 ): + onos1Isup = main.ONOSbench.isup( main.nodes[0].ip_address ) + if onos1Isup: + break + utilities.assert_equals( expect=main.TRUE, actual=onos1Isup, + onpass="ONOS startup successful", + onfail="ONOS startup failed" ) + time.sleep( main.startUpSleep ) + + main.log.step( "Starting ONOS CLI sessions" ) + + print main.nodes[0].ip_address + cliResults = main.ONOScli1.startOnosCli(main.nodes[0].ip_address) + utilities.assert_equals( expect=main.TRUE, actual=cliResults, + onpass="ONOS cli startup successful", + onfail="ONOS cli startup failed" ) + time.sleep( main.startUpSleep ) + + main.step( "App Ids check" ) + appCheck = main.ONOScli1.appToIDCheck() + if appCheck != main.TRUE: + main.log.warn( main.CLIs[0].apps() ) + main.log.warn( main.CLIs[0].appIDs() ) + utilities.assert_equals( expect=main.TRUE, actual=appCheck, + onpass="App Ids seem to be correct", + onfail="Something is wrong with app Ids" ) + + if cliResults == main.FALSE: + main.log.error( "Failed to start ONOS, stopping test" ) + main.cleanup() + main.exit() + + main.step( "Install onos-app-vtnrsc app" ) + installResults = main.ONOScli1.featureInstall( "onos-app-vtnrsc" ) + utilities.assert_equals( expect=main.TRUE, actual=installResults, + onpass="Install onos-app-vtnrsc successful", + onfail="Install onos-app-vtnrsc app failed" ) + + time.sleep( main.startUpSleep ) + + main.step( "Install onos-app-vtnweb app" ) + installResults = main.ONOScli1.featureInstall( "onos-app-vtnweb" ) + utilities.assert_equals( expect=main.TRUE, actual=installResults, + onpass="Install onos-app-vtnweb successful", + onfail="Install onos-app-vtnweb app failed" ) + + time.sleep( main.startUpSleep ) + + def CASE2 ( self,main ): + + """ + Test Post Network + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Network Post test Start" ) + main.case( "Virtual Network NBI Test - Network" ) + main.caseExplanation = "Test Network Post NBI " +\ + "Verify Post Data same with Stored Data" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + postdata = network.DictoJson() + + main.step( "Post Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path+'networks/', + 'POST', None, postdata) + + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Success", + onfail="Post Failed " + str( Poststatus ) + str( result ) ) + + main.step( "Get Data via HTTP" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'GET', None, None) + utilities.assert_equals( + expect='200', + actual=Getstatus, + onpass="Get Success", + onfail="Get Failed " + str( Getstatus ) + str( result ) ) + + main.log.info("Post Network Data is :%s\nGet Network Data is:%s"%(postdata,result)) + + main.step( "Compare Send Id and Get Id" ) + IDcmpresult = network.JsonCompare( postdata, result, 'network', 'id' ) + TanantIDcmpresult = network.JsonCompare( postdata, result, 'network', 'tenant_id' ) + Cmpresult = IDcmpresult and TanantIDcmpresult + + utilities.assert_equals( + expect=True, + actual=Cmpresult, + onpass="Compare Success", + onfail="Compare Failed:ID compare: " + str( IDcmpresult ) + \ + ",Tenant id compare :" + str( TanantIDcmpresult ) ) + + deletestatus,result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='200', + actual=deletestatus, + onpass="Delete Network Success", + onfail="Delete Network Failed") + + if Cmpresult != True: + main.log.error( "Post Network compare failed" ) + + def CASE3( self,main ): + + """ + Test Update Network + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Network Update test Start" ) + main.case( "Virtual Network NBI Test - Network" ) + main.caseExplanation = "Test Network Update NBI " +\ + "Verify Update Data same with Stored Data" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + network.shared = False + postdata = network.DictoJson() + + network.shared = True + postdatanew = network.DictoJson() + + main.step( "Post Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path+'networks', + 'POST', None, postdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Success", + onfail="Post Failed " + str( Poststatus ) + str( result ) ) + + main.step( "Update Data via HTTP" ) + Updatestatus, result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'PUT', None, postdatanew) + utilities.assert_equals( + expect='200', + actual=Updatestatus, + onpass="Update Success", + onfail="Update Failed " + str( Updatestatus ) + str( result ) ) + + main.step( "Get Data via HTTP" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'GET', None, None ) + utilities.assert_equals( + expect='200', + actual=Getstatus, + onpass="Get Success", + onfail="Get Failed " + str( Getstatus ) + str( result ) ) + + main.step( "Compare Update data." ) + IDcmpresult = network.JsonCompare( postdatanew, result, 'network', 'id' ) + TanantIDcmpresult = network.JsonCompare( postdatanew, result, 'network', 'tenant_id' ) + Shareresult = network.JsonCompare( postdatanew, result, 'network', 'shared' ) + + Cmpresult = IDcmpresult and TanantIDcmpresult and Shareresult + utilities.assert_equals( + expect=True, + actual=Cmpresult, + onpass="Compare Success", + onfail="Compare Failed:ID compare:" + str( IDcmpresult ) + \ + ",Tenant id compare:"+ str( TanantIDcmpresult ) + \ + ",Name compare:" + str( Shareresult ) ) + + deletestatus,result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'DELETE', None, None ) + + utilities.assert_equals( + expect='200', + actual=deletestatus, + onpass="Delete Network Success", + onfail="Delete Network Failed" ) + + if Cmpresult != True: + main.log.error( "Update Network compare failed" ) + + def CASE4( self,main ): + + """ + Test Delete Network + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Network Delete test Start" ) + main.case( "Virtual Network NBI Test - Network" ) + main.caseExplanation = "Test Network Delete NBI " +\ + "Verify Stored Data is NULL after Delete" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + postdata = network.DictoJson() + + main.step( "Post Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'networks/', + 'POST', None, postdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Success", + onfail="Post Failed " + str( Poststatus ) + str( result ) ) + + main.step( "Delete Data via HTTP" ) + Deletestatus, result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='200', + actual=Deletestatus, + onpass="Delete Success", + onfail="Delete Failed " + str( Deletestatus ) + str( result ) ) + + main.step( "Get Data is NULL" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'GET', None, None ) + utilities.assert_equals( + expect='Network is not found', + actual=result, + onpass="Get Success", + onfail="Get Failed " + str( Getstatus ) + str( result ) ) + + if result != 'Network is not found': + main.log.error( "Delete Network failed" ) + + def CASE5( self, main ): + + """ + Test Post Subnet + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + from tests.FUNCvirNetNB.dependencies.Nbdata import SubnetData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Subnet Post test Start" ) + main.case( "Virtual Network NBI Test - Subnet" ) + main.caseExplanation = "Test Subnet Post NBI " +\ + "Verify Stored Data is same with Post Data" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + subnet = SubnetData() + subnet.id = "e44bd655-e22c-4aeb-b1e9-ea1606875178" + subnet.tenant_id = network.tenant_id + subnet.network_id = network.id + + networkpostdata = network.DictoJson() + subnetpostdata = subnet.DictoJson() + + main.step( "Post Network Data via HTTP(Post Subnet need post network)" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'networks/', + 'POST', None, networkpostdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Network Success", + onfail="Post Network Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Post Subnet Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'subnets/', + 'POST', None, subnetpostdata ) + utilities.assert_equals( + expect='202', + actual=Poststatus, + onpass="Post Subnet Success", + onfail="Post Subnet Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Get Subnet Data via HTTP" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, subnet.id, path + 'subnets/', + 'GET', None, None ) + utilities.assert_equals( + expect='200', + actual=Getstatus, + onpass="Get Subnet Success", + onfail="Get Subnet Failed " + str( Getstatus ) + "," + str( result ) ) + + IDcmpresult = subnet.JsonCompare( subnetpostdata, result, 'subnet', 'id' ) + TanantIDcmpresult = subnet.JsonCompare( subnetpostdata, result, 'subnet', 'tenant_id' ) + NetoworkIDcmpresult = subnet.JsonCompare( subnetpostdata, result, 'subnet', 'network_id' ) + + main.step( "Compare Post Subnet Data via HTTP" ) + Cmpresult = IDcmpresult and TanantIDcmpresult and NetoworkIDcmpresult + utilities.assert_equals( + expect=True, + actual=Cmpresult, + onpass="Compare Success", + onfail="Compare Failed:ID compare:" + str( IDcmpresult ) + \ + ",Tenant id compare:"+ str( TanantIDcmpresult ) + \ + ",Network id compare:" + str( NetoworkIDcmpresult ) ) + + deletestatus,result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='200', + actual=deletestatus, + onpass="Delete Network Success", + onfail="Delete Network Failed" ) + + if Cmpresult != True: + main.log.error( "Post Subnet compare failed" ) + + def CASE6( self, main ): + + """ + Test Post Subnet + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + from tests.FUNCvirNetNB.dependencies.Nbdata import SubnetData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Subnet Update test Start" ) + main.case( "Virtual Network NBI Test - Subnet" ) + main.caseExplanation = "Test Subnet Update NBI " +\ + "Verify Stored Data is same with Update Data" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + subnet = SubnetData() + subnet.id = "e44bd655-e22c-4aeb-b1e9-ea1606875178" + subnet.tenant_id = network.tenant_id + subnet.network_id = network.id + subnet.start = "192.168.2.1" + subnet.end = "192.168.2.255" + networkpostdata = network.DictoJson() + subnetpostdata = subnet.DictoJson() + + #Change allocation_poolsdata scope + subnet.start = "192.168.102.1" + subnet.end = "192.168.102.255" + #end change + newsubnetpostdata = subnet.DictoJson() + + main.step( "Post Network Data via HTTP(Post Subnet need post network)" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'networks/', + 'POST', None, networkpostdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Network Success", + onfail="Post Network Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Post Subnet Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'subnets/', + 'POST', None, subnetpostdata ) + utilities.assert_equals( + expect='202', + actual=Poststatus, + onpass="Post Subnet Success", + onfail="Post Subnet Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Update Subnet Data via HTTP" ) + Putstatus, result = main.ONOSrest.send( ctrlip, port, subnet.id, path + 'subnets/', + 'PUT', None, newsubnetpostdata ) + utilities.assert_equals( + expect='203', + actual=Putstatus, + onpass="Update Subnet Success", + onfail="Update Subnet Failed " + str( Putstatus ) + "," + str( result ) ) + + main.step( "Get Subnet Data via HTTP" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, subnet.id, path + 'subnets/', + 'GET', None, None ) + utilities.assert_equals( + expect='200', + actual=Getstatus, + onpass="Get Subnet Success", + onfail="Get Subnet Failed " + str( Getstatus ) + "," + str( result ) ) + + IDcmpresult = subnet.JsonCompare( newsubnetpostdata, result, 'subnet', 'id' ) + TanantIDcmpresult = subnet.JsonCompare( newsubnetpostdata, result, 'subnet', 'tenant_id' ) + Poolcmpresult = subnet.JsonCompare( newsubnetpostdata, result, 'subnet', 'allocation_pools' ) + + main.step( "Compare Subnet Data" ) + Cmpresult = IDcmpresult and TanantIDcmpresult and Poolcmpresult + utilities.assert_equals( + expect=True, + actual=Cmpresult, + onpass="Compare Success", + onfail="Compare Failed:ID compare:" + str( IDcmpresult ) + \ + ",Tenant id compare:"+ str( TanantIDcmpresult ) + \ + ",Pool compare:" + str( Poolcmpresult ) ) + + main.step( "Delete Subnet via HTTP" ) + deletestatus,result = main.ONOSrest.send( ctrlip, port, network.id, path+'networks/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='200', + actual=deletestatus, + onpass="Delete Network Success", + onfail="Delete Network Failed" ) + + if Cmpresult != True: + main.log.error( "Update Subnet compare failed" ) + + def CASE7( self, main ): + + """ + Test Delete Subnet + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + from tests.FUNCvirNetNB.dependencies.Nbdata import SubnetData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Subnet Delete test Start" ) + main.case( "Virtual Network NBI Test - Subnet" ) + main.caseExplanation = "Test Subnet Delete NBI " +\ + "Verify Stored Data is Null after Delete" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + port = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + subnet = SubnetData() + subnet.id = "e44bd655-e22c-4aeb-b1e9-ea1606875178" + subnet.tenant_id = network.tenant_id + subnet.network_id = network.id + + networkpostdata = network.DictoJson() + subnetpostdata = subnet.DictoJson() + + main.step( "Post Network Data via HTTP(Post Subnet need post network)" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'networks/', + 'POST', None, networkpostdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Network Success", + onfail="Post Network Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Post Subnet Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, port, '', path + 'subnets/', + 'POST', None, subnetpostdata ) + utilities.assert_equals( + expect='202', + actual=Poststatus, + onpass="Post Subnet Success", + onfail="Post Subnet Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Delete Subnet Data via HTTP" ) + Deletestatus, result = main.ONOSrest.send( ctrlip, port, subnet.id, path + 'subnets/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='201', + actual=Deletestatus, + onpass="Delete Subnet Success", + onfail="Delete Subnet Failed " + str( Deletestatus ) + "," + str( result ) ) + + main.step( "Get Subnet Data is NULL" ) + Getstatus, result = main.ONOSrest.send( ctrlip, port, subnet.id, path + 'subnets/', + 'GET', None, None ) + utilities.assert_equals( + expect='Subnet is not found', + actual=result, + onpass="Get Subnet Success", + onfail="Get Subnet Failed " + str( Getstatus ) + str( result ) ) + + if result != 'Subnet is not found': + main.log.error( "Delete Subnet failed" ) + + def CASE8( self, main ): + + """ + Test Post Port + """ + import os + + try: + from tests.FUNCvirNetNB.dependencies.Nbdata import NetworkData + from tests.FUNCvirNetNB.dependencies.Nbdata import SubnetData + from tests.FUNCvirNetNB.dependencies.Nbdata import VirtualPortData + except ImportError: + main.log.exception( "Something wrong with import file or code error." ) + main.log.info( "Import Error, please check!" ) + main.cleanup() + main.exit() + + main.log.info( "ONOS Port Post test Start" ) + main.case( "Virtual Network NBI Test - Port" ) + main.caseExplanation = "Test Port Post NBI " +\ + "Verify Stored Data is same with Post Data" + + ctrlip = os.getenv( main.params['CTRL']['ip1'] ) + httpport = main.params['HTTP']['port'] + path = main.params['HTTP']['path'] + + main.log.info( "Generate Post Data" ) + network = NetworkData() + network.id = '030d6d3d-fa36-45bf-ae2b-4f4bc43a54dc' + network.tenant_id = '26cd996094344a0598b0a1af1d525cdc' + subnet = SubnetData() + subnet.id = "e44bd655-e22c-4aeb-b1e9-ea1606875178" + subnet.tenant_id = network.tenant_id + subnet.network_id = network.id + port = VirtualPortData() + port.id = "9352e05c-58b8-4f2c-b4df-c20435ser56466" + port.subnet_id = subnet.id + port.tenant_id = network.tenant_id + port.network_id = network.id + + networkpostdata = network.DictoJson() + subnetpostdata = subnet.DictoJson() + portpostdata = port.DictoJson() + + main.step( "Post Network Data via HTTP(Post port need post network)" ) + Poststatus, result = main.ONOSrest.send( ctrlip, httpport, '', path + 'networks/', + 'POST', None, networkpostdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Network Success", + onfail="Post Network Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Post Subnet Data via HTTP(Post port need post subnet)" ) + Poststatus, result = main.ONOSrest.send( ctrlip, httpport, '', path + 'subnets/', + 'POST', None, subnetpostdata ) + utilities.assert_equals( + expect='202', + actual=Poststatus, + onpass="Post Subnet Success", + onfail="Post Subnet Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Post Port Data via HTTP" ) + Poststatus, result = main.ONOSrest.send( ctrlip, httpport, '', path + 'ports/', + 'POST', None, portpostdata ) + utilities.assert_equals( + expect='200', + actual=Poststatus, + onpass="Post Port Success", + onfail="Post Port Failed " + str( Poststatus ) + "," + str( result ) ) + + main.step( "Get Port Data via HTTP" ) + Getstatus, result = main.ONOSrest.send( ctrlip, httpport, port.id, path + 'ports/', + 'GET', None, None ) + utilities.assert_equals( + expect='200', + actual=Getstatus, + onpass="Get Port Success", + onfail="Get Port Failed " + str( Getstatus ) + "," + str( result ) ) + + main.step( "Compare Post Port Data" ) + IDcmpresult = subnet.JsonCompare( portpostdata, result, 'port', 'id' ) + TanantIDcmpresult = subnet.JsonCompare( portpostdata, result, 'port', 'tenant_id' ) + NetoworkIDcmpresult = subnet.JsonCompare( portpostdata, result, 'port', 'network_id' ) + fixedIpresult = subnet.JsonCompare( portpostdata, result, 'port', 'fixed_ips' ) + + Cmpresult = IDcmpresult and TanantIDcmpresult and NetoworkIDcmpresult and fixedIpresult + utilities.assert_equals( + expect=True, + actual=Cmpresult, + onpass="Compare Success", + onfail="Compare Failed:ID compare:" + str( IDcmpresult ) + \ + ",Tenant id compare:"+ str( TanantIDcmpresult ) + \ + ",Network id compare:" + str( NetoworkIDcmpresult ) +\ + ",FixIp compare:" + str( fixedIpresult ) ) + + main.step( "Clean Data via HTTP" ) + deletestatus,result = main.ONOSrest.send( ctrlip, httpport, network.id, path + 'networks/', + 'DELETE', None, None ) + utilities.assert_equals( + expect='200', + actual=deletestatus, + onpass="Delete Network Success", + onfail="Delete Network Failed" ) + + if Cmpresult != True: + main.log.error( "Post port compare failed" )
\ No newline at end of file |