Merge "Ironic update_provider_tree: restore traits override"

This commit is contained in:
Zuul 2018-06-26 14:56:18 +00:00 committed by Gerrit Code Review
commit b10e9e48a1
2 changed files with 12 additions and 3 deletions

View File

@ -1014,6 +1014,14 @@ class IronicDriverTestCase(test.NoDBTestCase):
result = self.ptree.data(mock.sentinel.nodename).traits
self.assertEqual(set(traits), result)
# A different set of traits - we should replace (for now).
traits = ['trait1', 'trait7', 'trait42']
mock_nfc.return_value = _get_cached_node(
uuid=mock.sentinel.nodename, traits=traits)
self.driver.update_provider_tree(self.ptree, mock.sentinel.nodename)
result = self.ptree.data(mock.sentinel.nodename).traits
self.assertEqual(set(traits), result)
@mock.patch.object(FAKE_CLIENT.node, 'get')
@mock.patch.object(FAKE_CLIENT.node, 'list')
@mock.patch.object(objects.InstanceList, 'get_uuids_by_host')

View File

@ -801,9 +801,10 @@ class IronicDriver(virt_driver.ComputeDriver):
}
provider_tree.update_inventory(nodename, result)
# TODO(efried): *Unset* traits that are "owned" by ironic virt but not
# set on the node object.
provider_tree.add_traits(nodename, *node.traits)
# TODO(efried): *Unset* (remove_traits) if "owned" by ironic virt but
# not set on the node object, and *set* (add_traits) only those both
# owned by ironic virt and set on the node object.
provider_tree.update_traits(nodename, node.traits)
def get_available_resource(self, nodename):
"""Retrieve resource information.