Esempio n. 1
0
def _run_script(agent, script_url, timeout):
    params = _build_install_script_params(agent, script_url)

    try:
        _send_task(agent, params, timeout)
    finally:
        cleanup_scripts()
Esempio n. 2
0
def _run_script(agent, script_url, timeout, new_agent_connection=None):
    params = _build_install_script_params(
        agent, script_url, new_agent_connection=new_agent_connection)
    try:
        _send_task(agent, params, timeout)
    finally:
        cleanup_scripts()
Esempio n. 3
0
def stop(cloudify_agent, installer, **_):
    """
    Only called in "remote" mode - other modes stop via AMQP
    """
    ctx.logger.info('Stopping Agent {0}'.format(cloudify_agent['name']))
    installer.stop_agent()
    script.cleanup_scripts()
def _run_script(agent, script_url, timeout):
    params = _build_install_script_params(agent, script_url)

    try:
        _send_task(agent, params, timeout)
    finally:
        cleanup_scripts()
def start(cloudify_agent, **_):
    """
    Only called in "init_script"/"plugin" mode, where the agent is started
    externally (e.g. userdata script), and all we have to do is wait for it
    """
    update_agent_record(cloudify_agent, AgentState.STARTING)
    tenant = cloudify_utils.get_tenant()
    client = get_client(
        amqp_user=tenant['rabbitmq_username'],
        amqp_pass=tenant['rabbitmq_password'],
        amqp_vhost=tenant['rabbitmq_vhost']
    )
    agent_alive = utils.is_agent_alive(cloudify_agent['queue'], client)

    if not agent_alive:
        if ctx.operation.retry_number > 3:
            ctx.logger.warning('Waiting too long for Agent to start')
            update_agent_record(cloudify_agent, AgentState.NONRESPONSIVE)
        return ctx.operation.retry(
            message='Waiting for Agent to start...')

    ctx.logger.info('Agent has started')
    update_agent_record(cloudify_agent, AgentState.STARTED)
    if not cloudify_agent.is_provided:
        script.cleanup_scripts()
Esempio n. 6
0
def stop(cloudify_agent, installer, **_):
    """
    Only called in "remote" mode - other modes stop via AMQP
    """
    ctx.logger.info('Stopping Agent {0}'.format(cloudify_agent['name']))
    update_agent_record(cloudify_agent, AgentState.STOPPING)
    installer.stop_agent()
    update_agent_record(cloudify_agent, AgentState.STOPPED)
    script.cleanup_scripts()
def stop(cloudify_agent, installer, **_):
    """
    Only called in "remote" mode - other modes stop via AMQP
    """
    ctx.logger.info('Stopping Agent {0}'.format(cloudify_agent['name']))
    update_agent_record(cloudify_agent, AgentState.STOPPING)
    installer.stop_agent()
    update_agent_record(cloudify_agent, AgentState.STOPPED)
    script.cleanup_scripts()
Esempio n. 8
0
def start(cloudify_agent, **_):
    """
    Only called in "init_script"/"plugin" mode, where the agent is started
    externally (e.g. userdata script), and all we have to do is wait for it
    """
    celery_client = get_celery_app(tenant=cloudify_agent['rest_tenant'],
                                   target=cloudify_agent['queue'])
    registered = utils.get_agent_registered(cloudify_agent['name'],
                                            celery_client)
    if not registered:
        return ctx.operation.retry(message='Waiting for Agent to start...')

    ctx.logger.info('Agent has started')
    if not cloudify_agent.is_provided:
        script.cleanup_scripts()
Esempio n. 9
0
def _run_install_script(old_agent, timeout):
    old_agent = copy.deepcopy(old_agent)
    if 'version' not in old_agent:
        # Assuming that if there is no version info in the agent then
        # this agent was installed by current manager.
        old_agent['version'] = str(_get_manager_version())
    new_agent = create_new_agent_config(old_agent)

    with _celery_app(old_agent) as celery_app:
        _assert_agent_alive(old_agent['name'], celery_app,
                            old_agent['version'])

        script_path, script_url = _get_init_script_path_and_url(
            new_agent, old_agent['version'])
        params = _build_install_script_params(old_agent, script_url)
        _execute_install_script_task(celery_app, params, old_agent, timeout,
                                     script_path)
    cleanup_scripts()
    created_agent = _validate_created_agent(new_agent)
    return {'old': old_agent, 'new': created_agent}
Esempio n. 10
0
def start(cloudify_agent, **_):
    """
    Only called in "init_script"/"plugin" mode, where the agent is started
    externally (e.g. userdata script), and all we have to do is wait for it
    """
    tenant = cloudify_utils.get_tenant()
    client = get_client(
        amqp_user=tenant['rabbitmq_username'],
        amqp_pass=tenant['rabbitmq_password'],
        amqp_vhost=tenant['rabbitmq_vhost']
    )
    agent_alive = utils.is_agent_alive(cloudify_agent['queue'], client)

    if not agent_alive:
        return ctx.operation.retry(
            message='Waiting for Agent to start...')

    ctx.logger.info('Agent has started')
    if not cloudify_agent.is_provided:
        script.cleanup_scripts()
Esempio n. 11
0
def start(cloudify_agent, **_):
    """
    Only called in "init_script"/"plugin" mode, where the agent is started
    externally (e.g. userdata script), and all we have to do is wait for it
    """
    update_agent_record(cloudify_agent, AgentState.STARTING)
    tenant = cloudify_utils.get_tenant()
    client = get_client(amqp_user=tenant['rabbitmq_username'],
                        amqp_pass=tenant['rabbitmq_password'],
                        amqp_vhost=tenant['rabbitmq_vhost'])
    agent_alive = utils.is_agent_alive(cloudify_agent['queue'], client)

    if not agent_alive:
        if ctx.operation.retry_number > 3:
            ctx.logger.warning('Waiting too long for Agent to start')
            update_agent_record(cloudify_agent, AgentState.NONRESPONSIVE)
        return ctx.operation.retry(message='Waiting for Agent to start...')

    ctx.logger.info('Agent has started')
    update_agent_record(cloudify_agent, AgentState.STARTED)
    if not cloudify_agent.is_provided:
        script.cleanup_scripts()