snap-config-keys is now a map
It maps the name of the config values that we use in our templates to the name of the key in the snap config. This allows us to stick a bunch of stuff in the questions namespace in the snap config, and to use dashes, with minimal changes to our templates. Drop Python 2 support, to fix tests. Change-Id: I48b86b5e557e30f81e9cc415e7fa3a9133aa9f39
This commit is contained in:
parent
f612dd2e61
commit
322514211b
@ -165,7 +165,7 @@ class OpenStackSnap(object):
|
|||||||
snap environment, we'll clobber the keys in the environment.
|
snap environment, we'll clobber the keys in the environment.
|
||||||
'''
|
'''
|
||||||
snap_config = utils.snap_config(
|
snap_config = utils.snap_config(
|
||||||
keys=setup.get('snap-config-keys', []))
|
keys=setup.get('snap-config-keys', {}))
|
||||||
for key in snap_config.keys():
|
for key in snap_config.keys():
|
||||||
utils.snap_env[key] = snap_config[key]
|
utils.snap_env[key] = snap_config[key]
|
||||||
|
|
||||||
|
@ -361,7 +361,17 @@ class TestSnapUtils(test_base.TestCase):
|
|||||||
@patch.object(utils, 'os')
|
@patch.object(utils, 'os')
|
||||||
def test_snap_config(self, mock_os, mock_subprocess):
|
def test_snap_config(self, mock_os, mock_subprocess):
|
||||||
'''snap_config fetch snapctl vals from the environment.'''
|
'''snap_config fetch snapctl vals from the environment.'''
|
||||||
faux_config = {'foo': 'bar', 'baz': 'qux', 'quux': ''}
|
faux_config = {
|
||||||
|
'foo': 'questions.foo',
|
||||||
|
'baz': 'questions.baz',
|
||||||
|
'quux': 'questions.quux',
|
||||||
|
|
||||||
|
}
|
||||||
|
faux_snap_config = {
|
||||||
|
'questions.foo': 'bar',
|
||||||
|
'questions.baz': 'qux',
|
||||||
|
'questions.quux': '',
|
||||||
|
}
|
||||||
|
|
||||||
def faux_check_output(commands):
|
def faux_check_output(commands):
|
||||||
'''Replacement for check output.
|
'''Replacement for check output.
|
||||||
@ -369,11 +379,11 @@ class TestSnapUtils(test_base.TestCase):
|
|||||||
We expect this to be called with a list of commands,
|
We expect this to be called with a list of commands,
|
||||||
the last of which is the key that we're looking for.
|
the last of which is the key that we're looking for.
|
||||||
'''
|
'''
|
||||||
return faux_config[commands[-1]].encode('utf-8')
|
return faux_snap_config[commands[-1]].encode('utf-8')
|
||||||
|
|
||||||
mock_subprocess.check_output = faux_check_output
|
mock_subprocess.check_output = faux_check_output
|
||||||
|
|
||||||
keys = faux_config.keys()
|
keys = faux_config
|
||||||
|
|
||||||
snap_utils = utils.SnapUtils()
|
snap_utils = utils.SnapUtils()
|
||||||
snap_config = snap_utils.snap_config(keys)
|
snap_config = snap_utils.snap_config(keys)
|
||||||
|
@ -69,7 +69,7 @@ class SnapUtils(object):
|
|||||||
'''
|
'''
|
||||||
snap_config = {}
|
snap_config = {}
|
||||||
|
|
||||||
for key in keys:
|
for our_key, snap_key in keys.items():
|
||||||
# Iterating through the keys is a little slow, as we make
|
# Iterating through the keys is a little slow, as we make
|
||||||
# a lot of snapctl calls. OTOH, I'm not sure that we want
|
# a lot of snapctl calls. OTOH, I'm not sure that we want
|
||||||
# to take responsibilty for parsing the return of "snap
|
# to take responsibilty for parsing the return of "snap
|
||||||
@ -77,8 +77,8 @@ class SnapUtils(object):
|
|||||||
# option, or any other way of ensuring a consistently
|
# option, or any other way of ensuring a consistently
|
||||||
# formatted return.
|
# formatted return.
|
||||||
ret = subprocess.check_output(
|
ret = subprocess.check_output(
|
||||||
['snapctl', 'get', key]).decode('utf-8').strip()
|
['snapctl', 'get', snap_key]).decode('utf-8').strip()
|
||||||
snap_config[key] = ret or None
|
snap_config[our_key] = ret or None
|
||||||
|
|
||||||
return snap_config
|
return snap_config
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user