From 51b7a600c8aac9e7c90aba6deb40af245c38f281 Mon Sep 17 00:00:00 2001 From: Jorge Niedbalski Date: Tue, 13 Jun 2017 13:06:22 -0400 Subject: [PATCH] Evaluate 'None' as None in console_attributes. The config.yaml file suggests None as one of the possible values of the directive console-access-protocol, this is wrongly evaluated as a string in the console_attributes function, which causes the charm to install the pacemaker resource even when is not required (console-access-protocol = None). Change-Id: I367b7fd813e044bc6eedca687e837e8adab2dd40 Closes-Bug: #1697693 Depends-On: I98ebbf9f2c7582fae5f466dfc1d224bf66e38a24 Signed-off-by: Jorge Niedbalski --- hooks/nova_cc_utils.py | 2 ++ unit_tests/test_nova_cc_utils.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/hooks/nova_cc_utils.py b/hooks/nova_cc_utils.py index 7ba1d0e5..1626ba53 100644 --- a/hooks/nova_cc_utils.py +++ b/hooks/nova_cc_utils.py @@ -456,6 +456,8 @@ def console_attributes(attr, proto=None): console_proto = proto else: console_proto = config('console-access-protocol') + if console_proto is not None and console_proto.lower() in ('none', ''): + console_proto = None if attr == 'protocol': return console_proto # 'vnc' is a virtual type made up of novnc and xvpvnc diff --git a/unit_tests/test_nova_cc_utils.py b/unit_tests/test_nova_cc_utils.py index 26d14c9e..2a98e4fe 100644 --- a/unit_tests/test_nova_cc_utils.py +++ b/unit_tests/test_nova_cc_utils.py @@ -253,9 +253,21 @@ class NovaCCUtilsTests(CharmTestCase): self.assertIn(service, _map['/etc/nova/nova.conf']['services']) def test_console_attributes_none(self): + self.test_config.set('console-access-protocol', 'None') + _proto = utils.console_attributes('protocol') + self.assertEquals(_proto, None) + self.test_config.set('console-access-protocol', 'NONE') + _proto = utils.console_attributes('protocol') + self.assertEquals(_proto, None) + self.test_config.set('console-access-protocol', 'none') + _proto = utils.console_attributes('protocol') + self.assertEquals(_proto, None) self.test_config.set('console-access-protocol', None) _proto = utils.console_attributes('protocol') self.assertEquals(_proto, None) + self.test_config.set('console-access-protocol', "") + _proto = utils.console_attributes('protocol') + self.assertEquals(_proto, None) @patch('charmhelpers.contrib.openstack.context.SubordinateConfigContext') def test_resource_map_console_spice(self, subcontext):