cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gir...@apache.org
Subject [3/3] git commit: updated refs/heads/master to 598e9b1
Date Mon, 25 Aug 2014 03:46:49 GMT
CLOUDSTACK-7413: Adding required_hardware tag to regression test cases so that the test cases are picked up by simulator accordingly


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/598e9b1c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/598e9b1c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/598e9b1c

Branch: refs/heads/master
Commit: 598e9b1cbcd3eaadee030ae4ad594ec22a16a74f
Parents: 2995c7f
Author: Girish Shilamkar <girish@clogeny.com>
Authored: Mon Aug 25 09:01:38 2014 +0530
Committer: Girish Shilamkar <girish@clogeny.com>
Committed: Mon Aug 25 09:14:22 2014 +0530

----------------------------------------------------------------------
 test/integration/component/test_accounts.py     | 16 ++--
 .../component/test_affinity_groups.py           | 80 ++++++++++----------
 .../component/test_allocation_states.py         | 12 +--
 .../component/test_base_image_updation.py       |  8 +-
 test/integration/component/test_blocker_bugs.py | 14 ++--
 .../component/test_cpu_domain_limits.py         | 10 +--
 test/integration/component/test_cpu_limits.py   | 14 ++--
 .../component/test_cpu_max_limits.py            |  8 +-
 .../component/test_cpu_project_limits.py        |  6 +-
 .../component/test_custom_hostname.py           | 14 ++--
 .../component/test_deploy_vm_userdata_reg.py    |  2 +-
 .../component/test_egress_fw_rules.py           | 44 +++++------
 .../component/test_escalations_instances.py     | 50 ++++++------
 .../component/test_escalations_ipaddresses.py   | 38 +++++-----
 .../component/test_escalations_isos.py          |  8 +-
 .../component/test_escalations_networks.py      | 42 +++++-----
 .../test_escalations_securitygroups.py          |  6 +-
 .../component/test_escalations_snapshots.py     |  8 +-
 .../component/test_escalations_templates.py     |  8 +-
 .../component/test_escalations_volumes.py       | 24 +++---
 .../test_escalations_vpncustomergateways.py     |  4 +-
 .../component/test_explicit_dedication.py       |  2 +-
 test/integration/component/test_haproxy.py      | 10 +--
 .../component/test_implicit_planner.py          |  2 +-
 .../component/test_ip_reservation.py            |  8 +-
 test/integration/component/test_ldap.py         |  2 +-
 .../integration/component/test_memory_limits.py | 14 ++--
 .../component/test_mm_domain_limits.py          | 10 +--
 .../integration/component/test_mm_max_limits.py |  8 +-
 .../component/test_mm_project_limits.py         |  6 +-
 .../component/test_netscaler_configs.py         |  8 +-
 .../component/test_netscaler_nw_off.py          |  4 +-
 .../component/test_network_offering.py          | 14 ++--
 .../component/test_persistent_networks.py       |  4 +-
 test/integration/component/test_portable_ip.py  | 36 ++++-----
 .../component/test_project_configs.py           |  6 +-
 .../component/test_project_limits.py            | 14 ++--
 .../component/test_project_resources.py         | 14 ++--
 .../integration/component/test_project_usage.py | 18 ++---
 test/integration/component/test_projects.py     | 20 ++---
 .../component/test_ps_domain_limits.py          | 10 +--
 test/integration/component/test_ps_limits.py    | 12 +--
 .../component/test_ps_project_limits.py         |  6 +-
 .../component/test_ps_resize_volume.py          |  6 +-
 .../component/test_recurring_snapshots.py       |  4 +-
 .../component/test_redundant_router_cleanups.py |  6 +-
 .../component/test_redundant_router_services.py |  2 +-
 .../component/test_redundant_router_upgrades.py |  4 +-
 test/integration/component/test_regions.py      |  6 +-
 .../component/test_regions_accounts.py          |  6 +-
 .../component/test_resource_limits.py           | 20 ++---
 test/integration/component/test_routers.py      | 12 +--
 .../component/test_shared_networks.py           | 26 +++----
 test/integration/component/test_snapshot_gc.py  |  2 +-
 .../component/test_snapshot_limits.py           |  2 +-
 test/integration/component/test_snapshots.py    | 14 ++--
 .../component/test_snapshots_improvement.py     |  2 +-
 test/integration/component/test_stopped_vm.py   | 32 ++++----
 .../component/test_storage_motion.py            |  4 +-
 test/integration/component/test_tags.py         | 40 +++++-----
 test/integration/component/test_templates.py    |  8 +-
 test/integration/component/test_update_vm.py    |  2 +-
 test/integration/component/test_usage.py        | 18 ++---
 test/integration/component/test_vmware_drs.py   |  6 +-
 test/integration/component/test_volumes.py      |  8 +-
 test/integration/component/test_vpc.py          | 40 +++++-----
 test/integration/component/test_vpc_network.py  | 16 ++--
 .../component/test_vpc_network_lbrules.py       | 30 ++++----
 .../component/test_vpc_network_pfrules.py       | 20 ++---
 .../component/test_vpc_network_staticnatrule.py | 12 +--
 .../integration/component/test_vpc_offerings.py | 16 ++--
 test/integration/component/test_vpc_routers.py  | 18 ++---
 .../component/test_vpc_vms_deployment.py        | 16 ++--
 test/integration/component/test_vpn_users.py    | 12 +--
 74 files changed, 527 insertions(+), 527 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_accounts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py
index a60a5be..254f1ce 100644
--- a/test/integration/component/test_accounts.py
+++ b/test/integration/component/test_accounts.py
@@ -164,7 +164,7 @@ class TestAccounts(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_create_account(self):
         """Test Create Account and user for that account
         """
@@ -300,7 +300,7 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_user_remove_VM_running(self):
         """Test Remove one user from the account
         """
@@ -452,7 +452,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_non_root_admin_Privileges(self):
         """Test to verify Non Root admin previleges"""
 
@@ -574,7 +574,7 @@ class TestServiceOfferingSiblings(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_service_offering_siblings(self):
         """Test to verify service offerings at same level in hierarchy"""
 
@@ -692,7 +692,7 @@ class TestServiceOfferingHierarchy(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_service_offering_hierarchy(self):
         """Test to verify service offerings at same level in hierarchy"""
 
@@ -981,7 +981,7 @@ class TestAddVmToSubDomain(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg", "selfservice"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="false")
     def test_01_add_vm_to_subdomain(self):
         """ Test Sub domain allowed to launch VM  when a Domain level zone is created"""
 
@@ -1525,7 +1525,7 @@ class TestDomainForceRemove(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["domains", "advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["domains", "advanced", "advancedns", "simulator"], required_hardware="false")
     def test_forceDeleteDomain(self):
         """ Test delete domain with force option"""
 
@@ -1695,7 +1695,7 @@ class TestDomainForceRemove(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["domains", "advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["domains", "advanced", "advancedns", "simulator"], required_hardware="false")
     def test_DeleteDomain(self):
         """ Test delete domain without force option"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/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 9a53c4c..b071e04 100644
--- a/test/integration/component/test_affinity_groups.py
+++ b/test/integration/component/test_affinity_groups.py
@@ -176,7 +176,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         except Exception as e:
             raise Exception("Error: Creation of Affinity Group failed : %s" %e)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_01_admin_create_aff_grp(self):
         """
         Test create affinity group as admin
@@ -191,7 +191,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         self.assert_(list_aff_grps[0].id == aff_grp.id)
         self.cleanup.append(aff_grp)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_02_doadmin_create_aff_grp(self):
         """
         Test create affinity group as domain admin
@@ -211,7 +211,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         aff_grp.delete(domainapiclient)
 
     #@attr(tags=["simulator", "basic", "advanced"])
-    @attr(tags=["vogxn", "simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["vogxn", "simulator", "basic", "advanced"], required_hardware="false")
     def test_03_user_create_aff_grp(self):
         """
         Test create affinity group as user
@@ -228,7 +228,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         aff_grp.delete(userapiclient)
 
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_04_user_create_aff_grp_existing_name(self):
         """
         Test create affinity group that exists (same name)
@@ -249,7 +249,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         self.debug("Deleted Affinity Group: %s" %aff_grp.name)
         aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_05_create_aff_grp_same_name_diff_acc(self):
         """
         Test create affinity group with existing name but within different account
@@ -271,7 +271,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
         self.debug("Deleted Affinity Group: %s" %aff_grp.name)
         aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_06_create_aff_grp_nonexisting_type(self):
         """
         Test create affinity group of non-existing type
@@ -397,7 +397,7 @@ class TestListAffinityGroups(cloudstackTestCase):
                          msg="VM is not in Running state")
         return vm, vm_response.hostid
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_01_list_aff_grps_for_vm(self):
         """
            List affinity group for a vm
@@ -419,7 +419,7 @@ class TestListAffinityGroups(cloudstackTestCase):
 
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_02_list_multiple_aff_grps_for_vm(self):
         """
            List multiple affinity groups associated with a vm
@@ -448,7 +448,7 @@ class TestListAffinityGroups(cloudstackTestCase):
         aff_grp_01.delete(self.api_client)
         aff_grp_02.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_03_list_aff_grps_by_id(self):
         """
            List affinity groups by id
@@ -463,7 +463,7 @@ class TestListAffinityGroups(cloudstackTestCase):
 
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_04_list_aff_grps_by_name(self):
         """
             List Affinity Groups by name
@@ -477,7 +477,7 @@ class TestListAffinityGroups(cloudstackTestCase):
 
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_05_list_aff_grps_by_non_existing_id(self):
         """
             List Affinity Groups by non-existing id
@@ -491,7 +491,7 @@ class TestListAffinityGroups(cloudstackTestCase):
 
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_06_list_aff_grps_by_non_existing_name(self):
         """
             List Affinity Groups by non-existing name
@@ -505,7 +505,7 @@ class TestListAffinityGroups(cloudstackTestCase):
 
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_07_list_all_vms_in_aff_grp(self):
         """
            List affinity group should list all for a vms associated with that group
@@ -649,7 +649,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         [setattr(cmd, k, v) for k, v in kwargs.items()]
         return apiclient.deleteAffinityGroup(cmd)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_01_delete_aff_grp_by_name(self):
         """
             Delete Affinity Group by name
@@ -660,7 +660,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         self.delete_aff_group(self.api_client, name=aff_0.name)
         self.assert_(AffinityGroup.list(self.api_client, name=aff_0.name) is None)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_02_delete_aff_grp_for_acc(self):
         """
             Delete Affinity Group as admin for an account
@@ -676,7 +676,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
             self.create_vm_in_aff_grps([aff_0.name], account_name=self.account.name, domain_id=self.domain.id)
         aff_1.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_03_delete_aff_grp_with_vms(self):
         """
             Delete Affinity Group which has vms in it
@@ -694,7 +694,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
         aff_1.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_05_delete_aff_grp_id(self):
         """
             Delete Affinity Group with id which does not belong to this user
@@ -730,7 +730,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         aff_0.delete(self.api_client)
         aff_1.delete(userapiclient)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_06_delete_aff_grp_name(self):
         """
             Delete Affinity Group by name which does not belong to this user
@@ -766,7 +766,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         aff_0.delete(self.api_client)
         aff_1.delete(userapiclient)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_08_delete_aff_grp_by_id(self):
         """
             Delete Affinity Group by id.
@@ -778,7 +778,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
         aff_grp_1.delete(self.api_client)
         aff_grp_2.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_09_delete_aff_grp_root_admin(self):
         """
             Root admin should be able to delete affinity group of other users
@@ -917,7 +917,7 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 
         return vm, vm_response.hostid
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_01_update_aff_grp_by_ids(self):
         """
             Update the list of affinityGroups by using affinity groupids
@@ -965,7 +965,7 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
         for aff_grp in self.aff_grp:
             aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_02_update_aff_grp_by_names(self):
         """
             Update the list of affinityGroups by using affinity groupnames
@@ -1008,7 +1008,7 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
         for aff_grp in self.aff_grp:
             aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_03_update_aff_grp_for_vm_with_no_aff_grp(self):
         """
             Update the list of affinityGroups for vm which is not associated
@@ -1067,7 +1067,7 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
         for aff_grp in aff_grps:
             aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_05_update_aff_grp_on_running_vm(self):
         """
             Update the list of Affinity Groups on running vm
@@ -1203,7 +1203,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 
         return vm, vm_response.hostid
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_01_deploy_vm_without_aff_grp(self):
         """
             Deploy VM without affinity group
@@ -1214,7 +1214,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         #Wait for expunge interval to cleanup VM
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_02_deploy_vm_by_aff_grp_name(self):
         """
             Deploy VM by aff grp name
@@ -1226,7 +1226,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_03_deploy_vm_by_aff_grp_id(self):
         """
             Deploy VM by aff grp id
@@ -1242,7 +1242,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_04_deploy_vm_anti_affinity_group(self):
         """
         test DeployVM in anti-affinity groups
@@ -1263,7 +1263,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_05_deploy_vm_by_id(self):
         """
             Deploy vms by affinity group id
@@ -1285,7 +1285,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
         self.aff_grp[0].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_06_deploy_vm_aff_grp_of_other_user_by_name(self):
         """
             Deploy vm in affinity group of another user by name
@@ -1318,7 +1318,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         self.aff_grp[0].delete(self.api_client)
         self.aff_grp[1].delete(userapiclient)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_07_deploy_vm_aff_grp_of_other_user_by_id(self):
         """
             Deploy vm in affinity group of another user by id
@@ -1354,7 +1354,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         self.aff_grp[0].delete(self.api_client)
         self.aff_grp[1].delete(userapiclient)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_08_deploy_vm_multiple_aff_grps(self):
         """
             Deploy vm in multiple affinity groups
@@ -1383,7 +1383,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         self.aff_grp[0].delete(self.api_client)
         self.aff_grp[1].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_09_deploy_vm_multiple_aff_grps(self):
         """
             Deploy multiple vms in multiple affinity groups
@@ -1418,7 +1418,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
         self.aff_grp[0].delete(self.api_client)
         self.aff_grp[1].delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_10_deploy_vm_by_aff_grp_name_and_id(self):
         """
             Deploy VM by aff grp name and id
@@ -1547,7 +1547,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 
         return vm, vm_response.hostid
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_01_deploy_vm_another_user(self):
         """
             Deploy vm as Admin in Affinity Group belonging to regular user (should fail)
@@ -1585,7 +1585,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
         aff_grp.delete(self.apiclient)
 
 
-    @attr(tags=["simulator", "basic", "advanced", "multihost", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
     def test_03_list_aff_grp_all_users(self):
         """
             List Affinity Groups as admin for all the users
@@ -1608,7 +1608,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
                          "Groups of users")
         aff_grp.delete(userapiclient)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_04_list_all_admin_aff_grp(self):
         """
             List Affinity Groups belonging to admin user
@@ -1635,7 +1635,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
         aff_grp1.delete(self.api_client)
         aff_grp2.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_05_list_all_users_aff_grp(self):
         """
             List Affinity Groups belonging to regular user passing account id and domain id
@@ -1671,7 +1671,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
         aff_grp1.delete(self.api_client)
         aff_grp2.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_06_list_all_users_aff_grp_by_id(self):
         """
             List Affinity Groups belonging to regular user passing group id
@@ -1703,7 +1703,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 
         aff_grp.delete(self.api_client)
 
-    @attr(tags=["simulator", "basic", "advanced", "selfservice"])
+    @attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
     def test_07_delete_aff_grp_of_other_user(self):
         """
             Delete Affinity Group belonging to regular user

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_allocation_states.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_allocation_states.py b/test/integration/component/test_allocation_states.py
index 9ba246f..6aad63d 100644
--- a/test/integration/component/test_allocation_states.py
+++ b/test/integration/component/test_allocation_states.py
@@ -129,7 +129,7 @@ class TestAllocationState(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_01_zones(self):
         """Check the status of zones"""
 
@@ -155,7 +155,7 @@ class TestAllocationState(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_02_pods(self):
         """Check the status of pods"""
 
@@ -181,7 +181,7 @@ class TestAllocationState(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_03_clusters(self):
         """Check the status of clusters"""
 
@@ -207,7 +207,7 @@ class TestAllocationState(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_04_hosts(self):
         """Check the status of hosts"""
 
@@ -234,7 +234,7 @@ class TestAllocationState(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_05_storage_pools(self):
         """Check the status of Storage pools"""
 
@@ -260,7 +260,7 @@ class TestAllocationState(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator"], required_hardware="false")
     def test_06_secondary_storage(self):
         """Check the status of secondary storage"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_base_image_updation.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_base_image_updation.py b/test/integration/component/test_base_image_updation.py
index 081d855..8288f2c 100644
--- a/test/integration/component/test_base_image_updation.py
+++ b/test/integration/component/test_base_image_updation.py
@@ -293,7 +293,7 @@ class TestBaseImageUpdate(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_01_deploy_instance_with_is_volatile_offering(self):
         """ Test deploy an instance with service offerings with IsVolatile set.
         """
@@ -324,7 +324,7 @@ class TestBaseImageUpdate(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_02_reboot_instance_with_is_volatile_offering(self):
         """ Test rebooting instances created with isVolatile service offerings
         """
@@ -402,7 +402,7 @@ class TestBaseImageUpdate(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_03_restore_vm_with_new_template(self):
         """ Test restoring a vm with different template than the one it was created with
         """
@@ -518,7 +518,7 @@ class TestBaseImageUpdate(cloudstackTestCase):
                                 )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_04_reoccuring_snapshot_rules(self):
         """
         1) Create a VM using the Service offering IsVolatile enabled

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_blocker_bugs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_blocker_bugs.py b/test/integration/component/test_blocker_bugs.py
index f0b03c0..f9530f0 100644
--- a/test/integration/component/test_blocker_bugs.py
+++ b/test/integration/component/test_blocker_bugs.py
@@ -165,7 +165,7 @@ class TestTemplate(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg"], required_hardware="true")
     def test_01_create_template(self):
         """TS_BUG_002-Test to create and deploy VM using password enabled template
         """
@@ -327,7 +327,7 @@ class TestNATRules(cloudstackTestCase):
         except Exception as e:
             raise Exception("Warning: Exception during cleanup : %s" % e)
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_01_firewall_rules_port_fw(self):
         """"Checking firewall rules deletion after static NAT disable"""
 
@@ -536,7 +536,7 @@ class TestRouters(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_01_list_routers_admin(self):
         """TS_BUG_007-Check listRouters() using Admin User
         """
@@ -653,7 +653,7 @@ class TestRouterRestart(cloudstackTestCase):
         # No need
         return
 
-    @attr(tags=["advanced", "advancedns", "eip", "selfservice"])
+    @attr(tags=["advanced", "advancedns", "eip"], required_hardware="false")
     def test_01_restart_network_cleanup(self):
         """TS_BUG_008-Test restart network
         """
@@ -815,7 +815,7 @@ class TestTemplates(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip"], required_hardware="true")
     def test_01_check_template_size(self):
         """TS_BUG_009-Test the size of template created from root disk
         """
@@ -843,7 +843,7 @@ class TestTemplates(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip"], required_hardware="true")
     def test_02_check_size_snapshotTemplate(self):
         """TS_BUG_010-Test check size of snapshot and template
         """
@@ -907,7 +907,7 @@ class TestTemplates(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg", "eip"], required_hardware="true")
     def test_03_reuse_template_name(self):
         """TS_BUG_011-Test Reusing deleted template name
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_cpu_domain_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_cpu_domain_limits.py b/test/integration/component/test_cpu_domain_limits.py
index 6cca7c8..62ef12c 100644
--- a/test/integration/component/test_cpu_domain_limits.py
+++ b/test/integration/component/test_cpu_domain_limits.py
@@ -218,7 +218,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
         )
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_multiple_core_vm_start_stop_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 
@@ -291,7 +291,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
                 "Resource count should be same as before, after starting the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "provisioning"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="true")
     def test_02_multiple_core_vm_migrate_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 
@@ -352,7 +352,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
                 "Resource count should be same as before, after migrating the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_03_multiple_core_vm_delete_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 
@@ -409,7 +409,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
                 "Resource count for %s should be 0" % get_resource_type(resource_id=8))#CPU
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_04_deploy_multiple_vm_with_multiple_core(self):
         """Test Deploy multiple VM with 4 core CPU & verify the usage"""
 
@@ -664,7 +664,7 @@ class TestMultipleChildDomains(cloudstackTestCase):
         }
         return users
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_multiple_child_domains(self):
         """Test CPU limits with multiple child domains"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_cpu_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_cpu_limits.py b/test/integration/component/test_cpu_limits.py
index 2cf92f8..4087c75 100644
--- a/test/integration/component/test_cpu_limits.py
+++ b/test/integration/component/test_cpu_limits.py
@@ -177,7 +177,7 @@ class TestCPULimits(cloudstackTestCase):
         except Exception as e:
             self.fail("Failed to deploy an instance: %s" % e)
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_multiplecore_start_stop_instance(self):
         """Test Deploy VM with multiple core CPU & verify the usage"""
 
@@ -232,7 +232,7 @@ class TestCPULimits(cloudstackTestCase):
                          "Resource count should be same after stopping the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "provisioning"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="true")
     def test_02_multiplecore_migrate_instance(self):
         """Test Deploy VM with multiple core CPU & verify the usage"""
 
@@ -273,7 +273,7 @@ class TestCPULimits(cloudstackTestCase):
                          "Resource count should be same after migrating the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_03_multiplecore_delete_instance(self):
         """Test Deploy VM with multiple core CPU & verify the usage"""
 
@@ -309,7 +309,7 @@ class TestCPULimits(cloudstackTestCase):
         self.assertEqual(resource_count, 0 , "Resource count for %s should be 0" % get_resource_type(resource_id=8))#CPU
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "provisioning"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="true")
     def test_04_deploy_multiple_vm_with_multiple_cpus(self):
         """Test Deploy multiple VM with 4 core CPU & verify the usage"""
 
@@ -465,7 +465,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_stop_start_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 
@@ -537,7 +537,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
             "Resource count should be same after starting the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "provisioning"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="true")
     def test_02_migrate_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 
@@ -597,7 +597,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
             "Resource count should be same after starting the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_03_delete_instance(self):
         """Test Deploy VM with 4 core CPU & verify the usage"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_cpu_max_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_cpu_max_limits.py b/test/integration/component/test_cpu_max_limits.py
index a08ff6d..14dcad0 100644
--- a/test/integration/component/test_cpu_max_limits.py
+++ b/test/integration/component/test_cpu_max_limits.py
@@ -228,7 +228,7 @@ class TestMaxCPULimits(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_deploy_vm_domain_limit_reached(self):
         """Test Try to deploy VM with admin account where account has not used
             the resources but @ domain they are not available"""
@@ -261,7 +261,7 @@ class TestMaxCPULimits(cloudstackTestCase):
                 service_off=self.service_offering, api_client=api_client_admin)
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_02_deploy_vm_account_limit_reached(self):
         """Test Try to deploy VM with admin account where account has used
             the resources but @ domain they are available"""
@@ -302,7 +302,7 @@ class TestMaxCPULimits(cloudstackTestCase):
                 service_off=self.service_offering, api_client=api_client_admin)
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_03_deploy_vm_project_limit_reached(self):
         """Test TTry to deploy VM with admin account where account has not used
         the resources but @ project they are not available"""
@@ -337,7 +337,7 @@ class TestMaxCPULimits(cloudstackTestCase):
                 service_off=self.service_offering, api_client=api_client_admin)
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_04_deployVm__account_limit_reached(self):
         """Test Try to deploy VM with admin account where account has used
             the resources but @ project they are available"""

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_cpu_project_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_cpu_project_limits.py b/test/integration/component/test_cpu_project_limits.py
index e795828..2173050 100644
--- a/test/integration/component/test_cpu_project_limits.py
+++ b/test/integration/component/test_cpu_project_limits.py
@@ -218,7 +218,7 @@ class TestProjectsCPULimits(cloudstackTestCase):
                         "Check project name from list response")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_01_project_counts_start_stop_instance(self):
 
         # Validate the following
@@ -273,7 +273,7 @@ class TestProjectsCPULimits(cloudstackTestCase):
                          "Resource count should be same after starting the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "provisioning"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="true")
     def test_02_project_counts_migrate_instance(self):
 
         # Validate the following
@@ -315,7 +315,7 @@ class TestProjectsCPULimits(cloudstackTestCase):
                          "Resource count should be same after migrating the instance")
         return
 
-    @attr(tags=["advanced", "advancedns","simulator", "selfservice"])
+    @attr(tags=["advanced", "advancedns","simulator"], required_hardware="false")
     def test_03_project_counts_delete_instance(self):
 
         # Validate the following

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_custom_hostname.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_custom_hostname.py b/test/integration/component/test_custom_hostname.py
index a457639..22dbaf5 100644
--- a/test/integration/component/test_custom_hostname.py
+++ b/test/integration/component/test_custom_hostname.py
@@ -187,7 +187,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
 
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_01_user_provided_hostname(self):
         """ Verify user provided hostname to an instance
         """
@@ -334,7 +334,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
         return
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_02_instancename_from_default_configuration(self):
         """ Verify for globally set instancename
         """
@@ -445,7 +445,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
         return
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_03_duplicate_name(self):
         """ Test the duplicate name when old VM is in non-expunged state
         """
@@ -505,7 +505,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
         return
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_instance_name_with_hyphens(self):
         """ Test the instance  name with hyphens
         """
@@ -555,7 +555,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
 
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_04_edit_display_name(self):
         """ Test Edit the Display name Through the UI.
         """
@@ -648,7 +648,7 @@ class TestInstanceNameFlagTrue(cloudstackTestCase):
         return
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_05_unsupported_chars_in_display_name(self):
         """ Test Unsupported chars in the display name
             (eg: Spaces,Exclamation,yet to get unsupported chars from the dev)
@@ -740,7 +740,7 @@ class TestInstanceNameFlagFalse(cloudstackTestCase):
         return
 
     @attr(configuration='vm.instancename.flag')
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], required_hardware="false")
     def test_01_custom_hostname_instancename_false(self):
         """ Verify custom hostname for the instance when
             vm.instancename.flag=false

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_deploy_vm_userdata_reg.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_deploy_vm_userdata_reg.py b/test/integration/component/test_deploy_vm_userdata_reg.py
index 31735d2..10278c6 100755
--- a/test/integration/component/test_deploy_vm_userdata_reg.py
+++ b/test/integration/component/test_deploy_vm_userdata_reg.py
@@ -105,7 +105,7 @@ class TestDeployVmWithUserData(cloudstackTestCase):
         self.hypervisor = self.testClient.getHypervisorInfo()
 
 
-    @attr(tags=["simulator", "devcloud", "basic", "advanced", "provisioning"])
+    @attr(tags=["simulator", "devcloud", "basic", "advanced"], required_hardware="true")
     def test_deployvm_userdata_post(self):
         """Test userdata as POST, size > 2k
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_egress_fw_rules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_egress_fw_rules.py b/test/integration/component/test_egress_fw_rules.py
index e6960b2..12bade4 100755
--- a/test/integration/component/test_egress_fw_rules.py
+++ b/test/integration/component/test_egress_fw_rules.py
@@ -388,7 +388,7 @@ class TestEgressFWRules(cloudstackTestCase):
         except Exception as e:
             self.fail("Warning! Cleanup failed: %s" % e)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_01_egress_fr1(self):
         """Test By-default the communication from guest n/w to public n/w is allowed.
         """
@@ -403,7 +403,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_01_1_egress_fr1(self):
         """Test By-default the communication from guest n/w to public n/w is NOT allowed.
         """
@@ -419,7 +419,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     negative_test=False)
 
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_02_egress_fr2(self):
         """Test Allow Communication using Egress rule with CIDR + Port Range + Protocol.
         """
@@ -436,7 +436,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['100']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_02_1_egress_fr2(self):
         """Test Allow Communication using Egress rule with CIDR + Port Range + Protocol.
         """
@@ -453,7 +453,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_03_egress_fr3(self):
         """Test Communication blocked with network that is other than specified
         """
@@ -474,7 +474,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "[]",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_03_1_egress_fr3(self):
         """Test Communication blocked with network that is other than specified
         """
@@ -495,7 +495,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['failed:']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_04_egress_fr4(self):
         """Test Create Egress rule and check the Firewall_Rules DB table
         """
@@ -532,7 +532,7 @@ class TestEgressFWRules(cloudstackTestCase):
                          "DB results not matching, expected: 1, found: %s" % qresultset[0][0])
 
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_04_1_egress_fr4(self):
         """Test Create Egress rule and check the Firewall_Rules DB table
         """
@@ -606,7 +606,7 @@ class TestEgressFWRules(cloudstackTestCase):
         #TODO: Query VR for expected route rules.
 
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_06_egress_fr6(self):
         """Test Create Egress rule without CIDR
         """
@@ -622,7 +622,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['100']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_06_1_egress_fr6(self):
         """Test Create Egress rule without CIDR
         """
@@ -638,7 +638,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_07_egress_fr7(self):
         """Test Create Egress rule without End Port
         """
@@ -654,7 +654,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['failed:']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_07_1_egress_fr7(self):
         """Test Create Egress rule without End Port
         """
@@ -695,7 +695,7 @@ class TestEgressFWRules(cloudstackTestCase):
         self.createEgressRule(cidr=TestEgressFWRules.zone.guestcidraddress)
 
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_09_egress_fr9(self):
         """Test Delete Egress rule
         """
@@ -719,7 +719,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_09_1_egress_fr9(self):
         """Test Delete Egress rule
         """
@@ -744,7 +744,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     negative_test=False)
 
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_10_egress_fr10(self):
         """Test Invalid CIDR and Invalid Port ranges
         """
@@ -755,7 +755,7 @@ class TestEgressFWRules(cloudstackTestCase):
         self.create_vm()
         self.assertRaises(Exception, self.createEgressRule, cidr='10.2.2.0/24')
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_10_1_egress_fr10(self):
         """Test Invalid CIDR and Invalid Port ranges
         """
@@ -767,7 +767,7 @@ class TestEgressFWRules(cloudstackTestCase):
         self.assertRaises(Exception, self.createEgressRule, cidr='10.2.2.0/24')
 
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_11_egress_fr11(self):
         """Test Regression on Firewall + PF + LB + SNAT
         """
@@ -777,7 +777,7 @@ class TestEgressFWRules(cloudstackTestCase):
         # 3. All should work fine.
         self.create_vm(pfrule=True)
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_11_1_egress_fr11(self):
         """Test Regression on Firewall + PF + LB + SNAT
         """
@@ -787,7 +787,7 @@ class TestEgressFWRules(cloudstackTestCase):
         # 3. All should work fine.
         self.create_vm(pfrule=True, egress_policy=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_12_egress_fr12(self):
         """Test Reboot Router
         """
@@ -804,7 +804,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['100']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_12_1_egress_fr12(self):
         """Test Reboot Router
         """
@@ -821,7 +821,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['0']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_13_egress_fr13(self):
         """Test Redundant Router : Master failover
         """
@@ -876,7 +876,7 @@ class TestEgressFWRules(cloudstackTestCase):
                                     "['100']",
                                     negative_test=False)
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_13_1_egress_fr13(self):
         """Test Redundant Router : Master failover
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/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 1b72b2f..73ebf13 100644
--- a/test/integration/component/test_escalations_instances.py
+++ b/test/integration/component/test_escalations_instances.py
@@ -146,7 +146,7 @@ class TestListInstances(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_01_list_instances_pagination(self):
         """  
         @Desc: Test List Instances pagination
@@ -280,7 +280,7 @@ class TestListInstances(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_02_list_Running_vm(self):
         """  
         @Desc: Test List Running VM's
@@ -371,7 +371,7 @@ class TestListInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_03_list_Stopped_vm(self):
         """  
         @Desc: Test List Stopped VM's
@@ -464,7 +464,7 @@ class TestListInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_04_list_Destroyed_vm(self):
         """
         @Desc: Test List Destroyed VM's
@@ -572,7 +572,7 @@ class TestListInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_05_list_vm_by_id(self):
         """
         @Desc: Test List VM by Id
@@ -674,7 +674,7 @@ class TestListInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_06_list_vm_by_name(self):
         """
         @Desc: Test List VM's by Name
@@ -809,7 +809,7 @@ class TestListInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_07_list_vm_by_name_state(self):
         """  
         @Desc: Test List VM's by Name and State
@@ -952,7 +952,7 @@ class TestListInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_08_list_vm_by_zone(self):
         """  
         @Desc: Test List VM by Zone. 
@@ -1091,7 +1091,7 @@ class TestListInstances(cloudstackTestCase):
             self.services["virtual_machine"]["template"] = current_template
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_09_list_vm_by_zone_name(self):
         """  
         @Desc: Test List VM by Zone. 
@@ -1273,7 +1273,7 @@ class TestListInstances(cloudstackTestCase):
             self.services["virtual_machine"]["template"] = current_template
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_10_list_vm_by_zone_name_state(self):
         """  
         @Desc: Test List VM by Zone. 
@@ -1464,7 +1464,7 @@ class TestListInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_11_register_reset_vm_sshkey(self):
         """  
         @Desc: Test to verify registering and reset of SSH Key for VM
@@ -1590,7 +1590,7 @@ class TestListInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_12_vm_nics(self):
         """
         @Desc: Test to verify Nics for a VM
@@ -1989,7 +1989,7 @@ class TestInstances(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_13_attach_detach_iso(self):
         """
         @Desc: Test Attach ISO to VM and Detach ISO from VM.
@@ -2119,7 +2119,7 @@ class TestInstances(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_14_vm_snapshot_pagination(self):
         """
         @Desc: Test VM Snapshots pagination.
@@ -2278,7 +2278,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_15_revert_vm_to_snapshot(self):
         """
         @Desc: Test Revert VM to Snapshot functionality.
@@ -2440,7 +2440,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_16_list_vm_volumes_pagination(self):
         """
         @Desc: Test to verify pagination of Volumes for a VM
@@ -2645,7 +2645,7 @@ class TestInstances(cloudstackTestCase):
                                      )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_17_running_vm_scaleup(self):
         """
         @Desc: Test to verify change service for Running VM
@@ -2785,7 +2785,7 @@ class TestInstances(cloudstackTestCase):
                               )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_18_stopped_vm_change_service(self):
         """
         @Desc: Test to verify change service for Stopped VM
@@ -2905,7 +2905,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_19_create_reset_vm_sshkey(self):
         """
         @Desc: Test to verify creation and reset of SSH Key for VM
@@ -3032,7 +3032,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_20_update_vm_displayname_group(self):
         """
         @Desc: Test to verify Update VM details
@@ -3133,7 +3133,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_21_restore_vm(self):
         """
         @Desc: Test to verify Restore VM
@@ -3220,7 +3220,7 @@ class TestInstances(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_22_deploy_vm_multiple_networks(self):
         """
         @Desc: Test to verify deploy VM with multiple networks
@@ -3354,7 +3354,7 @@ class TestInstances(cloudstackTestCase):
                                   )
         return
 
-    @attr(tags=["basic", "provisioning"])
+    @attr(tags=["basic"], required_hardware="true")
     def test_23_deploy_vm_multiple_securitygroups(self):
         """
         @Desc: Test to verify deploy VM with multiple Security Groups
@@ -3470,7 +3470,7 @@ class TestInstances(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_24_deploy_vm_with_static_ip_ES1662(self):
         """
         @Desc: Test to verify deploy VM with static ip address assignment
@@ -3579,7 +3579,7 @@ class TestInstances(cloudstackTestCase):
             raise Exception("Warning: Exception in expunging vm : %s" % e)
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_25_ip_reallocation_ES1377(self):
         """
         @Desc: Test to verify dnsmasq dhcp conflict issue due to /ect/hosts not getting udpated

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_escalations_ipaddresses.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_ipaddresses.py b/test/integration/component/test_escalations_ipaddresses.py
index 6c9b24b..00aacbf 100644
--- a/test/integration/component/test_escalations_ipaddresses.py
+++ b/test/integration/component/test_escalations_ipaddresses.py
@@ -140,7 +140,7 @@ class TestIpAddresses(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_01_list_ipaddresses_pagination(self):
         """
         @summary: Test List IP Addresses pagination
@@ -312,7 +312,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_02_list_ipaddresses_byid(self):
         """
         @summary: Test List IP Addresses details by ID
@@ -489,7 +489,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_03_associate_ipaddress_for_vpc(self):
         """
         @summary: Test to Associate IP Address for VPC
@@ -641,7 +641,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_04_create_delete_lbrule_fornonvpc(self):
         """
         @summary: Test to list, create and delete Load Balancer Rule for IP Address associated to Non VPC network
@@ -813,7 +813,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_05_create_delete_lbrule_forvpc(self):
         """
         @summary: Test to list, create and delete Load Balancer Rule for IP Address associated to VPC
@@ -1019,7 +1019,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_06_update_lbrule_name(self):
         """
         @summary: Test to Update Load Balancer Rule Name for IP Address associated to Non VPC network
@@ -1218,7 +1218,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_07_assign_remove_lbrule_toinstance(self):
         """
         @summary: Test to Assign and Remove Load Balancer Rule to an Instance
@@ -1534,7 +1534,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_08_list_create_delete_lbsticky_policy(self):
         """
         @summary: Test to List, Create, Delete Load Balancer Stickyness Policy
@@ -1773,7 +1773,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_09_create_delete_portforwarding_fornonvpc(self):
         """
         @summary: Test to list, create and delete Port Forwarding for IP Address associated to Non VPC network
@@ -1997,7 +1997,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_10_create_delete_portforwarding_forvpc(self):
         """
         @summary: Test to list, create and delete Port Forwarding Rule for IP Address associated to VPC
@@ -2220,7 +2220,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_11_create_delete_firewallrule(self):
         """
         @summary: Test to list, create and delete Firewall Rule for IP Address associated to Non VPC network
@@ -2396,7 +2396,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_12_create_delete_remoteaccessvpn(self):
         """
         @summary: Test to list, create and delete Remote Access VPNs
@@ -2569,7 +2569,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_13_add_remove_vpnusers(self):
         """
         @summary: Test to list, add and remove VPN Users
@@ -2780,7 +2780,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_14_enable_disable_staticnat_fornonvpc(self):
         """
         @summary: Test to Enable and Disable StaticNat for IP Address associated to Non VPC Network
@@ -2956,7 +2956,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_15_enable_disable_staticnat_forvpc(self):
         """
         @summary: Test to Enable and Disable StaticNat for IP Address associated to VPC Network
@@ -3156,7 +3156,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_16_create_delete_ipforwardingrule(self):
         """
         @summary: Test to list, create and delete IP Forwarding Rules for IP Address
@@ -3364,7 +3364,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_17_create_update_autoscalepolicy(self):
         """
         @summary: Test to list, create and update Autoscale Policy
@@ -3642,7 +3642,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_18_create_update_autoscaleprofiles(self):
         """
         @summary: Test to list, create and update Autoscale VM Profiles
@@ -3962,7 +3962,7 @@ class TestIpAddresses(cloudstackTestCase):
         self.cleanup.append(self.account)
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_19_create_update_autoscalevmgroup(self):
         """  
         @summary: Test to list, create, update, enable, disable Autoscale VM Profiles

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_escalations_isos.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_isos.py b/test/integration/component/test_escalations_isos.py
index a0fa333..925c2fb 100644
--- a/test/integration/component/test_escalations_isos.py
+++ b/test/integration/component/test_escalations_isos.py
@@ -135,7 +135,7 @@ class TestIsos(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_01_list_isos_pagination(self):
         """
         @Desc: Test to List ISO's pagination
@@ -289,7 +289,7 @@ class TestIsos(cloudstackTestCase):
         del self.services["iso"]["zoneid"]
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_02_download_iso(self):
         """
         @Desc: Test to Download ISO
@@ -404,7 +404,7 @@ class TestIsos(cloudstackTestCase):
         del self.services["iso"]["isextractable"]
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_03_edit_iso_details(self):
         """
         @Desc: Test to Edit ISO name, displaytext, OSType
@@ -588,7 +588,7 @@ class TestIsos(cloudstackTestCase):
         del self.services["iso"]["zoneid"]
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_04_copy_iso(self):
         """
         @Desc: Test to copy ISO from one zone to another

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_escalations_networks.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_networks.py b/test/integration/component/test_escalations_networks.py
index 56f61b4..5fad43a 100644
--- a/test/integration/component/test_escalations_networks.py
+++ b/test/integration/component/test_escalations_networks.py
@@ -140,7 +140,7 @@ class TestNetworks_1(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_01_list_networks_pagination(self):
         """
         @Desc: Test List Networks pagination
@@ -260,7 +260,7 @@ class TestNetworks_1(cloudstackTestCase):
                                  )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_02_create_network_without_sourcenat(self):
         """
         @Desc: Test create network if supported services doesn't have sourcenat
@@ -292,7 +292,7 @@ class TestNetworks_1(cloudstackTestCase):
         self.test_data["network_without_acl"]["networkoffering"] = self.network_offering.id
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_03_list_vpc_pagination(self):
         """
         @Desc: Test create vpc with network domain as parameter
@@ -405,7 +405,7 @@ class TestNetworks_1(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_04_create_vpc_with_networkdomain(self):
         """
         @Desc: Test create vpc with network domain as parameter
@@ -452,7 +452,7 @@ class TestNetworks_1(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_05_list_network_offerings_with_and_without_vpc(self):
         """
         @Desc: Test list network offerings for vpc true and false parameters
@@ -551,7 +551,7 @@ class TestNetworks_1(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_06_create_network_in_vpc(self):
         """
         @Desc: Test create network in vpc and verify VPC name
@@ -703,7 +703,7 @@ class TestNetworks_1(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_07_create_delete_network(self):
         """
         @Desc: Test delete network
@@ -801,7 +801,7 @@ class TestNetworks_1(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_08_update_network(self):
         """
         @Desc: Test update network
@@ -909,7 +909,7 @@ class TestNetworks_1(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_09_list_virtual_machines_single_network(self):
         """
         @Desc: Test update network
@@ -1030,7 +1030,7 @@ class TestNetworks_1(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_10_list_networks_in_vpc(self):
         """
         @Desc: Test list networks in vpc and verify VPC name
@@ -1160,7 +1160,7 @@ class TestNetworks_1(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_11_update_vpc(self):
         """
         @Desc: Test create vpc with network domain as parameter
@@ -1256,7 +1256,7 @@ class TestNetworks_1(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_12_list_create_delete_networkACL(self):
         """
         @Desc: Test create network in vpc and verify VPC name
@@ -1523,7 +1523,7 @@ class TestNetworks_2(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_13_list_vpc_byid(self):
         """
         @summary: Test List VPC with Id
@@ -1619,7 +1619,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_14_list_public_ipadress_by_associated_networkid(self):
         """
         @summary: Test List Public IPAddress with associatednetworkid
@@ -1756,7 +1756,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_15_list_privategateway_byvpcid(self):
         """
         @summary: Test List PrivateGateway by vpcid
@@ -1881,7 +1881,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_16_create_list_delete_egressfirewallrule_bynetworkid(self):
         """
         @summary: Test Create List Delete Egress Firewall Rule by Network ID
@@ -2031,7 +2031,7 @@ class TestNetworks_2(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_17_restart_vpc(self):
         """
         @summary: Test to restart VPC
@@ -2114,7 +2114,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_18_create_list_vpn_gateway(self):
         """
         @Desc: Test to Create and list Vpn Gateway by VPCid
@@ -2226,7 +2226,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_19_create_list_reset_delete_vpnconnections(self):
         """
         @Desc: Test to List Create Reset and Delete VPN Customer Gateways pagination
@@ -2475,7 +2475,7 @@ class TestNetworks_2(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_20_list_capabilities(self):
         """
         @summary: Test List Capabilities
@@ -2498,7 +2498,7 @@ class TestNetworks_2(cloudstackTestCase):
                             )
         return
 
-    @attr(tags=["advanced", "provisioning"])
+    @attr(tags=["advanced"], required_hardware="true")
     def test_21_listNetworkacls_by_privategateway_aclid(self):
         """
         @summary: Test to list Networkacllists by private gateway aclid

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_escalations_securitygroups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_securitygroups.py b/test/integration/component/test_escalations_securitygroups.py
index 076477e..ffaf657 100644
--- a/test/integration/component/test_escalations_securitygroups.py
+++ b/test/integration/component/test_escalations_securitygroups.py
@@ -109,7 +109,7 @@ class TestSecurityGroups(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["basic", "provisioning"])
+    @attr(tags=["basic"], required_hardware="true")
     def test_01_list_securitygroups_pagination(self):
         """
         @Desc: Test to List Security Groups pagination
@@ -235,7 +235,7 @@ class TestSecurityGroups(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["basic", "provisioning"])
+    @attr(tags=["basic"], required_hardware="true")
     def test_02_securitygroups_authorize_revoke_ingress(self):
         """
         @Desc: Test to Authorize and Revoke Ingress for Security Group
@@ -399,7 +399,7 @@ class TestSecurityGroups(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["basic", "provisioning"])
+    @attr(tags=["basic"], required_hardware="true")
     def test_03_securitygroups_authorize_revoke_egress(self):
         """
         @Desc: Test to Authorize and Revoke Egress for Security Group

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_escalations_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_snapshots.py b/test/integration/component/test_escalations_snapshots.py
index af493a1..f8c746b 100644
--- a/test/integration/component/test_escalations_snapshots.py
+++ b/test/integration/component/test_escalations_snapshots.py
@@ -146,7 +146,7 @@ class TestSnapshots(cloudstackTestCase):
                                                                                           ))
         return return_flag
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_01_list_volume_snapshots_pagination(self):
         """
         @Desc: Test to List Volume Snapshots pagination
@@ -278,7 +278,7 @@ class TestSnapshots(cloudstackTestCase):
                           )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_02_list_volume_snapshots_byid(self):
         """
         @Desc: Test to List Volume Snapshots by Id
@@ -396,7 +396,7 @@ class TestSnapshots(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_03_list_vm_snapshots_pagination(self):
         """
         @Desc: Test to List VM Snapshots pagination
@@ -534,7 +534,7 @@ class TestSnapshots(cloudstackTestCase):
                                     )
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_04_list_vm_snapshots_byid(self):
         """
         @summary: Test to List VM Snapshots by Id


Mime
View raw message