diff options
| author | Chris Behrens <cbehrens@codestud.com> | 2012-07-27 07:04:58 +0000 |
|---|---|---|
| committer | Chris Behrens <cbehrens@codestud.com> | 2012-07-27 07:12:28 +0000 |
| commit | 6bff9a5f4455cff14aa9c7c1fbf8e9fe36d203aa (patch) | |
| tree | 90d5a6f5626a205d56b558fd1d365a6bf9cb3773 /nova/tests | |
| parent | 1ca9d3c9df58f7ea28609cccac97a74d28fda4db (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.py | 14 |
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', }, }) |
