diff --git a/kong/tests/test_flavors.py b/kong/tests/test_flavors.py
index 73b70a9..07cb623 100644
--- a/kong/tests/test_flavors.py
+++ b/kong/tests/test_flavors.py
@@ -73,6 +73,7 @@
         for flavor in flavors:
             detailed_flavor = self._show_flavor(flavor['id'])
             self._assert_flavor_entity_detailed(detailed_flavor)
+    test_show_flavor.tags = ['nova', 'glance']
 
     def test_index_flavors_basic(self):
         """List all flavors"""
@@ -81,6 +82,7 @@
 
         for flavor in flavors:
             self._assert_flavor_entity_basic(flavor)
+    test_index_flavors_basic.tags = ['nova', 'glance']
 
     def test_index_flavors_detailed(self):
         """List all flavors in detail"""
@@ -94,3 +96,4 @@
 
         for flavor in flavors:
             self._assert_flavor_entity_detailed(flavor)
+    test_index_flavors_detailed.tags = ['nova', 'glance']
diff --git a/kong/tests/test_images.py b/kong/tests/test_images.py
index 7d2c9ce..8f7b9cd 100644
--- a/kong/tests/test_images.py
+++ b/kong/tests/test_images.py
@@ -74,6 +74,7 @@
 
         for image in resp_body['images']:
             self._assert_image_entity_basic(image)
+    test_index.tags = ['nova', 'glance']
 
     def test_detail(self):
         """List all images in detail"""
@@ -86,3 +87,4 @@
 
         for image in resp_body['images']:
             self._assert_image_entity_detailed(image)
+    test_detail.tags = ['nova', 'glance']
diff --git a/kong/tests/test_server_actions.py b/kong/tests/test_server_actions.py
index f995c67..b8f81db 100644
--- a/kong/tests/test_server_actions.py
+++ b/kong/tests/test_server_actions.py
@@ -109,6 +109,7 @@
         # SSH and verify uptime is less than before
         post_reboot_time_started = self._get_boot_time()
         self.assertTrue(initial_time_started < post_reboot_time_started)
+    test_reboot_server_soft.tags = ['nova']
 
     def test_reboot_server_hard(self):
         """Reboot a server (HARD)"""
@@ -132,6 +133,7 @@
         # SSH and verify uptime is less than before
         post_reboot_time_started = self._get_boot_time()
         self.assertTrue(initial_time_started < post_reboot_time_started)
+    test_reboot_server_hard.tags = ['nova']
 
     def test_change_server_password(self):
         """Change root password of a server"""
@@ -152,6 +154,7 @@
 
         # SSH into server using new password
         self._assert_ssh_password('test123')
+    test_change_server_password.tags = ['nova']
 
     def test_rebuild(self):
         """Rebuild a server"""
@@ -236,6 +239,7 @@
 
         # make sure file is gone
         self.assertEqual(self._read_file(FILENAME, specified_password), '')
+    test_rebuild.tags = ['nova']
 
     @unittest.skipIf(not multi_node, 'Multiple compute nodes required')
     def test_resize_server_confirm(self):
@@ -270,6 +274,7 @@
         # Ensure API still reports new flavor
         server = self.os.nova.get_server(self.server_id)
         self.assertEqual(self.flavor_ref_alt, server['flavor']['id'])
+    test_resize_server_confirm.tags = ['nova']
 
     @unittest.skipIf(not multi_node, 'Multiple compute nodes required')
     def test_resize_server_revert(self):
@@ -305,6 +310,7 @@
         # Ensure flavor ref was reverted to original
         server = self.os.nova.get_server(self.server_id)
         self.assertEqual(self.flavor_ref, server['flavor']['id'])
+    test_resize_server_revert.tags = ['nova']
 
 
 class SnapshotTests(unittest.TestCase):
@@ -366,6 +372,7 @@
 
         # Cleaning up
         self.os.nova.request('DELETE', '/images/%s' % snapshot_id)
+    test_snapshot_server_active.tags = ['nova', 'glance']
 
     def test_snapshot_server_inactive(self):
         """Ensure inability to snapshot server in BUILD state"""
@@ -381,3 +388,4 @@
         snapshot_id = response['location'].rsplit('/', 1)[1]
         # Delete image for now, won't need this once correct status code is in
         self.os.nova.request('DELETE', '/images/%s' % snapshot_id)
+    test_snapshot_server_inactive.tags = ['nova', 'glance']
diff --git a/kong/tests/test_servers.py b/kong/tests/test_servers.py
index fa2eae6..c9547b0 100644
--- a/kong/tests/test_servers.py
+++ b/kong/tests/test_servers.py
@@ -118,6 +118,7 @@
         self.assertTrue(client.test_connection_auth())
 
         self.os.nova.delete_server(server['id'])
+    test_build_server.tags = ['nova', 'glance']
 
     def test_build_server_with_file(self):
         """Build a server with an injected file"""
@@ -176,6 +177,7 @@
         self.assertEqual(injected_file, file_contents)
 
         self.os.nova.delete_server(server['id'])
+    test_build_server_with_file.tags = ['nova', 'glance']
 
     def test_build_server_with_password(self):
         """Build a server with a password"""
@@ -229,6 +231,7 @@
         self.assertTrue(client.test_connection_auth())
 
         self.os.nova.delete_server(server['id'])
+    test_build_server_with_password.tags = ['nova', 'glance']
 
     def test_delete_server_building(self):
         """Delete a server while building"""
@@ -253,6 +256,7 @@
             self.os.nova.poll_request_status('GET', url, 404)
         except exceptions.TimeoutException:
             self.fail("Server deletion timed out")
+    test_delete_server_building.tags = ['nova', 'glance']
 
     def test_delete_server_active(self):
         """Delete a server after fully built"""
@@ -278,6 +282,7 @@
             self.os.nova.poll_request_status('GET', url, 404)
         except exceptions.TimeoutException:
             self.fail("Server deletion timed out")
+    test_delete_server_active.tags = ['nova', 'glance']
 
     def test_update_server_name(self):
         """Change the name of a server"""
@@ -321,6 +326,7 @@
         self.assertEqual('updatedtestserver', data['server']['name'])
 
         self.os.nova.delete_server(server_id)
+    test_update_server_name.tags = ['nova', 'glance']
 
     def test_create_server_invalid_image(self):
         """Create a server with an unknown image"""
@@ -346,6 +352,7 @@
         }
         # KNOWN-ISSUE - The error message is confusing and should be improved
         #self.assertEqual(fault, expected_fault)
+    test_create_server_invalid_image.tags = ['nova', 'glance']
 
     def test_create_server_invalid_flavor(self):
         """Create a server with an unknown flavor"""
@@ -371,3 +378,4 @@
         }
         # KNOWN-ISSUE lp804084
         #self.assertEqual(fault, expected_fault)
+    test_create_server_invalid_flavor.tags = ['nova', 'glance']
