Code Monkey home page Code Monkey logo

mech's People

Contributors

coldheat avatar inamja avatar juntalis avatar kronuz avatar rstallings avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mech's Issues

Run custom box using mech

Hi,

I have created .box using packer and i have stored it on my local system. How can use it using mech

error what i am getting.

$ mech init windows_2008_r2_vmware.box
Initializing mech
A Mechfile has been initialized and placed in this directory. You
are now ready to mech up your first virtual environment!

$ mech up
Provided box name is not valid
Loading metadata for box 'windows_2008_r2_vmware'
Bad response from HashiCorp's Vagrant Cloud API: 404 Client Error: Not Found for url: https://app.vagrantup.com/windows_2008_r2_vmware/boxes/boxes

$ mech start
Provided box name is not valid
Loading metadata for box 'windows_2008_r2_vmware'
Bad response from HashiCorp's Vagrant Cloud API: 404 Client Error: Not Found for url: https://app.vagrantup.com/windows_2008_r2_vmware/boxes/boxes

Provision Shell Script

Is there any documentation on the provision feature or a sample Mechfile that I can reference to do things like a provision shell script?

bash-completion

mech could really benefit from some tab completion for VMs and for commands.

Mech up and init not working window 10 and Workstation 14

mech init 
mech up 
// not working
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.7.6', 'console_scripts', 'mech')()
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages\mech\__main__.py", line 39, in main
    return Mech(arguments)()
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-
packages\mech\command.py", line 89, in __call__
    obj = klass(arguments)
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages\mech\mech.py", line 569, in init
    if utils.init_mechfile(instance_name, url, name=name, version=version, requests_kwargs=requests_kwargs):
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 468, in init_mechfile
    path = index_active_instance(instance_name)
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 457, in index_active_instance
    'path': path,
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 200, in settle_instance
    instances = json.loads(uncomment(fp.read()))
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "c:\users\user\appdata\local\programs\python\python37-32\lib\json\decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 3 (char 4)

mech destroy has OSError after running vmrun deleteVM

mech destroy had OSError on my environment VMWare Fusion 11 with macOS High Sierra.
It seems that vmrun deleteVM has removed VM's instance path after vmrun deleteVM.

$ mech destroy
Are you sure you want to delete mechtest at /Users/takashi/Development/mechtest [y/N] y
Deleting...
Traceback (most recent call last):
  File "/usr/local/bin/mech", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/mech/__main__.py", line 39, in main
    return Mech(arguments)()
  File "/usr/local/lib/python2.7/site-packages/mech/command.py", line 89, in __call__
    obj = klass(arguments)
  File "/usr/local/lib/python2.7/site-packages/mech/mech.py", line 720, in destroy
    shutil.rmtree(mech_path)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 262, in rmtree
    onerror(os.listdir, path, sys.exc_info())
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 260, in rmtree
    names = os.listdir(path)
OSError: [Errno 2] No such file or directory: '/Users/takashi/Development/mechtest/.mech'

Cannot Open VM .vmx File

I used packer-windows to create a vagrant file.

I then am trying to use it here to add it to VMWare Fusion on Mac OSX

$ mech init packer-windows/windows_2008_r2_vmware.box --name=luke
Initializing mech
Checking box integrity...
Extracting...
What username would you like to save? [mech] mike
Saving /Users/miketweaver/.mech/luke/mechfile
Finished.
Saving ./mechfile
Finished.

$ mech up luke
Getting IP address...
VM started on Error: Cannot open VM: /Users/miketweaver/.mech/luke/packer-vmware-iso.vmx, Cannot read the virtual machine configuration file
Sharing current folder...
VM started on Error: Cannot open VM: /Users/miketweaver/.mech/luke/packer-vmware-iso.vmx, Cannot read the virtual machine configuration file

/Users/miketweaver/.mech/luke/packer-vmware-iso.vmx

.encoding = "UTF-8"
bios.bootorder = "hdd,CDROM"
checkpoint.vmstate = ""
cleanshutdown = "TRUE"
config.version = "8"
displayname = "packer-vmware-iso"
ehci.pcislotnumber = "-1"
ehci.present = "FALSE"
ethernet0.addresstype = "generated"
ethernet0.bsdname = "en0"
ethernet0.connectiontype = "nat"
ethernet0.displayname = "Ethernet"
ethernet0.linkstatepropagation.enable = "FALSE"
ethernet0.pcislotnumber = "33"
ethernet0.present = "TRUE"
ethernet0.virtualdev = "e1000"
ethernet0.wakeonpcktrcv = "FALSE"
extendedconfigfile = "packer-vmware-iso.vmxf"
floppy0.present = "FALSE"
guestos = "windows7srv-64"
gui.fullscreenatpoweron = "FALSE"
gui.viewmodeatpoweron = "windowed"
hgfs.linkrootshare = "TRUE"
hgfs.maprootshare = "TRUE"
ide1:0.clientdevice = "TRUE"
ide1:0.devicetype = "cdrom-raw"
ide1:0.filename = "auto detect"
ide1:0.present = "TRUE"
isolation.tools.hgfs.disable = "FALSE"
memsize = "2048"
migrate.hostlog = "./packer-vmware-iso-4f7ac82b.hlog"
monitor.phys_bits_used = "40"
msg.autoanswer = "true"
numa.autosize.cookie = "20001"
numa.autosize.vcpu.maxpervirtualnode = "2"
numvcpus = "2"
nvram = "packer-vmware-iso.nvram"
pcibridge0.pcislotnumber = "17"
pcibridge0.present = "TRUE"
pcibridge4.functions = "8"
pcibridge4.pcislotnumber = "21"
pcibridge4.present = "TRUE"
pcibridge4.virtualdev = "pcieRootPort"
pcibridge5.functions = "8"
pcibridge5.pcislotnumber = "22"
pcibridge5.present = "TRUE"
pcibridge5.virtualdev = "pcieRootPort"
pcibridge6.functions = "8"
pcibridge6.pcislotnumber = "23"
pcibridge6.present = "TRUE"
pcibridge6.virtualdev = "pcieRootPort"
pcibridge7.functions = "8"
pcibridge7.pcislotnumber = "24"
pcibridge7.present = "TRUE"
pcibridge7.virtualdev = "pcieRootPort"
powertype.poweroff = "soft"
powertype.poweron = "soft"
powertype.reset = "soft"
powertype.suspend = "soft"
proxyapps.publishtohost = "FALSE"
remotedisplay.vnc.enabled = "FALSE"
remotedisplay.vnc.ip = "127.0.0.1"
remotedisplay.vnc.key = "REDACTED"
remotedisplay.vnc.password = "REDACTED"
remotedisplay.vnc.port = "5939"
replay.filename = ""
replay.supported = "FALSE"
scsi0.pcislotnumber = "160"
scsi0.present = "TRUE"
scsi0.saswwid = "50 05 05 6f 90 ae 79 b0"
scsi0.virtualdev = "lsisas1068"
scsi0:0.filename = "disk.vmdk"
scsi0:0.present = "TRUE"
scsi0:0.redo = ""
softpoweroff = "TRUE"
sound.startconnected = "FALSE"
tools.synctime = "TRUE"
tools.upgrade.policy = "upgradeAtPowerCycle"
usb.pcislotnumber = "-1"
usb.present = "FALSE"
uuid.action = "create"
uuid.bios = "56 4d 1d 1f 90 ae 79 bc-9f e1 6a 3d 0d d0 29 53"
uuid.location = "56 4d 1d 1f 90 ae 79 bc-9f e1 6a 3d 0d d0 29 53"
virtualhw.productcompatibility = "hosted"
virtualhw.version = "9"
vmci0.id = "1861462627"
vmci0.pcislotnumber = "35"
vmci0.present = "TRUE"
vmotion.checkpointfbsize = "134217728"
ethernet0.addresstype=generated
ethernet0.bsdname=en0
ethernet0.connectiontype=nat
ethernet0.displayname=Ethernet
ethernet0.linkstatepropagation.enable=FALSE
ethernet0.pcislotnumber=32
ethernet0.present=TRUE
ethernet0.virtualdev=e1000
ethernet0.wakeonpcktrcv=FALSE

Any suggestions on what could be going wrong here?

Mech init TypeError: unorderable types: NoneType() < str()`

I'm trying to import a freebsd box, but this results in the following error.

╰─ mech init https://app.vagrantup.com/roboxes/boxes/freebsd11
Initializing mech
Traceback (most recent call last):
File "/Users/sharky/.pyenv/versions/ansible/bin/mech", line 11, in
load_entry_point('mech==0.7.6', 'console_scripts', 'mech')()
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/main.py", line 39, in main
return Mech(arguments)()
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/command.py", line 89, in call
obj = klass(arguments)
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/mech.py", line 569, in init
if utils.init_mechfile(instance_name, url, name=name, version=version, requests_kwargs=requests_kwargs):
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/utils.py", line 474, in init_mechfile
path = index_active_instance(instance_name)
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/utils.py", line 463, in index_active_instance
'path': path,
File "/Users/sharky/.pyenv/versions/3.5.7/envs/ansible/lib/python3.5/site-packages/mech/utils.py", line 222, in settle_instance
json.dump(instances, fp, sort_keys=True, indent=2, separators=(',', ': '))
File "/Users/sharky/.pyenv/versions/3.5.7/lib/python3.5/json/init.py", line 178, in dump
for chunk in iterable:
File "/Users/sharky/.pyenv/versions/3.5.7/lib/python3.5/json/encoder.py", line 429, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File "/Users/sharky/.pyenv/versions/3.5.7/lib/python3.5/json/encoder.py", line 352, in _iterencode_dict
items = sorted(dct.items(), key=lambda kv: kv[0])
TypeError: unorderable types: NoneType() < str()

tar: *.vmx: Not found in archive

Mech output:
$mech up
Loading metadata for box 'bento/ubuntu-16.04' (201806.08.0)
Box 'bento/ubuntu-16.04' could not be found. Attempting to download...
URL: https://vagrantcloud.com/bento/boxes/ubuntu-16.04/versions/201806.08.0/providers/vmware_desktop.box
vmware_desktop.box [################################] 479786/479786 - 00:03:58
Checking box 'bento/ubuntu-16.04' integrity...
/tmp/tmpsBYBh_
tar: Pattern matching characters used in file names
tar: Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning
tar: *.vmx: Not found in archive
tar: Exiting with failure status due to previous errors
Bringing machine up...
ERROR: Error: Cannot open VM: /home/steph/Projects/mech/nogui, unknown file suffix
VM not started

Tar version:
tar --version
tar (GNU tar) 1.28

tar: Pattern matching characters used in file names
tar: Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning
tar: *.vmx: Not found in archive
tar: Exiting with failure status due to previous errors
Bringing machine up...
Traceback (most recent call last):
File "/usr/local/bin/mech", line 11, in
load_entry_point('mech==0.6.0', 'console_scripts', 'mech')()
File "build/bdist.linux-x86_64/egg/mech/main.py", line 39, in main
File "build/bdist.linux-x86_64/egg/mech/command.py", line 71, in call
File "build/bdist.linux-x86_64/egg/mech/mech.py", line 606, in up
File "build/bdist.linux-x86_64/egg/mech/vmrun.py", line 144, in start
File "build/bdist.linux-x86_64/egg/mech/vmrun.py", line 105, in vmrun
File "build/bdist.linux-x86_64/egg/mech/vmrun.py", line 105, in
TypeError: argument of type 'NoneType' is not iterable

vmware-vixWrapper-9322.log contents:
2018-06-26T13:04:28.981-05:00| vthread-4| I125: Log for VixWrapper pid=9322 version=1 build=build-7535481 option=Release
2018-06-26T13:04:28.981-05:00| vthread-4| I125: The process is 64-bit.
2018-06-26T13:04:28.981-05:00| vthread-4| I125: Host codepage=UTF-8 encoding=UTF-8
2018-06-26T13:04:28.981-05:00| vthread-4| I125: Host is Linux 4.4.0-62-generic Linux Mint 18 Sarah
2018-06-26T13:04:28.980-05:00| vthread-4| I125: DictionaryLoad: Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2018-06-26T13:04:28.980-05:00| vthread-4| I125: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
2018-06-26T13:04:28.980-05:00| vthread-4| I125: DictionaryLoad: Cannot open file "/home/steph/.vmware/config": No such file or directory.
2018-06-26T13:04:28.980-05:00| vthread-4| I125: PREF Optional preferences file not found at /home/steph/.vmware/config. Using default values.
2018-06-26T13:04:29.039-05:00| vthread-4| I125: Workstation installed version is 12.5.9
2018-06-26T13:04:29.039-05:00| vthread-4| I125: Loading Vix implementation library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func Vix_PumpEvents from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: Vix_PumpEvents)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_OpenUrlInGuest from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_OpenUrlInGuest)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_VProbeLoad from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_VProbeLoad)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_GetVProbes from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_GetVProbes)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_VProbeGetGlobalVars from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_VProbeGetGlobalVars)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_VProbeReset from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_VProbeReset)
2018-06-26T13:04:29.041-05:00| vthread-4| I125: unable to load func VixVM_GetVProbesVersion from library /usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so (/usr/lib/vmware-vix/Workstation-12.0.0/64bit/libvix.so: undefined symbol: VixVM_GetVProbesVersion)
2018-06-26T13:04:29.294-05:00| vthread-4| I125: DictionaryLoad: Cannot open file "/home/steph/vmware/Me-lw/nogui": No such file or directory.

example is broken

With Xubuntu 18.04 and VMWare Workstation Pro 14.1.2 (Eval Version) the example in the README is broken

joerg@X240:~$ mech init bento/ubuntu-14.04
Initializing mech
Loading metadata for box 'bento/ubuntu-14.04'
A `Mechfile` has been initialized and placed in this directory. You
are now ready to `mech up` your first virtual environment!
joerg@X240:~$ mech up
Cannot locate a VMX file
joerg@X240:~$ which vmware
/usr/bin/vmware

(linux) vmrun has not attribute "Provider"

(note: this might be vmware workstation's end where "vmrun" doesn't give a provider?)
I'm getting an error: AttributeError: Vmrun instance has no attribute 'provider'

  • I used the example you gave w/ Bento: mech init https://atlas.hashicorp.com/bento/boxes/...--name=bento
  • username (bento box): vagrant
  • running ubuntu 17.04
  • vmware workstation: VMware Workstation 12.5.7 build-5813279
  • mech loc: ~/.local/bin/mech
  • vmrun loc: /usr/bin/vmrun
  • pip version: pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
  • python version: 2.7.13

Error message:

Traceback (most recent call last):
  File "/home/vagrant/.local/bin/mech", line 11, in <module>
    load_entry_point('mech==0.4.1', 'console_scripts', 'mech')()
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/__main__.py", line 92, in main
    operation(op='start', name=name, options={'gui':gui})
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/__main__.py", line 49, in operation
    method()
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/mech.py", line 47, in start
    vm.start()
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/vmrun.py", line 98, in start
    return self.vmrun( 'start', 'nogui' )
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/vmrun.py", line 47, in vmrun
    output = self.execute( self.VMRUN_PATH, *cmd )
  File "/home/vagrant/.local/lib/python2.7/site-packages/mech/vmrun.py", line 32, in execute
    cmds[0] = "-T {} -gu {} -gp {} {}".format(self.provider, self.VM_ADMIN, self.VM_PASS, cmds[0])
AttributeError: Vmrun instance has no attribute 'provider'

mech up error VIX_SERVICEPROVIDER_VMWARE_WORKSTATION (windows 10/vmware workstation player 14)

I'm getting this error:

 λ mech up
Bringing machine up...
ERROR: Unable to connect to host.
Error: Service type VIX_SERVICEPROVIDER_VMWARE_WORKSTATION was specified, but not installed
VM not started

And this is because the only provider for windows at the moment in the code is ws (Line 83 and Line 86).

 λ vmrun -T ws list
Unable to connect to host.
Error: Service type VIX_SERVICEPROVIDER_VMWARE_WORKSTATION was specified, but not installed

The right provider for me is player
So we must identify the provider instead assume is always ws

λ vmrun -T player list
Total running VMs: 1
...

Windows 10 tar: Cannot connect to C: resolve failed

mech on windows does not work because tar interprets colons (:) in file names as meaning it is a file on another machine.

$ mech up
Loading metadata for box 'envimation/ubuntu-xenial-docker' (1.0.0-1510009906)
Box 'envimation/ubuntu-xenial-docker' could not be found. Attempting to download...
URL: https://vagrantcloud.com/envimation/boxes/ubuntu-xenial-docker/versions/1.0.0-1510009906/providers/vmware_desktop.box
vmware_desktop.box [################################] 169768/169768 - 00:01:46
Checking box 'envimation/ubuntu-xenial-docker' integrity...
tar: Cannot connect to C: resolve failed
Cannot find a valid box with a VMX file in it

Xubuntu 18.04: mech box add fails to extract .vmx file

Under Xubuntu 18.04, the command mech box add fails to extract the .vmx file from the tar, although there is such a file present:

joerg@X240:~$ mech box add /home/joerg/Downloads/vmware_desktop.box 
Checking box 'vmware_desktop' integrity...
tar: Pattern matching characters used in file names
tar: Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning
tar: *.vmx: Not found in archive
tar: Exiting with failure status due to previous errors
joerg@X240:~$ tar tzvf !:3 | fgrep .vmx
tar tzvf /home/joerg/Downloads/vmware_desktop.box | fgrep .vmx
-rw-r--r-- 501/20         2600 2018-03-25 14:21 ubuntu-18.04-amd64.vmx
-rw-r--r-- 501/20          273 2018-03-25 14:21 ubuntu-18.04-amd64.vmxf

vmware_desktop.box is a local download of bento/ubuntu-18.04
From the messages above I guess tar is missing the option --wildcards
tar is version 1.29

Not working with VM Workstation on Windows

Really interested in this project so I tested on Windows 10 with the latest VM Workstation. I got this error

Traceback (most recent call last):
  File "C:\Python27\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.4.1', 'console_scripts', 'mech')()
  File "c:\python27\lib\site-packages\mech\__main__.py", line 92, in main
    operation(op='start', name=name, options={'gui':gui})
  File "c:\python27\lib\site-packages\mech\__main__.py", line 49, in operation
    method()
  File "c:\python27\lib\site-packages\mech\mech.py", line 43, in start
    vm = Vmrun(self.vmx)
  File "c:\python27\lib\site-packages\mech\vmrun.py", line 69, in __init__
    rh = _winreg.OpenKey( reg, r'SOFTWARE\VMware, Inc.\VMware Workstation' )
WindowsError: [Error 2] The system cannot find the file specified```

Windows 7 (64 Bit): mech ls fails

With Python 3.6 installed on a Windows 7 (64Bit) machine, the installation with pip is fine, but every invocation of the mech command fails:

$ mech ls
Traceback (most recent call last):
  File "C:\Program Files\Python36\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.6.0', 'console_scripts', 'mech')()
  File "c:\program files\python36\lib\site-packages\mech\__main__.py", line 32, in main
    from mech import Mech
ImportError: cannot import name 'Mech'

Both for version 0.6.0 and the HEAD from git repo. This may be a general Win7 problem, but could you please document on which OS mech was tested so far?

has no attribute 'VMRUN_PATH'

win7

Traceback (most recent call last):
File "/usr/bin/mech", line 11, in
load_entry_point('mech==0.5', 'console_scripts', 'mech')()
File "/usr/lib/python2.7/site-packages/mech/main.py", line 111, in main
operation(op='start', name=name, options={'gui':gui})
File "/usr/lib/python2.7/site-packages/mech/main.py", line 75, in operation
method()
File "/usr/lib/python2.7/site-packages/mech/mech.py", line 63, in start
vm.start()
File "/usr/lib/python2.7/site-packages/mech/vmrun.py", line 105, in start
return self.vmrun( 'start', 'nogui' )
File "/usr/lib/python2.7/site-packages/mech/vmrun.py", line 46, in vmrun
output = self.execute( self.VMRUN_PATH, *cmd )
AttributeError: Vmrun instance has no attribute 'VMRUN_PATH'

Fail to load mech ssh

The VM is ready. Connect to it using mech ssh

C:\Users\Administrador>mech ssh
Traceback (most recent call last):
File "C:\Program Files (x86)\Python37-32\Scripts\mech-script.py", line 11, in
load_entry_point('mech==0.7.6', 'console_scripts', 'mech')()
File "c:\program files (x86)\python37-32\lib\site-packages\mech_main_.py", line 39, in main
return Mech(arguments)()
File "c:\program files (x86)\python37-32\lib\site-packages\mech\command.py", line 89, in call
obj = klass(arguments)
File "c:\program files (x86)\python37-32\lib\site-packages\mech\mech.py", line 890, in ssh
return subprocess.call(cmds)
File "c:\program files (x86)\python37-32\lib\subprocess.py", line 323, in call
with Popen(*popenargs, **kwargs) as p:
File "c:\program files (x86)\python37-32\lib\subprocess.py", line 775, in init
restore_signals, start_new_session)
File "c:\program files (x86)\python37-32\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system can not find the file specified

run mech -h

Before installing:

   pip install --trusted-host pypi.python.org pip mech

Run command line:

   mech -h

Traceback (most recent call last):

  File "C:\Users\EP998234\AppData\Local\Programs\Python\Python36-32\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.6', 'console_scripts', 'mech')()
  File "c:\users\ep998234\appdata\local\programs\python\python36-32\lib\site-packages\mech\__main__.py", line 32, in main
    from mech import Mech
ImportError: cannot import name 'Mech'

The system cannot find the file specified.

I guess this doesn't work with VMWare Desktop on Windows.....

c:>\temp>mech init https://atlas.hashicorp.com/bento/boxes/debian-8.6/versions/2.3.0/providers/vmware_desktop.box --name=bento
Initializing mech
vmware_desktop.box[################################] 464249/464249 - 00:06:19
Extracting...
What username would you like to save? [mech] vagrant
Saving C:\Users\baba/.mech\bento\mechfile
Finished.
Saving .\mechfile
Finished.

c:\temp>mech up bento
Traceback (most recent call last):
  File "c:\users\baba\appdata\local\enthought\canopy\user\scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.5', 'console_scripts', 'mech')()
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\__main__.py", line 111, in main
    operation(op='start', name=name, options={'gui':gui})
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\__main__.py", line 53, in operation
    method()
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\mech.py", line 63, in start
    vm.start()
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\vmrun.py", line 105, in start
    return self.vmrun( 'start', 'nogui' )
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\vmrun.py", line 46, in vmrun
    output = self.execute( self.VMRUN_PATH, *cmd )
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\User\lib\site-packages\mech\vmrun.py", line 41, in execute
    p = subprocess.Popen( cmd, stdout=subprocess.PIPE )
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.7.4.3348.win-x86_64\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Users\baba\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.7.4.3348.win-x86_64\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

Add more configuration options

Add things like provision scripts and perhaps add more configurable things into the mechfile.

Very little intention of supporting Virtualbox anytime soon so that should make it easier to implement.

Xubuntu 18.04: no mech executable in PATH after pip install -U mech

Hi,
I've installed python-pip on a rather clean Xubuntu 18.04 and run
pip install -U mech
afterwards. No errors.
Opened a new terminal, but there is no mech executable in the search path.

I'm a python newbie, is pip install able to install anything in $PATH?
Can I call mech in some other way?

EDIT: Found the mech exec in ~/.local/bin, added it to $PATH and I can execute it now.
I guess this is more an Ubuntu problem. See https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562 . As the fix for this is in $HOME/.profile, it is not enough to open a second terminal (non-login shell) to re-read .profile. Nor is a logout/login with the display manager. I had to reboot the machine.

mechfile is NoneType

$ mkvirtualenv mech                                                                                                                                                         1 ↵
New python executable in /Users/jeff/.virtualenvs/mech/bin/python2.7
Also creating executable in /Users/jeff/.virtualenvs/mech/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/jeff/.virtualenvs/mech/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/jeff/.virtualenvs/mech/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/jeff/.virtualenvs/mech/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/jeff/.virtualenvs/mech/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/jeff/.virtualenvs/mech/bin/get_env_details
$ pip install mech
Collecting mech
  Using cached mech-0.4.1-py2-none-any.whl
Collecting clint (from mech)
Collecting args (from clint->mech)
Installing collected packages: args, clint, mech
Successfully installed args-0.1.0 clint-0.5.1 mech-0.4.1
$ mech up
Traceback (most recent call last):
  File "/usr/local/bin/mech", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/mech/__main__.py", line 92, in main
    operation(op='start', name=name, options={'gui':gui})
  File "/usr/local/lib/python2.7/site-packages/mech/__main__.py", line 54, in operation
    vmx = mechfile.get('vmx')
AttributeError: 'NoneType' object has no attribute 'get'

WindowsError: [Error 2] The system cannot find the file specified

$ mech start deb8.6
Traceback (most recent call last):
  File "C:\Python27\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech==0.4.1', 'console_scripts', 'mech')()
  File "c:\python27\lib\site-packages\mech\__main__.py", line 92, in main
    operation(op='start', name=name, options={'gui':gui})
  File "c:\python27\lib\site-packages\mech\__main__.py", line 49, in operation
    method()
  File "c:\python27\lib\site-packages\mech\mech.py", line 43, in start
    vm = Vmrun(self.vmx)
  File "c:\python27\lib\site-packages\mech\vmrun.py", line 69, in __init__
    rh = _winreg.OpenKey( reg, r'SOFTWARE\VMware, Inc.\VMware Workstation' )
WindowsError: [Error 2] The system cannot find the file specified

mech cannot import name 'Mech'

after i installed mech using pip,
when i type

mech --help

python error shows, that it cannot import 'Mech'

Sys: osx sierra
error that shows

~ ❯❯❯ mech --help                                                                                                                                                     ✘
Traceback (most recent call last):
  File "/usr/local/bin/mech", line 11, in <module>
    load_entry_point('mech==0.6', 'console_scripts', 'mech')()
  File "/usr/local/lib/python3.6/site-packages/mech/__main__.py", line 32, in main
    from mech import Mech
ImportError: cannot import name 'Mech'

Can't start VM from different folder

I have setup multiple VMs , but I'm only able to start them from the VM folder. I thought I can use the name parameter to start the vm from everywhere .

Error:

+ OSX  sharkys-mbp  sharky  ~/VMs/freebsd12-zfs  ansible                                                                                                                                                                                           + 3260
+╰─ mech --debug  up name=macos10.14
+DEBUG: Attempting to acquire lock 4449858728 on /Users/sharky/.mech/data/index.lock
+INFO: Lock 4449858728 acquired on /Users/sharky/.mech/data/index.lock
+DEBUG: Attempting to release lock 4449858728 on /Users/sharky/.mech/data/index.lock
+INFO: Lock 4449858728 released on /Users/sharky/.mech/data/index.lock
-Cannot find a valid path for 'name=macos10.14' instance

Indexfile:

 OSX  sharkys-mbp  sharky  ~/VMs/freebsd12-zfs  ansible                                                                                                                                                                                            3261
╰─ cat /Users/sharky/.mech/data/index
{
  "freebsd12-generic": {
    "path": "/Users/sharky/VMs/freebsd12-generic"
  },
  "freebsd12-zfs": {
    "path": "/Users/sharky/VMs/freebsd12-zfs"
  },
  "macos10.13": {
    "path": "/Users/sharky/VMs/macos10.13"
  },
  "macos10.14": {
    "path": "/Users/sharky/VMs/macos10.14"
  }
}%

change the a line in the readme.md file

first, thanks for this great project,
than
i think you should change the line after the install title in the readme.md file
to

    pip3 install git+https://github.com/mechboxes/mech.git

i already used the above command on OSX sierra and it does work,
thanks again

Figure out shared folders

Not entirely sure if this is working or it isn't. But it would greatly increase usage if mech supported shared folders properly.

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes if `~/.mech/data/index` was broken

If I mech up, the following log has come.

bash-3.2$ mech up
Traceback (most recent call last):
  File "/usr/local/bin/mech", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/mech/__main__.py", line 39, in main
    return Mech(arguments)()
  File "/usr/local/lib/python3.7/site-packages/mech/command.py", line 89, in __call__
    obj = klass(arguments)
  File "/usr/local/lib/python3.7/site-packages/mech/mech.py", line 602, in up
    utils.index_active_instance(instance_name)
  File "/usr/local/lib/python3.7/site-packages/mech/utils.py", line 458, in index_active_instance
    'path': path,
  File "/usr/local/lib/python3.7/site-packages/mech/utils.py", line 201, in settle_instance
    instances = json.loads(uncomment(fp.read()))
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 3 (char 4)

The error comes from broken index file. I can't know why the index was broken...

$ cat ~/.mech/data/index
{
  
$ 

I want to know how to recover by indication of log message like below.

$ mech up
Index file seems broken. Try to remove
/Users/takashi/.mech/data/index.

Win 7 (64bit)/Python 2.7.15: mech up fails after box was downloaded

This happened on Win7 64 Bit with Python 2.7.15 (x64, installed for all users):

C:\WINDOWS\system32>c:\Python27\Scripts\mech init bento/ubuntu-16.04
Initializing mech
Loading metadata for box 'bento/ubuntu-16.04'
A `Mechfile` has been initialized and placed in this directory. You
are now ready to `mech up` your first virtual environment!
C:\WINDOWS\system32>c:\Python27\Scripts\mech up
Loading metadata for box 'bento/ubuntu-16.04' (201806.08.0)
Box 'bento/ubuntu-16.04' could not be found. Attempting to download...
URL: https://vagrantcloud.com/bento/boxes/ubuntu-16.04/versions/201806.08.0/prov
iders/vmware_desktop.box
vmware_desktop.box [################################] 479786/479786 - 00:07:43
Checking box 'bento/ubuntu-16.04' integrity...
Traceback (most recent call last):
  File "c:\python27\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "c:\Python27\Scripts\mech.exe\__main__.py", line 9, in <module>
  File "c:\python27\lib\site-packages\mech\__main__.py", line 39, in main
    return Mech(arguments)()
  File "c:\python27\lib\site-packages\mech\command.py", line 71, in __call__
    obj = klass(arguments)
  File "c:\python27\lib\site-packages\mech\mech.py", line 602, in up
    vmx = utils.init_box(self.box_name, self.box_version, requests_kwargs=reques
ts_kwargs, save=save)
  File "c:\python27\lib\site-packages\mech\utils.py", line 305, in init_box
    name_version_box = add_box(name, name=name, version=version, force=force, sa
ve=save, requests_kwargs=requests_kwargs)
  File "c:\python27\lib\site-packages\mech\utils.py", line 334, in add_box
    return add_mechfile(mechfile, name=name, version=version, force=force, save=
save, requests_kwargs=requests_kwargs)
  File "c:\python27\lib\site-packages\mech\utils.py", line 345, in add_mechfile
    return add_box_url(name, version, url, force=force, save=save, requests_kwar
gs=requests_kwargs)
  File "c:\python27\lib\site-packages\mech\utils.py", line 382, in add_box_url
    return add_box_file(name, version, fp.name, url=url, force=force, save=save)

  File "c:\python27\lib\site-packages\mech\utils.py", line 399, in add_box_file
    tar = tarfile.open(filename, 'r')
  File "c:\python27\lib\tarfile.py", line 1675, in open
    return func(name, "r", fileobj, **kwargs)
  File "c:\python27\lib\tarfile.py", line 1740, in gzopen
    fileobj = gzip.GzipFile(name, mode, compresslevel, fileobj)
  File "c:\python27\lib\gzip.py", line 94, in __init__
    fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
IOError: [Errno 13] Permission denied: 'c:\\users\\jalbert\\appdata\\local\\temp
\\tmpgsbpdg'

C:\WINDOWS\system32>

The directory c:\users\jalbert\appdata\local\temp\ is writable in the cmd.exe:

C:\WINDOWS\system32>echo Hallo > c:\users\jalbert\appdata\local\temp\huhu
C:\WINDOWS\system32>dir c:\users\jalbert\appdata\local\temp\huhu
 Datenträger in Laufwerk C: ist SYSTEM
 Volumeseriennummer: 50C8-E6F7

 Verzeichnis von c:\users\jalbert\appdata\local\temp

03.07.2018  13:31                 8 huhu
               1 Datei(en),              8 Bytes
               0 Verzeichnis(se), 75.967.459.328 Bytes frei

C:\WINDOWS\system32>

Laravel Homestead - Config file

I'm using mech with the Laravel Homestead, and got it up and running, although it does not use the "Homestead.yaml" config file.
This config contains multiple settings such as shared folder, IP and a bit more.

Is it possible to make mech use this config file like Vagrant would?

json.decoder.JSONDecodeError on Windows 10 with Python 3.7.0 32-bit

I get this error when I try to run mech:

mech init bento/ubuntu-14.04
Initializing mech
Traceback (most recent call last):
File "C:\Users\clc\AppData\Local\Programs\Python\Python37-32\Scripts\mech-script.py", line 11, in
load_entry_point('mech==0.7.6', 'console_scripts', 'mech')()
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech_main_.py", line 39, in main
return Mech(arguments)()
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech\command.py", line 89, in call
obj = klass(arguments)
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech\mech.py", line 572, in init
if utils.init_mechfile(instance_name, url, name=name, version=version, requests_kwargs=requests_kwargs):
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 471, in init_mechfile
path = index_active_instance(instance_name)
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 458, in index_active_instance
'path': path,
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\site-packages\mech\utils.py", line 201, in settle_instance
instances = json.loads(uncomment(fp.read()))
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\json_init_.py", line 348, in loads
return _default_decoder.decode(s)
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\users\clc\appdata\local\programs\python\python37-32\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 3 (char 4)

VMWare Tools not Present

This VM I spun up is very slow to run when I don't have vmware tools installed. This process took, probably, 15 minutes. The VM appears to be running, but doesn't show in Fusion because of start nogui.

VMWare Tools is not installed on the guest (by design).

$ mech up luke
Getting IP address...
VM started on Error: The VMware Tools are not running in the virtual machine: /Users/miketweaver/.mech/luke/packer-vmware-iso.vmx
Sharing current folder...
VM started on Error: The VMware Tools are not running in the virtual machine: /Users/miketweaver/.mech/luke/packer-vmware-iso.vmx

ImportError: cannot import name 'Mech'

Resolved by building from git codebase.

Traceback (most recent call last):
File "/usr/local/bin/mech", line 9, in
load_entry_point('mech==0.6', 'console_scripts', 'mech')()
File "/home/steph/.local/lib/python3.5/site-packages/mech/main.py", line 32, in main
from mech import Mech
ImportError: cannot import name 'Mech'

Linux Mint 18.xx
pip install

mech up: list index out of range

Hello, I get this error with mech 0.6:

$ mech up
Loading metadata for box 'stackinabox/openstack' (0.9.9)
Box 'stackinabox/openstack' could not be found. Attempting to download...
URL: https://vagrantcloud.com/stackinabox/boxes/openstack/versions/0.9.9/providers/vmware_desktop.box
vmware_desktop.box [################################] 1864250/1864250 - 00:05:17
Checking box 'stackinabox/openstack' integrity...
./ubuntu-16.04-amd64.vmx
Extracting box 'stackinabox/openstack'...
Traceback (most recent call last):
File "/usr/local/bin/mech", line 11, in
sys.exit(main())
File "/Library/Python/2.7/site-packages/mech/main.py", line 39, in main
return Mech(arguments)()
File "/Library/Python/2.7/site-packages/mech/command.py", line 71, in call
obj = klass(arguments)
File "/Library/Python/2.7/site-packages/mech/mech.py", line 602, in up
vmx = utils.init_box(self.box_name, self.box_version, requests_kwargs=requests_kwargs, save=save)
File "/Library/Python/2.7/site-packages/mech/utils.py", line 327, in init_box
update_vmx(vmx)
File "/Library/Python/2.7/site-packages/mech/utils.py", line 121, in update_vmx
vmx = parse_vmx(path)
File "/Library/Python/2.7/site-packages/mech/utils.py", line 114, in parse_vmx
vmx[line[0].rstrip()] = line[1].lstrip()
IndexError: list index out of range

Command-line parser issues

I'm currently running into issues on the development branch with getting the mech script to accept any form of the init command.

I encountered this behavior while attempting to work on Python 3 compatibility, so I've included output from both versions. At the time I encountered the issue, the only changes made were to __main__.py and mech.py, changing the mech-specific imports to relative imports.

Windows

Python 2

(.venv) C:\Development\forks\mech\sbox> mech init bento/ubuntu-14.04
Traceback (most recent call last):
  File "C:\Development\forks\mech\.venv\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech', 'console_scripts', 'mech')()
  File "C:\Development\forks\mech\mech\__main__.py", line 39, in main
    return Mech(arguments)()
  File "C:\Development\forks\mech\mech\command.py", line 71, in __call__
    obj = klass(arguments)
  File "C:\Development\forks\mech\mech\mech.py", line 548, in init
    url = arguments['<url | path>']
KeyError: '<url | path>'

(.venv) C:\Development\forks\mech\sbox> mech init ubuntu builds\vmware-ubuntu1604.box
Usage: mech-áinit [options] [<name> [<url|path>]]

(.venv) C:\Development\forks\mech\sbox> mech init --name ubuntu builds\vmware-ubuntu1604.box
Traceback (most recent call last):
  File "C:\Development\forks\mech\mech\.venv\Scripts\mech-script.py", line 11, in <module>
    load_entry_point('mech', 'console_scripts', 'mech')()
  File "C:\Development\forks\mech\mech\mech\__main__.py", line 39, in main
    return Mech(arguments)()
  File "C:\Development\forks\mech\mech\mech\command.py", line 71, in __call__
    obj = klass(arguments)
  File "C:\Development\forks\mech\mech\mech\mech.py", line 548, in init
    url = arguments['<url | path>']
KeyError: '<url | path>'

Python 3

(.venv) C:\Development\forks\mech\sbox> mech init bento/ubuntu-14.04
Usage: mechA init [options] [<name> [<url|path>]]

(.venv) C:\Development\forks\mech\sbox> mech init ubuntu builds\vmware-ubuntu1604.box
Usage: mechA init [options] [<name> [<url|path>]]

(.venv) C:\Development\forks\mech\sbox> mech init --name ubuntu builds\vmware-ubuntu1604.box
Usage: mechA init [options] [<name> [<url|path>]]

Linux

Same deal as Windows:

Python 2

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init bento/ubuntu-14.04
Traceback (most recent call last):
  File "/home/ubuntu/mech/.venv/bin/mech", line 11, in <module>
    load_entry_point('mech', 'console_scripts', 'mech')()
  File "/home/ubuntu/mech/mech/__main__.py", line 39, in main
    return Mech(arguments)()
  File "/home/ubuntu/mech/mech/command.py", line 71, in __call__
    obj = klass(arguments)
  File "/home/ubuntu/mech/mech/mech.py", line 548, in init
    url = arguments['<url | path>']
KeyError: '<url | path>'

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init ubuntu ~/vboxes/vmware-ubuntu1604.box
Usage: mech init [options] [<name> [<url|path>]]

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init --name ubuntu ~/vboxes/vmware-ubuntu1604.box
Traceback (most recent call last):
  File "/home/ubuntu/mech/.venv/bin/mech", line 11, in <module>
    load_entry_point('mech', 'console_scripts', 'mech')()
  File "/home/ubuntu/mech/mech/__main__.py", line 39, in main
    return Mech(arguments)()
  File "/home/ubuntu/mech/mech/command.py", line 71, in __call__
    obj = klass(arguments)
  File "/home/ubuntu/mech/mech/mech.py", line 548, in init
    url = arguments['<url | path>']
KeyError: '<url | path>'

Python 3

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init bento/ubuntu-14.04
Usage: mech init [options] [<name> [<url|path>]]

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init ubuntu ~/vboxes/vmware-ubuntu1604.box
Usage: mech init [options] [<name> [<url|path>]]

(.venv) ubuntu@charles-dev:~/mech/sbox$ mech init --name ubuntu ~/vboxes/vmware-ubuntu1604.box
Usage: mech init [options] [<name> [<url|path>]]

I'd try to troubleshoot it myself, but I've never really worked with docopt.

Exiting with failure status with Mech up, Ubuntu 16.04 4.13.0-43-generic #48~16.04.1-Ubuntu

Hi there,
I tried it with mech up but face this issue.
Fact:

x091s@x091s-X250:/data/vmware$ uname -a
Linux x091s-X250 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Command:

x091s@x091s-X250:/data/vmware$ mech init centos/6
Initializing mech
Loading metadata for box 'centos/6'
A `Mechfile` has been initialized and placed in this directory. You
are now ready to `mech up` your first virtual environment!
x091s@x091s-X250:/data/vmware$ mech up
Loading metadata for box 'centos/6' (1804.02)
Box 'centos/6' could not be found. Attempting to download...
URL: https://vagrantcloud.com/centos/boxes/6/versions/1804.02/providers/vmware_desktop.box
vmware_desktop.box [################################] 380024/380024 - 00:01:14
**Issue:**
Checking box 'centos/6' integrity...
tar: Pattern matching characters used in file names
tar: Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning
tar: *.vmx: Not found in archive
tar: Exiting with failure status due to previous errors
Bringing machine up...
Traceback (most recent call last):
  File "/usr/local/bin/mech", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/mech/__main__.py", line 39, in main
    return Mech(arguments)()
  File "/usr/local/lib/python2.7/dist-packages/mech/command.py", line 71, in __call__
    obj = klass(arguments)
  File "/usr/local/lib/python2.7/dist-packages/mech/mech.py", line 605, in up
    started = vmrun.start(gui=gui)
  File "/usr/local/lib/python2.7/dist-packages/mech/vmrun.py", line 143, in start
    return self.vmrun('start', self.vmx_file, 'gui' if gui else 'nogui', quiet=quiet)
  File "/usr/local/lib/python2.7/dist-packages/mech/vmrun.py", line 104, in vmrun
    logger.debug(" ".join("'{}'".format(c.replace("'", "\\'")) if ' ' in c else c for c in cmds))
  File "/usr/local/lib/python2.7/dist-packages/mech/vmrun.py", line 104, in <genexpr>
    logger.debug(" ".join("'{}'".format(c.replace("'", "\\'")) if ' ' in c else c for c in cmds))
TypeError: argument of type 'NoneType' is not iterable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.