summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Garbutt <john.garbutt@rackspace.com>2013-06-12 13:21:54 +0100
committerJohn Garbutt <john.garbutt@rackspace.com>2013-06-14 14:47:49 +0100
commit5e0239f93407e03f45a0514c15969509931b9c9c (patch)
treeca3df0bc454ba74a73b672d8c9da442527f03335
parentc9cb610b8f6dc1d8fda64f1eba1e2a1d9bf2c53a (diff)
downloadnova-5e0239f93407e03f45a0514c15969509931b9c9c.tar.gz
nova-5e0239f93407e03f45a0514c15969509931b9c9c.tar.xz
nova-5e0239f93407e03f45a0514c15969509931b9c9c.zip
xenapi: ensure agent check respects image flags
The tests assumed sys_meta was in a simpler format when accessed on the compute node. This change fixes the code to work with the actual format of sys_meta. Fixes bug 1190198 Change-Id: I31095e25bc86c8a475a58a7325e1ff2b3ae8e15c
-rw-r--r--nova/tests/virt/xenapi/test_agent.py10
-rw-r--r--nova/virt/xenapi/agent.py2
2 files changed, 6 insertions, 6 deletions
diff --git a/nova/tests/virt/xenapi/test_agent.py b/nova/tests/virt/xenapi/test_agent.py
index 9a4d7c345..c81c9ec79 100644
--- a/nova/tests/virt/xenapi/test_agent.py
+++ b/nova/tests/virt/xenapi/test_agent.py
@@ -24,28 +24,28 @@ class AgentEnabledCase(test.TestCase):
def test_agent_is_present(self):
self.flags(xenapi_use_agent_default=False)
instance = {"system_metadata":
- {"image_xenapi_use_agent": "true"}}
+ [{"key": "image_xenapi_use_agent", "value": "true"}]}
self.assertTrue(agent.should_use_agent(instance))
def test_agent_is_disabled(self):
self.flags(xenapi_use_agent_default=True)
instance = {"system_metadata":
- {"image_xenapi_use_agent": "false"}}
+ [{"key": "image_xenapi_use_agent", "value": "false"}]}
self.assertFalse(agent.should_use_agent(instance))
def test_agent_uses_deafault_when_prop_invalid(self):
self.flags(xenapi_use_agent_default=True)
instance = {"system_metadata":
- {"image_xenapi_use_agent": "bob"},
+ [{"key": "image_xenapi_use_agent", "value": "bob"}],
"uuid": "uuid"}
self.assertTrue(agent.should_use_agent(instance))
def test_agent_default_not_present(self):
self.flags(xenapi_use_agent_default=False)
- instance = {"system_metadata": {}}
+ instance = {"system_metadata": []}
self.assertFalse(agent.should_use_agent(instance))
def test_agent_default_present(self):
self.flags(xenapi_use_agent_default=True)
- instance = {"system_metadata": {}}
+ instance = {"system_metadata": []}
self.assertTrue(agent.should_use_agent(instance))
diff --git a/nova/virt/xenapi/agent.py b/nova/virt/xenapi/agent.py
index 273c7bb97..c9e011856 100644
--- a/nova/virt/xenapi/agent.py
+++ b/nova/virt/xenapi/agent.py
@@ -328,7 +328,7 @@ def find_guest_agent(base_dir):
def should_use_agent(instance):
- sys_meta = instance["system_metadata"]
+ sys_meta = utils.instance_sys_meta(instance)
if USE_AGENT_SM_KEY not in sys_meta:
return CONF.xenapi_use_agent_default
else: