root / settings.d / 15-queues.conf @ 960c15e0
History | View | Annotate | Download (2.7 kB)
1 |
# -*- coding: utf-8 -*- |
---|---|
2 |
# |
3 |
# Queues, exchanges and bindings for AMQP |
4 |
########################################### |
5 |
|
6 |
# Rabbit work queue endpoint |
7 |
RABBIT_HOST = "62.217.120.67:5672" |
8 |
RABBIT_USERNAME = "okeanos" |
9 |
RABBIT_PASSWORD = "0k3@n0s" |
10 |
RABBIT_VHOST = "/" |
11 |
|
12 |
EXCHANGE_GANETI = "ganeti" # Messages from Ganeti |
13 |
EXCHANGE_CRON = "cron" # Messages from periodically triggered tasks |
14 |
EXCHANGE_API = "api" # Messages from the REST API |
15 |
EXCHANGES = (EXCHANGE_GANETI, EXCHANGE_CRON, EXCHANGE_API) |
16 |
|
17 |
def fix_amqp_settings(backend_prefix): |
18 |
"""Configure AMQP-specific settings |
19 |
|
20 |
Configure AMQP-specific settings based on backend_prefix. |
21 |
This function *must* be called later in settings.py, with |
22 |
BACKEND_PREFIX_ID as argument. |
23 |
|
24 |
""" |
25 |
global BINDINGS, QUEUES, QUEUE_DEBUG, BINDINGS_DEBUG |
26 |
|
27 |
BINDINGS = [] |
28 |
QUEUES = [] |
29 |
|
30 |
prefix = backend_prefix.split('-')[0] |
31 |
|
32 |
QUEUE_GANETI_EVENTS_OP = "%s-events-op" % prefix |
33 |
QUEUE_GANETI_EVENTS_NET = "%s-events-net" % prefix |
34 |
QUEUE_CRON_CREDITS = "%s-credits" % prefix |
35 |
QUEUE_EMAIL = "%s-email" % prefix |
36 |
QUEUE_RECONC = "%s-reconciliation" % prefix |
37 |
if DEBUG is True: |
38 |
QUEUE_DEBUG = "debug" # Debug queue, retrieves all messages |
39 |
|
40 |
QUEUES = (QUEUE_GANETI_EVENTS_OP, QUEUE_GANETI_EVENTS_NET, |
41 |
QUEUE_CRON_CREDITS, QUEUE_EMAIL, QUEUE_RECONC) |
42 |
|
43 |
if DEBUG is True: |
44 |
BINDINGS_DEBUG = [ |
45 |
# Queue # Exchange # RouteKey # Handler |
46 |
(QUEUE_DEBUG, EXCHANGE_GANETI, '#', 'dummy_proc'), |
47 |
(QUEUE_DEBUG, EXCHANGE_CRON, '#', 'dummy_proc'), |
48 |
(QUEUE_DEBUG, EXCHANGE_API, '#', 'dummy_proc'), |
49 |
] |
50 |
QUEUES += (QUEUE_DEBUG,) |
51 |
|
52 |
# notifications of type "ganeti-op-status" |
53 |
DB_HANDLER_KEY_OP ='ganeti.%s.event.op' % prefix |
54 |
# notifications of type "ganeti-net-status" |
55 |
DB_HANDLER_KEY_NET ='ganeti.%s.event.net' % prefix |
56 |
|
57 |
BINDINGS = [ |
58 |
# Queue # Exchange # RouteKey # Handler |
59 |
(QUEUE_GANETI_EVENTS_OP, EXCHANGE_GANETI, DB_HANDLER_KEY_OP, 'update_db'), |
60 |
(QUEUE_GANETI_EVENTS_NET, EXCHANGE_GANETI, DB_HANDLER_KEY_NET, 'update_net'), |
61 |
(QUEUE_CRON_CREDITS, EXCHANGE_CRON, '*.credits.*', 'update_credits'), |
62 |
(QUEUE_EMAIL, EXCHANGE_API, '*.email.*', 'send_email'), |
63 |
(QUEUE_EMAIL, EXCHANGE_CRON, '*.email.*', 'send_email'), |
64 |
(QUEUE_RECONC, EXCHANGE_CRON, 'reconciliation.*', 'trigger_status_update'), |
65 |
] |
66 |
|
67 |
|
68 |
# Fix up the AMQP-specific settings based on BACKEND_PREFIX_ID |
69 |
# Make sure to call it again, if you modify it at some later point |
70 |
fix_amqp_settings(BACKEND_PREFIX_ID) |