diff options
author | John Garbutt <john.garbutt@rackspace.com> | 2013-06-12 13:21:54 +0100 |
---|---|---|
committer | John Garbutt <john.garbutt@rackspace.com> | 2013-06-14 14:47:49 +0100 |
commit | 5e0239f93407e03f45a0514c15969509931b9c9c (patch) | |
tree | ca3df0bc454ba74a73b672d8c9da442527f03335 | |
parent | c9cb610b8f6dc1d8fda64f1eba1e2a1d9bf2c53a (diff) | |
download | nova-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.py | 10 | ||||
-rw-r--r-- | nova/virt/xenapi/agent.py | 2 |
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: |