* Update charms.openstack from branch 'master'
to 018b72d734223db274b59f524b7887d8153cdb6d
- Merge "Replace deprecated _ows_check_services_running"
- Replace deprecated _ows_check_services_running
_ows_check_services_running was made public without the underscore and
it's private function name was made an alias and marked deprecated by:
https://github.com/juju/charm-helpers/pull/658
Switch to the new name to avoid many deprecation warnings being printed
by dependant charms every time update-status hooks run:
DEPRECATION WARNING: Function _ows_check_services_running is being
removed on/around 2022-05 : use ows_check_services_running() instead
Change-Id: I4758330db81a95ac2aa17f9bc316afdc2eab2d44
* Update charms.openstack from branch 'master'
to db94234398bca7f5af81c7ba16e146852a2030f6
- tox: Add py39 and py312 targets
Master branches need to support py39 and py312 (non-voting)
based on governance for 2024.2 [0].
Removed old targets that are no longer needed in master.
[0] https://review.opendev.org/c/openstack/governance/+/908862
Change-Id: I46feebfe449d956c0b9e35e42209162fcec52c44
* Update charms.openstack from branch 'master'
to aec72e735b4678e3c8970dbfffe16b002a05b812
- Add mock support for caracal
This is to enable caracal charms.openstack charms to test correctly as
caracal can be appropriately mocked.
Change-Id: Iea9d2aed7968dda0235694f3a9d73bad1573067c
* Update charms.openstack from branch 'master'
to ec900beaca0149d32aa0856f9cb0827ed4c93617
- tox: Add py311 target
Update tox.ini to include the py311 target as required by the current
openstack-python3-charm-jobs zuul template.
Change-Id: Iec0cad398f25e32fafdc064652f3d576b45e4550
* Update charms.openstack from branch 'master'
to fd042afdf186ab419ee35ea9678735895c62b723
- Skip version caching for subordinate charms
Caching the charm OpenStack version will cause undesired behaviors
if the charm is a subordinate. The charm local cache is firstly
populated during the charm install. If the charm is a subordinate,
the version will remain the same regardless of future OpenStack
upgrades because today, the hook that updates the cache to the new
version in only called for principal charms.
Related-bug: #1949074
Change-Id: I76abbd29ca910fe4c4d62da09e2d2dd3b5c798a6
* Update charms.openstack from branch 'master'
to a133824a093371dffbc5bfb31a3d63b1e0a65687
- adapters: add healthcheck option support
If the charm class defines haproxy healthcheck endpoints for api
exposing services render them into the haproxy template.
An example declaration would be as follows
class MyCharm(HAOpenStackCharm):
...
healthcheck = {
"option": "httpchk GET /healthcheck",
"http-check": "expect status 200"
}
Closes-Bug: #1880610
Change-Id: I0de1e45aad9db4d450f3e38e95868580537461e6
* Update charms.openstack from branch 'master'
to bf2e867e9e18c28b0e1ba813440ec771b520b2aa
- adapters: fix compat for auto accessors
The keystone interface rebase to the Endpoint base class re-uses
the auto_accessors approach from RelationBase which makes the
interface smell a little different to other Endpoint based interfaces.
Check and map any keys listed in auto_accessors for all relation
class types rather than just for RelationBase.
This also fixes a minor issue where self.accessors was reset to []
when the auto_accessors attribute was not found in the relation
overwriting any accessors passed in during object construction.
Change-Id: I4481c6d8ad5c9f0a8bc5e892d1d7472be83f3454
* Update charms.openstack from branch 'master'
to 581300632b426e985bf3daaed426daf3c89f825a
- Further fix to OpenStackAPIRelationAdapters
The existing method of using a property to lazily load the cluster
relation adapter permanently changes the class to include that as
a cluster property. This means that a future (in the same hook
execution) instantiation of the class would include that property,
which means that 'real' cluster adapter could not be used. Sadly,
this was happening with the manila charm, and possibly others.
This patch changes it from a lazily loaded property, to a simple
attribute.
Change-Id: I704f362e0dd845ff00d0f0470b0235a4dead5f9f
Closes-Bug: #1981736
* Update charms.openstack from branch 'master'
to c924762a9c92bd97dcb61d1d9e16f41c961ef9db
- Ensure that the _resolved_cluster member is set
In the OpenStackAPIRelationAdapters class, the _resolved_cluster member
is used to determine the cluster relation had been resolved. However,
it's possible that it is accessed prior to be used as it was originally
an dunderscored method (__method). This patch makes it more robust by
switching to a single-underscore (which is inherited and not class-
mangled) and that it is always set to None initially in the __init__
method.
Change-Id: I9b119ba6848923c27844a2f758ae9e3c34c7722d
Closes-Bug: #1981736
* Update charms.openstack from branch 'master'
to 11ba59ab4dd0c35a0de9681b4d4c9d889cf8bef8
- lint: Fix line too long in docstring blocking gate
Aparently this has been in the codebase since forever, and the
gate has now started to choke on it with this error message:
charms_openstack/charm/defaults.py:170:80: E501 line too long (82 > 79 characters)
Change-Id: I0dd61242527c7f1d93df130810bb08269a4312b4
* Update charms.openstack from branch 'master'
to d049eee8f47e3913123762b6cd4f493e8ff0d18d
- fix in config flags features
* fix name clashing
* fix regex
* fix test case
Change-Id: I2dbc4432a4be2b23dd39e66680abbe33da5ae5af
* Update charms.openstack from branch 'master'
to 18ac668cd78e16adba5706e4d9606ff3f15ddd6e
- Add observer for add multiple arbitrary options with config-flags
Add config_property_with_config_flags observer to handle extra option.
The config-flags are comma separated list of key-value pairs.
Change-Id: I74a693df95bebb14a6edcb796f1c8e6b17a95317
* Update charms.openstack from branch 'master'
to 1079a19e2e7a39708334c9fe1affe8efeb279f8c
- Add new Trilio version template property
This change adds a new `trilio_compat_version` that can be used
in templates when an option is gated on the trilio Major and
Minor version. The config option cannot be used for examining
atch versions as it relies on a float representation of the
package version.
Change-Id: I9221188b817fbb570700406b97e194aacf6ef786
* Update charms.openstack from branch 'master'
to 055fb499b84c204809921f218d919f9cc4f4f3f6
- Support Trilio 4.2 Share hashes
The Trilio 4.2 changes the way that hashes are generated for nfs
mount points. The hash is now generated from the directory only,
the source IP address is ignored. This patch updates the ghost-share
action to accommodate that.
Change-Id: I64a1cc95a3a78ce79d57f5b840edb29996f04f9c
* Update charms.openstack from branch 'master'
to 856a94cba0eb5394d4f18e8aa4113e328736ce7c
- Fixing typos in the README file
Found some typos in the README file and this commit is to fix them.
Change-Id: Iba31cab4dbf8a8ff348dafcefdffca1ba244d7fe
* Update charms.openstack from branch 'master'
to 13ef220ce3529fa7b8e11c6e4c5b352d05b6f148
- core: Gracefully handle missing config option
The ``get_os_codename_package`` function will be called by all
charms. The newly added call to the ``configure_source`` method
may in some circumstances raise an exception due to missing
source configuration option.
Handle this situation gracefully.
Related-Bug: #1951462
Change-Id: I2bb9c2561b89fea366bd7b7f6a10c3140ce09000
* Update charms.openstack from branch 'master'
to 55cc044ea8a3e15cc87cdef132d852f0f2c98e97
- Fix use of ``openstack-release`` to determine codename
The current code will oportunisticly attempt to install the
``openstack-release`` package, but it does so without configuring
the UCA sources.
Attempt to configure sources to avoid charms getting stuck in a
chicken and egg situation.
Closes-Bug: #1951462
Change-Id: I8ed6e2dfc7ce83c2e56fd072458e2ef189968e41
* Update charms.openstack from branch 'master'
to dda431eaf92c3acae4f279a2ed0bf074a394f697
- core: Move package version helpers to BaseOpenStackCharmActions
To resolve a inter-dependency issue between the various package
version helpers and the UCA ``configure_source`` method, co-locate
all of them in ``BaseOpenStackCharmActions``.
Partial-Bug: #1951462
Change-Id: If42ad980ff2b0430eba24531eae9a80204768388
* Update charms.openstack from branch 'master'
to fd6581ecab70955b99cf0d0ad68cdf06a56fff12
- Add support for package-upgrade action
The package-upgrade action is similar to the openstack-upgrade
action except that it performs package upgrades within the current
openstack release. If a new openstack release is available, the
package-upgrade action will not perform any upgrades.
Change-Id: Ie783f8da67494f31abe574d99b1f2433dc622be9
* Update charms.openstack from branch 'master'
to 8a1b220486ba43e97067a3086afb8dde4f11e7bb
- Add xena and yoga to testing mocks
Change-Id: Id88eda48764ec244f992d2905a64fc19605e439d
* Update charms.openstack from branch 'master'
to 7aa1c0e4d0ed3a1fb43489bc5c3e50914714c9ab
- Merge "Use unittest.mock instead of mock"
- Use unittest.mock instead of mock
The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we can use the
standard lib unittest.mock module instead.
Change-Id: I491ca9f482a00b7ca3fa44aa8c26ef73559c178f
* Update charms.openstack from branch 'master'
to 58fc4dadac4a40ab0d2e78897e0c77ffeeacb051
- Register previously vip set for deletion.
When the vip is changed the ones that are no longer present need to be
registered for deletion from pacemaker's configuration. This change
relies on hookenv.config.changed() to determine what vip(s) are no
longer present in the configuration and ask hacluster to remove them.
Closes-Bug: #1952363
Change-Id: I1afe987ff26af0e10604dd507daef4ac282d9aab
* Update charms.openstack from branch 'master'
to 6b0c1c7cade7cb36cde6573087b87e60eead2d75
- Replace deprecated call from charmhelpers policyd
The use of function maybe_do_policyd_overrides_on_config_changed
is deprecated in favor of maybe_do_policyd_overrides.
This would trigger deprecation warning messages not only in logs
but also in actions such as seen in Octavia Charm
The unittest covering the call has also been updated accordingly
Closes-Bug: #1939840
Change-Id: Iec91d60727533e6291c3ec20442197ac44f4607c
* Update charms.openstack from branch 'master'
to 1cea4c56fb27d6100fd9964655a068818c5b382e
- [community goal] Update contributor documentation
This patch updates/adds the contributor documentation to follow
the guidelines of the Ussuri cycle community goal[1].
[1] https://governance.openstack.org/tc/goals/selected/ussuri/project-ptl-and-contrib-docs.html
Story: #2007236
Task: #38543
Change-Id: If8c73e980db1a8a2475c21684bf630156d6fb8dd
* Update charms.openstack from branch 'master'
to 8960e070f2ffdc514b949b3e4c2d59a6f93dfc15
- Use openstack-release package to determine codename
The use of package versions to look up OpenStack codenames is
deprecated for in favor of using the openstack-release package.
The openstack-release package is available for Wallaby onward.
Change-Id: I9038c9785a4f36b854a1fb7e8d5baaf91a99c70e
* Update charms.openstack from branch 'master'
to bcd0c9b4b4a19d4a4125e0a6a3f808a843a74fa1
- Merge "core: Add all supported releases - packages map"
- core: Add all supported releases - packages map
For principal - subordinate plugin type relations where the
principal Python payload imports code from packages managed by a
subordinate, upgrades can be problematic.
This helper will allow a subordinate charm to inform its principal
about all implemented release - packages combinations ahead of time.
With this information in place the principal can do the upgrade in
one operation without risk of charm relation RPC type processing at
a critical moment.
Related-Bug: #1806111
Change-Id: I455501c1c2cdb53e62b533be95d2493bf1a5027a
* Update charms.openstack from branch 'master'
to 671991385376fcc879047b88aaabc9704de3bc37
- Use restart_on_change from charmhelpers
Switch to using restart_on_change from charmhelpers rather than
duplicating the code in charms.openstack.
I have run designate smoke with this change: https://paste.ubuntu.com/p/ZyQmyK92Yr/
Change-Id: I4925243747dd00471bc828c65278dd16ed951b0c
* Update charms.openstack from branch 'master'
to df9a2eddecb9e68d27f0273e838ba010c64740a9
- Use application_name by default for creating pools
Charms consuming Ceph storage typically follow the convention that
pools are named for the application rather than the service name. Most
charms also allow for the pool name to be defined via a config option.
Charms which inherit from the BaseOpenStackCephCharm class will not
follow this typical behavior as the pool created is based on the charm
name.
This change updates the create_pool function to allow for a concrete
charm to optionally provide the name of the pool to be created,
defaulting to the application_name if one is not provided. This is a
change in behavior as the previous behavior was to use the charm
class's name property. Reviewing all known charms which inherit
from/mixin the BaseOpenStackCephCharm reveals that Gnocchi is the only
user of the create_pool method.
As such, it stands to reason that a change in behavior is safe in this
context since the charm class's name for gnocchi was set to the
'gnocchi' which is also the typical application name.
Change-Id: I1756ff4e1362fbc7584551249c583f8d3cb0c8dc
Closes-Bug: #1918821
* Update charms.openstack from branch 'master'
to 976dd86b833c592d4ec656eb3d42f143bf9e6569
- Change ostestr to stestr in comment in setup.py
charms.openstack now uses stestr rather that os-testr.
Change-Id: I436c75d8cb17abdcfbdc97cd31ced7a7165a48b5
* Update charms.openstack from branch 'master'
to 6a050f5b3c26eb3590793a947ec36ec7f88f761c
- Skip bindings that don't exist
When fetching CNs from bindings, skip those that are not
available since not all charms have all bindings.
Closes-Bug: 1913313
Change-Id: Iad9616d3f8668782cd9c7dc498120536fb756da7
* Update charms.openstack from branch 'master'
to 946ee47cf0f17ab90562e7ae7ea8502a39bdc898
- Ensure PeerHARelationAdapter has correct backend IP addresses
In the linked bug, the designate charm ended up with the wrong IP
addresses in the haproxy.cfg due to the method add_default_addresses()
overwriting the correctly determined addresses obtained by the method
add_network_split_addresses().
It's not clear whether this has always been broken, and recent tests
have exposed it, or whether changes in charms.reactive have resulted in
add_default_addresses() adding more addresses than it used to.
However, it seems correct that the default addresses are added first and
then the ones from the relations/spaces add/overwrite the default ones
to provide the correct set.
Change-Id: Id7f1d457911374620e9a7ee3069376a1752160f5
Closes-Bug: #1912505
* Update charms.openstack from branch 'master'
to 3436b75913d6cc2d36b1dfe3b63d947e1d773d53
- Add charmhelpers.contrib.openstack.ip to mocks
Reactive charms use charms_openstack.test_mocks to setup their
mocks. A recent change imports 'charmhelpers.contrib.openstack.ip'
so add that to the mock list
Change-Id: I3bd2517959b1cd43e057f420c8c4f2f28598d70a
* Update charms.openstack from branch 'master'
to bf521e6d5ba22eb1b44e715a2184877f0a95e5a1
- Stop getting {public,private}-address from unit-get
In Juju 2.8rc3 unit-get public-address became unreliable
(Bug #1910973). Since getting an address this was is deprecated
switch the OpenStack functions to prefer network-get. However,
fallback to the old method to support old versions of Juju for
the time being.
Change-Id: I33020deefa1f814b77767653dad34c228def91fa
* Update charms.openstack from branch 'master'
to d37b622a7b44415c7cd5f2e6bc20600b060a6f94
- Merge "Send bindings for get_certificate_requests"
- Send bindings for get_certificate_requests
Charm-helpers PR must land first:
https://github.com/juju/charm-helpers/pull/556
Closes-Bug: #1908306
Change-Id: I7b3c4e11ab04cc133ffe6a718d5b505f27edad68
* Update charms.openstack from branch 'master'
to 2520764264e10d1ec6077f5472c038ab462df1c2
- Support upgrades to Trilio 4.1
Adding support for Trilio 4.1 includes the following changes:
* Add Trilio_properties config property to enables templates to
distinguish between 4.0 and 4.1 release.
* Add get_trilio_codename_install_source to attempt to derive the
Trilio version supported by an apt repo.
* Add get_trilio_charm_instance which overrides the default
get_charm_instance. This will pick the correct charm class based
on both the Trilio release and the OpenStack release.
* Add select_trilio_release which overrides the default
select_release and calculates the target OpenStack and Trilio
release.
* Add a specialist Trilio metaclass BaseTrilioCharmMeta. This
registers charm classes using their OpenStack release, Trilio
release and package type.
* Move code shared between TrilioVaultCharm &
TrilioVaultSubordinateCharm to TrilioVaultCharmMixin. Add support
for Trilio upgrades to TrilioVaultCharmMixina.
NOTE: An earlier version of this change
(I5a5e5721d9a713b66f8c796896c400481e9733a2) was landed and
reverted. It was reverted because get_trilio_charm_instance
and select_trilio_release were both registered as handlers
irrespective of whether a charm explicitly imported
charms_openstack.plugins.trilio This caused reactive charms
which used the default handlers to fail as they imported the
Trilio functions and the default ones and only one can ever
registered. This patch fixes this by wrapping the trilio
function definitions inside make_* methods, so the decorator
only registers the methods when the make_* methods are
explicitly called.
Change-Id: Id3bb13aff6d0e6df2d5ec144689c992cf09c1b4c
* Update charms.openstack from branch 'master'
to 390a426d31cb35b0f3c7066b605cf0d52e005486
- Revert "Support upgrades to Trilio 4.1"
This reverts commit 3b72a8ba2f4f2981ee6b84fb0346858390d6c8ef.
Reason for revert: Registering a second release_selector_function is breaking non-trilio charms
Change-Id: I5a4b8f8602c2a46b340765a8a22fdc218560dfc6
* Update charms.openstack from branch 'master'
to 3b72a8ba2f4f2981ee6b84fb0346858390d6c8ef
- Support upgrades to Trilio 4.1
Adding support for Trilio 4.1 includes the following changes:
* Add Trilio_properties config property to enables templates to distinguish
between 4.0 and 4.1 release.
* Add get_trilio_codename_install_source to attempt to derive the Trilio
version supported by an apt repo.
* Add get_trilio_charm_instance which overrides the default get_charm_instance.
This will pick the correct charm class based on both the Trilio release and
the OpenStack release.
* Add select_trilio_release which overrides the default select_release and
calculates the target OpenStack and Trilio release.
* Add a specialist Trilio metaclass BaseTrilioCharmMeta. This registers
charm classes using their OpenStack release, Trilio release and package
type.
* Move code shared between TrilioVaultCharm & TrilioVaultSubordinateCharm
to TrilioVaultCharmMixin. Add support for Trilio upgrades to
TrilioVaultCharmMixina.
Change-Id: I5a5e5721d9a713b66f8c796896c400481e9733a2
* Update charms.openstack from branch 'master'
to 38de241ce669dbc4c9c956cf94fbfc9dbbbbe17f
- Allow bespoke get_charm_instance method to be used
Allow a charm to use the new register_get_charm_instance decorator
to register the method to be used when getting a charm instance.
Currently get_charm_instance expects standard OpenStack
versioning, this change allows are a charm to register an
alternative get_charm_instance method that can handle an
alternative versioning system.
Perhaps controversially the default method is not defined in
charms_openstack.charm.defaults. I have kept it in core
because it felt a more natural fit there given it relies on
core._releases but I am open to moving it if that is
preferable.
Change-Id: I42574654bc1f314b49049e80861d4039f8484dff
* Update charms.openstack from branch 'master'
to 4907569ebc2c71bb065842460778f3146084ed83
- Separate pkg version collection from release calc
Break out the collection of a packages version information from
deriving the corresponding OpenStack release. This allows the package
version code to be used with charms which have their own
idiosyncratic versioning system.
Change-Id: I9a7dcc6ad3da8860dc650f956e5c6eec8ff51660
* Update charms.openstack from branch 'master'
to 8c2283a50849520eda3955f9599864f8f227fcc1
- Checked if release_pkg is set. If not, ensure a RuntimeError raised.
Added test case to verify RuntimeError is raised when release_pkg is not set.
Closes-Bug: #1904494
Change-Id: I421b52d502644b52f4e31162e74dea8a1befdfa0
* Update charms.openstack from branch 'master'
- Merge "plugins/ceph: Add common pool creation method"
- plugins/ceph: Add common pool creation method
The new helper supports to optionally retrieve common
configuration options for BlueStore Compression.
Fix ordering of Ceph class composition. Both the CephCharm and the
fake charm class used in the unit test had the wrong order for the
composition making it impossible to override already existing
methods inherited from OpenStackCharm.
Change-Id: I9fb543f297522c7217acdcfa950bb2810b26c4a0
* Update charms.openstack from branch 'master'
- Optionally change service port for ssl
If a charm class sets ssl_port_bump to True then when configuring
the service for TLS also change the port it is listening on.
The need for this comes from the nova-scheduler and nova-compute
services which cache the url for the placement service, when the
placement service switches protocol the nova services fail which
does not trigger them to reexamine the catalogue.
Closes-Bug: #1862974
Change-Id: I790c55e78439b9a5ea2c3f12edbe5928a4f08e05