Repository: cloudstack
Updated Branches:
  refs/heads/master 2995c7f34 -> 598e9b1cb


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_snapshot_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshot_limits.py 
b/test/integration/component/test_snapshot_limits.py
index a7da0db..18a1c65 100644
--- a/test/integration/component/test_snapshot_limits.py
+++ b/test/integration/component/test_snapshot_limits.py
@@ -199,7 +199,7 @@ class TestSnapshotLimit(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "provisioning"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="true")
     def test_04_snapshot_limit(self):
         """Test snapshot limit in snapshot policies
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots.py 
b/test/integration/component/test_snapshots.py
index b601f9a..8a5c7ff 100644
--- a/test/integration/component/test_snapshots.py
+++ b/test/integration/component/test_snapshots.py
@@ -245,7 +245,7 @@ class TestSnapshots(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "smoke", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
     def test_02_snapshot_data_disk(self):
         """Test Snapshot Data Disk
         """
@@ -292,7 +292,7 @@ class TestSnapshots(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg"], 
required_hardware="true")
     def test_01_volume_from_snapshot(self):
         """Test Creating snapshot from volume having spaces in name(KVM)
         """
@@ -537,7 +537,7 @@ class TestSnapshots(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "smoke", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
     def test_04_delete_snapshot(self):
         """Test Delete Snapshot
         """
@@ -596,7 +596,7 @@ class TestSnapshots(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "basic", "sg", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "basic", "sg"], 
required_hardware="true")
     def test_03_snapshot_detachedDisk(self):
         """Test snapshot from detached disk
         """
@@ -722,7 +722,7 @@ class TestSnapshots(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "smoke", "xen", "provisioning"])
+    @attr(tags=["advanced", "advancedns", "smoke", "xen"], 
required_hardware="true")
     def test_07_template_from_snapshot(self):
         """Create Template from snapshot
         """
@@ -975,7 +975,7 @@ class TestCreateVMSnapshotTemplate(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "provisioning"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="true")
     def test_01_createVM_snapshotTemplate(self):
         """Test create VM, Snapshot and Template
         """
@@ -1186,7 +1186,7 @@ class TestSnapshotEvents(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_05_snapshot_events(self):
         """Test snapshot events
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_snapshots_improvement.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots_improvement.py 
b/test/integration/component/test_snapshots_improvement.py
index b2b0a54..1646b69 100644
--- a/test/integration/component/test_snapshots_improvement.py
+++ b/test/integration/component/test_snapshots_improvement.py
@@ -185,7 +185,7 @@ class TestSnapshotOnRootVolume(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "provisioning"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_01_snapshot_on_rootVolume(self):
         """Test create VM with default cent os template and create snapshot
             on root disk of the vm

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py 
b/test/integration/component/test_stopped_vm.py
index 74c251b..65b9767 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -181,7 +181,7 @@ class TestDeployVM(cloudstackTestCase):
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
 
-    @attr(tags=["advanced", "eip", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns"], required_hardware="false")
     def test_01_deploy_vm_no_startvm(self):
         """Test Deploy Virtual Machine with no startVM parameter
         """
@@ -208,7 +208,7 @@ class TestDeployVM(cloudstackTestCase):
         self.assertEqual(response[0], PASS, response[1])
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_02_deploy_vm_startvm_true(self):
         """Test Deploy Virtual Machine with startVM=true parameter
         """
@@ -236,7 +236,7 @@ class TestDeployVM(cloudstackTestCase):
         self.assertEqual(response[0], PASS, response[1])
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_03_deploy_vm_startvm_false(self):
         """Test Deploy Virtual Machine with startVM=false parameter
         """
@@ -278,7 +278,7 @@ class TestDeployVM(cloudstackTestCase):
         self.virtual_machine.delete(self.apiclient, expunge=True)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_04_deploy_startvm_false_attach_volume(self):
         """Test Deploy Virtual Machine with startVM=false and attach volume
         """
@@ -322,7 +322,7 @@ class TestDeployVM(cloudstackTestCase):
             self.fail("Attach volume failed with Exception: %s" % e)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_05_deploy_startvm_false_change_so(self):
         """Test Deploy Virtual Machine with startVM=false and change service 
offering
         """
@@ -373,7 +373,7 @@ class TestDeployVM(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_06_deploy_startvm_attach_detach(self):
         """Test Deploy Virtual Machine with startVM=false and
             attach detach volumes
@@ -436,7 +436,7 @@ class TestDeployVM(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_07_deploy_startvm_attach_iso(self):
         """Test Deploy Virtual Machine with startVM=false and attach ISO
         """
@@ -505,7 +505,7 @@ class TestDeployVM(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_08_deploy_attached_volume(self):
         """Test Deploy Virtual Machine with startVM=false and attach volume 
already attached to different machine
         """
@@ -613,7 +613,7 @@ class TestDeployVM(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_09_stop_vm_migrate_vol(self):
         """Test Stopped Virtual Machine's ROOT volume migration
         """
@@ -790,7 +790,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_01_deploy_ha_vm_startvm_false(self):
         """Test Deploy HA enabled Virtual Machine with startvm=false
         """
@@ -816,7 +816,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         self.assertEqual(response[0], PASS, response[1])
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_02_deploy_ha_vm_from_iso(self):
         """Test Deploy HA enabled Virtual Machine from ISO
         """
@@ -858,7 +858,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         self.assertEqual(response[0], PASS, response[1])
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_03_deploy_ha_vm_iso_startvm_false(self):
         """Test Deploy HA enabled Virtual Machine from ISO with startvm=false
         """
@@ -951,7 +951,7 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
 
-    @attr(tags=["advanced", "eip", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns"], required_hardware="false")
     def test_01_deploy_vm_no_startvm(self):
         """Test Deploy Virtual Machine with no startVM parameter
         """
@@ -1190,7 +1190,7 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", 
"provisioning"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="true")
     def test_deploy_vm_password_enabled(self):
         """Test Deploy Virtual Machine with startVM=false & enabledpassword in
         template
@@ -1284,7 +1284,7 @@ class TestVMAccountLimit(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_vm_per_account(self):
         """Test VM limit per account
         """
@@ -1399,7 +1399,7 @@ class TestUploadAttachVolume(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "basic", "sg"], 
required_hardware="false")
     def test_upload_attach_volume(self):
         """Test Upload volume and attach to VM in stopped state
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_storage_motion.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_storage_motion.py 
b/test/integration/component/test_storage_motion.py
index 5b9086b..acbf92d 100644
--- a/test/integration/component/test_storage_motion.py
+++ b/test/integration/component/test_storage_motion.py
@@ -149,7 +149,7 @@ class TestStorageMotion(cloudstackTestCase):
         cleanup_resources(self.apiclient, self.cleanup)
         return
 
-    @attr(tags=["advanced", "basic", "multicluster", "storagemotion", 
"xenserver", "provisioning"])
+    @attr(tags=["advanced", "basic", "multicluster", "storagemotion", 
"xenserver"], required_hardware="true")
     def test_01_migrate_vm_with_volume(self):
         """Test migrate virtual machine with its volumes
         """
@@ -227,7 +227,7 @@ class TestStorageMotion(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "basic", "multipool", "storagemotion", 
"xenserver", "selfservice"])
+    @attr(tags=["advanced", "basic", "multipool", "storagemotion", 
"xenserver"], required_hardware="false")
     def test_02_migrate_volume(self):
         """Test migrate volume of a running vm
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_tags.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_tags.py 
b/test/integration/component/test_tags.py
index fbe6436..1e99ac1 100644
--- a/test/integration/component/test_tags.py
+++ b/test/integration/component/test_tags.py
@@ -280,7 +280,7 @@ class TestResourceTags(cloudstackTestCase):
 
         return
     
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_01_lbrule_tag(self):
         """ Test Create tag on LB rule and remove the LB rule
         """
@@ -423,7 +423,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("failed to delete load balancer rule! - %s" % e)
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_02_natrule_tag(self):
         """ Test Create tag on nat rule and remove the nat rule
         """
@@ -560,7 +560,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("failed to delete port forwarding rule! - %s" % e)
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_03_firewallrule_tag(self):
         """ Test Create tag on firewall rule and remove the firewall rule
         """
@@ -703,7 +703,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("failed to delete firewall rule! - %s" % e)
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_04_vpn_tag(self):
         """ Test Create tag on vpn and remove the vpn
         """
@@ -855,7 +855,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("failed to disable VPN! - %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_05_vm_tag(self):
         """ Test creation, listing and deletion tags on UserVM
         """
@@ -932,7 +932,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_06_template_tag(self):
         """ Test creation, listing and deletion tag on templates
         """
@@ -1044,7 +1044,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_07_iso_tag(self):
         """ Test creation, listing and deletion tags on ISO
         """
@@ -1139,7 +1139,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_08_volume_tag(self):
         """ Test creation, listing and deletion tagson volume
         """
@@ -1228,7 +1228,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_09_snapshot_tag(self):
         """ Test creation, listing and deletion tag son snapshot
         """
@@ -1330,7 +1330,7 @@ class TestResourceTags(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_10_network_tag(self):
         """ Testcreation, listing and deletion tags on guest network
         """
@@ -1532,7 +1532,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_13_tag_case_insensitive(self):
         """ Test to verify that tags are not case sensitive
         """
@@ -1608,7 +1608,7 @@ class TestResourceTags(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_14_special_char_mutiple_tags(self):
         """ Test multiple tags and with special characters on same machine
         """
@@ -1677,7 +1677,7 @@ class TestResourceTags(cloudstackTestCase):
                        )
         return
 
-    @attr(tags=["advanced", "selfservice"])
+    @attr(tags=["advanced"], required_hardware="false")
     def test_15_project_tag(self):
         """ Test creation, listing and deletion tags on projects
         """
@@ -1769,7 +1769,7 @@ class TestResourceTags(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_16_query_tags_other_account(self):
         """ Test Query the tags from other account
         """
@@ -1857,7 +1857,7 @@ class TestResourceTags(cloudstackTestCase):
         
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_17_query_tags_admin_account(self):
         """ Test Query the tags from admin account
         """
@@ -1934,7 +1934,7 @@ class TestResourceTags(cloudstackTestCase):
         
         return
 
-    @attr(tags=["advanced", "basic", "simulator", "selfservice"])
+    @attr(tags=["advanced", "basic", "simulator"], required_hardware="false")
     def test_18_invalid_list_parameters(self):
         """ Test listAPI with invalid tags parameter
         """
@@ -1973,7 +1973,7 @@ class TestResourceTags(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_19_delete_add_same_tag(self):
         """ Test deletion and addition of same tag on a resource.
         """
@@ -2079,7 +2079,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("Failed to delete the tag - %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_20_create_tags_multiple_resources(self):
         "Test creation of same tag on multiple resources"
 
@@ -2184,7 +2184,7 @@ class TestResourceTags(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_21_create_tag_stopped_vm(self):
         "Test creation of tag on stopped vm."
 
@@ -2234,7 +2234,7 @@ class TestResourceTags(cloudstackTestCase):
             self.fail("Exception occured - %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "selfservice"])
+    @attr(tags=["advanced", "basic"], required_hardware="false")
     def test_22_create_tag_destroyed_vm(self):
         "Test creation of tag on stopped vm."
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_templates.py 
b/test/integration/component/test_templates.py
index 1985264..01f331e 100644
--- a/test/integration/component/test_templates.py
+++ b/test/integration/component/test_templates.py
@@ -162,7 +162,7 @@ class TestCreateTemplate(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "advancedns", "provisioning"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="true")
     def test_01_create_template(self):
         """Test create public & private template
         """
@@ -387,7 +387,7 @@ class TestTemplates(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_01_create_template_volume(self):
         """Test Create template from volume
         """
@@ -426,7 +426,7 @@ class TestTemplates(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_03_delete_template(self):
         """Test Delete template
         """
@@ -482,7 +482,7 @@ class TestTemplates(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_04_template_from_snapshot(self):
         """Create Template from snapshot
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_update_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_update_vm.py 
b/test/integration/component/test_update_vm.py
index 1c5c236..ca20a5a 100644
--- a/test/integration/component/test_update_vm.py
+++ b/test/integration/component/test_update_vm.py
@@ -83,7 +83,7 @@ class TestUpdateVirtualMachine(cloudstackTestCase):
             self.account
         ]
 
-    @attr(tags=['advanced', 'simulator', 'basic', 'sg', "selfservice"])
+    @attr(tags=['advanced', 'simulator', 'basic', 'sg'], 
required_hardware="false")
     def test_update_vm_name(self):
         """Test Update VirtualMachine Name
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_usage.py 
b/test/integration/component/test_usage.py
index 4cc5183..e99bb81 100644
--- a/test/integration/component/test_usage.py
+++ b/test/integration/component/test_usage.py
@@ -191,7 +191,7 @@ class TestVmUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", 
"selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], 
required_hardware="false")
     def test_01_vm_usage(self):
         """Test Create/Destroy VM and verify usage calculation
         """
@@ -390,7 +390,7 @@ class TestPublicIPUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "simulator"], 
required_hardware="false")
     def test_01_public_ip_usage(self):
         """Test Assign new IP and verify usage calculation
         """
@@ -540,7 +540,7 @@ class TestVolumeUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", 
"selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], 
required_hardware="false")
     def test_01_volume_usage(self):
         """Test Create/delete a volume and verify correct usage is recorded
         """
@@ -727,7 +727,7 @@ class TestTemplateUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], 
required_hardware="false")
     def test_01_template_usage(self):
         """Test Upload/ delete a template and verify correct usage is generated
             for the template uploaded
@@ -873,7 +873,7 @@ class TestISOUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], 
required_hardware="false")
     def test_01_ISO_usage(self):
         """Test Create/Delete a ISO and verify its usage is generated correctly
         """
@@ -1027,7 +1027,7 @@ class TestLBRuleUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "eip", "advancedns", "simulator", "selfservice"])
+    @attr(tags=["advanced", "eip", "advancedns", "simulator"], 
required_hardware="false")
     def test_01_lb_usage(self):
         """Test Create/Delete a LB rule and verify correct usage is recorded
         """
@@ -1186,7 +1186,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         return
 
     @attr(speed = "slow")
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator", 
"selfservice"])
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "simulator"], 
required_hardware="false")
     def test_01_snapshot_usage(self):
         """Test Create/Delete a manual snap shot and verify
         correct usage is recorded
@@ -1357,7 +1357,7 @@ class TestNatRuleUsage(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_nat_usage(self):
         """Test Create/Delete a PF rule and verify correct usage is recorded
         """
@@ -1521,7 +1521,7 @@ class TestVpnUsage(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_vpn_usage(self):
         """Test Create/Delete a VPN and verify correct usage is recorded
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vmware_drs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vmware_drs.py 
b/test/integration/component/test_vmware_drs.py
index f33a056..20d3839 100644
--- a/test/integration/component/test_vmware_drs.py
+++ b/test/integration/component/test_vmware_drs.py
@@ -171,7 +171,7 @@ class TestVMPlacement(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "vmware", "multihost", "provisioning"])
+    @attr(tags=["advanced", "vmware", "multihost"], required_hardware="true")
     def test_vm_creation_in_fully_automated_mode(self):
         """ Test VM Creation in  automation mode = Fully automated
             This test requires following preconditions:
@@ -340,7 +340,7 @@ class TestAntiAffinityRules(cloudstackTestCase):
         except Exception as e:
             raise Exception("Error: Creation of Affinity Group failed : %s" %e)
 
-    @attr(tags=["advanced", "vmware", "multihost", "provisioning"])
+    @attr(tags=["advanced", "vmware", "multihost"], required_hardware="true")
     def test_vmware_anti_affinity(self):
         """ Test Set up anti-affinity rules
 
@@ -570,7 +570,7 @@ class TestAffinityRules(cloudstackTestCase):
         except Exception as e:
             raise Exception("Error: Creation of Affinity Group failed : %s" %e)
 
-    @attr(tags=["advanced", "vmware", "multihost", "provisioning"])
+    @attr(tags=["advanced", "vmware", "multihost"], required_hardware="true")
     def test_vmware_affinity(self):
         """ Test Set up affinity rules
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_volumes.py 
b/test/integration/component/test_volumes.py
index 22029b1..122f2d1 100644
--- a/test/integration/component/test_volumes.py
+++ b/test/integration/component/test_volumes.py
@@ -869,7 +869,7 @@ class TestVolumes(cloudstackTestCase):
         cleanup_resources(self.apiclient, self.cleanup)
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_01_attach_volume(self):
         """Attach a created Volume to a Running VM
         """
@@ -952,7 +952,7 @@ class TestVolumes(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_02_detach_volume(self):
         """Detach a Volume attached to a VM
         """
@@ -999,7 +999,7 @@ class TestVolumes(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_03_delete_detached_volume(self):
         """Delete a Volume unattached to an VM
         """
@@ -1026,7 +1026,7 @@ class TestVolumes(cloudstackTestCase):
                     )
         return
 
-    @attr(tags=["advanced", "advancedns", "simulator", "basic", "eip", "sg", 
"selfservice"])
+    @attr(tags=["advanced", "advancedns", "simulator", "basic", "eip", "sg"], 
required_hardware="false")
     def test_create_volume_under_domain(self):
         """Create a volume under a non-root domain as non-root-domain user
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vpc.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc.py 
b/test/integration/component/test_vpc.py
index e9d396e8..13f0eff 100644
--- a/test/integration/component/test_vpc.py
+++ b/test/integration/component/test_vpc.py
@@ -285,7 +285,7 @@ class TestVPC(cloudstackTestCase):
         return
 
     #list_vpc_apis should be the first case otherwise the vpc counts would be 
wrong
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_01_list_vpc_apis(self):
         """ Test list VPC APIs
         """
@@ -464,7 +464,7 @@ class TestVPC(cloudstackTestCase):
                             )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_02_restart_vpc_no_networks(self):
         """ Test restart VPC having no networks
         """
@@ -495,7 +495,7 @@ class TestVPC(cloudstackTestCase):
         self.validate_vpc_network(vpc, state='Enabled')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_03_restart_vpc_with_networks(self):
         """ Test restart VPC having networks
         """
@@ -580,7 +580,7 @@ class TestVPC(cloudstackTestCase):
         self.validate_vpc_network(vpc, state='Enabled')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_04_delete_vpc_no_networks(self):
         """ Test delete VPC having no networks
         """
@@ -620,7 +620,7 @@ class TestVPC(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_05_delete_vpc_with_networks(self):
         """ Test delete VPC having networks
         """
@@ -751,7 +751,7 @@ class TestVPC(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_06_list_vpc_apis_admin(self):
         """ Test list VPC APIs for different user roles
         """
@@ -811,7 +811,7 @@ class TestVPC(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "multiple", "provisioning"])
+    @attr(tags=["advanced", "intervlan", "multiple"], required_hardware="true")
     def test_07_restart_network_vm_running(self):
         """ Test Restart VPC when there are multiple networks associated
         """
@@ -1160,7 +1160,7 @@ class TestVPC(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_08_delete_vpc(self):
         """ Test vpc deletion after account deletion
         """
@@ -1526,7 +1526,7 @@ class TestVPC(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_09_vpc_create(self):
         """ Test to create vpc and verify VPC state, VR and SourceNatIP
         """
@@ -1587,7 +1587,7 @@ class TestVPC(cloudstackTestCase):
              "Source Nat IP address was not allocated to VR"
             )
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_10_nonoverlaping_cidrs(self):
         """ Test creation of multiple VPCs with non-overlapping CIDRs
         """
@@ -1639,7 +1639,7 @@ class TestVPC(cloudstackTestCase):
             assert("VPC created with overlapping CIDR")
         return
     
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_11_deploy_vm_wo_network_netdomain(self):
         """ Test deployment of vm in a VPC without network domain
         """
@@ -1793,7 +1793,7 @@ class TestVPC(cloudstackTestCase):
                           (vm_domain, expected_netdomain)
                         )
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_12_deploy_vm_with_netdomain(self):
         """ Test deployment of vm in a VPC with network domain
         """
@@ -1848,7 +1848,7 @@ class TestVPC(cloudstackTestCase):
                                 networkdomain='test.netdomain'
                                 )
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_13_deploy_vm_with_vpc_netdomain(self):
         """ Test deployment of vm in a VPC with network domain
         """
@@ -1913,7 +1913,7 @@ class TestVPC(cloudstackTestCase):
 
         self.validate_vm_netdomain(virtual_machine, vpc, network, netdomain)
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_14_deploy_vm_1(self):
         """ Test vm deploy in network by a user where VPC was created without 
account/domain ID
         """
@@ -1989,7 +1989,7 @@ class TestVPC(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_15_deploy_vm_2(self):
         """ Test deployment of vm in a network in a domain admin account where 
VPC is created without account/domain ID
         """
@@ -2070,7 +2070,7 @@ class TestVPC(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_16_deploy_vm_for_user_by_admin(self):
         """ Test deployment of vm in a network by root admin for user.
         """
@@ -2147,7 +2147,7 @@ class TestVPC(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_17_deploy_vm_for_user_by_domain_admin(self):
         """ Test deployment of vm in a network by domain admin for user.
         """
@@ -2201,7 +2201,7 @@ class TestVPC(cloudstackTestCase):
                              zoneid=self.zone.id,
                              )
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_18_create_net_for_user_diff_domain_by_doadmin(self):
         """ Test creation of network by domain admin for user from different 
domain
         """
@@ -2278,7 +2278,7 @@ class TestVPC(cloudstackTestCase):
                                 vpcid=vpc.id
                                 )
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_19_create_vpc_wo_params(self):
         """ Test creation of VPC without mandatory parameters
         """
@@ -2338,7 +2338,7 @@ class TestVPC(cloudstackTestCase):
                              domainid=self.account.domainid
                              )
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_20_update_vpc_name_display_text(self):
         """ Test to verify updation of vpc name and display text
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/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 c5d9da6..b399765 100644
--- a/test/integration/component/test_vpc_network.py
+++ b/test/integration/component/test_vpc_network.py
@@ -768,7 +768,7 @@ class TestVPCNetwork(cloudstackTestCase):
         self.debug("Network creation failed")
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_07_create_network_unsupported_services(self):
         """ Test create network services not supported by VPC (Should fail)
         """
@@ -835,7 +835,7 @@ class TestVPCNetwork(cloudstackTestCase):
         self.debug("Network creation failed as VPC doesn't have LB service")
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_08_create_network_without_sourceNAT(self):
         """ Test create network without sourceNAT service in VPC (should fail)
         """
@@ -1184,7 +1184,7 @@ class TestVPCNetworkRanges(cloudstackTestCase):
             "Network creation failed as network cidr range is outside of vpc")
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_02_create_network_outside_range(self):
         """ Test create network outside cidr range of VPC
         """
@@ -1643,7 +1643,7 @@ class TestVPCNetworkUpgrade(cloudstackTestCase):
         self.debug("VPC network validated - %s" % network.name)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_01_network_services_upgrade(self):
         """ Test update Network that is part of a VPC to a network offering 
that has more services
         """
@@ -2003,7 +2003,7 @@ class TestVPCNetworkUpgrade(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_network_vpcvr2vr_upgrade(self):
         """ Test update Network that is NOT part of a VPC to a nw offering 
that has services that are provided by VPCVR and vice versa
         """
@@ -2335,7 +2335,7 @@ class TestVPCNetworkGc(cloudstackTestCase):
         self.debug("VPC network validated - %s" % network.name)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_01_wait_network_gc(self):
         """ Test network gc after shutdown of vms in the network
         """
@@ -2361,7 +2361,7 @@ class TestVPCNetworkGc(cloudstackTestCase):
         self.assertEqual(lbrules, None, "LBrules were not cleared after 
network GC thread is run")
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_start_vm_network_gc(self):
         """ Test network rules after starting a VpcVr that was shutdown after 
network.gc
         """
@@ -2435,7 +2435,7 @@ class TestVPCNetworkGc(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_restart_vpcvr(self):
         """ Test Stop all the Vms that are part of the a Network
             (Wait for network GC).Restart VPCVR.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/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 a5625e7..88da61d 100644
--- a/test/integration/component/test_vpc_network_lbrules.py
+++ b/test/integration/component/test_vpc_network_lbrules.py
@@ -506,7 +506,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
 
         return nwacl_internet_1
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_01_VPC_LBRulesListing(self):
         """ Test case no 210 and 227: List Load Balancing Rules belonging to a 
VPC
         """
@@ -554,7 +554,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_VPC_CreateLBRuleInMultipleNetworks(self):
         """ Test Create LB rules for 1 network which is part of a two/multiple 
virtual networks of a
             VPC using a new Public IP Address available with the VPC when the 
Virtual Router is in Running State
@@ -579,7 +579,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_VPC_CreateLBRuleInMultipleNetworksVRStoppedState(self):
         """ Test case no 222 : Create LB rules for a two/multiple virtual 
networks of a 
             VPC using a new Public IP Address available with the VPC when the 
Virtual Router is in Stopped State
@@ -615,7 +615,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
         return    
 
-    @attr(tags=["advanced","advancedns", "intervlan", "provisioning"])
+    @attr(tags=["advanced","advancedns", "intervlan"], 
required_hardware="true")
     def test_04_VPC_CreateLBRuleInMultipleNetworksVRStoppedState(self):
         """ Test case no 222 : Create LB rules for a two/multiple virtual 
networks of a
             VPC using a new Public IP Address available with the VPC when the 
Virtual Router is in Stopped State
@@ -645,7 +645,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_05_VPC_CreateAndDeleteLBRule(self):
         """ Test case no 214 : Delete few(not all) LB rules for a single 
virtual network of a
             VPC belonging to a single Public IP Address when the Virtual 
Router is in Running State
@@ -676,7 +676,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_06_VPC_CreateAndDeleteLBRuleVRStopppedState(self):
         """ Test Delete few(not all) LB rules for a single virtual network of
             a VPC belonging to a single Public IP Address when the Virtual 
Router is in Stopped State
@@ -713,7 +713,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=True)
         return    
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_07_VPC_CreateAndDeleteAllLBRule(self):
         """ Test Delete all LB rules for a single virtual network of a
             VPC belonging to a single Public IP Address when the Virtual 
Router is in Running State
@@ -746,7 +746,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_08_VPC_CreateAndDeleteAllLBRuleVRStoppedState(self):
         """ Test Delete all LB rules for a single virtual network of a
             VPC belonging to a single Public IP Address when the Virtual 
Router is in Stopped State
@@ -779,7 +779,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
     
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_09_VPC_LBRuleCreateFailMultipleVPC(self):
         """ Test User should not be allowed to create a LB rule for a VM that 
belongs to a different VPC.
         """
@@ -817,7 +817,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_3 and vm_4')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_10_VPC_FailedToCreateLBRuleNonVPCNetwork(self):
         """ Test User should not be allowed to create a LB rule for a VM that 
does not belong to any VPC.
         """
@@ -854,7 +854,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_3 and vm_4 in network2')
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_11_VPC_LBRuleCreateNotAllowed(self):
         """ Test case no 217 and 236: User should not be allowed to create a 
LB rule for a
             VM that does not belong to the same network but belongs to the 
same VPC.
@@ -892,7 +892,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_3 and vm_1')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_12_VPC_LBRuleCreateFailForRouterIP(self):
         """ Test User should not be allowed to create a LB rule on an 
Ipaddress that Source Nat enabled.
         """
@@ -920,7 +920,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_2 and vm_1')
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_13_VPC_LBRuleCreateFailForPFSourceNATIP(self):
         """ Test User should not be allowed to create a LB rule on an 
Ipaddress that already has a PF rule.
         """
@@ -950,7 +950,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_2 and vm_1')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_14_VPC_LBRuleCreateFailForStaticNatRule(self):
         """ Test User should not be allowed to create a LB rule on an 
Ipaddress that already has a Static Nat rule.
         """
@@ -979,7 +979,7 @@ class TestVPCNetworkLBRules(cloudstackTestCase):
             self.debug('Failed to Create LB rule vm_2 and vm_1')
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_15_VPC_ReleaseIPForLBRuleCreated(self):
         """ Test release Ip address that has a LB rule assigned to it.
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vpc_network_pfrules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_network_pfrules.py 
b/test/integration/component/test_vpc_network_pfrules.py
index 31e7320..c3a8161 100644
--- a/test/integration/component/test_vpc_network_pfrules.py
+++ b/test/integration/component/test_vpc_network_pfrules.py
@@ -483,7 +483,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         return nwacl_internet_1
 
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_01_network_services_VPC_StopCreatePF(self):
         """ Test : Create VPC PF rules on acquired public ip when 
VpcVirtualRouter is stopped
         """
@@ -514,7 +514,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_network_services_VPC_CreatePF(self):
         """ Test Create VPC PF rules on acquired public ip when 
VpcVirtualRouter is Running
         """
@@ -534,7 +534,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_network_services_VPC_StopCreateMultiplePF(self):
         """ Test Create multiple VPC PF rules on acquired public ip in diff't 
networks when VpcVirtualRouter is stopped
         """
@@ -570,7 +570,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_04_network_services_VPC_CreateMultiplePF(self):
         """ Test Create multiple VPC PF rules on acquired public ip in diff't 
networks when VpcVirtualRouter is running
         """
@@ -598,7 +598,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_05_network_services_VPC_StopDeletePF(self):
         """ Test delete a PF rule in VPC when VpcVirtualRouter is Stopped
         """
@@ -629,7 +629,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_06_network_services_VPC_DeletePF(self):
         """ Test delete a PF rule in VPC when VpcVirtualRouter is Running
         """
@@ -656,7 +656,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_07_network_services_VPC_StopDeleteAllPF(self):
         """ Test delete all PF rules in VPC when VpcVirtualRouter is Stopped
         """
@@ -690,7 +690,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_08_network_services_VPC_DeleteAllPF(self):
         """ Test delete all PF rules in VPC when VpcVirtualRouter is Running
         """
@@ -720,7 +720,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_09_network_services_VPC_StopDeleteAllMultiplePF(self):
         """ Test delete all PF rules in VPC across multiple networks when 
VpcVirtualRouter is Stopped
         """
@@ -787,7 +787,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_4, public_ip_4, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_10_network_services_VPC_DeleteAllMultiplePF(self):
         """ Test delete all PF rules in VPC across multiple networks when 
VpcVirtualRouter is Running
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vpc_network_staticnatrule.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_network_staticnatrule.py 
b/test/integration/component/test_vpc_network_staticnatrule.py
index 65cb044..d75044b 100644
--- a/test/integration/component/test_vpc_network_staticnatrule.py
+++ b/test/integration/component/test_vpc_network_staticnatrule.py
@@ -494,7 +494,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         return nwacl_nat
 
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_01_VPC_StaticNatRuleCreateStoppedState(self):
         """ Test case no extra : 
         """
@@ -522,7 +522,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
 
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_VPC_CreateStaticNatRule(self):
         """ Test case no 229 : Create Static NAT Rule for a single virtual 
network of 
             a VPC using a new Public IP Address available with the VPC when 
the Virtual Router is in Running State
@@ -545,7 +545,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_1, public_ip_1, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_VPC_StopCreateMultipleStaticNatRuleStopppedState(self):
         """ Test case no extra : Create Static Nat Rule rules for a 
two/multiple virtual networks of a VPC using
                 a new Public IP Address available with the VPC when Virtual 
Router is in Stopped State
@@ -585,7 +585,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_04_VPC_CreateMultipleStaticNatRule(self):
         """ Test case no 230 : Create Static NAT Rules for a two/multiple 
virtual networks of 
             a VPC using a new Public IP Address available with the VPC when 
the Virtual Router is in Running State
@@ -618,7 +618,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_ssh_into_vm(vm_2, public_ip_2, testnegative=False)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_05_network_services_VPC_DeleteAllPF(self):
         """ Test case no 232: Delete all Static NAT Rules for a single virtual 
network of 
             a VPC belonging to a single Public IP Address when the Virtual 
Router is in Running State
@@ -650,7 +650,7 @@ class TestVPCNetworkPFRules(cloudstackTestCase):
         self.check_wget_from_vm(vm_1, public_ip_1, testnegative=True)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_06_network_services_VPC_DeleteAllMultiplePF(self):
         """ Test case no 233: Delete all Static NAT rules for two/multiple 
virtual networks of a VPC. 
             Observe the status of the Public IP Addresses of the rules when 
the Virtual Router is in Running State.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vpc_offerings.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_offerings.py 
b/test/integration/component/test_vpc_offerings.py
index f190773..e62aeb5 100644
--- a/test/integration/component/test_vpc_offerings.py
+++ b/test/integration/component/test_vpc_offerings.py
@@ -234,7 +234,7 @@ class TestVPCOffering(cloudstackTestCase):
         self.debug("VPC network created successfully - %s" % network.name)
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_01_create_vpc_offering(self):
         """ Test create VPC offering
         """
@@ -254,7 +254,7 @@ class TestVPCOffering(cloudstackTestCase):
         self.validate_vpc_offering(vpc_off)
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_02_deploy_vms_in_vpc_nw(self):
         """Test deploy virtual machines in VPC networks"""
 
@@ -456,7 +456,7 @@ class TestVPCOffering(cloudstackTestCase):
         # TODO: Remote Access VPN is not yet supported in VPC
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_03_vpc_off_without_lb(self):
         """Test VPC offering without load balancing service"""
 
@@ -577,7 +577,7 @@ class TestVPCOffering(cloudstackTestCase):
                                 )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_04_vpc_off_without_static_nat(self):
         """Test VPC offering without static NAT service"""
 
@@ -696,7 +696,7 @@ class TestVPCOffering(cloudstackTestCase):
                               )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_05_vpc_off_without_pf(self):
         """Test VPC offering without port forwarding service"""
 
@@ -814,7 +814,7 @@ class TestVPCOffering(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_06_vpc_off_invalid_services(self):
         """Test VPC offering with invalid services"""
 
@@ -846,7 +846,7 @@ class TestVPCOffering(cloudstackTestCase):
             self.fail("Failed to create the VPC offering - %s" % e)
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_07_update_vpc_off(self):
         """Test update VPC offering"""
 
@@ -935,7 +935,7 @@ class TestVPCOffering(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_08_list_vpc_off(self):
         """Test list VPC offering"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/test/integration/component/test_vpc_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpc_routers.py 
b/test/integration/component/test_vpc_routers.py
index 3cf537a..5d3aae9 100644
--- a/test/integration/component/test_vpc_routers.py
+++ b/test/integration/component/test_vpc_routers.py
@@ -342,7 +342,7 @@ class TestVPCRoutersBasic(cloudstackTestCase):
                          " still %s" % (host.id, router.hostid))
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_01_stop_start_router_after_creating_vpc(self):
         """ Test to stop and start router after creation of VPC
         """
@@ -420,7 +420,7 @@ class TestVPCRoutersBasic(cloudstackTestCase):
         
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_02_reboot_router_after_creating_vpc(self):
         """ Test to reboot the router after creating a VPC
         """
@@ -469,7 +469,7 @@ class TestVPCRoutersBasic(cloudstackTestCase):
         return
 
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_migrate_router_after_creating_vpc(self):
         """ Test migration of router to another host after creating VPC """
 
@@ -490,7 +490,7 @@ class TestVPCRoutersBasic(cloudstackTestCase):
         self.migrate_router(routers[0])
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_04_change_service_offerring_vpc(self):
         """ Tests to change service offering of the Router after
             creating a vpc
@@ -551,7 +551,7 @@ class TestVPCRoutersBasic(cloudstackTestCase):
                         ) 
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_05_destroy_router_after_creating_vpc(self):
         """ Test to destroy the router after creating a VPC
            """
@@ -1073,7 +1073,7 @@ class TestVPCRouterOneNetwork(cloudstackTestCase):
         
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_02_reboot_router_after_addition_of_one_guest_network(self):
         """ Test reboot of router after addition of one guest network
            """
@@ -1140,7 +1140,7 @@ class TestVPCRouterOneNetwork(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "intervlan", "provisioning"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="true")
     def test_03_migrate_router_after_addition_of_one_guest_network(self):
         """ Test migrate of router after addition of one guest network
            """
@@ -1183,7 +1183,7 @@ class TestVPCRouterOneNetwork(cloudstackTestCase):
         self.migrate_router(routers[0])
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_04_chg_srv_off_router_after_addition_of_one_guest_network(self):
         """ Test to change service offering of router after addition of one 
guest network
            """
@@ -1261,7 +1261,7 @@ class TestVPCRouterOneNetwork(cloudstackTestCase):
                         ) 
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_05_destroy_router_after_addition_of_one_guest_network(self):
         """ Test destroy of router after addition of one guest network
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/598e9b1c/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 edc13ac..54586d0 100644
--- a/test/integration/component/test_vpc_vms_deployment.py
+++ b/test/integration/component/test_vpc_vms_deployment.py
@@ -356,7 +356,7 @@ class TestVMDeployVPC(cloudstackTestCase):
         nat_rule.delete(self.apiclient)
         return vm
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_01_deploy_vms_in_network(self):
         """ Test deploy VMs in VPC networks
         """
@@ -570,7 +570,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_02_deploy_vms_delete_network(self):
         """ Test deploy VMs in VPC networks and delete one of the network
         """
@@ -822,7 +822,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_03_deploy_vms_delete_add_network(self):
         """ Test deploy VMs, delete one of the network and add another one
         """
@@ -1091,7 +1091,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_04_deploy_vms_delete_add_network_noLb(self):
         """ Test deploy VMs, delete one network without LB and add another one
         """
@@ -1385,7 +1385,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_05_create_network_max_limit(self):
         """ Test create networks in VPC upto maximum limit for hypervisor
         """
@@ -1556,7 +1556,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_06_delete_network_vm_running(self):
         """ Test delete network having running instances in VPC
         """
@@ -1798,7 +1798,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                              )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_07_delete_network_with_rules(self):
         """ Test delete network that has PF/staticNat/LB rules/Network Acl
         """
@@ -2372,7 +2372,7 @@ class TestVMDeployVPC(cloudstackTestCase):
                          )
         return
 
-    @attr(tags=["advanced", "intervlan", "selfservice"])
+    @attr(tags=["advanced", "intervlan"], required_hardware="false")
     def test_08_ip_reallocation_CS5986(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_vpn_users.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vpn_users.py 
b/test/integration/component/test_vpn_users.py
index c8b3a2d..72e10a4 100644
--- a/test/integration/component/test_vpn_users.py
+++ b/test/integration/component/test_vpn_users.py
@@ -259,7 +259,7 @@ class TestVPNUsers(cloudstackTestCase):
         self.debug("Limit exceeded exception raised!")
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_02_use_vpn_port(self):
         """Test create VPN when L2TP port in use"""
 
@@ -290,7 +290,7 @@ class TestVPNUsers(cloudstackTestCase):
         self.debug("Create VPN connection failed! Test successful!")
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_03_enable_vpn_use_port(self):
         """Test create NAT rule when VPN when L2TP enabled"""
 
@@ -316,7 +316,7 @@ class TestVPNUsers(cloudstackTestCase):
         self.debug("Create NAT rule failed! Test successful!")
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_04_add_new_users(self):
         """Test add new users to existing VPN"""
 
@@ -344,7 +344,7 @@ class TestVPNUsers(cloudstackTestCase):
             self.fail("Failed to create new VPN user: %s" % e)
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_05_add_duplicate_user(self):
         """Test add duplicate user to existing VPN"""
 
@@ -367,7 +367,7 @@ class TestVPNUsers(cloudstackTestCase):
             self.create_VPN_Users(rand_name=False)
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_06_add_VPN_user_global_admin(self):
         """Test as global admin, add a new VPN user to an existing VPN entry
             that was created by another account."""
@@ -410,7 +410,7 @@ class TestVPNUsers(cloudstackTestCase):
                                                                             e)
         return
 
-    @attr(tags=["advanced", "advancedns", "selfservice"])
+    @attr(tags=["advanced", "advancedns"], required_hardware="false")
     def test_07_add_VPN_user_domain_admin(self):
         """Test as domain admin, add a new VPN user to an existing VPN entry
             that was created by another account."""

Reply via email to