compute: Use valid extra specs to test 'os-extra_specs' API

In Ussuri, nova is hoping to implement support for extra spec
validation. If or when this is completed, only extra specs that are
recognised will be permitted by default. We're currently using a number
of arbitrary extra specs to validate the 'os-extra_specs' API meaning we
will fall afoul of this validation. Head the issue off now by using
recognized extra specs, namely 'hw:numa_nodes' and 'hw:cpu_policy',
instead.

Change-Id: I95a1050d6a5e2e40793ae7f18ff0d326455b4b36
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
diff --git a/tempest/api/compute/admin/test_flavors_extra_specs.py b/tempest/api/compute/admin/test_flavors_extra_specs.py
index 4d27a22..789965e 100644
--- a/tempest/api/compute/admin/test_flavors_extra_specs.py
+++ b/tempest/api/compute/admin/test_flavors_extra_specs.py
@@ -64,7 +64,7 @@
         # Test to SET, GET, UPDATE, SHOW, UNSET flavor extra
         # spec as a user with admin privileges.
         # Assigning extra specs values that are to be set
-        specs = {"key1": "value1", "key2": "value2"}
+        specs = {'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'}
         # SET extra specs to the flavor created in setUp
         set_body = self.admin_flavors_client.set_flavor_extra_spec(
             self.flavor['id'], **specs)['extra_specs']
@@ -74,30 +74,33 @@
             self.flavor['id'])['extra_specs'])
         self.assertEqual(get_body, specs)
 
-        # UPDATE the value of the extra specs key1
-        update_body = \
-            self.admin_flavors_client.update_flavor_extra_spec(
-                self.flavor['id'], "key1", key1="value")
-        self.assertEqual({"key1": "value"}, update_body)
+        # UPDATE the value of the extra specs 'hw:numa_nodes'
+        update_body = self.admin_flavors_client.update_flavor_extra_spec(
+            self.flavor['id'], "hw:numa_nodes", **{'hw:numa_nodes': '2'})
+        self.assertEqual({'hw:numa_nodes': '2'}, update_body)
 
-        # GET extra specs and verify the value of the key2
+        # GET extra specs and verify the value of the 'hw:cpu_policy'
         # is the same as before
         get_body = self.admin_flavors_client.list_flavor_extra_specs(
             self.flavor['id'])['extra_specs']
-        self.assertEqual(get_body, {"key1": "value", "key2": "value2"})
+        self.assertEqual(
+            get_body, {'hw:numa_nodes': '2', 'hw:cpu_policy': 'shared'}
+        )
 
         # UNSET extra specs that were set in this test
-        self.admin_flavors_client.unset_flavor_extra_spec(self.flavor['id'],
-                                                          "key1")
-        self.admin_flavors_client.unset_flavor_extra_spec(self.flavor['id'],
-                                                          "key2")
+        self.admin_flavors_client.unset_flavor_extra_spec(
+            self.flavor['id'], 'hw:numa_nodes'
+        )
+        self.admin_flavors_client.unset_flavor_extra_spec(
+            self.flavor['id'], 'hw:cpu_policy'
+        )
         get_body = self.admin_flavors_client.list_flavor_extra_specs(
             self.flavor['id'])['extra_specs']
         self.assertEmpty(get_body)
 
     @decorators.idempotent_id('a99dad88-ae1c-4fba-aeb4-32f898218bd0')
     def test_flavor_non_admin_get_all_keys(self):
-        specs = {"key1": "value1", "key2": "value2"}
+        specs = {'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'}
         self.admin_flavors_client.set_flavor_extra_spec(self.flavor['id'],
                                                         **specs)
         body = (self.flavors_client.list_flavor_extra_specs(
@@ -108,11 +111,14 @@
 
     @decorators.idempotent_id('12805a7f-39a3-4042-b989-701d5cad9c90')
     def test_flavor_non_admin_get_specific_key(self):
+        specs = {'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'}
         body = self.admin_flavors_client.set_flavor_extra_spec(
-            self.flavor['id'], key1="value1", key2="value2")['extra_specs']
-        self.assertEqual(body['key1'], 'value1')
-        self.assertIn('key2', body)
+            self.flavor['id'], **specs
+        )['extra_specs']
+        self.assertEqual(body['hw:numa_nodes'], '1')
+        self.assertIn('hw:cpu_policy', body)
+
         body = self.flavors_client.show_flavor_extra_spec(
-            self.flavor['id'], 'key1')
-        self.assertEqual(body['key1'], 'value1')
-        self.assertNotIn('key2', body)
+            self.flavor['id'], 'hw:numa_nodes')
+        self.assertEqual(body['hw:numa_nodes'], '1')
+        self.assertNotIn('hw:cpu_policy', body)
diff --git a/tempest/api/compute/admin/test_flavors_extra_specs_negative.py b/tempest/api/compute/admin/test_flavors_extra_specs_negative.py
index 5cde39e..9f89293 100644
--- a/tempest/api/compute/admin/test_flavors_extra_specs_negative.py
+++ b/tempest/api/compute/admin/test_flavors_extra_specs_negative.py
@@ -68,32 +68,36 @@
         self.assertRaises(lib_exc.Forbidden,
                           self.flavors_client.set_flavor_extra_spec,
                           self.flavor['id'],
-                          key1="value1", key2="value2")
+                          **{'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'})
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('1ebf4ef8-759e-48fe-a801-d451d80476fb')
     def test_flavor_non_admin_update_specific_key(self):
         # non admin user is not allowed to update flavor extra spec
         body = self.admin_flavors_client.set_flavor_extra_spec(
-            self.flavor['id'], key1="value1", key2="value2")['extra_specs']
-        self.assertEqual(body['key1'], 'value1')
+            self.flavor['id'],
+            **{'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'}
+        )['extra_specs']
+        self.assertEqual(body['hw:numa_nodes'], '1')
         self.assertRaises(lib_exc.Forbidden,
                           self.flavors_client.
                           update_flavor_extra_spec,
                           self.flavor['id'],
-                          'key1',
-                          key1='value1_new')
+                          'hw:numa_nodes',
+                          **{'hw:numa_nodes': '1'})
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('28f12249-27c7-44c1-8810-1f382f316b11')
     def test_flavor_non_admin_unset_keys(self):
         self.admin_flavors_client.set_flavor_extra_spec(
-            self.flavor['id'], key1="value1", key2="value2")
+            self.flavor['id'],
+            **{'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'}
+        )
 
         self.assertRaises(lib_exc.Forbidden,
                           self.flavors_client.unset_flavor_extra_spec,
                           self.flavor['id'],
-                          'key1')
+                          'hw:numa_nodes')
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('440b9f3f-3c7f-4293-a106-0ceda350f8de')
@@ -101,7 +105,7 @@
         self.assertRaises(lib_exc.NotFound,
                           self.admin_flavors_client.unset_flavor_extra_spec,
                           self.flavor['id'],
-                          'nonexistent_key')
+                          'hw:cpu_thread_policy')
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('329a7be3-54b2-48be-8052-bf2ce4afd898')
@@ -109,7 +113,7 @@
         self.assertRaises(lib_exc.NotFound,
                           self.flavors_client.show_flavor_extra_spec,
                           self.flavor['id'],
-                          "nonexistent_key")
+                          'hw:cpu_thread_policy')
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('25b822b8-9f49-44f6-80de-d99f0482e5cb')
@@ -118,8 +122,8 @@
         self.assertRaises(lib_exc.BadRequest,
                           self.admin_flavors_client.update_flavor_extra_spec,
                           self.flavor['id'],
-                          "key2",
-                          key1="value")
+                          'hw:numa_nodes',
+                          **{'hw:cpu_policy': 'shared'})
 
     @decorators.attr(type=['negative'])
     @decorators.idempotent_id('f5889590-bf66-41cc-b4b1-6e6370cfd93f')
@@ -128,6 +132,5 @@
         self.assertRaises(lib_exc.BadRequest,
                           self.admin_flavors_client.update_flavor_extra_spec,
                           self.flavor['id'],
-                          "key1",
-                          key1="value",
-                          key2="value")
+                          'hw:numa_nodes',
+                          **{'hw:numa_nodes': '1', 'hw:cpu_policy': 'shared'})