Skip to content

Commit

Permalink
Merge pull request canonical#5 from canonical/oidc-client
Browse files Browse the repository at this point in the history
Change OIDC Client relation to SDI
  • Loading branch information
knkski authored Apr 23, 2021
2 parents 3097ed3 + 3cf408c commit 2f91eab
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python: [3.7, 3.8, 3.9]
python: [3.8, 3.9]
steps:
- name: Check out code
uses: actions/checkout@v2
Expand Down
2 changes: 2 additions & 0 deletions metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ resources:
requires:
oidc-client:
interface: oidc-client
schema: https://raw.githubusercontent.com/canonical/operator-schemas/oidc-schemas/oidc-client.yaml
versions: [v1]
ingress:
interface: ingress
schema: https://raw.githubusercontent.com/canonical/operator-schemas/service-mesh-schemas/ingress.yaml
Expand Down
13 changes: 5 additions & 8 deletions src/charm.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ def send_info(self, event):
self.interfaces["ingress"].send_data(
{
"prefix": "/dex",
"rewrite": "/",
"service": self.model.app.name,
"port": self.model.config["port"],
}
Expand All @@ -92,14 +93,10 @@ def main(self, event):
port = self.model.config["port"]
public_url = self.model.config["public-url"]

oidc_client_info = []
if "oidc-client" in self.model.relations:
for relation in self.model.relations["oidc-client"]:
for unit in relation.units:
if unit in relation.data:
relation_data = dict(relation.data[unit])
oidc_client_info.append(relation_data)
break
if (oidc_client := self.interfaces["oidc-client"]) and oidc_client.get_data():
oidc_client_info = list(oidc_client.get_data().values())
else:
oidc_client_info = []

# Allows setting a basic username/password combo
static_username = self.model.config["static-username"]
Expand Down
12 changes: 8 additions & 4 deletions tests/unit/test_charm.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,19 @@ def test_main_oidc(mock_pw, harness):
)
rel_id = harness.add_relation("oidc-client", "app")

harness.begin_with_initial_hooks()
harness.add_relation_unit(rel_id, "app/0")
data = {
"data": "data",
"id": "id",
"name": "name",
"redirectURIs": ["uri1"],
"secret": "secret",
}
harness.update_relation_data(
rel_id,
"app/0",
data,
"app",
{"_supported_versions": "- v1", "data": yaml.dump(data)},
)
harness.begin_with_initial_hooks()
assert isinstance(harness.charm.model.unit.status, ActiveStatus)
pod_spec = harness.get_pod_spec()
config_yaml = pod_spec[0]["containers"][0]["volumeConfig"][0]["files"][0]["content"]
Expand Down Expand Up @@ -99,6 +102,7 @@ def test_main_ingress(mock_pw, harness):
relation_data = harness.get_relation_data(rel_id, harness.charm.app.name)
data = {
"port": 5556,
"rewrite": "/",
"prefix": "/dex",
"service": "dex-auth",
}
Expand Down

0 comments on commit 2f91eab

Please sign in to comment.