Beispiel #1
0
def main():
    init_script()
    LOG.info("Starting reboot script...")

    try:
        try:
            action = sys.argv[1]
        except IndexError:
            LOG.error(
                "Invalid execution parameters. argv[1] must be presented")
            sys.exit()

        if action == "start" or action == "stop":
            if __node__['state'] != 'running':
                LOG.debug(
                    'Skipping RebootStart firing, server state is: {}'.format(
                        __node__['state']))
                return

            # fire internal reboot start message for Scalarizr
            msg_service = bus.messaging_service
            producer = msg_service.get_producer()
            msg = msg_service.new_message(Messages.INT_SERVER_REBOOT)
            producer.send(Queues.CONTROL, msg)

            # fire RebootStart for Scalr
            # don't use bus.messaging_service, cause it's producer points to Scalarizr endpoint
            msg_service = P2pMessageService(
                server_id=__node__['server_id'],
                crypto_key_path=os.path.join(__node__['etc_dir'],
                                             'private.d/keys/default'),
                producer_url=__node__['producer_url'],
                producer_retries_progression='1,2,5,10,20,30,60')
            hdlr = Handler()
            producer = msg_service.get_producer()
            msg = hdlr.new_message(Messages.REBOOT_START, srv=msg_service)
            producer.send(Queues.CONTROL, msg)

    except:
        LOG.exception('Caught exception')