You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ta...@apache.org on 2016/03/17 15:19:53 UTC
[2/6] git commit: updated refs/heads/master to de173bd
deleted: test_vpcnetwork_nuage.py
new file: ../plugins/nuagevsp/__init__.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/22602634
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/22602634
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/22602634
Branch: refs/heads/master
Commit: 226026342581eb07b0de9718fa207f6cd8299732
Parents: 3c8d3d0
Author: Sowmya <so...@nokia.com>
Authored: Tue Mar 8 18:57:24 2016 -0800
Committer: Sowmya <so...@nokia.com>
Committed: Tue Mar 8 18:57:24 2016 -0800
----------------------------------------------------------------------
.../component/test_vpcnetwork_nuage.py | 295 -------------------
test/integration/plugins/nuagevsp/__init__.py | 16 +
2 files changed, 16 insertions(+), 295 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22602634/test/integration/component/test_vpcnetwork_nuage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpcnetwork_nuage.py b/test/integration/component/test_vpcnetwork_nuage.py
deleted file mode 100644
index be76fa6..0000000
--- a/test/integration/component/test_vpcnetwork_nuage.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-""" Tests for NuageNetwork VPC
-"""
-#Import Local Modules
-from marvin.cloudstackTestCase import cloudstackTestCase, unittest
-from marvin.lib.utils import (cleanup_resources)
-from marvin.cloudstackAPI import (listPhysicalNetworks,
- listNetworkServiceProviders,
- addNetworkServiceProvider,
- updateNetworkServiceProvider,
- addNuageVspDevice,
- destroyVirtualMachine)
-from marvin.lib.base import (VirtualMachine,
- ServiceOffering,
- Account,
- NetworkOffering,
- Network,
- VPC,
- VpcOffering,
- NetworkACL,
- NetworkACLList)
-from marvin.lib.common import (get_zone,
- get_domain,
- get_template,
- wait_for_cleanup,
- list_networks)
-
-from nose.plugins.attrib import attr
-
-class Services:
-
- """Test NuageVsp plugin
- """
-
- def __init__(self):
- self.services = {
- "account": {
- "email": "cloudstack@cloudmonkey.com",
- "firstname": "cloudstack",
- "lastname": "bob",
- "username": "admin",
- "password": "password",
- },
- "service_offering": {
- "name": "Tiny Instance",
- "displaytext": "Tiny Instance",
- "cpunumber": 1,
- "cpuspeed": 100, # in MHz
- "memory": 128, # In MBs
- },
- "virtual_machine": {
- "displayname": "TestVM",
- "username": "root",
- "password": "password",
- "ssh_port": 22,
- "hypervisor": 'KVM',
- "privateport": 22,
- "publicport": 22,
- "protocol": 'TCP',
- },
- "nuage_vsp_device": {
- #"hostname": '192.168.0.7',
- #"hostname": '10.31.43.226',
- "hostname": '172.31.222.162',
- "username": 'cloudstackuser1',
- "password": 'cloudstackuser1',
- "port": '8443',
- "apiversion": 'v3_2',
- "retrycount": '4',
- "retryinterval": '60'
- },
- # services supported by Nuage for VPC networks.
- "vpc_network_offering": {
- "name": 'nuage_vpc_marvin',
- "displaytext": 'nuage_vpc_marvin',
- "guestiptype": 'Isolated',
- "supportedservices": 'UserData,Dhcp,SourceNat,StaticNat,NetworkACL,Connectivity',
- "traffictype": 'GUEST',
- "useVpc": 'on',
- "serviceProviderList": {
- "Dhcp": "NuageVsp",
- "SourceNat": "NuageVsp",
- "StaticNat": "NuageVsp",
- "NetworkACL": "NuageVsp",
- "UserData": "VpcVirtualRouter",
- "Connectivity": "NuageVsp"
- },
- "serviceCapabilityList": {
- "SourceNat": {"SupportedSourceNatTypes": "perzone"}
- }
- },
- "vpc": {
- "name": "vpc-networkacl-nuage",
- "displaytext": "vpc-networkacl-nuage",
- "cidr": '10.1.0.0/16'
- },
- "vpcnetwork": {
- "name": "nuagevpcnetwork",
- "displaytext": "nuagevpcnetwork",
- "netmask": '255.255.255.128'
- },
- "ostype": 'CentOS 5.5 (64-bit)',
- "sleep": 60,
- "timeout": 10
- }
-
-
-class TestVpcNetworkNuage(cloudstackTestCase):
-
- @classmethod
- def setUpClass(cls):
- cls._cleanup = []
- cls.testClient = super(TestVpcNetworkNuage, cls).getClsTestClient()
- cls.api_client = cls.testClient.getApiClient()
-
- cls.services = Services().services
- # Get Zone, Domain and templates
- cls.domain = get_domain(cls.api_client)
- cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
- cls.template = get_template(
- cls.api_client,
- cls.zone.id,
- cls.services["ostype"]
- )
- # nuage vsp device brings the Nuage virtual service platform into play
- cls.nuage_services = cls.services["nuage_vsp_device"]
- try:
-
- resp = listPhysicalNetworks.listPhysicalNetworksCmd()
- print "in cls.setupClass- resp: %s" % resp
- resp.zoneid = cls.zone.id
- physical_networks = cls.api_client.listPhysicalNetworks(resp)
- for pn in physical_networks:
- if pn.isolationmethods=='VSP':
- physical_network = pn
- #if isinstance(physical_networks, list):
- # physical_network = physical_networks[1]
- resp = listNetworkServiceProviders.listNetworkServiceProvidersCmd()
- resp.name = 'NuageVsp'
- resp.physicalnetworkid = physical_network.id
- nw_service_providers = cls.api_client.listNetworkServiceProviders(
- resp)
- if not isinstance(nw_service_providers, list):
- # create network service provider and add nuage vsp device
- resp_add_nsp = \
- addNetworkServiceProvider.addNetworkServiceProviderCmd()
- resp_add_nsp.name = 'NuageVsp'
- resp_add_nsp.physicalnetworkid = physical_network.id
- cls.api_client.addNetworkServiceProvider(resp_add_nsp)
- #Get NSP ID
- nw_service_providers = cls.api_client.listNetworkServiceProviders(
- resp)
- cls.debug("NuageVsp NSP ID: %s" % nw_service_providers[0].id)
-
- resp_add_device = addNuageVspDevice.addNuageVspDeviceCmd()
- resp_add_device.physicalnetworkid = physical_network.id
- resp_add_device.username = cls.nuage_services["username"]
- resp_add_device.password = cls.nuage_services["password"]
- resp_add_device.hostname = cls.nuage_services["hostname"]
- resp_add_device.port = cls.nuage_services["port"]
- resp_add_device.apiversion = cls.nuage_services[
- "apiversion"]
- resp_add_device.retrycount = cls.nuage_services[
- "retrycount"]
- resp_add_device.retryinterval = cls.nuage_services[
- "retryinterval"]
- cls.nuage = cls.api_client.addNuageVspDevice(
- resp_add_device)
- #Enable NuageVsp NSP
- cls.debug("NuageVsp NSP ID : %s" % nw_service_providers[0].id)
- resp_up_nsp = \
- updateNetworkServiceProvider.updateNetworkServiceProviderCmd()
- resp_up_nsp.id = nw_service_providers[0].id
- resp_up_nsp.state = 'Enabled'
- cls.api_client.updateNetworkServiceProvider(resp_up_nsp)
-
- cls.network_offering = NetworkOffering.create(
- cls.api_client,
- cls.services["vpc_network_offering"],
- conservemode=False
- )
- cls._cleanup.append(cls.network_offering)
-
- cls.network_offering.update(cls.api_client, state='Enabled')
- cls.services["virtual_machine"]["zoneid"] = cls.zone.id
- cls.services["virtual_machine"]["template"] = cls.template.id
- cls.service_offering = ServiceOffering.create(
- cls.api_client,
- cls.services["service_offering"]
- )
- cls._cleanup.append(cls.service_offering)
- except Exception as e:
- cls.tearDownClass()
- raise unittest.SkipTest("Unable to add VSP device")
- return
-
- @attr(tags=["advanced"])
- def test_vpcnetwork_nuage(self):
- """Test network VPC for Nuage"""
-
- # 1) Create VPC with Nuage VPC offering
- vpcOffering = VpcOffering.list(self.apiclient,name="Nuage VSP VPC offering")
- self.assert_(vpcOffering is not None and len(vpcOffering)>0, "Nuage VPC offering not found")
- vpc = VPC.create(
- apiclient=self.apiclient,
- services=self.services["vpc"],
- networkDomain="vpc.networkacl",
- vpcofferingid=vpcOffering[0].id,
- zoneid=self.zone.id,
- account=self.account.name,
- domainid=self.account.domainid
- )
- self.assert_(vpc is not None, "VPC creation failed")
-
- # 2) Create ACL
- aclgroup = NetworkACLList.create(apiclient=self.apiclient, services={}, name="acl", description="acl", vpcid=vpc.id)
- self.assertIsNotNone(aclgroup, "Failed to create NetworkACL list")
- self.debug("Created a network ACL list %s" % aclgroup.name)
-
- # 3) Create ACL Item
- aclitem = NetworkACL.create(apiclient=self.apiclient, services={},
- protocol="TCP", number="10", action="Deny", aclid=aclgroup.id, cidrlist=["0.0.0.0/0"])
- self.assertIsNotNone(aclitem, "Network failed to aclItem")
- self.debug("Added a network ACL %s to ACL list %s" % (aclitem.id, aclgroup.name))
-
- # 4) Create network with ACL
- nwNuage = Network.create(
- self.apiclient,
- self.services["vpcnetwork"],
- accountid=self.account.name,
- domainid=self.account.domainid,
- networkofferingid=self.network_offering.id,
- zoneid=self.zone.id,
- vpcid=vpc.id,
- aclid=aclgroup.id,
- gateway='10.1.0.1'
- )
- self.debug("Network %s created in VPC %s" %(nwNuage.id, vpc.id))
-
- # 5) Deploy a vm
- vm = VirtualMachine.create(
- self.apiclient,
- self.services["virtual_machine"],
- accountid=self.account.name,
- domainid=self.account.domainid,
- serviceofferingid=self.service_offering.id,
- networkids=[str(nwNuage.id)]
- )
- self.assert_(vm is not None, "VM failed to deploy")
- self.assert_(vm.state == 'Running', "VM is not running")
- self.debug("VM %s deployed in VPC %s" %(vm.id, vpc.id))
-
- @classmethod
- def tearDownClass(cls):
- try:
- cleanup_resources(cls.api_client, cls._cleanup)
- except Exception as e:
- raise Exception("Warning: Exception during cleanup : %s" % e)
- return
-
- def setUp(self):
- self.apiclient = self.testClient.getApiClient()
- self.dbclient = self.testClient.getDbConnection()
- self.account = Account.create(
- self.apiclient,
- self.services["account"],
- admin=True,
- domainid=self.domain.id
- )
- self.cleanup = [self.account]
- return
-
- def tearDown(self):
- try:
- self.debug("Cleaning up the resources")
- cleanup_resources(self.apiclient, self.cleanup)
- self.debug("Cleanup complete!")
- except Exception as e:
- raise Exception("Warning: Exception during cleanup : %s" % e)
- return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22602634/test/integration/plugins/nuagevsp/__init__.py
----------------------------------------------------------------------
diff --git a/test/integration/plugins/nuagevsp/__init__.py b/test/integration/plugins/nuagevsp/__init__.py
new file mode 100644
index 0000000..13a8339
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/__init__.py
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.