Make get_current_os_release_pair variable

It is possible to use `get_current_os_release_pair` with an argument or
to use the default one (`keystone`)
This commit is contained in:
Nicolas Pochet
2018-08-08 16:14:09 +02:00
parent d891227494
commit 077f2af87c
2 changed files with 15 additions and 7 deletions

View File

@@ -680,7 +680,13 @@ class TestOpenStackUtils(ut_utils.BaseTestCase):
with self.assertRaises(exceptions.OSVersionNotFound):
openstack_utils.get_current_os_release_pair()
# Normal scenario
# Normal scenario, argument passed
self._get_os_version.return_value = {'keystone': 'mitaka'}
expected = 'xenial_mitaka'
result = openstack_utils.get_current_os_release_pair('keystone')
self.assertEqual(expected, result)
# Normal scenario, default value used
self._get_os_version.return_value = {'keystone': 'mitaka'}
expected = 'xenial_mitaka'
result = openstack_utils.get_current_os_release_pair()

View File

@@ -1124,26 +1124,28 @@ def get_application_config_keys(application):
return list(application_config.keys())
def get_current_os_release_pair():
def get_current_os_release_pair(application='keystone'):
"""Return OpenStack Release pair name.
:param application: Name of application
:type application: string
:returns: Name of the OpenStack release pair
:rtype: str
:raises: exceptions.NoKeystoneFound
:raises: exceptions.SeriesNotFound
:raises: exceptions.OSVersionNotFound
"""
keystone = juju_utils.get_machines_for_application('keystone')
if len(keystone) >= 1:
keystone = keystone[0]
machines = juju_utils.get_machines_for_application(application)
if len(machines) >= 1:
machine = machines[0]
else:
raise exceptions.NoKeystoneFound()
series = juju_utils.get_machine_status(keystone, key='series')
series = juju_utils.get_machine_status(machine, key='series')
if not series:
raise exceptions.SeriesNotFound()
os_version = get_current_os_versions(['keystone']).get('keystone')
os_version = get_current_os_versions([application]).get(application)
if not os_version:
raise exceptions.OSVersionNotFound()