diff --git a/requires.py b/requires.py index fcbf2cc..9b72d97 100644 --- a/requires.py +++ b/requires.py @@ -111,9 +111,11 @@ class HAClusterRequires(RelationBase): """ if mcastport is None: mcastport = 4440 - resources = self.get_local('resources') + resources_dict = self.get_local('resources') self.bind_on(iface=iface, mcastport=mcastport) - self.manage_resources(resources) + if resources_dict: + resources = relations.hacluster.common.CRM(**resources_dict) + self.manage_resources(resources) def delete_resource(self, resource_name): resource_dict = self.get_local('resources') diff --git a/unit_tests/test_requires.py b/unit_tests/test_requires.py index 652d0d3..6cea5ae 100644 --- a/unit_tests/test_requires.py +++ b/unit_tests/test_requires.py @@ -217,20 +217,36 @@ class TestHAClusterRequires(unittest.TestCase): self.assertFalse(self.set_remote.called) def test_bind_resources(self): - self.patch_kr('get_local', 'resources') + expected = { + 'colocations': {}, 'groups': {}, + 'clones': {}, 'orders': {}, + 'resource_params': {}, 'delete_resources': [], + 'init_services': [], 'locations': {}, + 'some': 'resources', 'systemd_services': [], + 'resources': {}, 'ms': {} + } + self.patch_kr('get_local', expected) self.patch_kr('bind_on') self.patch_kr('manage_resources') self.cr.bind_resources() self.bind_on.assert_called_once_with(iface=None, mcastport=4440) - self.manage_resources.assert_called_once_with('resources') + self.manage_resources.assert_called_once_with(expected) def test_bind_resources_no_defaults(self): - self.patch_kr('get_local', 'resources') + expected = { + 'colocations': {}, 'groups': {}, + 'clones': {}, 'orders': {}, + 'resource_params': {}, 'delete_resources': [], + 'init_services': [], 'locations': {}, + 'some': 'resources', 'systemd_services': [], + 'resources': {}, 'ms': {} + } + self.patch_kr('get_local', expected) self.patch_kr('bind_on') self.patch_kr('manage_resources') self.cr.bind_resources(iface='tr34', mcastport=111) self.bind_on.assert_called_once_with(iface='tr34', mcastport=111) - self.manage_resources.assert_called_once_with('resources') + self.manage_resources.assert_called_once_with(expected) def test_delete_resource(self): existing_data = {