diff options
| author | Dan Prince <dprince@redhat.com> | 2012-08-07 12:31:48 -0400 |
|---|---|---|
| committer | Dan Prince <dprince@redhat.com> | 2012-08-09 13:16:43 -0400 |
| commit | c35b853f0fa9d41c50dd21c858bf9ffca1318953 (patch) | |
| tree | b4749cea3359a4653a51cff6efbd0e9af205f546 | |
| parent | eb1538763450d7d0f95d4c29ff54f4bf7defaa09 (diff) | |
Fix the inject_metadata_into_fs in the disk API.
Updates the _inject_metadata_into_fs in the disk/api.py so
that it uses dict-style access. This resolves an issue introduced
in a recent no-db-messaging change.
Includes new test case.
Fixes LP Bug #1034040.
Change-Id: I1bc90a8331419709ab71e5da8c48cd1d54c40f9e
| -rw-r--r-- | nova/tests/test_virt.py | 11 | ||||
| -rw-r--r-- | nova/virt/disk/api.py | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 1a1e4cd40..8646b86b1 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -24,6 +24,8 @@ from nova import utils from nova.virt.disk import api as disk_api from nova.virt import driver +from nova.openstack.common import jsonutils + FLAGS = flags.FLAGS @@ -178,3 +180,12 @@ class TestVirtDiskPaths(test.TestCase): disk_api._inject_file_into_fs, '/tmp', '/etc/../../../../etc/passwd', 'hax') + + def test_inject_metadata(self): + with utils.tempdir() as tmpdir: + meta_objs = [{"key": "foo", "value": "bar"}] + metadata = {"foo": "bar"} + disk_api._inject_metadata_into_fs(meta_objs, tmpdir) + json_file = os.path.join(tmpdir, 'meta.js') + json_data = jsonutils.loads(open(json_file).read()) + self.assertEqual(metadata, json_data) diff --git a/nova/virt/disk/api.py b/nova/virt/disk/api.py index 5d3c9c6c9..f1c1c409c 100644 --- a/nova/virt/disk/api.py +++ b/nova/virt/disk/api.py @@ -388,7 +388,7 @@ def _inject_file_into_fs(fs, path, contents, append=False): def _inject_metadata_into_fs(metadata, fs): - metadata = dict([(m.key, m.value) for m in metadata]) + metadata = dict([(m['key'], m['value']) for m in metadata]) _inject_file_into_fs(fs, 'meta.js', jsonutils.dumps(metadata)) |
