You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by wi...@apache.org on 2013/04/03 12:33:45 UTC
[37/50] [abbrv] git commit: updated refs/heads/kvm-vnc-listen to
3890860
simulator+marvin: include a router test
Added a test that will ensure the advanced router comes up in the
account belonging to the deployed VM. It should come up with the
publicip, guestip and linklocalip.
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d4dc2649
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d4dc2649
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d4dc2649
Branch: refs/heads/kvm-vnc-listen
Commit: d4dc2649173f17d230b1d4332b3e0d9466fb3f20
Parents: 9c755e1
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Mon Mar 25 18:36:37 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Tue Apr 2 18:31:30 2013 +0530
----------------------------------------------------------------------
test/integration/smoke/test_vm_life_cycle.py | 137 ++++++++++++---------
tools/marvin/pom.xml | 22 ----
2 files changed, 79 insertions(+), 80 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d4dc2649/test/integration/smoke/test_vm_life_cycle.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_vm_life_cycle.py b/test/integration/smoke/test_vm_life_cycle.py
index 143fea7..d9571f6 100644
--- a/test/integration/smoke/test_vm_life_cycle.py
+++ b/test/integration/smoke/test_vm_life_cycle.py
@@ -129,72 +129,79 @@ class Services:
class TestDeployVM(cloudstackTestCase):
- def setUp(self):
-
- self.apiclient = self.testClient.getApiClient()
- self.dbclient = self.testClient.getDbConnection()
- self.services = Services().services
+ @classmethod
+ def setUpClass(cls):
+ cls.services = Services().services
+ cls.apiclient = super(TestDeployVM, cls).getClsTestClient().getApiClient()
# Get Zone, Domain and templates
- domain = get_domain(self.apiclient, self.services)
- zone = get_zone(self.apiclient, self.services)
- self.services['mode'] = zone.networktype
+ domain = get_domain(cls.apiclient, cls.services)
+ zone = get_zone(cls.apiclient, cls.services)
+ cls.services['mode'] = zone.networktype
- #if local storage is enabled, alter the offerings to use localstorage
+ #If local storage is enabled, alter the offerings to use localstorage
#this step is needed for devcloud
if zone.localstorageenabled == True:
- self.services["service_offerings"]["tiny"]["storagetype"] = 'local'
- self.services["service_offerings"]["small"]["storagetype"] = 'local'
- self.services["service_offerings"]["medium"]["storagetype"] = 'local'
+ cls.services["service_offerings"]["tiny"]["storagetype"] = 'local'
+ cls.services["service_offerings"]["small"]["storagetype"] = 'local'
+ cls.services["service_offerings"]["medium"]["storagetype"] = 'local'
template = get_template(
- self.apiclient,
- zone.id,
- self.services["ostype"]
- )
+ cls.apiclient,
+ zone.id,
+ cls.services["ostype"]
+ )
# Set Zones and disk offerings
- self.services["small"]["zoneid"] = zone.id
- self.services["small"]["template"] = template.id
+ cls.services["small"]["zoneid"] = zone.id
+ cls.services["small"]["template"] = template.id
- self.services["medium"]["zoneid"] = zone.id
- self.services["medium"]["template"] = template.id
- self.services["iso"]["zoneid"] = zone.id
+ cls.services["medium"]["zoneid"] = zone.id
+ cls.services["medium"]["template"] = template.id
+ cls.services["iso"]["zoneid"] = zone.id
- # Create Account, VMs, NAT Rules etc
- self.account = Account.create(
- self.apiclient,
- self.services["account"],
- domainid=domain.id
- )
+ cls.account = Account.create(
+ cls.apiclient,
+ cls.services["account"],
+ domainid=domain.id
+ )
+
+ cls.service_offering = ServiceOffering.create(
+ cls.apiclient,
+ cls.services["service_offerings"]["tiny"]
+ )
+
+ cls.virtual_machine = VirtualMachine.create(
+ cls.apiclient,
+ cls.services["small"],
+ accountid=cls.account.account.name,
+ domainid=cls.account.account.domainid,
+ serviceofferingid=cls.service_offering.id,
+ mode=cls.services['mode']
+ )
+
+ cls.cleanup = [
+ cls.service_offering,
+ cls.account
+ ]
+
+ @classmethod
+ def tearDownClass(cls):
+ try:
+ cleanup_resources(cls.apiclient, cls.cleanup)
+ except Exception as e:
+ cls.debug("Warning! Exception in tearDown: %s" % e)
+
+ def setUp(self):
+ self.apiclient = self.testClient.getApiClient()
+ self.dbclient = self.testClient.getDbConnection()
- self.service_offering = ServiceOffering.create(
- self.apiclient,
- self.services["service_offerings"]["tiny"]
- )
- # Cleanup
- self.cleanup = [
- self.service_offering,
- self.account
- ]
@attr(tags = ["simulator", "devcloud", "advanced", "advancedns", "smoke", "basic", "sg"])
def test_deploy_vm(self):
"""Test Deploy Virtual Machine
"""
-
# Validate the following:
# 1. Virtual Machine is accessible via SSH
# 2. listVirtualMachines returns accurate information
- # 3. The Cloud Database contains the valid information
-
- self.virtual_machine = VirtualMachine.create(
- self.apiclient,
- self.services["small"],
- accountid=self.account.account.name,
- domainid=self.account.account.domainid,
- serviceofferingid=self.service_offering.id,
- mode=self.services['mode']
- )
-
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.virtual_machine.id
@@ -204,46 +211,60 @@ class TestDeployVM(cloudstackTestCase):
"Verify listVirtualMachines response for virtual machine: %s" \
% self.virtual_machine.id
)
-
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
-
self.assertNotEqual(
len(list_vm_response),
0,
"Check VM available in List Virtual Machines"
)
vm_response = list_vm_response[0]
-
self.assertEqual(
vm_response.id,
self.virtual_machine.id,
"Check virtual machine id in listVirtualMachines"
)
-
self.assertEqual(
vm_response.name,
self.virtual_machine.name,
"Check virtual machine name in listVirtualMachines"
)
-
self.assertEqual(
vm_response.state,
'Running',
msg="VM is not in Running state"
)
-
return
+
+ @attr(tags = ["simulator", "advanced"])
+ def test_advZoneVirtualRouter(self):
+ """
+ Test advanced zone virtual router
+ 1. Is Running
+ 2. is in the account the VM was deployed in
+ 3. Has a linklocalip, publicip and a guestip
+ @return:
+ """
+ routers = list_routers(self.apiclient, account=self.account.account.name)
+ self.assertTrue(len(routers) > 0, msg = "No virtual router found")
+ router = routers[0]
+
+ self.assertEqual(router.state, 'Running', msg="Router is not in running state")
+ self.assertEqual(router.account, self.account.account.name, msg="Router does not belong to the account")
+
+ #Has linklocal, public and guest ips
+ self.assertIsNotNone(router.linklocalip, msg="Router has no linklocal ip")
+ self.assertIsNotNone(router.publicip, msg="Router has no public ip")
+ self.assertIsNotNone(router.guestipaddress, msg="Router has no guest ip")
+
def tearDown(self):
- try:
- cleanup_resources(self.apiclient, self.cleanup)
- except Exception as e:
- self.debug("Warning! Exception in tearDown: %s" % e)
+ pass
+
class TestVMLifeCycle(cloudstackTestCase):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d4dc2649/tools/marvin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index ff5176f..4f012ee 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -140,28 +140,6 @@
</arguments>
</configuration>
</execution>
- <!--execution>
- <id>pre-integration-test</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <workingDirectory>${basedir}/marvin</workingDirectory>
- <executable>python</executable>
- <arguments>
- <argument>deployAndRun.py</argument>
- <argument>-c</argument>
- <argument>${user.dir}/${marvin.config}</argument>
- <argument>-t</argument>
- <argument>/tmp/t.log</argument>
- <argument>-r</argument>
- <argument>/tmp/r.log</argument>
- <argument>-f</argument>
- <argument>${basedir}/marvin/testSetupSuccess.py</argument>
- </arguments>
- </configuration>
- </execution-->
</executions>
</plugin>
</plugins>