Add yoga bundles and release-tool syncs
* charm-helpers sync for classic charms * pin pyparsing for aodhclient * pin cffi for py35 * add non-voting focal-yoga bundle * add non-voting jammy-yoga bundle * add series metadata for jammy * switch xena bundles to voting * run focal-ussuri as smoke tests * remove groovy bundles Change-Id: I7d9f44bd0dbff25a6c2b0649aa3a86c1869cd7d8
This commit is contained in:
parent
5728e15fb6
commit
e3091504fe
|
@ -1413,7 +1413,8 @@ def incomplete_relation_data(configs, required_interfaces):
|
|||
for i in incomplete_relations}
|
||||
|
||||
|
||||
def do_action_openstack_upgrade(package, upgrade_callback, configs):
|
||||
def do_action_openstack_upgrade(package, upgrade_callback, configs,
|
||||
force_upgrade=False):
|
||||
"""Perform action-managed OpenStack upgrade.
|
||||
|
||||
Upgrades packages to the configured openstack-origin version and sets
|
||||
|
@ -1427,12 +1428,13 @@ def do_action_openstack_upgrade(package, upgrade_callback, configs):
|
|||
@param package: package name for determining if upgrade available
|
||||
@param upgrade_callback: function callback to charm's upgrade function
|
||||
@param configs: templating object derived from OSConfigRenderer class
|
||||
@param force_upgrade: perform dist-upgrade regardless of new openstack
|
||||
|
||||
@return: True if upgrade successful; False if upgrade failed or skipped
|
||||
"""
|
||||
ret = False
|
||||
|
||||
if openstack_upgrade_available(package):
|
||||
if openstack_upgrade_available(package) or force_upgrade:
|
||||
if config('action-managed-upgrade'):
|
||||
juju_log('Upgrading OpenStack release')
|
||||
|
||||
|
@ -2599,6 +2601,23 @@ def get_subordinate_release_packages(os_release, package_type='deb'):
|
|||
return SubordinatePackages(install, purge)
|
||||
|
||||
|
||||
def get_subordinate_services():
|
||||
"""Iterate over subordinate relations and get service information.
|
||||
|
||||
In a similar fashion as with get_subordinate_release_packages(),
|
||||
principle charms can retrieve a list of services advertised by their
|
||||
subordinate charms. This is useful to know about subordinate services when
|
||||
pausing, resuming or upgrading a principle unit.
|
||||
|
||||
:returns: Name of all services advertised by all subordinates
|
||||
:rtype: Set[str]
|
||||
"""
|
||||
services = set()
|
||||
for rdata in container_scoped_relation_get('services'):
|
||||
services |= set(json.loads(rdata or '[]'))
|
||||
return services
|
||||
|
||||
|
||||
os_restart_on_change = partial(
|
||||
pausable_restart_on_change,
|
||||
can_restart_now_f=deferred_events.check_and_record_restart_request,
|
||||
|
|
|
@ -294,7 +294,6 @@ class BasePool(object):
|
|||
# NOTE: Do not perform initialization steps that require live data from
|
||||
# a running cluster here. The *Pool classes may be used for validation.
|
||||
self.service = service
|
||||
self.nautilus_or_later = cmp_pkgrevno('ceph-common', '14.2.0') >= 0
|
||||
self.op = op or {}
|
||||
|
||||
if op:
|
||||
|
@ -341,7 +340,8 @@ class BasePool(object):
|
|||
Do not add calls for a specific pool type here, those should go into
|
||||
one of the pool specific classes.
|
||||
"""
|
||||
if self.nautilus_or_later:
|
||||
nautilus_or_later = cmp_pkgrevno('ceph-common', '14.2.0') >= 0
|
||||
if nautilus_or_later:
|
||||
# Ensure we set the expected pool ratio
|
||||
update_pool(
|
||||
client=self.service,
|
||||
|
@ -660,8 +660,9 @@ class ReplicatedPool(BasePool):
|
|||
else:
|
||||
self.pg_num = self.get_pgs(self.replicas, self.percent_data)
|
||||
|
||||
nautilus_or_later = cmp_pkgrevno('ceph-common', '14.2.0') >= 0
|
||||
# Create it
|
||||
if self.nautilus_or_later:
|
||||
if nautilus_or_later:
|
||||
cmd = [
|
||||
'ceph', '--id', self.service, 'osd', 'pool', 'create',
|
||||
'--pg-num-min={}'.format(
|
||||
|
@ -745,9 +746,9 @@ class ErasurePool(BasePool):
|
|||
k = int(erasure_profile['k'])
|
||||
m = int(erasure_profile['m'])
|
||||
pgs = self.get_pgs(k + m, self.percent_data)
|
||||
self.nautilus_or_later = cmp_pkgrevno('ceph-common', '14.2.0') >= 0
|
||||
nautilus_or_later = cmp_pkgrevno('ceph-common', '14.2.0') >= 0
|
||||
# Create it
|
||||
if self.nautilus_or_later:
|
||||
if nautilus_or_later:
|
||||
cmd = [
|
||||
'ceph', '--id', self.service, 'osd', 'pool', 'create',
|
||||
'--pg-num-min={}'.format(
|
||||
|
|
|
@ -29,6 +29,7 @@ UBUNTU_RELEASES = (
|
|||
'groovy',
|
||||
'hirsute',
|
||||
'impish',
|
||||
'jammy',
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -275,6 +275,7 @@ UBUNTU_OPENSTACK_RELEASE = OrderedDict([
|
|||
('groovy', 'victoria'),
|
||||
('hirsute', 'wallaby'),
|
||||
('impish', 'xena'),
|
||||
('jammy', 'yoga'),
|
||||
])
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
# requirements. They are intertwined. Also, Zaza itself should specify
|
||||
# all of its own requirements and if it doesn't, fix it there.
|
||||
#
|
||||
pyparsing<3.0.0 # aodhclient is pinned in zaza and needs pyparsing < 3.0.0, but cffi also needs it, so pin here.
|
||||
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.
|
||||
setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
|
||||
|
||||
requests>=2.18.4
|
||||
|
|
Loading…
Reference in New Issue