Commit Graph

12 Commits

Author SHA1 Message Date
Liam Young 36ea7b385a Fix endpoint_checksums
KeystoneRequires.ep_changed() now returns a dictionary rather than
json. As a result KeystoneRequires.endpoint_checksums now throws an
exception when it tries to decode the return from ep_changed.

Change-Id: I440104679c900ce8b67ff1fca1d0ce003e5f0ef4
2022-09-19 11:25:25 +00:00
James Page 1a5142bac6 Add forwards compat with k8s operator
The new keystone-k8s operator uses the application data bag and
more up-to-date key names for endpoint and authentication information.

Check for this information and then fallback to the existing
keystone charm unit data bag data set if not found.

Update register_endpoints to also provide new application data
bag JSON encoded data when this method is called from a lead
unit.  This relies on the type and description of the endpoint
being provided which will require a charm change on adoption.

Change-Id: I921d173c64b12c35f5ffc17270a0fc2bb83891c4
2022-09-16 14:54:50 +01:00
James Page 9ad5cade97 Refactor to use Endpoint base class
The RelationBase class has been deprecated for some time and
provides no support for interaction with the application data
bag.

Migrate requires interface to Endpoint base class and refactor
as needed.

Change-Id: I82fe7df6c7c3658dd334a830442f1dcbd1e7d7e4
2022-09-08 09:44:35 +01:00
Edward Hope-Morley 501af18b30 Add service_type auto_accessors and base settings
The service_type needs to be added to keystone_authtoken
for access rules (application credentials) to work so it
is now a required parameter.

Related-Bug: #1965967
Change-Id: Ic90de9de13ad2728b9ce9de075c03f7854c417ca
2022-03-28 16:52:41 +01:00
Liam Young a4684ff27a Charm specify roles to be granted to admin
A charm joined to keystone via the identity-service relation can
now specify additional roles that can be granted to admin. This
is done by setting the relation data key `add_role_to_admin` the
value is a comma seperated list of roles that should be granted
to admin.

Change-Id: I5495c350c7ac65f8a67125734dff368577c983f4
2022-02-25 13:47:31 +00:00
David Ames a48a1e826a Collapse available and available.auth
Most reactive charms react on identity-service.available but the
current interface distinguishes between available and available.auth. It
is somewhat assumed by most charms that identity-service.available is
equivalent to identity-service.available.auth, as what charms are
concerned with is the ability to authenticate against the cloud.

Collapse the difference between identity-service.available and
identity-service.available.auth.

Continue to set identity-service.available.auth for any charms that may
rely on it.

Change-Id: I494feea5f3ef8706140ce712b1e025e52b0dfbd1
Closes-Bug: #1818113
2020-07-16 14:21:58 -07:00
Hervé Beraud 7902a74aac 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.

Note that https://github.com/openstack/charms.openstack is used during tests
and he need `mock`, unfortunatelly it doesn't declare `mock` in its
requirements so it retrieve mock from other charm project (cross dependency).
So we depend on charms.openstack first and when
Ib1ed5b598a52375e29e247db9ab4786df5b6d142 will be merged then CI
will pass without errors.

Depends-On: Ib1ed5b598a52375e29e247db9ab4786df5b6d142
Change-Id: I8ca08483bf40a3092275d5dd0458951a64f239a1
2020-06-09 17:13:03 +02:00
James Page 699ca9e095 Add support for endpoint change notification
Add support for recent changes to keystone to allow consuming
charms to request notification about endpoint changes.

Change-Id: Icacca3445980cdb866cb0dad90b288ce96e8c460
2020-03-03 08:35:33 +00:00
Frode Nordahl 0ec113afb7 Add support for passing optional ``requested_roles`` attribute
When passing ``requested_roles`` down the ``identity-service``
relation the Keystone charm will create the listed roles for you.

Useful for charm authors implementing charms with specific role
requirements.

Change-Id: I7c1eedb1e78ffc53ac3e0df81f6b52358dd8dfa5
Closes-Bug: #1813602
2019-01-28 16:43:11 +01:00
Alex Kavanagh f6831363b7 Put back the unit tests and enable the ignore
This adds back in the unit tests that were removed due to charm-tools
issue #192 [1] where the ignore option was 'ignored' by charm-tools.
This meant that the unit tests could not be ignored, and they ended
up in the built charm which then failed.

[1] https://github.com/juju/charm-tools/issues/192

Change-Id: Idbde830cac9ddc8ee3622fa6b7fd8a88e81e2811
2018-05-08 15:05:20 +01:00
Alex Kavanagh 881e13792e Revert "Add unit tests to the interface"
This reverts commit 133fedca1a.

Reverting this commit (temporarily) until charm-tools merge 193 is
released.
2016-04-29 16:48:26 +00:00
Alex Kavanagh 133fedca1a Add unit tests to the interface
This adds unit tests to the interface-keystone and provides ostestr
support, and a makefile to allow easy 'make lint' and 'make test'
commands.  All tests are performed in tox environments.  At present this
is py27.
2016-04-22 16:09:04 +00:00