Revision 8417d1bf settings.d/15-queues.conf

b/settings.d/15-queues.conf
50 50
EXCHANGE_API = "api"        # Messages from the REST API
51 51
EXCHANGES = (EXCHANGE_GANETI, EXCHANGE_CRON, EXCHANGE_API)
52 52

  
53
QUEUE_GANETI_EVENTS = "events"
54
QUEUE_CRON_CREDITS = "credits"
55
QUEUE_EMAIL = "email"
56
QUEUE_RECONC = "reconciliation"
57
QUEUE_DEBUG = "debug"       # Debug queue, retrieves all messages
58
QUEUES = (QUEUE_GANETI_EVENTS, QUEUE_CRON_CREDITS, QUEUE_EMAIL, QUEUE_RECONC)
59

  
60
BINDINGS_DEBUG = [
61
    # Queue         # Exchange          # RouteKey  # Handler
62
    (QUEUE_DEBUG,   EXCHANGE_GANETI,    '#',        'dummy_proc'),
63
    (QUEUE_DEBUG,   EXCHANGE_CRON,      '#',        'dummy_proc'),
64
    (QUEUE_DEBUG,   EXCHANGE_API,       '#',        'dummy_proc'),
65
]
66

  
67
BINDINGS = [
68
    # Queue                 # Exchange          # RouteKey            # Handler
69
    (QUEUE_GANETI_EVENTS,   EXCHANGE_GANETI,    'ganeti.*.event.op',  'update_db'),
70
    (QUEUE_GANETI_EVENTS,   EXCHANGE_GANETI,    'ganeti.*.event.net', 'update_net'),
71
    (QUEUE_CRON_CREDITS,    EXCHANGE_CRON,      '*.credits.*',        'update_credits'),
72
    (QUEUE_EMAIL,           EXCHANGE_API,       '*.email.*',          'send_email'),
73
    (QUEUE_EMAIL,           EXCHANGE_CRON,      '*.email.*',          'send_email'),
74
    (QUEUE_RECONC,          EXCHANGE_CRON,      'reconciliation.*',   'trigger_status_update'),
75
]
76

  
77 53
def fix_amqp_settings(backend_prefix):
78 54
    """Configure AMQP-specific settings
79 55

  
......
82 58
    BACKEND_PREFIX_ID as argument.
83 59

  
84 60
    """
85
    global DB_HANDLER_KEY_OP, DB_HANDLER_KEY_NET, BINDINGS, QUEUES
61
    global BINDINGS, QUEUES, QUEUE_DEBUG, BINDINGS_DEBUG
62

  
63
    BINDINGS = []
64
    QUEUES = []
86 65

  
87 66
    prefix = backend_prefix.split('-')[0]
67

  
68
    QUEUE_GANETI_EVENTS_OP = "%s-events-op" % prefix
69
    QUEUE_GANETI_EVENTS_NET = "%s-events-net" % prefix
70
    QUEUE_CRON_CREDITS = "credits"
71
    QUEUE_EMAIL = "%s-email" % prefix
72
    QUEUE_RECONC = "reconciliation"
73
    if DEBUG is True:
74
        QUEUE_DEBUG = "debug"       # Debug queue, retrieves all messages
75

  
76
    QUEUES = (QUEUE_GANETI_EVENTS_OP, QUEUE_GANETI_EVENTS_NET,
77
              QUEUE_CRON_CREDITS, QUEUE_EMAIL, QUEUE_RECONC)
78

  
79
    if DEBUG is True:
80
        BINDINGS_DEBUG = [
81
        # Queue         # Exchange          # RouteKey  # Handler
82
        (QUEUE_DEBUG,   EXCHANGE_GANETI,    '#',        'dummy_proc'),
83
        (QUEUE_DEBUG,   EXCHANGE_CRON,      '#',        'dummy_proc'),
84
        (QUEUE_DEBUG,   EXCHANGE_API,       '#',        'dummy_proc'),
85
        ]
86
        QUEUES += (QUEUE_DEBUG,)
87

  
88 88
    # notifications of type "ganeti-op-status"
89 89
    DB_HANDLER_KEY_OP ='ganeti.%s.event.op' % prefix 
90 90
    # notifications of type "ganeti-net-status"
91 91
    DB_HANDLER_KEY_NET ='ganeti.%s.event.net' % prefix
92
    BINDINGS[0] = ("events-%s-op" % prefix, EXCHANGE_GANETI, DB_HANDLER_KEY_OP, 'update_db')
93
    BINDINGS[1] = ("events-%s-net" % prefix, EXCHANGE_GANETI, DB_HANDLER_KEY_NET, 'update_net')
94
    QUEUES += ("events-%s-op" % prefix, "events-%s-net" % prefix)
92
    # notifications of type "email"
93
    EMAIL_HANDLER_KEY = '*.email.%s.*' % prefix
94

  
95
    BINDINGS = [
96
    # Queue                     # Exchange          # RouteKey              # Handler
97
    (QUEUE_GANETI_EVENTS_OP,    EXCHANGE_GANETI,    'ganeti.*.event.op',    'update_db'),
98
    (QUEUE_GANETI_EVENTS_NET,   EXCHANGE_GANETI,    'ganeti.*.event.net',   'update_net'),
99
    (QUEUE_CRON_CREDITS,        EXCHANGE_CRON,      '*.credits.*',          'update_credits'),
100
    (QUEUE_EMAIL,               EXCHANGE_API,       '*.email.*',            'send_email'),
101
    (QUEUE_EMAIL,               EXCHANGE_CRON,      '*.email.*',            'send_email'),
102
    (QUEUE_RECONC,              EXCHANGE_CRON,      'reconciliation.*',     'trigger_status_update'),
103
    ]
104

  
95 105

  
96 106
# Fix up the AMQP-specific settings based on BACKEND_PREFIX_ID
97 107
# Make sure to call it again, if you modify it at some later point

Also available in: Unified diff