You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sa...@apache.org on 2014/07/23 14:58:41 UTC
git commit: updated refs/heads/master to 9f4f921
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 <sa...@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 <sa...@apache.org>
Authored: Tue Jul 22 17:15:11 2014 +0530
Committer: sanjeev <sa...@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