summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2012-07-27 07:04:58 +0000
committerChris Behrens <cbehrens@codestud.com>2012-07-27 07:12:28 +0000
commit6bff9a5f4455cff14aa9c7c1fbf8e9fe36d203aa (patch)
tree90d5a6f5626a205d56b558fd1d365a6bf9cb3773 /nova/tests
parent1ca9d3c9df58f7ea28609cccac97a74d28fda4db (diff)
Sanitize xenstore keys for metadata injection
Xenstore only allows certain characters in key names. Change disallowed characters as well as '/' to '_'. Fixes bug 1029773 Change-Id: I04055bfbe662f3f3e9d90336d03670aa5468e780
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/test_xenapi.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py
index 61a4c8149..47a6bfcc6 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/test_xenapi.py
@@ -2256,7 +2256,10 @@ class XenAPIInjectMetadataTestCase(stubs.XenAPITestBase):
# to xenstore
instance = dict(metadata=[FakeMetaItem("a", 1),
FakeMetaItem("b", 2),
- FakeMetaItem("c", 3)],
+ FakeMetaItem("c", 3),
+ # Check xenstore key sanitizing
+ FakeMetaItem("hi.there", 4),
+ FakeMetaItem("hi!t.e/e", 5)],
system_metadata=[FakeMetaItem("sys_a", 1),
FakeMetaItem("sys_b", 2),
FakeMetaItem("sys_c", 3)])
@@ -2267,12 +2270,15 @@ class XenAPIInjectMetadataTestCase(stubs.XenAPITestBase):
'vm-data/user-metadata/a': '1',
'vm-data/user-metadata/b': '2',
'vm-data/user-metadata/c': '3',
+ 'vm-data/user-metadata/hi_there': '4',
+ 'vm-data/user-metadata/hi_t_e_e': '5',
},
'ephem': {},
})
def test_change_instance_metadata_add(self):
- diff = dict(d=['+', 4])
+ # Test XenStore key sanitizing here, too.
+ diff = {'test.key': ['+', 4]}
self.xenstore = {
'persist': {
'vm-data/user-metadata/a': '1',
@@ -2293,13 +2299,13 @@ class XenAPIInjectMetadataTestCase(stubs.XenAPITestBase):
'vm-data/user-metadata/a': '1',
'vm-data/user-metadata/b': '2',
'vm-data/user-metadata/c': '3',
- 'vm-data/user-metadata/d': '4',
+ 'vm-data/user-metadata/test_key': '4',
},
'ephem': {
'vm-data/user-metadata/a': '1',
'vm-data/user-metadata/b': '2',
'vm-data/user-metadata/c': '3',
- 'vm-data/user-metadata/d': '4',
+ 'vm-data/user-metadata/test_key': '4',
},
})