You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sw...@apache.org on 2016/04/25 21:54:34 UTC

[3/6] git commit: updated refs/heads/master to 9b525f5

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de86c0cb/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
----------------------------------------------------------------------
diff --git a/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py b/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
index 3fc9c32..a8361d0 100644
--- a/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
+++ b/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
@@ -15,16 +15,17 @@
 # specific language governing permissions and limitations
 # under the License.
 
-""" Tests for Basic VPC Network Functionality with NuageVsp network Plugin
+""" Tests for basic VPC Network functionality with Nuage VSP SDN plugin
 """
 # Import Local Modules
+from nuageTestCase import nuageTestCase
 from marvin.lib.base import Account
+# Import System Modules
 from nose.plugins.attrib import attr
-from nuageTestCase import nuageTestCase
 
 
 class TestVpcNetworkNuage(nuageTestCase):
-    """ Test Basic VPC Network Functionality with NuageVsp network Plugin
+    """ Test basic VPC Network functionality with Nuage VSP SDN plugin
     """
 
     @classmethod
@@ -44,55 +45,55 @@ class TestVpcNetworkNuage(nuageTestCase):
 
     @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
     def test_nuage_vpc_network(self):
-        """ Test Basic VPC Network Functionality with NuageVsp network 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.
         # 2. Create a VPC with Nuage VSP VPC offering, check if it is successfully created and enabled.
-        # 3. Create Nuage Vsp VPC Network offering, check if it is successfully created and enabled.
+        # 3. Create Nuage VSP VPC Network offering, check if it is successfully created and enabled.
         # 4. Create an ACL list in the created VPC, and add an ACL item to it.
-        # 5. Create a VPC Network with Nuage Vsp VPC Network offering and the created ACL list, check if it is
+        # 5. Create a VPC Network with Nuage VSP VPC Network offering and the created ACL list, check if it is
         #    successfully created, is in the "Implemented" state, and is added to the VPC VR.
         # 6. Deploy a VM in the created VPC network, check if the VM is successfully deployed and is in the "Running"
         #    state.
-        # 7. Verify that the created ACL item is successfully implemented in Nuage Vsp.
+        # 7. Verify that the created ACL item is successfully implemented in Nuage VSP.
 
         # Creating a VPC offering
         self.debug("Creating Nuage VSP VPC offering...")
-        vpc_offering = self.create_VpcOffering(self.test_data["nuage_vsp_services"]["vpc_offering"])
-        self.validate_vpc_offering(vpc_offering, state="Enabled")
+        vpc_offering = self.create_VpcOffering(self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_offering, state="Enabled")
 
         # Creating a VPC
         self.debug("Creating a VPC with Nuage VSP VPC offering...")
         vpc = self.create_Vpc(vpc_offering, cidr='10.1.0.0/16')
-        self.validate_vpc(vpc, state="Enabled")
+        self.validate_Vpc(vpc, state="Enabled")
 
         # Creating a network offering
-        self.debug("Creating Nuage Vsp VPC Network offering...")
-        network_offering = self.create_NetworkOffering(self.test_data["nuage_vsp_services"]["vpc_network_offering"])
-        self.validate_network_offering(network_offering, state="Enabled")
+        self.debug("Creating Nuage VSP VPC Network offering...")
+        network_offering = self.create_NetworkOffering(self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
 
         # Creating an ACL list
-        acl_list = self.create_network_acl_list(name="acl", description="acl", vpc=vpc)
+        acl_list = self.create_NetworkAclList(name="acl", description="acl", vpc=vpc)
 
         # Creating an ACL item
-        acl_item = self.create_network_acl_rule(self.test_data["ingress_rule"], acl_list=acl_list)
+        acl_item = self.create_NetworkAclRule(self.test_data["ingress_rule"], acl_list=acl_list)
 
         # Creating a VPC network in the VPC
-        self.debug("Creating a VPC network with Nuage Vsp VPC Network offering...")
-        vpc_network = self.create_Network(network_offering, gateway='10.1.1.1', vpc=vpc, acl_list=acl_list)
-        self.validate_network(vpc_network, state="Implemented")
-        vr = self.get_network_router(vpc_network)
-        self.check_router_state(vr, state="Running")
+        self.debug("Creating a VPC network with Nuage VSP VPC Network offering...")
+        vpc_network = self.create_Network(network_offering, vpc=vpc, acl_list=acl_list)
+        self.validate_Network(vpc_network, state="Implemented")
+        vr = self.get_Router(vpc_network)
+        self.check_Router_state(vr, state="Running")
 
         # Deploying a VM in the VPC network
-        vm = self.create_VM_in_Network(vpc_network)
-        self.check_vm_state(vm, state="Running")
+        vm = self.create_VM(vpc_network)
+        self.check_VM_state(vm, state="Running")
 
-        # VSPK verification
+        # VSD verification
         self.verify_vsp_network(self.domain.id, vpc_network, vpc)
         self.verify_vsp_router(vr)
         self.verify_vsp_vm(vm)
 
-        # VSPK verification for ACL item
+        # VSD verification for ACL item
         self.verify_vsp_firewall_rule(acl_item)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de86c0cb/test/integration/plugins/nuagevsp/test_nuage_vsp.py
----------------------------------------------------------------------
diff --git a/test/integration/plugins/nuagevsp/test_nuage_vsp.py b/test/integration/plugins/nuagevsp/test_nuage_vsp.py
index a6ec7e1..ca2a28e 100644
--- a/test/integration/plugins/nuagevsp/test_nuage_vsp.py
+++ b/test/integration/plugins/nuagevsp/test_nuage_vsp.py
@@ -15,16 +15,17 @@
 # specific language governing permissions and limitations
 # under the License.
 
-""" P1 tests for NuageVsp network Plugin
+""" P1 tests for Nuage VSP SDN plugin
 """
 # Import Local Modules
+from nuageTestCase import nuageTestCase
 from marvin.lib.base import Account
+# Import System Modules
 from nose.plugins.attrib import attr
-from nuageTestCase import nuageTestCase
 
 
 class TestNuageVsp(nuageTestCase):
-    """ Test NuageVsp network plugin
+    """ Test Nuage VSP SDN plugin
     """
 
     @classmethod
@@ -44,12 +45,12 @@ class TestNuageVsp(nuageTestCase):
 
     @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
     def test_nuage_vsp(self):
-        """ Test NuageVsp network plugin with basic Isolated Network functionality
+        """ Test Nuage VSP SDN plugin with basic Isolated Network functionality
         """
 
-        # 1. Verify that the NuageVsp network service provider is successfully created and enabled.
-        # 2. Create and enable Nuage Vsp Isolated Network offering, check if it is successfully created and enabled.
-        # 3. Create an Isolated Network with Nuage Vsp Isolated Network offering, check if it is successfully created
+        # 1. Verify that the Nuage VSP network service provider is successfully created and enabled.
+        # 2. Create and enable Nuage VSP Isolated Network offering, check if it is successfully created and enabled.
+        # 3. Create an Isolated Network with Nuage VSP Isolated Network offering, check if it is successfully created
         #    and is in the "Allocated" state.
         # 4. Deploy a VM in the created Isolated network, check if the Isolated network state is changed to
         #    "Implemented", and both the VM & VR are successfully deployed and are in the "Running" state.
@@ -58,49 +59,49 @@ class TestNuageVsp(nuageTestCase):
         # 6. Delete the created Isolated Network after destroying its VMs, check if the Isolated network is successfully
         #    deleted.
 
-        self.debug("Validating the NuageVsp network service provider...")
+        self.debug("Validating the Nuage VSP network service provider...")
         self.validate_NetworkServiceProvider("NuageVsp", state="Enabled")
 
         # Creating a network offering
-        self.debug("Creating and enabling Nuage Vsp Isolated Network offering...")
+        self.debug("Creating and enabling Nuage VSP Isolated Network offering...")
         network_offering = self.create_NetworkOffering(
-            self.test_data["nuage_vsp_services"]["isolated_network_offering"])
-        self.validate_network_offering(network_offering, state="Enabled")
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
 
         # Creating a network
-        self.debug("Creating an Isolated Network with Nuage Vsp Isolated Network offering...")
-        network = self.create_Network(network_offering, gateway='10.1.1.1')
-        self.validate_network(network, state="Allocated")
+        self.debug("Creating an Isolated Network with Nuage VSP Isolated Network offering...")
+        network = self.create_Network(network_offering)
+        self.validate_Network(network, state="Allocated")
 
         # Deploying a VM in the network
-        vm_1 = self.create_VM_in_Network(network)
-        self.validate_network(network, state="Implemented")
-        vr = self.get_network_router(network)
-        self.check_router_state(vr, state="Running")
-        self.check_vm_state(vm_1, state="Running")
+        vm_1 = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
 
-        # VSPK verification
+        # VSD verification
         self.verify_vsp_network(self.domain.id, network)
         self.verify_vsp_router(vr)
         self.verify_vsp_vm(vm_1)
 
         # Deploying one more VM in the network
-        vm_2 = self.create_VM_in_Network(network)
-        self.check_vm_state(vm_2, state="Running")
+        vm_2 = self.create_VM(network)
+        self.check_VM_state(vm_2, state="Running")
 
-        # VSPK verification
+        # VSD verification
         self.verify_vsp_vm(vm_2)
 
         # Deleting the network
-        self.debug("Deleting the Isolated Network with Nuage Vsp Isolated Network offering...")
+        self.debug("Deleting the Isolated Network with Nuage VSP Isolated Network offering...")
         self.delete_VM(vm_1)
         self.delete_VM(vm_2)
         self.delete_Network(network)
         with self.assertRaises(Exception):
-            self.validate_network(network)
+            self.validate_Network(network)
         self.debug("Isolated Network successfully deleted in CloudStack")
 
-        # VSPK verification
+        # VSD verification
         with self.assertRaises(Exception):
             self.verify_vsp_network(self.domain.id, network)
         self.debug("Isolated Network successfully deleted in VSD")

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de86c0cb/tools/marvin/marvin/config/test_data.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py
index 352f8a2..c9bb7c6 100644
--- a/tools/marvin/marvin/config/test_data.py
+++ b/tools/marvin/marvin/config/test_data.py
@@ -735,6 +735,34 @@ test_data = {
         "publicport": 22,
         "protocol": 'TCP'
     },
+    "internal_lbrule": {
+        "name": "SSH",
+        "algorithm": "roundrobin",
+        # Algorithm used for load balancing
+        "sourceport": 22,
+        "instanceport": 22,
+        "scheme": "internal",
+        "protocol": "TCP",
+        "cidrlist": '0.0.0.0/0',
+    },
+    "internal_lbrule_http": {
+        "name": "HTTP",
+        "algorithm": "roundrobin",
+        # Algorithm used for load balancing
+        "sourceport": 80,
+        "instanceport": 80,
+        "scheme": "internal",
+        "protocol": "TCP",
+        "cidrlist": '0.0.0.0/0',
+    },
+    "http_rule": {
+        "privateport": 80,
+        "publicport": 80,
+        "startport": 80,
+        "endport": 80,
+        "protocol": "TCP",
+        "cidrlist": '0.0.0.0/0',
+    },
     "icmprule": {
         "icmptype": -1,
         "icmpcode": -1,
@@ -1696,9 +1724,9 @@ test_data = {
                     "mode": 'HTTP_DOWNLOAD'
                 }
         },
-    # Nuage Vsp supported services
-    "nuage_vsp_services": {
-        # Services supported by Nuage Vsp for Isolated networks
+    # Nuage VSP SDN plugin specific test data
+    "nuagevsp": {
+        # Services supported by the Nuage VSP plugin for Isolated networks
         "isolated_network_offering": {
             "name": 'nuage_marvin',
             "displaytext": 'nuage_marvin',
@@ -1718,7 +1746,7 @@ test_data = {
                     "SourceNat": {"SupportedSourceNatTypes": "perzone"}
             }
         },
-        # Services supported by Nuage Vsp for VPC networks
+        # Services supported by the Nuage VSP plugin for VPC networks
         "vpc_network_offering": {
             "name": 'nuage_vpc_marvin',
             "displaytext": 'nuage_vpc_marvin',
@@ -1740,7 +1768,30 @@ test_data = {
                 "SourceNat": {"SupportedSourceNatTypes": "perzone"}
             }
         },
-        # Nuage Vsp supports only pre-defined and custom VPC offerings
+        "vpc_network_offering_internal_lb": {
+            "name": "nuage_vpc_marvin_internal_lb",
+            "displaytext": "nuage_vpc_marvin_internal_lb",
+            "guestiptype": 'Isolated',
+            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "traffictype": 'GUEST',
+            "availability": 'Optional',
+            "useVpc": 'on',
+            "ispersistent": 'True',
+            "serviceProviderList": {
+                "Dhcp": "NuageVsp",
+                "Lb": "InternalLbVm",
+                "StaticNat": "NuageVsp",
+                "SourceNat": "NuageVsp",
+                "NetworkACL": "NuageVsp",
+                "Connectivity": "NuageVsp",
+                "UserData": "VpcVirtualRouter"
+            },
+            "serviceCapabilityList": {
+                "SourceNat": {"SupportedSourceNatTypes": "perzone"},
+                "Lb": {"lbSchemes": "internal", "SupportedLbIsolation": "dedicated"}
+            }
+        },
+        # Services supported by the Nuage VSP plugin for VPCs
         "vpc_offering": {
             "name": 'Nuage VSP VPC offering',
             "displaytext": 'Nuage VSP VPC offering',
@@ -1753,57 +1804,20 @@ test_data = {
                 "Connectivity": "NuageVsp",
                 "UserData": "VpcVirtualRouter"
             }
-        }
-    },
-   
-    #_pr -_ passwordreset - below services used in test_nuage_password_reset
-    "network_offering_pr": {
-        "name": 'nuage_marvin',
-        "displaytext": 'nuage_marvin',
-        "guestiptype": 'Isolated',
-        "supportedservices":
-        'Dhcp,SourceNat,Connectivity,StaticNat,UserData,Firewall',
-        "traffictype": 'GUEST',
-        "availability": 'Optional',
-        "serviceProviderList": {
-            "UserData": 'VirtualRouter',
-            "Dhcp": 'NuageVsp',
-            "Connectivity": 'NuageVsp',
-            "StaticNat": 'NuageVsp',
-            "SourceNat": 'NuageVsp',
-            "Firewall": 'NuageVsp'
         },
-    },
-    "network_pr": {
-        "name": "Test Network",
-        "displaytext": "Test Network",
-        "netmask": '255.255.255.0'
-    },
-    "fw_rule_pr": {
-        "startport": 1,
-        "endport": 6000,
-        "cidr": '0.0.0.0/0',
-        # Any network (For creating FW rule)
-        "protocol": "TCP"
-    },
-    "virtual_machine_pr": {
-        "displayname": "Test VM",
-        "username": "root",
-        "password": "password",
-        "ssh_port": 22,
-        "hypervisor": 'kvm',
-        # Hypervisor type should be same as
-        # hypervisor type of cluster
-        "privateport": 22,
-        "publicport": 22,
-        "protocol": 'TCP',
-        "userdata": "This is sample data",
-    },
-    "template_pr": {
-        "displaytext": "Cent OS Template",
-        "name": "Cent OS Template",
-        "passwordenabled": True,
-    },
-    "ostype_pr": 'CentOS 5.5 (64-bit)',
-
+        "vpc_offering_lb": {
+            "name": 'Nuage VSP VPC offering with Lb',
+            "displaytext": 'Nuage VSP VPC offering with Lb',
+            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "serviceProviderList": {
+                "Dhcp": "NuageVsp",
+                "Lb": "InternalLbVm",
+                "StaticNat": "NuageVsp",
+                "SourceNat": "NuageVsp",
+                "NetworkACL": "NuageVsp",
+                "Connectivity": "NuageVsp",
+                "UserData": "VpcVirtualRouter"
+            }
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de86c0cb/tools/marvin/marvin/lib/base.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/lib/base.py b/tools/marvin/marvin/lib/base.py
index e2f4a2c..4ceb7ac 100755
--- a/tools/marvin/marvin/lib/base.py
+++ b/tools/marvin/marvin/lib/base.py
@@ -4673,7 +4673,7 @@ class ApplicationLoadBalancer:
     @classmethod
     def create(cls, apiclient, services, name=None, sourceport=None,
                instanceport=22, algorithm="roundrobin", scheme="internal",
-               sourcenetworkid=None, networkid=None):
+               sourcenetworkid=None, networkid=None, sourceipaddress=None):
         """Create Application Load Balancer"""
         cmd = createLoadBalancer.createLoadBalancerCmd()
 
@@ -4712,6 +4712,11 @@ class ApplicationLoadBalancer:
         elif networkid:
             cmd.networkid = networkid
 
+        if "sourceipaddress" in services:
+            cmd.sourceipaddress = services["sourceipaddress"]
+        elif sourceipaddress:
+            cmd.sourceipaddress = sourceipaddress
+
         return LoadBalancerRule(apiclient.createLoadBalancer(cmd).__dict__)
 
     def delete(self, apiclient):