Beispiel #1
0
def get_file_from_manager(remote_source_path, destination_path):
    key_filename = os.path.expanduser(utils.get_management_key())
    with fab.settings(
            fab.hide('running', 'stdout'),
            host_string=utils.build_manager_host_string(),
            key_filename=key_filename,
            port=utils.get_management_port()):
        fab.get(remote_source_path, destination_path)
Beispiel #2
0
def dev(args, task, tasks_file):
    management_ip = utils.get_management_server_ip()
    _execute(username=get_management_user(),
             port=get_management_port(),
             key=get_management_key(),
             ip=management_ip,
             task=task,
             tasks_file=tasks_file,
             args=args)
Beispiel #3
0
def _open_interactive_shell(host_string, command=''):
    """Used as fabric's open_shell=True doesn't work well.
    (Disfigures coloring and such...)
    """
    ssh_key_path = os.path.expanduser(utils.get_management_key())
    port = utils.get_management_port()
    cmd = ['ssh', '-t', host_string, '-i', ssh_key_path, '-p', port]
    if command:
        cmd.append(command)
    subprocess.call(cmd)
Beispiel #4
0
def put_file_in_manager(source_path,
                        remote_source_path,
                        use_sudo=True,
                        key_filename=None,
                        user=None,
                        port=''):
    port = port or utils.get_management_port()
    if not key_filename:
        key_filename = os.path.expanduser(utils.get_management_key())
    with fab.settings(
            fab.hide('running', 'stdout'),
            host_string=utils.build_manager_host_string(user=user),
            key_filename=key_filename,
            port=port):
        fab.put(use_sudo=use_sudo,
                local_path=source_path,
                remote_path=remote_source_path)
Beispiel #5
0
def run_command_on_manager(command,
                           use_sudo=False,
                           open_shell=False,
                           host_string='',
                           force_output=False):
    """Runs an SSH command on a Manager.

    `open_shell` opens an interactive shell to the server.
    `host_string` can be explicitly provided to save on REST calls.
    `force_output` forces all output as if running in verbose.
    """
    host_string = host_string or utils.build_manager_host_string()
    port = utils.get_management_port()

    def execute():
        key_filename = os.path.expanduser(utils.get_management_key())
        with fab.settings(
                host_string=host_string,
                key_filename=key_filename,
                port=port,
                warn_only=True):
            if use_sudo:
                output = fab.sudo(command)
            elif open_shell:
                fab.open_shell(command)
                return None
            else:
                output = fab.run(command)
            if output.failed:
                raise CloudifyCliError(
                    'Failed to execute: {0} ({1})'.format(
                        output.real_command, output.stderr))
            return output

    if get_global_verbosity() or force_output:
        return execute()
    else:
        with fab.hide('running', 'stdout', 'stderr', 'warnings'):
            return execute()
Beispiel #6
0
def _load_management_port(inputs):
    try:
        return inputs.get('ssh_port') or utils.get_management_port()
    except Exception:
        raise exceptions.CloudifyCliError('Manager port must be provided for '
                                          'the upgrade/rollback process')