Revision 449787d3
b/snf-cyclades-gtools/synnefo/ganeti/eventd.py | ||
---|---|---|
254 | 254 |
instances = get_field(input, 'instances') |
255 | 255 |
if not instances or len(instances) > 1: |
256 | 256 |
# Do not publish messages for jobs with no or multiple |
257 |
# instances. |
|
258 |
# Currently snf-dispatcher can not normally handle these messages
|
|
257 |
# instances. Currently snf-dispatcher can not normally handle
|
|
258 |
# these messages |
|
259 | 259 |
return None, None |
260 | 260 |
else: |
261 | 261 |
instances = instances[0] |
... | ... | |
296 | 296 |
'group_name': get_field(input, 'group_name')} |
297 | 297 |
|
298 | 298 |
if op_id == "OP_NETWORK_SET_PARAMS": |
299 |
msg.update( |
|
300 |
{'add_reserved_ips': get_field(input, 'add_reserved_ips'), |
|
301 |
'remove_reserved_ips': get_field(input, 'remove_reserved_ips') |
|
302 |
}) |
|
303 |
|
|
299 |
msg["add_reserved_ips"] = get_field(input, "add_reserved_ips") |
|
300 |
msg["remove_reserved_ips"] = get_field(input, |
|
301 |
"remove_reserved_ips") |
|
304 | 302 |
routekey = "ganeti.%s.event.network" % prefix_from_name(network_name) |
305 | 303 |
|
306 | 304 |
return msg, routekey |
... | ... | |
313 | 311 |
# return None, None |
314 | 312 |
|
315 | 313 |
|
316 |
|
|
317 | 314 |
def find_cluster_name(): |
318 | 315 |
global handler_logger |
319 | 316 |
try: |
... | ... | |
325 | 322 |
|
326 | 323 |
return name |
327 | 324 |
|
325 |
|
|
328 | 326 |
handler_logger = None |
327 |
|
|
328 |
|
|
329 | 329 |
def fatal_signal_handler(signum, frame): |
330 | 330 |
global handler_logger |
331 | 331 |
|
... | ... | |
333 | 333 |
signum) |
334 | 334 |
raise SystemExit |
335 | 335 |
|
336 |
|
|
336 | 337 |
def parse_arguments(args): |
337 | 338 |
from optparse import OptionParser |
338 | 339 |
|
... | ... | |
343 | 344 |
default="/var/log/snf-ganeti-eventd.log", |
344 | 345 |
metavar="FILE", |
345 | 346 |
help="Write log to FILE instead of %s" % |
346 |
"/var/log/snf-ganeti-eventd.log") |
|
347 |
"/var/log/snf-ganeti-eventd.log")
|
|
347 | 348 |
parser.add_option('--pid-file', dest="pid_file", |
348 | 349 |
default="/var/run/snf-ganeti-eventd.pid", |
349 | 350 |
metavar='PIDFILE', |
350 | 351 |
help="Save PID to file (default: %s)" % |
351 |
"/var/run/snf-ganeti-eventd.pid") |
|
352 |
"/var/run/snf-ganeti-eventd.pid")
|
|
352 | 353 |
|
353 | 354 |
return parser.parse_args(args) |
354 | 355 |
|
356 |
|
|
355 | 357 |
def main(): |
356 | 358 |
global handler_logger |
357 | 359 |
|
358 | 360 |
(opts, args) = parse_arguments(sys.argv[1:]) |
359 | 361 |
|
360 |
|
|
361 | 362 |
# Initialize logger |
362 | 363 |
lvl = logging.DEBUG if opts.debug else logging.INFO |
363 | 364 |
logger = logging.getLogger("ganeti.eventd") |
... | ... | |
389 | 390 |
# early errors in the daemonization process [e.g., pidfile creation] |
390 | 391 |
# which will otherwise go to /dev/null. |
391 | 392 |
daemon_context = daemon.DaemonContext( |
392 |
pidfile=pidf,
|
|
393 |
umask=022,
|
|
394 |
stdout=handler.stream,
|
|
395 |
stderr=handler.stream,
|
|
396 |
files_preserve=[handler.stream])
|
|
393 |
pidfile=pidf, |
|
394 |
umask=022, |
|
395 |
stdout=handler.stream, |
|
396 |
stderr=handler.stream, |
|
397 |
files_preserve=[handler.stream]) |
|
397 | 398 |
try: |
398 | 399 |
daemon_context.open() |
399 | 400 |
except (daemon.pidlockfile.AlreadyLocked, LockTimeout): |
... | ... | |
409 | 410 |
|
410 | 411 |
# Monitor the Ganeti job queue, create and push notifications |
411 | 412 |
wm = pyinotify.WatchManager() |
412 |
mask = pyinotify.EventsCodes.ALL_FLAGS["IN_MOVED_TO"] | \
|
|
413 |
pyinotify.EventsCodes.ALL_FLAGS["IN_CLOSE_WRITE"]
|
|
413 |
mask = (pyinotify.EventsCodes.ALL_FLAGS["IN_MOVED_TO"] |
|
|
414 |
pyinotify.EventsCodes.ALL_FLAGS["IN_CLOSE_WRITE"])
|
|
414 | 415 |
|
415 | 416 |
cluster_name = find_cluster_name() |
416 | 417 |
|
... | ... | |
423 | 424 |
if res[constants.QUEUE_DIR] < 0: |
424 | 425 |
raise Exception("pyinotify add_watch returned negative descriptor") |
425 | 426 |
|
426 |
logger.info("Now watching %s of %s" % (constants.QUEUE_DIR,
|
|
427 |
cluster_name)) |
|
427 |
logger.info("Now watching %s of %s" % |
|
428 |
(constants.QUEUE_DIR, cluster_name))
|
|
428 | 429 |
|
429 | 430 |
while True: # loop forever |
430 | 431 |
# process the queue of events as explained above |
Also available in: Unified diff