Merge ~cjwatson/rutabaga:charm-fix-proxy-check into rutabaga:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 90bc6397a95d4229e2037f1732707feeaf97324c
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/rutabaga:charm-fix-proxy-check
Merge into: rutabaga:master
Diff against target: 54 lines (+8/-5)
2 files modified
charm/rutabaga/reactive/rutabaga.py (+5/-2)
charm/rutabaga/scripts/nrpe/check_rutabaga_proxy (+3/-3)
Reviewer Review Type Date Requested Status
Jürgen Gmach Approve
Review via email: mp+441679@code.launchpad.net

Commit message

charm: Fix check_rutabaga_proxy to avoid double slashes

Description of the change

The default value of `api_url` is `"http://localhost:8080/"`. This means that just appending `"/tokens"` to it results in `"http://localhost:8080//tokens"`, which 404s. Use `urljoin` to avoid this problem.

Also tweak the charm's reactive handlers slightly so that Nagios checks are reinstalled when the charm is upgraded.

To post a comment you must log in.
Revision history for this message
Jürgen Gmach (jugmac00) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/charm/rutabaga/reactive/rutabaga.py b/charm/rutabaga/reactive/rutabaga.py
2index d355728..f717117 100644
3--- a/charm/rutabaga/reactive/rutabaga.py
4+++ b/charm/rutabaga/reactive/rutabaga.py
5@@ -96,7 +96,7 @@ def nrpe_available():
6
7
8 @when('rutabaga.nrpe-api-check.published')
9-@when_not('nrpe-external-master.available')
10+@when_not_all('nrpe-external-master.available', 'rutabaga.configured')
11 def nrpe_unavailable():
12 clear_flag('rutabaga.nrpe-api-check.published')
13
14@@ -113,7 +113,10 @@ def nrpe_and_squid_available():
15
16
17 @when('rutabaga.nrpe-proxy-check.published')
18-@when_not_all('nrpe-external-master.available', 'squid.available')
19+@when_not_all(
20+ 'nrpe-external-master.available',
21+ 'rutabaga.configured',
22+ 'squid.available')
23 def nrpe_or_squid_unavailable():
24 clear_flag('rutabaga.nrpe-proxy-check.published')
25
26diff --git a/charm/rutabaga/scripts/nrpe/check_rutabaga_proxy b/charm/rutabaga/scripts/nrpe/check_rutabaga_proxy
27index 158d270..5d0b6e2 100755
28--- a/charm/rutabaga/scripts/nrpe/check_rutabaga_proxy
29+++ b/charm/rutabaga/scripts/nrpe/check_rutabaga_proxy
30@@ -5,14 +5,14 @@ import json
31 from pathlib import Path
32 from random import randint
33 import sys
34-from urllib.parse import urlparse
35+from urllib.parse import urljoin, urlparse
36 from time import sleep
37
38 import requests
39
40
41 def create_token(username, admin_username, admin_secret, api_url):
42- token_endpoint = f'{api_url}/tokens'
43+ token_endpoint = urljoin(api_url, '/tokens')
44 payload = json.dumps({'username': username})
45 r = requests.post(
46 token_endpoint, data=payload, auth=(admin_username, admin_secret))
47@@ -29,7 +29,7 @@ def create_token(username, admin_username, admin_secret, api_url):
48
49
50 def revoke_token(token, admin_username, admin_secret, api_url):
51- token_endpoint = f'{api_url}/tokens/{token["username"]}'
52+ token_endpoint = urljoin(api_url, f'/tokens/{token["username"]}')
53 r = requests.delete(token_endpoint, auth=(admin_username, admin_secret))
54 return r.status_code == 200
55

Subscribers

People subscribed via source and target branches