diff --git a/charmhelpers/contrib/openstack/utils.py b/charmhelpers/contrib/openstack/utils.py index e98be2c5..ee492245 100644 --- a/charmhelpers/contrib/openstack/utils.py +++ b/charmhelpers/contrib/openstack/utils.py @@ -585,7 +585,6 @@ def get_installed_os_version(): return openstack_release().get('OPENSTACK_CODENAME') -@cached def openstack_release(): """Return /etc/os-release in a dict.""" d = {} diff --git a/hooks/nova_cc_context.py b/hooks/nova_cc_context.py index 4f072b1d..b5786791 100644 --- a/hooks/nova_cc_context.py +++ b/hooks/nova_cc_context.py @@ -381,6 +381,15 @@ _victoria_enabled_filters = [ "DifferentHostFilter", "SameHostFilter", ] +_bobcat_enabled_filters = [ + "ComputeFilter", + "ComputeCapabilitiesFilter", + "ImagePropertiesFilter", + "ServerGroupAntiAffinityFilter", + "ServerGroupAffinityFilter", + "DifferentHostFilter", + "SameHostFilter", +] def default_enabled_filters(): @@ -392,6 +401,8 @@ def default_enabled_filters(): """ os_rel = ch_utils.os_release('nova-common') cmp_os_rel = ch_utils.CompareOpenStackReleases(os_rel) + if cmp_os_rel >= 'bobcat': + return _bobcat_enabled_filters if cmp_os_rel >= 'victoria': return _victoria_enabled_filters if cmp_os_rel >= 'pike': diff --git a/unit_tests/test_nova_cc_contexts.py b/unit_tests/test_nova_cc_contexts.py index e75ba89f..09d6c34c 100644 --- a/unit_tests/test_nova_cc_contexts.py +++ b/unit_tests/test_nova_cc_contexts.py @@ -738,3 +738,8 @@ class NovaComputeContextTests(CharmTestCase): self.os_release.return_value = 'victoria' self.assertEqual(context.default_enabled_filters(), context._victoria_enabled_filters) + + def test_default_enabled_filters_bobcat(self): + self.os_release.return_value = 'bobcat' + self.assertEqual(context.default_enabled_filters(), + context._bobcat_enabled_filters)