Statistics
| Branch: | Tag: | Revision:

root / settings.d / 15-queues.conf @ 1c382247

History | View | Annotate | Download (2.7 kB)

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