From a89394045098a0f0ea4de83d63d772e63a6c3cec Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Fri, 9 Feb 2024 18:15:47 +0000 Subject: [PATCH] Updates for caracal testing support These updates, on the master branch, are to support testing the caracal packages and support of the charms for caracal. They do NOT lock the charms down, and don't change the testing branches to stable branches. Change-Id: I6ac828e0784ae4466a6e5cbc85acd666c9c2f75c --- charmcraft.yaml | 6 ----- .../charmhelpers/contrib/openstack/context.py | 11 ++++---- .../templates/wsgi-openstack-api.conf | 2 +- .../templates/wsgi-openstack-metadata.conf | 2 +- hooks/charmhelpers/contrib/openstack/utils.py | 25 ++++--------------- .../contrib/storage/linux/ceph.py | 8 ++++-- hooks/charmhelpers/fetch/ubuntu.py | 10 ++++++++ metadata.yaml | 6 ++--- tests/bundles/jammy-antelope.yaml | 2 +- tests/bundles/jammy-bobcat.yaml | 2 +- ...{mantic-bobcat.yaml => jammy-caracal.yaml} | 6 ++--- ...lunar-antelope.yaml => noble-caracal.yaml} | 4 +-- tests/tests.yaml | 16 +++++------- 13 files changed, 44 insertions(+), 56 deletions(-) rename tests/bundles/{mantic-bobcat.yaml => jammy-caracal.yaml} (91%) rename tests/bundles/{lunar-antelope.yaml => noble-caracal.yaml} (96%) diff --git a/charmcraft.yaml b/charmcraft.yaml index 62a8f5b8..09f03428 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -31,9 +31,3 @@ bases: - name: ubuntu channel: "22.04" architectures: [amd64, s390x, ppc64el, arm64] - - name: ubuntu - channel: "23.04" - architectures: [amd64, s390x, ppc64el, arm64] - - name: ubuntu - channel: "23.10" - architectures: [amd64, s390x, ppc64el, arm64] diff --git a/hooks/charmhelpers/contrib/openstack/context.py b/hooks/charmhelpers/contrib/openstack/context.py index 24a13d0d..1e667fb0 100644 --- a/hooks/charmhelpers/contrib/openstack/context.py +++ b/hooks/charmhelpers/contrib/openstack/context.py @@ -545,7 +545,7 @@ class IdentityServiceContext(OSContextGenerator): 'internal_auth_url': internal_auth_url, }) - # we keep all veriables in ctxt for compatibility and + # we keep all variables in ctxt for compatibility and # add nested dictionary for keystone_authtoken generic # templating if keystonemiddleware_os_release: @@ -557,6 +557,7 @@ class IdentityServiceContext(OSContextGenerator): # NOTE(jamespage) this is required for >= icehouse # so a missing value just indicates keystone needs # upgrading + ctxt['admin_user_id'] = _resolve('service_user_id') ctxt['admin_tenant_id'] = _resolve('service_tenant_id') ctxt['admin_domain_id'] = _resolve('service_domain_id') return ctxt @@ -1748,9 +1749,9 @@ class WSGIWorkerConfigContext(WorkerConfigContext): def __call__(self): total_processes = _calculate_workers() - enable_wsgi_rotation = config('wsgi-rotation') - if enable_wsgi_rotation is None: - enable_wsgi_rotation = True + enable_wsgi_socket_rotation = config('wsgi-socket-rotation') + if enable_wsgi_socket_rotation is None: + enable_wsgi_socket_rotation = True ctxt = { "service_name": self.service_name, "user": self.user, @@ -1764,7 +1765,7 @@ class WSGIWorkerConfigContext(WorkerConfigContext): "public_processes": int(math.ceil(self.public_process_weight * total_processes)), "threads": 1, - "wsgi_rotation": enable_wsgi_rotation, + "wsgi_socket_rotation": enable_wsgi_socket_rotation, } return ctxt diff --git a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf b/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf index 2cb735e9..de5f603f 100644 --- a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf +++ b/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf @@ -12,7 +12,7 @@ Listen {{ admin_port }} Listen {{ public_port }} {% endif -%} -{% if wsgi_rotation -%} +{% if wsgi_socket_rotation -%} WSGISocketRotation On {% else -%} WSGISocketRotation Off diff --git a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf b/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf index 2cb735e9..de5f603f 100644 --- a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf +++ b/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf @@ -12,7 +12,7 @@ Listen {{ admin_port }} Listen {{ public_port }} {% endif -%} -{% if wsgi_rotation -%} +{% if wsgi_socket_rotation -%} WSGISocketRotation On {% else -%} WSGISocketRotation Off diff --git a/hooks/charmhelpers/contrib/openstack/utils.py b/hooks/charmhelpers/contrib/openstack/utils.py index e98be2c5..da711c65 100644 --- a/hooks/charmhelpers/contrib/openstack/utils.py +++ b/hooks/charmhelpers/contrib/openstack/utils.py @@ -161,6 +161,7 @@ OPENSTACK_CODENAMES = OrderedDict([ ('2022.2', 'zed'), ('2023.1', 'antelope'), ('2023.2', 'bobcat'), + ('2024.1', 'caracal'), ]) # The ugly duckling - must list releases oldest to newest @@ -416,17 +417,6 @@ def get_os_version_codename(codename, version_map=OPENSTACK_CODENAMES, error_out(e) -def get_os_version_codename_swift(codename): - '''Determine OpenStack version number of swift from codename.''' - # for k, v in six.iteritems(SWIFT_CODENAMES): - for k, v in SWIFT_CODENAMES.items(): - if k == codename: - return v[-1] - e = 'Could not derive swift version for '\ - 'codename: %s' % codename - error_out(e) - - def get_swift_codename(version): '''Determine OpenStack codename that corresponds to swift version.''' codenames = [k for k, v in SWIFT_CODENAMES.items() if version in v] @@ -585,7 +575,6 @@ def get_installed_os_version(): return openstack_release().get('OPENSTACK_CODENAME') -@cached def openstack_release(): """Return /etc/os-release in a dict.""" d = {} @@ -847,14 +836,10 @@ def openstack_upgrade_available(package): if not cur_vers: # The package has not been installed yet do not attempt upgrade return False - if "swift" in package: - codename = get_os_codename_install_source(src) - avail_vers = get_os_version_codename_swift(codename) - else: - try: - avail_vers = get_os_version_install_source(src) - except Exception: - avail_vers = cur_vers + try: + avail_vers = get_os_version_install_source(src) + except Exception: + avail_vers = cur_vers apt.init() return apt.version_compare(avail_vers, cur_vers) >= 1 diff --git a/hooks/charmhelpers/contrib/storage/linux/ceph.py b/hooks/charmhelpers/contrib/storage/linux/ceph.py index 2e1fc1b5..6ec67cba 100644 --- a/hooks/charmhelpers/contrib/storage/linux/ceph.py +++ b/hooks/charmhelpers/contrib/storage/linux/ceph.py @@ -158,15 +158,19 @@ def get_osd_settings(relation_name): return _order_dict_by_key(osd_settings) -def send_application_name(relid=None): +def send_application_name(relid=None, app_name=None): """Send the application name down the relation. :param relid: Relation id to set application name in. :type relid: str + :param app_name: Application name to send in the relation. + :type app_name: str """ + if app_name is None: + app_name = application_name() relation_set( relation_id=relid, - relation_settings={'application-name': application_name()}) + relation_settings={'application-name': app_name}) def send_osd_settings(): diff --git a/hooks/charmhelpers/fetch/ubuntu.py b/hooks/charmhelpers/fetch/ubuntu.py index 1be992c4..d0089eb7 100644 --- a/hooks/charmhelpers/fetch/ubuntu.py +++ b/hooks/charmhelpers/fetch/ubuntu.py @@ -246,6 +246,14 @@ CLOUD_ARCHIVE_POCKETS = { 'bobcat/proposed': 'jammy-proposed/bobcat', 'jammy-bobcat/proposed': 'jammy-proposed/bobcat', 'jammy-proposed/bobcat': 'jammy-proposed/bobcat', + # caracal + 'caracal': 'jammy-updates/caracal', + 'jammy-caracal': 'jammy-updates/caracal', + 'jammy-caracal/updates': 'jammy-updates/caracal', + 'jammy-updates/caracal': 'jammy-updates/caracal', + 'caracal/proposed': 'jammy-proposed/caracal', + 'jammy-caracal/proposed': 'jammy-proposed/caracal', + 'jammy-proposed/caracal': 'jammy-proposed/caracal', # OVN 'focal-ovn-22.03': 'focal-updates/ovn-22.03', @@ -279,6 +287,7 @@ OPENSTACK_RELEASES = ( 'zed', 'antelope', 'bobcat', + 'caracal', ) @@ -308,6 +317,7 @@ UBUNTU_OPENSTACK_RELEASE = OrderedDict([ ('kinetic', 'zed'), ('lunar', 'antelope'), ('mantic', 'bobcat'), + ('noble', 'caracal'), ]) diff --git a/metadata.yaml b/metadata.yaml index 1709be6e..de1f08ce 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -14,11 +14,9 @@ description: | This charm provides the OpenStack Neutron API service. docs: https://discourse.charmhub.io/t/neutron-api-docs-index/10555 tags: -- openstack + - openstack series: -- jammy -- lunar -- mantic + - jammy extra-bindings: public: admin: diff --git a/tests/bundles/jammy-antelope.yaml b/tests/bundles/jammy-antelope.yaml index 75873a0d..c145c229 100644 --- a/tests/bundles/jammy-antelope.yaml +++ b/tests/bundles/jammy-antelope.yaml @@ -33,7 +33,7 @@ applications: num_units: 1 options: openstack-origin: *openstack-origin - channel: latest/edge + channel: 2024.1/edge relations: - - neutron-api:amqp - rabbitmq-server:amqp diff --git a/tests/bundles/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml index 0ad6d5f7..e66e8e4b 100644 --- a/tests/bundles/jammy-bobcat.yaml +++ b/tests/bundles/jammy-bobcat.yaml @@ -33,7 +33,7 @@ applications: num_units: 1 options: openstack-origin: *openstack-origin - channel: latest/edge + channel: 2024.1/edge relations: - - neutron-api:amqp - rabbitmq-server:amqp diff --git a/tests/bundles/mantic-bobcat.yaml b/tests/bundles/jammy-caracal.yaml similarity index 91% rename from tests/bundles/mantic-bobcat.yaml rename to tests/bundles/jammy-caracal.yaml index d8857477..7d5f2497 100644 --- a/tests/bundles/mantic-bobcat.yaml +++ b/tests/bundles/jammy-caracal.yaml @@ -1,7 +1,7 @@ variables: - openstack-origin: &openstack-origin distro + openstack-origin: &openstack-origin cloud:jammy-caracal -series: &series mantic +series: &series jammy applications: keystone-mysql-router: @@ -33,7 +33,7 @@ applications: num_units: 1 options: openstack-origin: *openstack-origin - channel: latest/edge + channel: 2024.1/edge relations: - - neutron-api:amqp - rabbitmq-server:amqp diff --git a/tests/bundles/lunar-antelope.yaml b/tests/bundles/noble-caracal.yaml similarity index 96% rename from tests/bundles/lunar-antelope.yaml rename to tests/bundles/noble-caracal.yaml index 21100292..7d4b2fa1 100644 --- a/tests/bundles/lunar-antelope.yaml +++ b/tests/bundles/noble-caracal.yaml @@ -1,7 +1,7 @@ variables: openstack-origin: &openstack-origin distro -series: &series lunar +series: &series noble applications: keystone-mysql-router: @@ -33,7 +33,7 @@ applications: num_units: 1 options: openstack-origin: *openstack-origin - channel: latest/edge + channel: 2024.1/edge relations: - - neutron-api:amqp - rabbitmq-server:amqp diff --git a/tests/tests.yaml b/tests/tests.yaml index e2a0e458..5759edbb 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -2,15 +2,12 @@ charm_name: neutron-api gate_bundles: - jammy-antelope - -smoke_bundles: - - jammy-antelope - -dev_bundles: - jammy-bobcat - - lunar-antelope - - mantic-bobcat - + - jammy-caracal +smoke_bundles: + - jammy-caracal +dev_bundles: + - noble-caracal tests: - zaza.openstack.charm_tests.neutron.tests.NeutronApiTest - zaza.openstack.charm_tests.neutron.tests.NeutronCreateNetworkTest @@ -24,5 +21,4 @@ tests_options: policyd: service: neutron force_deploy: - - lunar-antelope - - mantic-bobcat + - noble-caracal