You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ap...@apache.org on 2014/05/26 07:15:24 UTC
git commit: updated refs/heads/4.4-forward to d9066f8
Repository: cloudstack
Updated Branches:
refs/heads/4.4-forward 6f3ff0682 -> d9066f8d2
CLOUDSTACK-6758: [Marvin] Detect failed job and throw exception
Signed-off-by: Abhinandan Prateek <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d9066f8d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d9066f8d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d9066f8d
Branch: refs/heads/4.4-forward
Commit: d9066f8d2931acc44ae66fc33f9eaa87b572de6a
Parents: 6f3ff06
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Fri May 23 04:29:18 2014 -0700
Committer: Abhinandan Prateek <ap...@apache.org>
Committed: Mon May 26 10:45:12 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_accounts.py | 19 +++++-------
.../component/test_add_remove_network.py | 15 ++++------
.../component/test_affinity_groups.py | 8 ++---
test/integration/component/test_assign_vm.py | 19 ++----------
.../component/test_ip_reservation.py | 20 +++++--------
.../component/test_non_contiguous_vlan.py | 12 ++++----
test/integration/component/test_projects.py | 21 ++++++-------
test/integration/component/test_volumes.py | 10 +++----
test/integration/component/test_vpc.py | 7 ++---
test/integration/component/test_vpc_network.py | 8 ++---
.../component/test_vpc_network_lbrules.py | 7 ++---
.../component/test_vpc_vms_deployment.py | 15 ++++------
test/integration/smoke/test_network.py | 13 ++++----
test/integration/smoke/test_nic.py | 31 ++++++++++----------
test/integration/smoke/test_primary_storage.py | 16 +++++-----
test/integration/smoke/test_volumes.py | 25 +++++++++-------
tools/marvin/marvin/cloudstackConnection.py | 17 ++++-------
tools/marvin/marvin/codes.py | 1 -
18 files changed, 105 insertions(+), 159 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_accounts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py
index 9b9ae75..f71dea5 100644
--- a/test/integration/component/test_accounts.py
+++ b/test/integration/component/test_accounts.py
@@ -18,6 +18,7 @@
"""
#Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase
+#from marvin.cloudstackAPI import *
from marvin.lib.utils import (random_gen,
cleanup_resources)
from marvin.lib.base import (Domain,
@@ -40,7 +41,7 @@ from marvin.lib.common import (get_domain,
get_builtin_template_info,
wait_for_cleanup)
from nose.plugins.attrib import attr
-from marvin.codes import ERROR_CODE_530
+from marvin.cloudstackException import CloudstackAPIException
import time
class Services:
@@ -1672,18 +1673,16 @@ class TestDomainForceRemove(cloudstackTestCase):
" to cleanup any remaining resouces")
# Sleep 3*account.gc to ensure that all resources are deleted
wait_for_cleanup(self.apiclient, ["account.cleanup.interval"]*3)
- response = Domain.list(
+ with self.assertRaises(CloudstackAPIException):
+ Domain.list(
self.apiclient,
id=domain.id,
listall=True
)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
self.debug("Checking if the resources in domain are deleted")
- with self.assertRaises(Exception):
- response = Account.list(
+ with self.assertRaises(CloudstackAPIException):
+ Account.list(
self.apiclient,
name=self.account_1.name,
domainid=self.account_1.domainid,
@@ -1833,8 +1832,6 @@ class TestDomainForceRemove(cloudstackTestCase):
)
self.debug("Deleting domain without force option")
- response = domain.delete(self.apiclient, cleanup=False)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ domain.delete(self.apiclient, cleanup=False)
return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_add_remove_network.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_add_remove_network.py b/test/integration/component/test_add_remove_network.py
index 969d94c..c17293d 100644
--- a/test/integration/component/test_add_remove_network.py
+++ b/test/integration/component/test_add_remove_network.py
@@ -58,7 +58,7 @@ from marvin.cloudstackAPI import (addNicToVirtualMachine,
removeNicFromVirtualMachine,
updateDefaultNicForVirtualMachine)
-from marvin.codes import PASS, ERROR_CODE_530
+from marvin.codes import PASS
import random
import time
@@ -466,10 +466,8 @@ class TestAddNetworkToVirtualMachine(cloudstackTestCase):
self.cleanup.append(vpc)
self.cleanup.append(vpc_off)
self.debug("Trying to add VPC to vm belonging to isolated network, this should fail")
- response = self.virtual_machine.add_nic(self.apiclient, vpc.id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ self.virtual_machine.add_nic(self.apiclient, vpc.id)
self.debug("Starting virtual machine")
self.virtual_machine.start(self.apiclient)
self.debug("Disabling vpc offering: %s" % vpc_off.id)
@@ -827,10 +825,9 @@ class TestRemoveNetworkFromVirtualMachine(cloudstackTestCase):
self.assertEqual(len(vm_list[0].nic), 1, "There should only be default nic present in the vm")
self.debug("Trying to remove the default nic of vm : %s, this should fail" %
self.virtual_machine.id)
- response = self.virtual_machine.remove_nic(self.apiclient, vm_list[0].nic[0].id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ self.virtual_machine.remove_nic(self.apiclient, vm_list[0].nic[0].id)
+ self.debug("Removing default nic of vm failed")
return
@attr(tags = ["advanced"])
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_affinity_groups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_affinity_groups.py b/test/integration/component/test_affinity_groups.py
index d31746a..d0fa2f7 100644
--- a/test/integration/component/test_affinity_groups.py
+++ b/test/integration/component/test_affinity_groups.py
@@ -29,7 +29,6 @@ from marvin.lib.common import (get_zone,
get_template,
list_virtual_machines,
wait_for_cleanup)
-from marvin.codes import ERROR_CODE_530
from nose.plugins.attrib import attr
class Services:
@@ -1087,10 +1086,9 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
vm1, hostid1 = self.create_vm_in_aff_grps([self.aff_grp[0].name], account_name=self.account.name, domain_id=self.domain.id)
aff_grps = [self.aff_grp[0], self.aff_grp[1]]
- response = vm1.update_affinity_group(self.api_client, affinitygroupnames=[])
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ vm1.update_affinity_group(self.api_client, affinitygroupnames=[])
+
vm1.delete(self.api_client)
#Wait for expunge interval to cleanup VM
wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_assign_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_assign_vm.py b/test/integration/component/test_assign_vm.py
index 0b07e9f..24b63a6 100644
--- a/test/integration/component/test_assign_vm.py
+++ b/test/integration/component/test_assign_vm.py
@@ -38,7 +38,6 @@ from marvin.lib.common import (get_domain,
list_snapshots,
list_virtual_machines)
from marvin.lib.utils import cleanup_resources
-from marvin.codes import ERROR_CODE_530
def log_test_exceptions(func):
def test_wrap_exception_log(self, *args, **kwargs):
@@ -370,14 +369,7 @@ class TestVMOwnership(cloudstackTestCase):
# 1. deploy VM in sub subdomain1
# 3. assignVirtualMachine to subdomain2
self.create_vm(self.sdomain_account_user1['account'], self.sdomain_account_user1['domain'],isRunning=True)
- response = self.virtual_machine.assign_virtual_machine(
- self.apiclient,
- self.sdomain_account_user2['account'].name,
- self.sdomain_account_user2['domain'].id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
- return
+ self.assertRaises(Exception, self.virtual_machine.assign_virtual_machine, self.apiclient, self.sdomain_account_user2['account'].name ,self.sdomain_account_user2['domain'].id)
@attr(tags = ["advanced"])
@log_test_exceptions
@@ -388,14 +380,7 @@ class TestVMOwnership(cloudstackTestCase):
# 1. deploy VM in sub subdomain1 with PF rule set.
# 3. assignVirtualMachine to subdomain2
self.create_vm(self.sdomain_account_user1['account'], self.sdomain_account_user1['domain'],pfrule=True)
- response = self.virtual_machine.assign_virtual_machine(
- self.apiclient,
- self.sdomain_account_user2['account'].name,
- self.sdomain_account_user2['domain'].id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
- return
+ self.assertRaises(Exception, self.virtual_machine.assign_virtual_machine, self.apiclient, self.sdomain_account_user2['account'].name ,self.sdomain_account_user2['domain'].id)
@attr(tags = ["advanced"])
@log_test_exceptions
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_ip_reservation.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_ip_reservation.py b/test/integration/component/test_ip_reservation.py
index eb193d1..8b91f37 100644
--- a/test/integration/component/test_ip_reservation.py
+++ b/test/integration/component/test_ip_reservation.py
@@ -38,7 +38,7 @@ from marvin.lib.common import (get_zone,
createNetworkRulesForVM,
verifyNetworkState)
from marvin.codes import (PASS, FAIL, FAILED, UNKNOWN, FAULT, MASTER,
- NAT_RULE, STATIC_NAT_RULE, ERROR_CODE_530)
+ NAT_RULE, STATIC_NAT_RULE)
import netaddr
import random
@@ -270,10 +270,8 @@ class TestIpReservation(cloudstackTestCase):
except Exception as e:
self.fail("VM creation failed: %s" % e)
- response = isolated_network.update(self.apiclient, guestvmcidr=guest_vm_cidr)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ isolated_network.update(self.apiclient, guestvmcidr=guest_vm_cidr)
return
@attr(tags=["advanced"])
@@ -302,10 +300,8 @@ class TestIpReservation(cloudstackTestCase):
except Exception as e:
self.fail("VM creation failed: %s" % e)
- response = isolated_network.update(self.apiclient, guestvmcidr=guest_vm_cidr)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ isolated_network.update(self.apiclient, guestvmcidr=guest_vm_cidr)
return
@data(NAT_RULE, STATIC_NAT_RULE)
@@ -1087,10 +1083,8 @@ class TestFailureScnarios(cloudstackTestCase):
else:
isolated_network = resultSet[1]
- response = isolated_network.update(self.apiclient, guestvmcidr="10.1.1.0/26")
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ response = isolated_network.update(self.apiclient, guestvmcidr="10.1.1.0/26")
return
@attr(tags=["advanced", "selfservice"])
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_non_contiguous_vlan.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_non_contiguous_vlan.py b/test/integration/component/test_non_contiguous_vlan.py
index 1f74252..4609af9 100644
--- a/test/integration/component/test_non_contiguous_vlan.py
+++ b/test/integration/component/test_non_contiguous_vlan.py
@@ -27,7 +27,7 @@
#Import local modules
-from marvin.cloudstackTestCase import (cloudstackTestCase)
+from marvin.cloudstackTestCase import (cloudstackTestCase,unittest)
from marvin.lib.base import (Account,
ServiceOffering,
PhysicalNetwork,
@@ -40,7 +40,6 @@ from marvin.lib.common import (get_zone,
setNonContiguousVlanIds)
from marvin.lib.utils import (cleanup_resources,
xsplit)
-from marvin.codes import ERROR_CODE_530
from nose.plugins.attrib import attr
@@ -318,11 +317,12 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
self.debug("Deployed instance in account: %s" % account.name)
self.debug("Trying to remove vlan range : %s , This should fail" % self.vlan["partial_range"][0])
- response = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = self.vlan["partial_range"][0])
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception) as e:
+ self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = self.vlan["partial_range"][0])
+
+ self.debug("operation failed with exception: %s" % e.exception)
account.delete(self.apiclient)
+
except Exception as e:
self.fail("Exception in test case: %s" % e)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_projects.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_projects.py b/test/integration/component/test_projects.py
index cf6cec8..c593fb6 100644
--- a/test/integration/component/test_projects.py
+++ b/test/integration/component/test_projects.py
@@ -17,13 +17,15 @@
""" P1 tests for Project
"""
#Import Local Modules
+import marvin
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import *
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
-from marvin.codes import ERROR_CODE_530
+from marvin.sshClient import SshClient
+import datetime
class Services:
@@ -428,14 +430,13 @@ class TestCrossDomainAccountAdd(cloudstackTestCase):
self.user.domainid,
project.id
))
- # Add user to the project from different domain
- response = project.addAccount(
+ with self.assertRaises(Exception):
+ # Add user to the project from different domain
+ project.addAccount(
self.apiclient,
self.user.name
)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ self.debug("User add to project failed!")
return
@@ -541,10 +542,10 @@ class TestDeleteAccountWithProject(cloudstackTestCase):
"Check project name from list response"
)
# Deleting account who is owner of the project
- response = self.account.delete(self.apiclient)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ self.account.delete(self.apiclient)
+ self.debug("Deleting account %s failed!" %
+ self.account.name)
return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py
index 4a91e5d..b5b08e2 100644
--- a/test/integration/component/test_volumes.py
+++ b/test/integration/component/test_volumes.py
@@ -36,7 +36,6 @@ from marvin.lib.common import (get_domain,
get_zone,
get_template,
get_pod)
-from marvin.codes import ERROR_CODE_530
#Import System modules
import time
@@ -342,17 +341,16 @@ class TestAttachVolume(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
- self.debug("Trying to Attach volume: %s to VM: %s" % (
+ # Attach volume to VM
+ with self.assertRaises(Exception):
+ self.debug("Trying to Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
))
- response = self.virtual_machine.attach_volume(
+ self.virtual_machine.attach_volume(
self.apiclient,
volume
)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
return
class TestAttachDetachVolume(cloudstackTestCase):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_vpc.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc.py b/test/integration/component/test_vpc.py
index 31b421c..e9d396e8 100644
--- a/test/integration/component/test_vpc.py
+++ b/test/integration/component/test_vpc.py
@@ -25,7 +25,6 @@ from marvin.cloudstackAPI import *
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
-from marvin.codes import ERROR_CODE_530
class Services:
@@ -700,10 +699,8 @@ class TestVPC(cloudstackTestCase):
self.debug("Created network with ID: %s" % network_2.id)
self.debug("Deleting the VPC with no network")
- response = vpc.delete(self.apiclient)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ vpc.delete(self.apiclient)
self.debug("Delete VPC failed as there are still networks in VPC")
self.debug("Deleting the networks in the VPC")
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_vpc_network.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_network.py b/test/integration/component/test_vpc_network.py
index 8d12ec6..a449948 100644
--- a/test/integration/component/test_vpc_network.py
+++ b/test/integration/component/test_vpc_network.py
@@ -44,7 +44,7 @@ from marvin.lib.common import (get_zone,
# For more info on ddt refer to http://ddt.readthedocs.org/en/latest/api.html#module-ddt
from ddt import ddt, data
import time
-from marvin.codes import PASS, ERROR_CODE_530
+from marvin.codes import PASS
class Services:
"""Test VPC network services
@@ -2107,14 +2107,12 @@ class TestVPCNetworkUpgrade(cloudstackTestCase):
self.fail("Failed to stop VMs, %s" % e)
self.debug("Upgrading network offering to support PF services")
- response = network_1.update(
+ with self.assertRaises(Exception):
+ network_1.update(
self.apiclient,
networkofferingid=nw_off_vr.id,
changecidr=True
)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
return
class TestVPCNetworkGc(cloudstackTestCase):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_vpc_network_lbrules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_network_lbrules.py b/test/integration/component/test_vpc_network_lbrules.py
index 47bdce5..a5625e7 100644
--- a/test/integration/component/test_vpc_network_lbrules.py
+++ b/test/integration/component/test_vpc_network_lbrules.py
@@ -39,7 +39,6 @@ from marvin.lib.common import (get_domain,
get_template,
list_routers)
from marvin.lib.utils import cleanup_resources
-from marvin.codes import ERROR_CODE_530
import socket
import time
@@ -641,10 +640,8 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
lb_rule = self.create_LB_Rule(public_ip_1, network_1, [vm_1, vm_2], self.services["lbrule_http"])
# In a VPC, the load balancing service is supported only on a single tier.
# http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.2/html/Installation_Guide/configure-vpc.html
- response = lb_rule.assign(self.apiclient, [vm_3])
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ lb_rule.assign(self.apiclient, [vm_3])
self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/component/test_vpc_vms_deployment.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_vms_deployment.py b/test/integration/component/test_vpc_vms_deployment.py
index 19aa448..1c1f93d 100644
--- a/test/integration/component/test_vpc_vms_deployment.py
+++ b/test/integration/component/test_vpc_vms_deployment.py
@@ -19,7 +19,7 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
-from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.lib.base import (VirtualMachine,
NetworkOffering,
VpcOffering,
@@ -43,7 +43,6 @@ from marvin.lib.common import (get_domain,
get_free_vlan)
from marvin.lib.utils import cleanup_resources
-from marvin.codes import ERROR_CODE_530
from marvin.cloudstackAPI import rebootRouter
@@ -1623,10 +1622,8 @@ class TestVMDeployVPC(cloudstackTestCase):
"Vm state should be running for each VM deployed"
)
self.debug("Trying to delete network: %s" % network_1.name)
- response = network_1.delete(self.apiclient)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ network_1.delete(self.apiclient)
self.debug("Delete netwpork failed as there are running instances")
self.debug("Destroying all the instances in network1: %s" %
@@ -2164,10 +2161,8 @@ class TestVMDeployVPC(cloudstackTestCase):
)
self.debug("Trying to delete network: %s" % network_1.name)
- response = network_1.delete(self.apiclient)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ with self.assertRaises(Exception):
+ network_1.delete(self.apiclient)
self.debug("Delete network failed as there are running instances")
self.debug("Destroying all the instances in network1: %s" %
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/smoke/test_network.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_network.py b/test/integration/smoke/test_network.py
index 7cd3973..f81e95f 100644
--- a/test/integration/smoke/test_network.py
+++ b/test/integration/smoke/test_network.py
@@ -27,7 +27,6 @@ from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from nose.plugins.attrib import attr
-from marvin.codes import ERROR_CODE_530
#Import System modules
import time
@@ -384,14 +383,12 @@ class TestPortForwarding(cloudstackTestCase):
try:
nat_rule.delete(self.apiclient)
+ list_nat_rule_response = list_nat_rules(
+ self.apiclient,
+ id=nat_rule.id
+ )
except CloudstackAPIException:
- self.fail("Nat Rule deletion failed: %s" % e)
-
- response = list_nat_rules(self.apiclient,
- id=nat_rule.id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ self.fail("Nat Rule Deletion or Listing Failed")
# Check if the Public SSH port is inaccessible
with self.assertRaises(Exception):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/smoke/test_nic.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_nic.py b/test/integration/smoke/test_nic.py
index a76e858..592a839 100644
--- a/test/integration/smoke/test_nic.py
+++ b/test/integration/smoke/test_nic.py
@@ -15,17 +15,14 @@
# specific language governing permissions and limitations
# under the License.
""" NIC tests for VM """
-from marvin.codes import ERROR_CODE_530
-from marvin.cloudstackTestCase import cloudstackTestCase
-from marvin.lib.base import(Account,
- ServiceOffering,
- Network,
- VirtualMachine,
- NetworkOffering)
-from marvin.lib.common import (get_zone,
- get_domain,
- get_template,
- list_virtual_machines)
+import marvin
+from marvin.codes import FAILED
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.sshClient import SshClient
+from marvin.lib.utils import *
+from marvin.lib.base import *
+from marvin.lib.common import *
from nose.plugins.attrib import attr
import signal
@@ -189,7 +186,7 @@ class TestNic(cloudstackTestCase):
existing_nic_id = vm_response.nic[0].id
# 1. add a nic
- self.virtual_machine.add_nic(self.apiclient, self.test_network2.id)
+ add_response = self.virtual_machine.add_nic(self.apiclient, self.test_network2.id)
time.sleep(5)
# now go get the vm list?
@@ -234,11 +231,13 @@ class TestNic(cloudstackTestCase):
"Verify second adapter is set to default"
)
- response = self.virtual_machine.remove_nic(self.apiclient, new_nic_id)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ sawException = False
+ try:
+ self.virtual_machine.remove_nic(self.apiclient, new_nic_id)
+ except Exception as ex:
+ sawException = True
+ self.assertEqual(sawException, True, "Make sure we cannot delete the default NIC")
self.virtual_machine.update_default_nic(self.apiclient, existing_nic_id)
time.sleep(5)
self.virtual_machine.remove_nic(self.apiclient, new_nic_id)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/smoke/test_primary_storage.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_primary_storage.py b/test/integration/smoke/test_primary_storage.py
index 5b24b64..3147d86 100644
--- a/test/integration/smoke/test_primary_storage.py
+++ b/test/integration/smoke/test_primary_storage.py
@@ -17,18 +17,16 @@
""" BVT tests for Primary Storage
"""
#Import Local Modules
-from marvin.cloudstackTestCase import cloudstackTestCase
-#from marvin.cloudstackAPI import *
-from marvin.lib.utils import cleanup_resources
-from marvin.lib.base import StoragePool
-from marvin.lib.common import (get_zone,
- get_pod,
- list_clusters,
- list_hosts,
- list_storage_pools)
+import marvin
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.lib.utils import *
+from marvin.lib.base import *
+from marvin.lib.common import *
from nose.plugins.attrib import attr
#Import System modules
+import time
_multiprocess_shared_ = True
class TestPrimaryStorageServices(cloudstackTestCase):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/test/integration/smoke/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_volumes.py b/test/integration/smoke/test_volumes.py
index 6d55f12..e938e20 100644
--- a/test/integration/smoke/test_volumes.py
+++ b/test/integration/smoke/test_volumes.py
@@ -18,9 +18,11 @@
"""
#Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase
+#from marvin.cloudstackException import *
from marvin.cloudstackAPI import (deleteVolume,
extractVolume,
resizeVolume)
+#from marvin.sshClient import SshClient
from marvin.lib.utils import (cleanup_resources,
format_volume_to_ext3)
from marvin.lib.base import (ServiceOffering,
@@ -33,7 +35,7 @@ from marvin.lib.common import (get_domain,
get_zone,
get_template)
from marvin.lib.utils import checkVolumeSize
-from marvin.codes import SUCCESS, FAILED, ERROR_CODE_530, XEN_SERVER
+from marvin.codes import SUCCESS, FAILED, XEN_SERVER
from nose.plugins.attrib import attr
#Import System modules
import os
@@ -386,11 +388,8 @@ class TestVolumes(cloudstackTestCase):
cmd.zoneid = self.services["zoneid"]
# A proper exception should be raised;
# downloading attach VM is not allowed
- response = self.apiClient.extractVolume(cmd)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
- return
+ with self.assertRaises(Exception):
+ self.apiClient.extractVolume(cmd)
@attr(tags = ["advanced", "advancedns", "smoke", "basic", "selfservice"])
def test_04_delete_attached_volume(self):
@@ -542,11 +541,15 @@ class TestVolumes(cloudstackTestCase):
cmd.id = rootvolume.id
cmd.diskofferingid = self.services['diskofferingid']
success = False
-
- response = self.apiClient.resizeVolume(cmd)
- self.assertEqual(response.errorcode, ERROR_CODE_530, "Job should \
- have failed with error code %s, instead got response \
- %s" % (ERROR_CODE_530, str(response)))
+ try:
+ self.apiClient.resizeVolume(cmd)
+ except Exception as ex:
+ if "Can only resize Data volumes" in str(ex):
+ success = True
+ self.assertEqual(
+ success,
+ True,
+ "ResizeVolume - verify root disks cannot be resized by disk offering id")
# Ok, now let's try and resize a volume that is not custom.
cmd.id = self.volume.id
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/tools/marvin/marvin/cloudstackConnection.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/cloudstackConnection.py b/tools/marvin/marvin/cloudstackConnection.py
index 8044da7..c49edf3 100644
--- a/tools/marvin/marvin/cloudstackConnection.py
+++ b/tools/marvin/marvin/cloudstackConnection.py
@@ -21,23 +21,14 @@ import base64
import hmac
import hashlib
import time
-from cloudstackAPI import *
+from cloudstackAPI import queryAsyncJobResult
import jsonHelper
from marvin.codes import (
FAILED,
- INVALID_RESPONSE,
- INVALID_INPUT,
JOB_FAILED,
- JOB_INPROGRESS,
JOB_CANCELLED,
JOB_SUCCEEDED
)
-from requests import (
- ConnectionError,
- HTTPError,
- Timeout,
- RequestException
-)
from marvin.cloudstackException import (
InvalidParameterException,
GetDetailExceptionInfo)
@@ -106,10 +97,12 @@ class CSConnection(object):
marvinRequest(cmd, response_type=response_cmd)
if async_response != FAILED:
job_status = async_response.jobstatus
- if job_status in [JOB_FAILED,
- JOB_CANCELLED,
+ if job_status in [JOB_CANCELLED,
JOB_SUCCEEDED]:
break
+ elif job_status == JOB_FAILED:
+ raise Exception("Job failed: %s"\
+ % async_response)
time.sleep(5)
timeout -= 5
self.logger.debug("=== JobId:%s is Still Processing, "
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9066f8d/tools/marvin/marvin/codes.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/codes.py b/tools/marvin/marvin/codes.py
index c72a6bd..ef49c0c 100644
--- a/tools/marvin/marvin/codes.py
+++ b/tools/marvin/marvin/codes.py
@@ -60,7 +60,6 @@ JOB_INPROGRESS = 0
JOB_SUCCEEDED = 1
JOB_FAILED = 2
JOB_CANCELLED = 3
-ERROR_CODE_530 = 530
'''
User Related Codes
'''