diff --git a/tripleo_common/tests/utils/test_parameters.py b/tripleo_common/tests/utils/test_parameters.py index 413d37b9c..8d8395cb7 100644 --- a/tripleo_common/tests/utils/test_parameters.py +++ b/tripleo_common/tests/utils/test_parameters.py @@ -187,3 +187,22 @@ class ParametersTest(base.TestCase): self.assertRaises(exception.DeriveParamsError, parameters.get_profile_of_flavor, 'no_profile', compute_client) + + def test_convert_docker_params(self): + + env = { + 'parameter_defaults': { + 'DockerFooImage': 'bar', + 'DockerNoOverwriteImage': 'zzzz', + 'ContainerNoOverwriteImage': 'boom', + 'ContainerNoChangeImage': 'bar', + 'DockerNoChangeImage': 'bar', + } + } + + parameters.convert_docker_params(env) + pd = env.get('parameter_defaults', {}) + self.assertEqual(pd['ContainerFooImage'], 'bar') + self.assertEqual(pd['ContainerNoOverwriteImage'], 'boom') + self.assertEqual(pd['ContainerNoChangeImage'], 'bar') + self.assertEqual(pd['DockerNoChangeImage'], 'bar') diff --git a/tripleo_common/utils/parameters.py b/tripleo_common/utils/parameters.py index 81e048f3a..3dfe4e318 100644 --- a/tripleo_common/utils/parameters.py +++ b/tripleo_common/utils/parameters.py @@ -123,3 +123,18 @@ def get_profile_of_flavor(flavor_name, compute_client): raise exception.DeriveParamsError( 'Unable to determine flavor for flavor name: ' '%s' % flavor_name) + + +def convert_docker_params(stack_env=None): + """Convert Docker* params to "Container" varients for compatibility. + + """ + + if stack_env: + pd = stack_env.get('parameter_defaults', {}) + for k, v in pd.copy().items(): + if k.startswith('Docker') and k.endswith('Image'): + name = "Container%s" % k[6:] + pd.setdefault(name, v) + # TODO(dprince) add other Docker* conversions here once + # this is wired in