From 475fc38481d55a846150937c126b91d1b0879bcb Mon Sep 17 00:00:00 2001 From: Bharat Kumar Date: Wed, 7 Oct 2015 16:35:28 +0530 Subject: [PATCH 1/2] CLOUDSTACK-9016 Fail to create VM instance within VPC --- server/src/com/cloud/network/IpAddressManagerImpl.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server/src/com/cloud/network/IpAddressManagerImpl.java b/server/src/com/cloud/network/IpAddressManagerImpl.java index 28df9712553..a78b85f9dbf 100644 --- a/server/src/com/cloud/network/IpAddressManagerImpl.java +++ b/server/src/com/cloud/network/IpAddressManagerImpl.java @@ -1684,11 +1684,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage return requestedIp; } - String result; - do { - result = NetUtils.long2Ip(array[_rand.nextInt(array.length)]); - } while (result.split("\\.")[3].equals("1")); - return result; + return NetUtils.long2Ip(array[_rand.nextInt(array.length)]); } Random _rand = new Random(System.currentTimeMillis()); From 7d1dc04a436e4ad9c7dd72d2382c0c0ea8006df7 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Fri, 30 Oct 2015 19:14:06 +0530 Subject: [PATCH 2/2] CLOUDSTACK-9016: Deploy vm with gateway ip address in VPC Signed-off-by: sanjeev --- test/integration/component/test_vpc.py | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/test/integration/component/test_vpc.py b/test/integration/component/test_vpc.py index bae89c5c7dd..f81f53f5d29 100644 --- a/test/integration/component/test_vpc.py +++ b/test/integration/component/test_vpc.py @@ -2432,3 +2432,61 @@ class TestVPC(cloudstackTestCase): self.assertEqual(vpc_networks[0].displaytext, new_display_text, "Updation of VPC display text failed.") + + @attr(tags=["advanced", "intervlan"], required_hardware="false") + def test_21_deploy_vm_with_gateway_ip(self): + self.services["vpc"]["cidr"] = "192.168.1.0/24" + self.debug("creating a VPC network in the account: %s" % + self.account.name) + vpc = VPC.create( + self.apiclient, + self.services["vpc"], + vpcofferingid=self.vpc_off.id, + zoneid=self.zone.id, + account=self.account.name, + domainid=self.account.domainid + ) + self.validate_vpc_network(vpc) + self.network_offering = NetworkOffering.create( + self.apiclient, + self.services["network_offering"], + conservemode=False + ) + # Enable Network offering + self.network_offering.update(self.apiclient, state='Enabled') + self.cleanup.append(self.network_offering) + #Instead of first ip, assigning last ip in the CIDR as the gateway ip + gateway = "192.168.1.2" + self.services["network"]["netmask"] = "255.255.255.252" + # Split the cidr to retrieve gateway + # for eg. cidr = 10.0.0.1/24 + # Gateway = 10.0.0.1 + + # Creating network using the network offering created + self.debug("Creating network with network offering: %s" % + self.network_offering.id) + network = Network.create( + self.apiclient, + self.services["network"], + accountid=self.account.name, + domainid=self.account.domainid, + networkofferingid=self.network_offering.id, + zoneid=self.zone.id, + gateway=gateway, + vpcid=vpc.id + ) + self.debug("Created network with ID: %s" % network.id) + vm = VirtualMachine.create( + self.apiclient, + self.services["virtual_machine"], + accountid=self.account.name, + domainid=self.account.domainid, + serviceofferingid=self.service_offering.id, + networkids=[str(network.id)] + ) + self.debug("Deployed VM in network: %s" % network.id) + self.assertIsNotNone( + vm, + "Failed to create VM with first ip address in the CIDR as the vm ip" + ) + return