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 3901183
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 27 deletions.
34 changes: 12 additions & 22 deletions zaza/openstack/charm_tests/charm_upgrade/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,10 @@ 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."""
self.lts.test_launch_small_instance()
#self.lts.test_launch_small_instance()
applications = zaza.model.get_status().applications
groups = upgrade_utils.get_charm_upgrade_groups(
extra_filters=[upgrade_utils._filter_etcd,
Expand All @@ -63,20 +50,23 @@ 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_release, charm_risk = charm_channel.split('/')
_, new_charm_release = upgrade_utils.determine_next_openstack_release(charm_release)
new_charm_channel = f"{new_charm_release}/{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_release)
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()
#self.lts.test_launch_small_instance()
8 changes: 4 additions & 4 deletions zaza/openstack/charm_tests/openstack_upgrade/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,18 @@ class OpenStackUpgradeVMLaunchBase(unittest.TestCase):
def setUpClass(cls):
"""Run setup for OpenStack Upgrades."""
super().setUpClass()
cls.lts = LTSGuestCreateTest()
cls.lts.setUpClass()
#cls.lts = LTSGuestCreateTest()
#cls.lts.setUpClass()

def test_100_validate_pre_openstack_upgrade_cloud(self):
"""Validate pre openstack upgrade."""
logging.info("Validate pre-openstack-upgrade: Spin up LTS instance")
self.lts.test_launch_small_instance()
#self.lts.test_launch_small_instance()

def test_500_validate_openstack_upgraded_cloud(self):
"""Validate post openstack upgrade."""
logging.info("Validate post-openstack-upgrade: Spin up LTS instance")
self.lts.test_launch_small_instance()
#self.lts.test_launch_small_instance()


class WaitForMySQL(unittest.TestCase):
Expand Down
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 3901183

Please sign in to comment.