Пример #1
0
    def CASE3( self, main ):
        """
        Test Update Network
        """
        import os

        try:
            from tests.FUNC.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.cleanAndExit()

        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()
        ctrl = main.Cluster.active( 0 )
        main.step( "Post Data via HTTP" )
        Poststatus, result = ctrl.REST.send( ctrlip, port, '', path + 'networks',
                                             'POST', None, postdata )
        utilities.assert_equals(
                expect='200',
                actual=Poststatus,
                onpass="******",
                onfail="Post Failed " + str( Poststatus ) + str( result ) )

        main.step( "Update Data via HTTP" )
        Updatestatus, result = ctrl.REST.send( ctrlip, port, network.id, path + 'networks/',
                                               'PUT', None, postdatanew )
        utilities.assert_equals(
                expect='200',
                actual=Updatestatus,
                onpass="******",
                onfail="Update Failed " + str( Updatestatus ) + str( result ) )

        main.step( "Get Data via HTTP" )
        Getstatus, result = ctrl.REST.send( ctrlip, port, network.id, path + 'networks/',
                                            'GET', None, None )
        utilities.assert_equals(
                expect='200',
                actual=Getstatus,
                onpass="******",
                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="******",
                onfail="Compare Failed:ID compare:" + str( IDcmpresult ) +
                       ",Tenant id compare:" + str( TanantIDcmpresult ) +
                       ",Name compare:" + str( Shareresult ) )

        deletestatus, result = ctrl.REST.send( ctrlip, port, network.id, path + 'networks/',
                                               'DELETE', None, None )

        utilities.assert_equals(
                expect='200',
                actual=deletestatus,
                onpass="******",
                onfail="Delete Network Failed" )

        if not Cmpresult:
            main.log.error( "Update Network compare failed" )