Merge "Fix alphanumeric comparisons for openstack and ubuntu releases"
This commit is contained in:
commit
db0d5b0ba1
|
@ -1,7 +1,6 @@
|
|||
branch: lp:charm-helpers
|
||||
destination: tests/charmhelpers
|
||||
include:
|
||||
- osplatform
|
||||
- contrib.amulet
|
||||
- contrib.openstack.amulet
|
||||
- core
|
||||
|
|
|
@ -68,6 +68,7 @@ from charmhelpers.contrib.openstack.utils import (
|
|||
os_release,
|
||||
pausable_restart_on_change as restart_on_change,
|
||||
is_unit_paused_set,
|
||||
CompareOpenStackReleases,
|
||||
)
|
||||
|
||||
from keystone_utils import (
|
||||
|
@ -401,7 +402,8 @@ def db_changed():
|
|||
else:
|
||||
CONFIGS.write(KEYSTONE_CONF)
|
||||
leader_init_db_if_ready(use_current_context=True)
|
||||
if os_release('keystone-common') >= 'liberty':
|
||||
if CompareOpenStackReleases(
|
||||
os_release('keystone-common')) >= 'liberty':
|
||||
CONFIGS.write(POLICY_JSON)
|
||||
|
||||
|
||||
|
@ -414,7 +416,8 @@ def pgsql_db_changed():
|
|||
else:
|
||||
CONFIGS.write(KEYSTONE_CONF)
|
||||
leader_init_db_if_ready(use_current_context=True)
|
||||
if os_release('keystone-common') >= 'liberty':
|
||||
if CompareOpenStackReleases(
|
||||
os_release('keystone-common')) >= 'liberty':
|
||||
CONFIGS.write(POLICY_JSON)
|
||||
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ from charmhelpers.contrib.openstack.utils import (
|
|||
is_unit_paused_set,
|
||||
make_assess_status_func,
|
||||
os_application_version_set,
|
||||
CompareOpenStackReleases,
|
||||
)
|
||||
|
||||
from charmhelpers.contrib.python.packages import (
|
||||
|
@ -124,6 +125,7 @@ from charmhelpers.core.host import (
|
|||
pwgen,
|
||||
lsb_release,
|
||||
write_file,
|
||||
CompareHostReleases,
|
||||
)
|
||||
|
||||
from charmhelpers.contrib.peerstorage import (
|
||||
|
@ -416,7 +418,7 @@ def resource_map():
|
|||
"""
|
||||
resource_map = deepcopy(BASE_RESOURCE_MAP)
|
||||
|
||||
if os_release('keystone') < 'liberty':
|
||||
if CompareOpenStackReleases(os_release('keystone')) < 'liberty':
|
||||
resource_map.pop(POLICY_JSON)
|
||||
if os.path.exists('/etc/apache2/conf-available'):
|
||||
resource_map.pop(APACHE_CONF)
|
||||
|
@ -478,7 +480,7 @@ def run_in_apache():
|
|||
"""Return true if keystone API is run under apache2 with mod_wsgi in
|
||||
this release.
|
||||
"""
|
||||
return os_release('keystone') >= 'liberty'
|
||||
return CompareOpenStackReleases(os_release('keystone')) >= 'liberty'
|
||||
|
||||
|
||||
def disable_unused_apache_sites():
|
||||
|
@ -2102,13 +2104,14 @@ def get_requested_grants(settings):
|
|||
def setup_ipv6():
|
||||
"""Check ipv6-mode validity and setup dependencies"""
|
||||
ubuntu_rel = lsb_release()['DISTRIB_CODENAME'].lower()
|
||||
if ubuntu_rel < "trusty":
|
||||
if CompareHostReleases(ubuntu_rel) < "trusty":
|
||||
raise Exception("IPv6 is not supported in the charms for Ubuntu "
|
||||
"versions less than Trusty 14.04")
|
||||
|
||||
# Need haproxy >= 1.5.3 for ipv6 so for Trusty if we are <= Kilo we need to
|
||||
# use trusty-backports otherwise we can use the UCA.
|
||||
if ubuntu_rel == 'trusty' and os_release('keystone') < 'liberty':
|
||||
if (ubuntu_rel == 'trusty' and
|
||||
CompareOpenStackReleases(os_release('keystone')) < 'liberty'):
|
||||
add_source('deb http://archive.ubuntu.com/ubuntu trusty-backports '
|
||||
'main')
|
||||
apt_update()
|
||||
|
@ -2324,7 +2327,7 @@ def git_post_install(projects_yaml):
|
|||
bin_dir = os.path.join(git_pip_venv_dir(projects_yaml), 'bin')
|
||||
# The charm runs the keystone API under apache2 for openstack liberty
|
||||
# onward. Prior to liberty upstart is used.
|
||||
if os_release('keystone') < 'liberty':
|
||||
if CompareOpenStackReleases(os_release('keystone')) < 'liberty':
|
||||
keystone_context = {
|
||||
'service_description': 'Keystone API server',
|
||||
'service_name': 'Keystone',
|
||||
|
|
|
@ -420,16 +420,20 @@ class KeystoneBasicDeployment(OpenStackAmuletDeployment):
|
|||
self.validate_keystone_users(self.keystone_v2)
|
||||
|
||||
def is_liberty_or_newer(self):
|
||||
os_release = self._get_openstack_release_string()
|
||||
if os_release >= 'liberty':
|
||||
# os_release = self._get_openstack_release_string()
|
||||
os_release = self._get_openstack_release()
|
||||
# if os_release >= 'liberty':
|
||||
if os_release >= self.trusty_liberty:
|
||||
return True
|
||||
else:
|
||||
u.log.info('Skipping test, {} < liberty'.format(os_release))
|
||||
return False
|
||||
|
||||
def is_mitaka_or_newer(self):
|
||||
os_release = self._get_openstack_release_string()
|
||||
if os_release >= 'mitaka':
|
||||
# os_release = self._get_openstack_release_string()
|
||||
os_release = self._get_openstack_release()
|
||||
# if os_release >= 'mitaka':
|
||||
if os_release >= self.xenial_mitaka:
|
||||
return True
|
||||
else:
|
||||
u.log.info('Skipping test, {} < mitaka'.format(os_release))
|
||||
|
|
2
tox.ini
2
tox.ini
|
@ -14,7 +14,7 @@ install_command =
|
|||
pip install --allow-unverified python-apt {opts} {packages}
|
||||
commands = ostestr {posargs}
|
||||
whitelist_externals = juju
|
||||
passenv = HOME TERM AMULET_* CS_API_URL
|
||||
passenv = HOME TERM AMULET_* CS_API_*
|
||||
|
||||
[testenv:py27]
|
||||
basepython = python2.7
|
||||
|
|
|
@ -29,6 +29,7 @@ with patch('hooks.charmhelpers.contrib.hardening.harden.harden') as mock_dec:
|
|||
lambda *args, **kwargs: f(*args, **kwargs))
|
||||
with patch('hooks.keystone_utils.register_configs') as register_configs:
|
||||
with patch('hooks.keystone_utils.os_release') as os_release:
|
||||
os_release.return_value = 'juno'
|
||||
import git_reinstall
|
||||
|
||||
from test_utils import (
|
||||
|
|
|
@ -126,6 +126,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
@patch.object(utils, 'git_install_requested')
|
||||
@patch.object(unison, 'ensure_user')
|
||||
def test_install_hook(self, ensure_user, git_requested, os_release):
|
||||
os_release.return_value = 'havana'
|
||||
git_requested.return_value = False
|
||||
self.run_in_apache.return_value = False
|
||||
repo = 'cloud:precise-grizzly'
|
||||
|
@ -147,6 +148,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
@patch.object(unison, 'ensure_user')
|
||||
def test_install_hook_apache2(self, ensure_user,
|
||||
git_requested, os_release):
|
||||
os_release.return_value = 'havana'
|
||||
git_requested.return_value = False
|
||||
self.run_in_apache.return_value = True
|
||||
repo = 'cloud:xenial-newton'
|
||||
|
@ -168,6 +170,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
@patch.object(utils, 'git_install_requested')
|
||||
@patch.object(unison, 'ensure_user')
|
||||
def test_install_hook_git(self, ensure_user, git_requested, os_release):
|
||||
os_release.return_value = 'havana'
|
||||
git_requested.return_value = True
|
||||
repo = 'cloud:trusty-juno'
|
||||
openstack_origin_git = {
|
||||
|
@ -304,6 +307,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
def test_db_changed(self, configs,
|
||||
mock_ensure_ssl_cert_master,
|
||||
leader_init):
|
||||
self.os_release.return_value = 'havana'
|
||||
mock_ensure_ssl_cert_master.return_value = False
|
||||
self._shared_db_test(configs, 'keystone/3')
|
||||
self.assertEquals([call('/etc/keystone/keystone.conf')],
|
||||
|
@ -316,6 +320,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
def test_postgresql_db_changed(self, configs,
|
||||
mock_ensure_ssl_cert_master,
|
||||
leader_init):
|
||||
self.os_release.return_value = 'havana'
|
||||
mock_ensure_ssl_cert_master.return_value = False
|
||||
self._postgresql_db_test(configs)
|
||||
self.assertEquals([call('/etc/keystone/keystone.conf')],
|
||||
|
@ -1009,6 +1014,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
git_requested,
|
||||
os_release,
|
||||
update):
|
||||
os_release.return_value = 'havana'
|
||||
mock_is_db_initialised.return_value = True
|
||||
mock_is_db_ready.return_value = True
|
||||
mock_is_elected_leader.return_value = False
|
||||
|
@ -1172,6 +1178,7 @@ class KeystoneRelationTests(CharmTestCase):
|
|||
mock_relation_ids,
|
||||
mock_log, git_requested,
|
||||
os_release, update):
|
||||
os_release.return_value = 'havana'
|
||||
mock_relation_ids.return_value = []
|
||||
mock_ensure_ssl_cert_master.return_value = False
|
||||
# Ensure always returns diff
|
||||
|
|
|
@ -135,6 +135,7 @@ class TestKeystoneUtils(CharmTestCase):
|
|||
|
||||
@patch('charmhelpers.contrib.openstack.utils.config')
|
||||
def test_determine_packages(self, _config):
|
||||
self.os_release.return_value = 'havana'
|
||||
_config.return_value = None
|
||||
result = utils.determine_packages()
|
||||
ex = utils.BASE_PACKAGES + ['keystone', 'python-keystoneclient']
|
||||
|
@ -142,6 +143,7 @@ class TestKeystoneUtils(CharmTestCase):
|
|||
|
||||
@patch('charmhelpers.contrib.openstack.utils.config')
|
||||
def test_determine_packages_git(self, _config):
|
||||
self.os_release.return_value = 'havana'
|
||||
_config.return_value = openstack_origin_git
|
||||
result = utils.determine_packages()
|
||||
ex = utils.BASE_PACKAGES + utils.BASE_GIT_PACKAGES
|
||||
|
@ -193,6 +195,7 @@ class TestKeystoneUtils(CharmTestCase):
|
|||
disable_unused_apache_sites.assert_called_with()
|
||||
|
||||
def test_migrate_database(self):
|
||||
self.os_release.return_value = 'havana'
|
||||
utils.migrate_database()
|
||||
|
||||
self.service_stop.assert_called_with('keystone')
|
||||
|
@ -820,6 +823,7 @@ class TestKeystoneUtils(CharmTestCase):
|
|||
@patch('subprocess.check_call')
|
||||
def test_git_post_install(self, check_call, rmtree, copytree, symlink,
|
||||
exists, join):
|
||||
self.os_release.return_value = 'havana'
|
||||
projects_yaml = openstack_origin_git
|
||||
join.return_value = 'joined-string'
|
||||
self.git_pip_venv_dir.return_value = '/mnt/openstack-git/venv'
|
||||
|
|
Loading…
Reference in New Issue