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'
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
this will fail because .local dir is hidden.
it will work properly if '.local_dir; is not hidden, such as 'local_dir'