Repository: cloudstack
Updated Branches:
  refs/heads/master 930e4a2a6 -> 9f4f9211d


CLOUDSTACK-5986: Test scipt to verify the fix in isolated network for non-vpc 
networks

Signed-off-by: sanjeev <sanj...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9f4f9211
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9f4f9211
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9f4f9211

Branch: refs/heads/master
Commit: 9f4f9211d0aecbfeadfa626b6202109f40200125
Parents: 930e4a2
Author: sanjeev <sanj...@apache.org>
Authored: Tue Jul 22 17:15:11 2014 +0530
Committer: sanjeev <sanj...@apache.org>
Committed: Wed Jul 23 18:28:08 2014 +0530

----------------------------------------------------------------------
 .../component/test_escalations_instances.py     | 214 ++++++++++++++++++-
 1 file changed, 213 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9f4f9211/test/integration/component/test_escalations_instances.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_instances.py 
b/test/integration/component/test_escalations_instances.py
index 79fd3b1..0cd8b68 100644
--- a/test/integration/component/test_escalations_instances.py
+++ b/test/integration/component/test_escalations_instances.py
@@ -1919,7 +1919,7 @@ class TestInstances(cloudstackTestCase):
             cls.user = cls.account.user[0]
             cls.userapiclient = 
cls.testClient.getUserApiClient(cls.user.username, cls.domain.name)
             # Updating resource Limits
-            for i in range(0, 12):
+            for i in range(0, 8):
                 Resources.updateLimit(
                                       cls.api_client,
                                       account=cls.account.name,
@@ -3567,3 +3567,215 @@ class TestInstances(cloudstackTestCase):
         except Exception as e:
             raise Exception("Warning: Exception in expunging vm : %s" % e)
         return
+
+    @attr(tags=["advanced", "selfservice"])
+    def test_25_ip_reallocation_ES1377(self):
+        """
+        @Desc: Test to verify dnsmasq dhcp conflict issue due to /ect/hosts 
not getting udpated
+        @Steps:
+        Step1: Create a network for the user
+        Step2: List the network and check that it is created for the user
+        Step3: Deploy vm1 with hostname hostA and ip address IP A in the above 
network
+        Step4: List the vm and verify the ip address in the response and 
verify ssh access to vm
+        Step5: Deploy vm2 with hostname hostB and ip address IP B in the same 
network
+        Step6: Repeat step4
+        Step7: Destroy vm1 and vm2
+        Step8: Deploy vm3 with hostname hostA and ip address IP B
+        Step9: Repeat step4
+        Step10: Deploy vm4 with IP A and hostC
+        Step11: Repeat step4
+        """
+        # Listing Network Offerings
+        network_offerings_list = NetworkOffering.list(
+            self.apiClient,
+            forvpc="false",
+            guestiptype="Isolated",
+            state="Enabled",
+            supportedservices="SourceNat",
+            zoneid=self.zone.id
+        )
+        status = validateList(network_offerings_list)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "Isolated Network Offerings with sourceNat enabled are not found"
+        )
+        """
+        Create Isolated netwrok with ip range
+        """
+        self.services["network"]["startip"] = "10.1.1.2"
+        self.services["network"]["endip"] = "10.1.1.254"
+        self.services["network"]["gateway"] = "10.1.1.1"
+        self.services["network"]["netmask"] = "255.255.255.0"
+        """
+        Creating isolated/guest network with ip range
+        """
+        network = Network.create(
+            self.userapiclient,
+            self.services["network"],
+            accountid=self.account.name,
+            domainid=self.domain.id,
+            networkofferingid=network_offerings_list[0].id,
+            zoneid=self.zone.id
+        )
+        self.assertIsNotNone(
+            network,
+            "Network creation failed"
+        )
+        vm_ip1 = "10.1.1.10"
+        name1 = "hostA"
+        self.debug("network id:%s" %network.id)
+        self.services["virtual_machine"]["name"] = name1
+        # Deploying a VM
+        vm1 = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            networkids=[network.id],
+            ipaddress=vm_ip1,
+            serviceofferingid=self.service_offering.id,
+            mode="advanced",
+            )
+        self.assertIsNotNone(
+            vm1,
+            "VM1 creation failed with ip address %s and host name %s" 
%(vm_ip1,name1)
+        )
+        # self.cleanup.append(vm_created)
+        self.cleanup.append(network)
+        # Listing all the VMs for a user again
+        vm_response = VirtualMachine.list(
+            self.userapiclient,
+            id=vm1.id,
+            )
+        status = validateList(vm_response)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "vm list api returned invalid response for vm1"
+        )
+        # Verifying that the size of the list is 1
+        self.assertEquals(
+            1,
+            len(vm_response),
+            "VM list count is not matching"
+        )
+        # Deploying a VM
+        vm_ip2 = "10.1.1.20"
+        name2 = "hostB"
+        self.services["virtual_machine"]["name"] = name2
+        vm2 = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            networkids=[network.id],
+            ipaddress=vm_ip2,
+            serviceofferingid=self.service_offering.id,
+            mode="advanced",
+            )
+        self.assertIsNotNone(
+            vm2,
+            "VM2 creation failed"
+        )
+        vm_response = VirtualMachine.list(
+            self.userapiclient,
+            id=vm2.id,
+            )
+        status = validateList(vm_response)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "vm list api returned invalid response for vm2"
+        )
+        # Verifying that the size of the list is 1
+        self.assertEquals(
+            1,
+            len(vm_response),
+            "VM list count is not matching after vm2 deployment"
+        )
+        try:
+            vm1.delete(self.apiClient, expunge=True)
+            vm2.delete(self.apiClient, expunge=True)
+        except Exception as e:
+            raise Exception("Warning: Exception in expunging vms : %s" % e)
+        """
+        Deploy vm3 with ip address of vm1 and host name of vm2 so both the vm1 
and vm2 entries
+        would be deleted from dhcphosts file on VR becase dhcprelease matches 
entries with
+        host name and ip address so it matches both the entries.
+        """
+        # Deploying a VM
+        self.services["virtual_machine"]["name"] = name2
+        vm3 = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            networkids=[network.id],
+            ipaddress=vm_ip1,
+            serviceofferingid=self.service_offering.id,
+            mode="advanced",
+            )
+        self.assertIsNotNone(
+            vm3,
+            "VM3 creation failed"
+        )
+        vm_response = VirtualMachine.list(
+            self.userapiclient,
+            id=vm3.id,
+            )
+        status = validateList(vm_response)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "vm list api returned invalid response for vm3"
+        )
+        # Verifying that the size of the list is 1
+        self.assertEquals(
+            1,
+            len(vm_response),
+            "VM list count is not matching after vm2 deployment"
+        )
+        # Deploying a VM
+        """
+        Deploy vm4 with ip address of vm2. dnsmasq and dhcprelase should be in 
sync.
+        We should not see dhcp lease block due to IP reallocation.
+        """
+        name3 = "hostC"
+        self.services["virtual_machine"]["name"] = name3
+        vm4 = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            networkids=[network.id],
+            ipaddress=vm_ip2,
+            serviceofferingid=self.service_offering.id,
+            mode="advanced",
+            )
+        self.assertIsNotNone(
+            vm4,
+            "VM4 creation failed"
+        )
+        vm_response = VirtualMachine.list(
+            self.userapiclient,
+            id=vm4.id,
+            )
+        status = validateList(vm_response)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "vm list api returned invalid response for vm4"
+        )
+        # Verifying that the size of the list is 1
+        self.assertEquals(
+            1,
+            len(vm_response),
+            "VM list count is not matching after vm2 deployment"
+        )
+        try:
+            vm3.delete(self.apiClient, expunge=True)
+            vm4.delete(self.apiClient, expunge=True)
+        except Exception as e:
+            raise Exception("Warning: Exception in expunging vms vm3 and vm4 : 
%s" % e)
+        return

Reply via email to