CLOUDSTACK: Static IP address assignment for VM

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

Incorporated review comments for review request 23614
This commit is contained in:
sanjeev 2014-07-17 16:53:46 +05:30
parent c43b56998a
commit 0ac2eb4f67
1 changed files with 112 additions and 3 deletions

View File

@ -27,7 +27,7 @@ from marvin.lib.utils import checkVolumeSize
from marvin.codes import SUCCESS from marvin.codes import SUCCESS
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from time import sleep from time import sleep
from ctypes.wintypes import BOOLEAN # from ctypes.wintypes import BOOLEAN
class TestListInstances(cloudstackTestCase): class TestListInstances(cloudstackTestCase):
@ -84,7 +84,7 @@ class TestListInstances(cloudstackTestCase):
cls.api_client, cls.api_client,
account=cls.account.name, account=cls.account.name,
domainid=cls.domain.id, domainid=cls.domain.id,
max=-1, max= -1,
resourcetype=i resourcetype=i
) )
@ -1924,7 +1924,7 @@ class TestInstances(cloudstackTestCase):
cls.api_client, cls.api_client,
account=cls.account.name, account=cls.account.name,
domainid=cls.domain.id, domainid=cls.domain.id,
max=-1, max= -1,
resourcetype=i resourcetype=i
) )
cls._cleanup.append(cls.account) cls._cleanup.append(cls.account)
@ -3458,3 +3458,112 @@ class TestInstances(cloudstackTestCase):
"Security Groups in VM are not same as created" "Security Groups in VM are not same as created"
) )
return return
@attr(tags=["advanced", "selfservice"])
def test_24_deploy_vm_with_static_ip_ES1662(self):
"""
@Desc: Test to verify deploy VM with static ip address assignment
@Steps:
Step1: Create a network for the user
Step2: List the network and check that it is created for the user
Step3: Deploy vm with ip address in the above network
Step4: List the vm and verify the ip address in the response
"""
# 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"
vm_ip = "10.1.1.10"
"""
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"
)
# Deploying a VM
vm_created = VirtualMachine.create(
self.userapiclient,
self.services["virtual_machine"],
accountid=self.account.name,
domainid=self.account.domainid,
networkids=network.id,
ipaddress=vm_ip,
serviceofferingid=self.service_offering.id,
)
self.assertIsNotNone(
vm_created,
"VM creation failed"
)
# self.cleanup.append(vm_created)
self.cleanup.append(network)
# Listing all the VMs for a user again
vm_response = VirtualMachine.list(
self.userapiclient,
id=vm_created.id,
)
status = validateList(vm_response)
self.assertEquals(
PASS,
status[0],
"vm list returned invalid response"
)
# Verifying that the size of the list is 1
self.assertEquals(
1,
len(vm_response),
"VM list count is not matching"
)
# Verifying that the NIC's in VM created are same as provided
vm_nics = vm_created.nic
status = validateList(vm_nics)
self.assertEquals(
PASS,
status[0],
"vm list returned invalid response for vm nics"
)
# Verifying that the size of nics is 1
self.assertEquals(
1,
len(vm_nics),
"VM is created with more than one nic which is not expected"
)
"""
Verifying that NIC IP address is as expected
"""
self.assertEquals(
str(vm_nics[0].ipaddress),
vm_ip,
"VM is not created with static ip address used in vm deployment"
)
try:
vm_created.delete(self.apiClient, expunge=True)
except Exception as e:
raise Exception("Warning: Exception in expunging vm : %s" % e)
return