Commit Graph

41 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
Zuul 1d675c45bd Merge "[ussuri][goal] Updates for python 2.7 drop" 2020-03-25 06:36:53 +00:00
James Page b365c78a21 Add optional admin_* keys to keystone interface
The keystone charm may provide ID information about the admin
user, project and domain.

These are used to build trusts between service accounts and the
main cloud admin account to allow priviledge escalation for
cloud applications (such as backups).

Change-Id: I9c7a9a4d218059de2ad24c8481fd263f8125a8e3
2020-03-05 15:07:18 +00: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
Ghanshyam Mann 06c6435cce [ussuri][goal] Updates for python 2.7 drop
OpenStack is dropping the py2.7 support in ussuri cycle.

charm repos need few updates on either py2 drop or updating
ussuri python template, tox.ini etc.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal:
https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html

Change-Id: Ibfafcda16b5c59b7afc63ceb5e7c0f4fad08c7a4
2020-02-27 20:30:27 -06:00
Camille Rodriguez 8391b873ba Avoid pollution and false positives with tox.ini
- removing sitepackages in tox.ini to avoid test env pollution
- skip_missing_interpreters in tox.ini set to False to avoid false
positives by skipping missing interpreters.

Change-Id: Ib98bc85fb41b4504bf239783d36c5290df863abd
2019-08-27 08:55:57 -04:00
Corey Bryant b551205b3f Add Python 3 Train unit tests
This is a mechanically generated patch to ensure unit testing is in place
for all of the Tested Runtimes for Train.

See the Train python3-updates goal document for details:
https://governance.openstack.org/tc/goals/train/python3-updates.html

Note that python35-charm-jobs is retained since this charm is supported
on Xenial.

Change-Id: I603dbbd3a7dd9061f0fe91928895f4ad20a6a113
Story: #2005924
Task: #34228
2019-07-30 10:20:44 -04:00
Jorge Niedbalski 5bc07627ef Add service_domain_id to the auto_accessors list.
service_domain_id might be required by dependant charms
such as aodh and should be exposed as an accessor attribute.

Partial-Bug: #1831181

Change-Id: Idae7aec048b9203d2b1a75da8d68cf97271f1b53
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@canonical.com>
2019-06-04 17:06:35 +00:00
Jorge Niedbalski 9fbb2054ac Switch to stestr.
CI is broken due to a bug [0] reported
in testr.

Following approach used in keystone and switching
to stestr instead of testr.

[0] https://review.opendev.org/#/c/662582/
[1] d1e3a7845d

Change-Id: I108b4d7b4c4f20f4b077077528f07f9447747a48
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@canonical.com>
2019-06-04 11:58:08 -04:00
OpenDev Sysadmins 336364e718 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:28:10 +00:00
Paul Goins 3c81e2a92e Added tox environment for gathering coverage
This technique was borrowed from the tox "cover" environment in
openstack/nova's tox.ini.  This leverages the fact that stestr lets
you override the python executable via the PYTHON environment
variable.  Doing this allows us to easily generate coverage for our
unit tests.

An important caveat is that this does not provide any coverage for
tests via zaza, amulet, etc.  It is purely focused on the unit tests.

Note that this replaces the previous .coveragerc; coverage
configuration is instead pulled from tox.ini.

Change-Id: I2e1964927b44aeef8135350390968f98bf77f8ac
2019-03-01 14:40:27 +01: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
zhulingjie 1c92403c75 Change openstack-dev to openstack-discuss
Change-Id: I1a1daa9244da5fc422ed5d881ca32258c57cb5ae
2018-11-18 03:08:50 -05:00
Frode Nordahl 783333e102 Enable py3 gate job
Extend .gitignore

Change-Id: I79fb5d2275c5e5fda6a7212f64a475cbb06baf1a
2018-10-12 13:31:06 +02:00
Doug Hellmann 305eb10d2e fix tox python3 overrides
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.

We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.

We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.

Change-Id: If1e380edabb8db57486a8d9c6ca7616247087505
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-26 18:38:43 -04:00
Zuul 8c75172861 Merge "Support service_domain for relation" 2018-09-12 18:21:19 +00:00
Seyeong Kim f4fc3175b8 Support service_domain for relation
Adding code for supporting service_domain.
Some charms need to get service_domain
from keystone relation.

Change-Id: Ic9a8ae558482cda8f28de8ff465dab15fc85f9e3
2018-09-12 18:54:53 +09:00
Doug Hellmann 09779fea8d import zuul job settings from project-config
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.

Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.

Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: I8912b06ec61bbebcee14f3cd1ac0a14acbd97ac5
Story: #2002586
Task: #24317
2018-09-11 13:11:59 -04:00
melissaml 954f1dc815 Add py36 testenv
Python 3.6 is installed by default in Ubuntu 18.04 LTS.
Therefore, according to Transition Plan [1],
it'll be handy to have py36 testenv.

For more details, please check Python2 Deprecation Timeline [2]
and Python3-first Goal - Completion Criteria [3].

[1] https://wiki.ubuntu.com/Python/Python36Transition
[2] https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html
[3] https://review.openstack.org/#/c/575933/8/goals/stein/python3-first.rst@42

Change-Id: I5f46c652dbc988991b2d506d66a985de7e5af8c9
2018-07-24 19:46:56 +08: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
Liam Young c9ed6c0575 Add api_version as an accessible property
The api version that keystone is uing is advertised via the
api_version key in the identity-service relation but the interface
does not currently set it as a property.

Change-Id: I3b0ee1f22d1c6afee54e1faf315400ca1f8adf77
2016-08-01 12:47:51 +00:00
James Page 1e91681243 Add support for verification process
Add required configuration files and generally update the interface
after move to OpenStack git/gerrit.

Change-Id: Id8717e9764187e2f16e9a2a3b6007779b7fb6468
2016-07-07 15:32:37 +01:00
James Page 74e74c23cb Merge pull request #3 from gnuoy/feature/ssl-support
Add support for extracting and decoding SSL keys and certs from inter…
2016-06-27 11:58:06 +01:00
Liam Young 4b966c920b Add support for extracting and decoding SSL keys and certs from interfaces 2016-06-24 06:06:01 +00:00
gnuoy 65b7d06302 Merge pull request #2 from ajkavanagh/master
Revert "Add unit tests to the interface"
2016-04-29 12:18:57 -05: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
James Page 6b459f7658 Drop tox directory 2016-02-11 09:56:09 +00:00
Liam Young 5118017e3a Fix lint 2015-12-07 15:19:54 +00:00
Liam Young 5a1fd1fecd Support requesting keystone endpoint information and differentiaite between old and new ssl info 2015-12-07 15:17:39 +00:00
Liam Young fd929c0831 gitignore .tox and update to handle all ssl data back from keystone 2015-12-07 12:59:00 +00:00
Liam Young 34b626bbb1 Add .gitignore 2015-12-07 12:57:32 +00:00
Liam Young 13c6c40998 Fix name of *_tenant_id var passed back from keystone 2015-12-07 11:47:24 +00:00
Liam Young fab262721a Fix checking auto_accessors for none 2015-12-07 10:57:58 +00:00
Liam Young 3ff28b362e initial version 2015-12-07 10:37:06 +00:00