Merge lp:~hasanammar/conn-check/amqp-defaults into lp:~ubuntuone-hackers/conn-check/configs

Proposed by Hasan Ammar
Status: Merged
Merged at revision: 33
Proposed branch: lp:~hasanammar/conn-check/amqp-defaults
Merge into: lp:~ubuntuone-hackers/conn-check/configs
Diff against target: 98 lines (+41/-18)
2 files modified
conn_check_configs/django.py (+32/-11)
tests.py (+9/-7)
To merge this branch: bzr merge lp:~hasanammar/conn-check/amqp-defaults
Reviewer Review Type Date Requested Status
Daniel Manrique (community) Approve
Review via email: mp+375985@code.launchpad.net

Commit message

Add default values for AMQP connection

Description of the change

Add default values for AMQP connection to ensure valid values are always passed to conn-check if any are missing.

Default values are taken from: https://github.com/celery/py-amqp/blob/master/amqp/connection.py

To post a comment you must log in.
Revision history for this message
Daniel Manrique (roadmr) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'conn_check_configs/django.py'
--- conn_check_configs/django.py 2019-11-19 19:31:10 +0000
+++ conn_check_configs/django.py 2019-11-25 22:58:33 +0000
@@ -121,6 +121,37 @@
121 return checks121 return checks
122122
123123
124def _get_broker_checks(url_dict):
125 # Use default kombu values if the user hasn't provided values for any
126 # connection setting.
127 # Default kombu options:
128 # https://kombu.readthedocs.io/en/master/userguide/connections.html#urls
129 # Default AMQP values:
130 # https://github.com/celery/py-amqp/blob/master/amqp/connection.py
131
132 conn_type = url_dict['transport']
133 conn_defaults = {
134 'host': 'localhost'
135 }
136
137 if conn_type == 'amqp':
138 conn_defaults['port'] = 5672
139 conn_defaults['username'] = 'guest'
140 conn_defaults['password'] = 'guest'
141 conn_defaults['vhost'] = '/'
142 elif conn_type == 'redis':
143 conn_defaults['port'] = 6379
144
145 return {
146 'type': conn_type,
147 'host': url_dict.get('hostname') or conn_defaults.get('host'),
148 'port': url_dict.get('port') or conn_defaults.get('port'),
149 'username': url_dict.get('userid') or conn_defaults.get('username'),
150 'password': url_dict.get('password') or conn_defaults.get('password'),
151 'vhost': url_dict.get('virtual_host') or conn_defaults.get('vhost'),
152 }
153
154
124def make_celery_broker_url_checks(settings, options):155def make_celery_broker_url_checks(settings, options):
125 checks = []156 checks = []
126157
@@ -133,17 +164,7 @@
133 if broker_url:164 if broker_url:
134 url_dict = kombo_parse_url(broker_url)165 url_dict = kombo_parse_url(broker_url)
135 if url_dict['transport'] in ('amqp', 'redis'):166 if url_dict['transport'] in ('amqp', 'redis'):
136 check = {167 checks.append(_get_broker_checks(url_dict))
137 'type': url_dict['transport'],
138 'host': url_dict['hostname'],
139 'port': url_dict['port'],
140 'username': url_dict['userid'],
141 'password': url_dict['password'],
142 }
143 vhost = url_dict['virtual_host']
144 if vhost:
145 check['vhost'] = vhost
146 checks.append(check)
147168
148 return checks169 return checks
149170
150171
=== modified file 'tests.py'
--- tests.py 2019-11-19 19:48:33 +0000
+++ tests.py 2019-11-25 22:58:33 +0000
@@ -10,10 +10,11 @@
10 VALID_URL_TEST_MAP = {10 VALID_URL_TEST_MAP = {
11 "amqp://": {11 "amqp://": {
12 'type': 'amqp',12 'type': 'amqp',
13 'host': None,13 'host': 'localhost',
14 'port': None,14 'port': 5672,
15 'username': None,15 'username': 'guest',
16 'password': None,16 'password': 'guest',
17 'vhost': '/',
17 },18 },
18 "redis://localhost:6379/": {19 "redis://localhost:6379/": {
19 'type': 'redis',20 'type': 'redis',
@@ -21,13 +22,14 @@
21 'port': 6379,22 'port': 6379,
22 'username': None,23 'username': None,
23 'password': None,24 'password': None,
25 'vhost': None,
24 },26 },
25 "amqp://localhost//foo": {27 "amqp://localhost//foo": {
26 'type': 'amqp',28 'type': 'amqp',
27 'host': 'localhost',29 'host': 'localhost',
28 'port': None,30 'port': 5672,
29 'username': None,31 'username': 'guest',
30 'password': None,32 'password': 'guest',
31 'vhost': '/foo',33 'vhost': '/foo',
32 },34 },
33 "amqp://guest:guest@localhost:5672/foo": {35 "amqp://guest:guest@localhost:5672/foo": {

Subscribers

People subscribed via source and target branches