Skip to content

upload_project fails #1574

@aidanmelen

Description

@aidanmelen

I am simply trying to copy a directory from my local machine to a virtual machine using fabric.contrib.project.upload_project feature.

my environment is:
python==2.7.12
fabric==1.13.1

here is the directory structure :
.
├── .vagrant
│   └── ...
├── Vagrantfile
├── .local_dir
│   └── file.txt
└── upload_project_test.py

upload_project_test.py contains the following code

from fabric.contrib.project import upload_project
from fabric.state import env
from os import path, getcwd, sep
from fabric.context_managers import lcd
from fabric.operations import local

project_root_path = getcwd()
ssh_config = None

with lcd(path.join(project_root_path)):
    if 'running' in local('vagrant status', capture=True):
        ssh_config_lines = local('vagrant ssh-config', capture=True)
        ssh_config = dict(line.split() for line in ssh_config_lines.split('\n'))

env.user = ssh_config['User']
env.key_filename = ssh_config['IdentityFile']
env.host_string = '{user}@{host}:{port}'.format(
                                   user=ssh_config['User'],
                                   host=ssh_config['HostName'],
                                   port=ssh_config['Port'])

local_dir = path.join(project_root_path, '.local_dir')
remote_dir = path.join(sep)    # vm root

upload_project(local_dir=local_dir, remote_dir=remote_dir, use_sudo=True)

this will fail because .local dir is hidden.

[localhost] local: vagrant status
[localhost] local: vagrant ssh-config
[localhost] local: tar -czf /var/folders/8z/dm68k1vd1zxf73slr540s3wc0000gn/T/tmpMGJuIH/local_dir.tar.gz -C /Users/aidanmelen/Sampleminded/infrastructure/python_tools/tastetest/test local_dir
tar: local_dir: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.

Fatal error: local() encountered an error (return code 1) while executing 'tar -czf /var/folders/8z/dm68k1vd1zxf73slr540s3wc0000gn/T/tmpMGJuIH/local_dir.tar.gz -C /Users/aidanmelen/Sampleminded/infrastructure/python_tools/tastetest/test local_dir'

Aborting.
[localhost] local: rm -rf /var/folders/8z/dm68k1vd1zxf73slr540s3wc0000gn/T/tmpMGJuIH

it will work properly if '.local_dir; is not hidden, such as 'local_dir'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions