Skip to content

Commit

Permalink
Updates for charm/openstack upgrade testing
Browse files Browse the repository at this point in the history
  • Loading branch information
Corey Bryant committed Oct 17, 2023
1 parent 18e5b6d commit 4ebd6a6
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 21 deletions.
41 changes: 21 additions & 20 deletions zaza/openstack/charm_tests/charm_upgrade/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import zaza.model
from zaza.openstack.utilities import (
cli as cli_utils,
os_versions as os_versions,
upgrade_utils as upgrade_utils,
)
from zaza.openstack.charm_tests.nova.tests import LTSGuestCreateTest
Expand All @@ -36,19 +37,6 @@ def setUpClass(cls):
cli_utils.setup_logging()
cls.lts = LTSGuestCreateTest()
cls.lts.setUpClass()
cls.target_charm_namespace = '~openstack-charmers-next'

def get_upgrade_url(self, charm_url):
"""Return the charm_url to upgrade to.
:param charm_url: Current charm url.
:type charm_url: str
"""
charm_name = upgrade_utils.extract_charm_name_from_url(
charm_url)
next_charm_url = zaza.model.get_latest_charm_url(
"cs:{}/{}".format(self.target_charm_namespace, charm_name))
return next_charm_url

def test_200_run_charm_upgrade(self):
"""Run charm upgrade."""
Expand All @@ -63,20 +51,33 @@ def test_200_run_charm_upgrade(self):
for application, app_details in applications.items():
if application not in group:
continue
target_url = self.get_upgrade_url(app_details['charm'])
if target_url == app_details['charm']:
charm_channel = applications[application].charm_channel
charm_track, charm_risk = charm_channel.split('/')
if ('.1' in charm_track or '.2' in charm_track or
os_versions.CompareOpenStack(charm_track) >= 'zed'):
new_charm_track, _ = (
upgrade_utils.determine_next_openstack_release(
charm_track)
)
else:
_, new_charm_track = (
upgrade_utils.determine_next_openstack_release(
charm_track)
)
new_charm_channel = f"{new_charm_track}/{charm_risk}"
if charm_channel == new_charm_channel:
logging.warn(
"Skipping upgrade of {}, already using {}".format(
application,
target_url))
new_charm_channel))
else:
logging.info("Upgrading {} to {}".format(
application,
target_url))
new_charm_channel))
zaza.model.upgrade_charm(
application,
switch=target_url)
logging.info("Waiting for charm url to update")
zaza.model.block_until_charm_url(application, target_url)
channel=new_charm_channel)
logging.info("Waiting for charm channel to update")
zaza.model.block_until_charm_channel(application, new_charm_channel)
zaza.model.block_until_all_units_idle()
self.lts.test_launch_small_instance()
30 changes: 29 additions & 1 deletion zaza/openstack/utilities/upgrade_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,33 @@
'swift-proxy', 'swift-storage']))

UPGRADE_EXCLUDE_LIST = [
'percona-cluster',
'mysql-innodb-cluster',
'ceph-mon',
'ceph-osd',
'ceph-fs',
'vault',
'memcached',
'rabbitmq-server',
'percona-cluster',
'glance-simplestreams-sync',
'aodh-mysql-router',
'barbican-mysql-router',
'cinder-mysql-router',
'designate-mysql-router',
'glance-mysql-router',
'gnocchi-mysql-router',
'heat-mysql-router',
'keystone-mysql-router',
'magnum-mysql-router',
'manila-mysql-router',
'manila-ganesha-mysql-router',
'vault-mysql-router',
'neutron-mysql-router',
'nova-mysql-router',
'placement-mysql-router',
'watcher-mysql-router',
'octavia-mysql-router',
]


Expand Down Expand Up @@ -231,7 +255,11 @@ def get_charm_upgrade_groups(model_name=None, extra_filters=None):
:returns: Dict of group lists keyed on group name.
:rtype: collections.OrderedDict
"""
filters = _apply_extra_filters([], extra_filters)
filters = [
_filter_openstack_upgrade_list,
_filter_non_openstack_services,
]
filters = _apply_extra_filters(filters, extra_filters)
apps_in_model = get_upgrade_candidates(
model_name=model_name,
filters=filters)
Expand Down

0 comments on commit 4ebd6a6

Please sign in to comment.