summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-20 23:43:13 +0000
committerGerrit Code Review <review@openstack.org>2012-12-20 23:43:13 +0000
commit90b6b82dc3c8f32df00a66fcff9deb52aa17c117 (patch)
tree012fb8e4d1142f1d548a1e52d2b66abcdc948d70
parentff04ded017802af199fa672ad4b673f46d98ca27 (diff)
parent690202166f43281bd4439750eaec5262692454bb (diff)
downloadnova-90b6b82dc3c8f32df00a66fcff9deb52aa17c117.tar.gz
nova-90b6b82dc3c8f32df00a66fcff9deb52aa17c117.tar.xz
nova-90b6b82dc3c8f32df00a66fcff9deb52aa17c117.zip
Merge "add 'random_seed' entry to instance metadata"
-rw-r--r--nova/api/metadata/base.py3
-rw-r--r--nova/tests/test_metadata.py15
2 files changed, 18 insertions, 0 deletions
diff --git a/nova/api/metadata/base.py b/nova/api/metadata/base.py
index 1c316bf9c..2377da7b7 100644
--- a/nova/api/metadata/base.py
+++ b/nova/api/metadata/base.py
@@ -317,6 +317,9 @@ class InstanceMetadata():
metadata['launch_index'] = self.instance['launch_index']
metadata['availability_zone'] = self.availability_zone
+ if self._check_os_version(GRIZZLY, version):
+ metadata['random_seed'] = base64.b64encode(os.urandom(512))
+
data = {
MD_JSON_NAME: json.dumps(metadata),
}
diff --git a/nova/tests/test_metadata.py b/nova/tests/test_metadata.py
index 39c84c1d8..1f2ea4bc5 100644
--- a/nova/tests/test_metadata.py
+++ b/nova/tests/test_metadata.py
@@ -347,6 +347,21 @@ class OpenStackMetadataTestCase(test.TestCase):
self.assertRaises(base.InvalidMetadataPath,
mdinst.lookup, "/openstack/2012-08-10/user_data")
+ def test_random_seed(self):
+ inst = copy(self.instance)
+ mdinst = fake_InstanceMetadata(self.stubs, inst)
+
+ # verify that 2013-04-04 has the 'random' field
+ mdjson = mdinst.lookup("/openstack/2013-04-04/meta_data.json")
+ mddict = json.loads(mdjson)
+
+ self.assertTrue("random_seed" in mddict)
+ self.assertEqual(len(base64.b64decode(mddict["random_seed"])), 512)
+
+ # verify that older version do not have it
+ mdjson = mdinst.lookup("/openstack/2012-08-10/meta_data.json")
+ self.assertFalse("random_seed" in json.loads(mdjson))
+
class MetadataHandlerTestCase(test.TestCase):
"""Test that metadata is returning proper values."""