juju / charm-helpers

Apache License 2.0
18 stars 127 forks source link

backport: IndentityServiceContext app data fixes #747

Closed ajkavanagh closed 2 years ago

ajkavanagh commented 2 years ago

The IdentityServiceContext was recently updated to add the application data bag. Unfortunately, they keystone charm uses both the regular relation data primarily, but the updates for endpoints are on both the application database and the regular relation data. The IdentityServiceContext used the app data bag exclusively if there were any keys available, which leads to it ignoring the existing relation data entirely; this results in 'identity relation not ready' with missing data items.

This patch changes the functionality of the IdentityServiceContext so that it preferentially selects keys from the application data bag unless they are None, in which case it tries for those keys on the existing relation data. e.g. it will stitch the two relations together with the app data bag taking priority. This allows the (e.g.) nova-cloud-controller charm to correctly access the identity relation data and form a complete context.

(From PR: #746)

(cherry-pick from b72abe90 on master) (cherry-pick from 69f6b8d4 on master)