Exemplo n.º 1
0
def main():
    global event, playbook, configs

    cirtaHome = os.path.dirname(os.path.realpath(__file__))

    configs = config(os.path.join(cirtaHome, "etc"))

    options = processArgs(configs)

    initLogging(configs, options)

    playbook = Playbook(configs, options)

    event = Event(cirta_id, configs, options, playbook, cirtaHome)

    printModeHeader(playbook, event)

    printCirtaID(event)

    if options.seed:
        seedAttributes(event)

    event.cirta_status = "running"
    log.state(event.getAttrs())

    launchInitializers(playbook, event)

    collectSourcesInput(playbook, event)

    launchSources(playbook, event, preAction=True)

    if playbook.POST_SOURCES and playbook.ACTIONS and launchActionsNow(playbook, event):
        playbook.actionsLaunched = True
        launchActions(playbook, event)

    launchSources(playbook, event, preAction=False)

    if playbook.POST_SOURCES and playbook.ACTIONS and not playbook.actionsLaunched:
        keepaliveWait()
        playbook.actionsLaunched = True
        launchActions(playbook, event)

    if not playbook.actionsLaunched:
        keepaliveWait()
        launchActions(playbook, event)

    if hasattr(event, "_backgroundedDS"):
        launchBackgroundedSources(playbook, event)

    if hasattr(event, "_backgroundedActions"):
        launchBackgroundedActions(playbook, event)

    checkStackTraces(event)

    event.cirta_status = "finished"
    log.state(event.getAttrs())
    log.info('msg="cirta execution finished"')