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 <jorge.niedbalski@canonical.com>
This commit is contained in:
Jorge Niedbalski 2017-06-13 13:06:22 -04:00 committed by Jorge Niedbalski R.
parent 5d3c601dd4
commit 51b7a600c8
2 changed files with 14 additions and 0 deletions

View File

@ -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

View File

@ -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):