Nuage VSP : Extending Marvin test coverage

This commit is contained in:
Prashanth Manthena 2016-05-02 10:16:34 +02:00 committed by Nick Livens
parent d862a09771
commit 2ca0d9b0e1
3 changed files with 43 additions and 10 deletions

View File

@ -50,7 +50,7 @@ import socket
class nuageTestCase(cloudstackTestCase): class nuageTestCase(cloudstackTestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls, zone=None):
cls.debug("setUpClass nuageTestCase") cls.debug("setUpClass nuageTestCase")
# We want to fail quicker, if it's a failure # We want to fail quicker, if it's a failure
@ -60,9 +60,11 @@ class nuageTestCase(cloudstackTestCase):
cls.api_client = test_client.getApiClient() cls.api_client = test_client.getApiClient()
cls.db_client = test_client.getDbConnection() cls.db_client = test_client.getDbConnection()
cls.test_data = test_client.getParsedTestDataConfig() cls.test_data = test_client.getParsedTestDataConfig()
# Get Zone, Domain and templates # Get Zone, Domain and templates
cls.zone = get_zone(cls.api_client) cls.zone = get_zone(cls.api_client,
zone_name=zone.name if zone else None,
zone_id=zone.id if zone else None
)
cls.domain = get_domain(cls.api_client) cls.domain = get_domain(cls.api_client)
cls.template = get_template(cls.api_client, cls.template = get_template(cls.api_client,
cls.zone.id, cls.zone.id,

View File

@ -15,22 +15,22 @@
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
""" Tests for basic VPC Network functionality with Nuage VSP SDN plugin """ Component tests for basic VPC Network functionality with Nuage VSP SDN plugin
""" """
# Import Local Modules # Import Local Modules
from nuageTestCase import nuageTestCase from nuageTestCase import nuageTestCase
from marvin.lib.base import Account from marvin.lib.base import Account, Zone
# Import System Modules # Import System Modules
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
class TestVpcNetworkNuage(nuageTestCase): class TestNuageVpcNetwork(nuageTestCase):
""" Test basic VPC Network functionality with Nuage VSP SDN plugin """ Test basic VPC Network functionality with Nuage VSP SDN plugin
""" """
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls, zone=None):
super(TestVpcNetworkNuage, cls).setUpClass() super(TestNuageVpcNetwork, cls).setUpClass(zone=zone)
return return
def setUp(self): def setUp(self):
@ -45,7 +45,7 @@ class TestVpcNetworkNuage(nuageTestCase):
@attr(tags=["advanced", "nuagevsp"], required_hardware="false") @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
def test_nuage_vpc_network(self): def test_nuage_vpc_network(self):
""" Test Basic VPC Network Functionality with Nuage VSP SDN plugin """ Test basic VPC Network functionality with Nuage VSP SDN plugin
""" """
# 1. Create Nuage VSP VPC offering, check if it is successfully created and enabled. # 1. Create Nuage VSP VPC offering, check if it is successfully created and enabled.
@ -97,3 +97,19 @@ class TestVpcNetworkNuage(nuageTestCase):
# VSD verification for ACL item # VSD verification for ACL item
self.verify_vsp_firewall_rule(acl_item) self.verify_vsp_firewall_rule(acl_item)
@attr(tags=["advanced", "nuagevsp", "multizone"], required_hardware="false")
def test_nuage_vpc_network_multizone(self):
""" Test basic VPC Network functionality with Nuage VSP SDN plugin on multiple zones
"""
# Repeat the tests in the above testcase "test_nuage_vpc_network" on multiple zones
self.debug("Testing basic VPC Network functionality with Nuage VSP SDN plugin on multiple zones...")
zones = Zone.list(self.api_client)
if len(zones) == 1:
self.skipTest("There is only one Zone configured: skipping test")
for zone in zones:
self.debug("Zone - %s" % zone.name)
self.setUpClass(zone=zone)
self.test_nuage_vpc_network()

View File

@ -561,7 +561,7 @@ class DeployDataCenters(object):
netprov.physicalnetworkid = phynetwrk.id netprov.physicalnetworkid = phynetwrk.id
result = self.__apiClient.addNetworkServiceProvider(netprov) result = self.__apiClient.addNetworkServiceProvider(netprov)
self.enableProvider(result.id) self.enableProvider(result.id)
elif provider.name in ['Netscaler', 'JuniperSRX', 'F5BigIp', 'NiciraNvp']: elif provider.name in ['Netscaler', 'JuniperSRX', 'F5BigIp', 'NiciraNvp', 'NuageVsp']:
netprov = addNetworkServiceProvider.\ netprov = addNetworkServiceProvider.\
addNetworkServiceProviderCmd() addNetworkServiceProviderCmd()
netprov.name = provider.name netprov.name = provider.name
@ -631,6 +631,21 @@ class DeployDataCenters(object):
self.__tcRunLogger.\ self.__tcRunLogger.\
debug("==== AddNiciraNvp Successful =====") debug("==== AddNiciraNvp Successful =====")
self.__addToCleanUp("NiciraNvp", ret.id) self.__addToCleanUp("NiciraNvp", ret.id)
elif provider.name == 'NuageVsp':
dev = addNuageVspDevice.addNuageVspDeviceCmd()
dev.hostname = device.hostname
dev.port = device.port
dev.username = device.username
dev.password = device.password
dev.retrycount = device.retrycount
dev.retryinterval = device.retryinterval
dev.physicalnetworkid = phynetwrk.id
ret = self.__apiClient.addNuageVspDevice(dev)
if ret.id:
self.__tcRunLogger.\
debug("==== addNuageVspDevice "
"Successful=====")
self.__addToCleanUp("addNuageVspDevice", ret.id)
else: else:
raise InvalidParameterException( raise InvalidParameterException(
"Device %s doesn't match " "Device %s doesn't match "