Parallels / vagrant-parallels

Vagrant Parallels Provider

Home Page:https://parallels.github.io/vagrant-parallels

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plugin broken with Vagrant 2.2.15

spencerhakim opened this issue · comments

Vagrant 2.2.15 includes hashicorp/vagrant#12184 which breaks the vagrant-parallels plugin, producing the following output on vagrant up:

==> default: Mounting NFS shared folders...
==> default: Mounting shared folders...
    default: /vagrant => /Users/shakim/Code/vagrant
==> default: Forcing shutdown of VM...
==> default: Clearing any previously set forwarded ports...
==> default: Destroying VM and associated drives...
==> default: Destroying unused networking interface...
==> default: Pruning invalid NFS exports. Administrator privileges will be required...
Traceback (most recent call last):
	110: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/batch_action.rb:86:in `block (2 levels) in run'
	109: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/machine.rb:201:in `action'
	108: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/machine.rb:201:in `call'
	107: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/environment.rb:614:in `lock'
	106: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/machine.rb:215:in `block in action'
	105: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/machine.rb:246:in `action_raw'
	104: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	103: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	102: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	101: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	100: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 99: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/call.rb:53:in `call'
	 98: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	 97: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	 96: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	 95: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	 94: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 93: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 92: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 91: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
	 90: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 89: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 88: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 87: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	 86: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 85: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/call.rb:53:in `call'
	 84: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	 83: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	 82: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	 81: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	 80: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 79: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 78: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 77: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/customize.rb:39:in `call'
	 76: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 75: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/box_register.rb:36:in `call'
	 74: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 73: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/prepare_clone.rb:15:in `call'
	 72: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 71: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/prepare_clone_snapshot.rb:36:in `call'
	 70: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 69: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/import.rb:66:in `call'
	 68: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 67: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/box_unregister.rb:32:in `call'
	 66: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 65: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/sane_defaults.rb:24:in `call'
	 64: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 63: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/customize.rb:39:in `call'
	 62: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 61: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 60: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 59: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/box_check_outdated.rb:36:in `call'
	 58: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 57: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/call.rb:53:in `call'
	 56: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	 55: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	 54: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	 53: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	 52: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 51: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 50: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 49: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/call.rb:53:in `call'
	 48: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	 47: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	 46: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	 45: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	 44: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 43: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 42: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 41: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/call.rb:53:in `call'
	 40: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `run'
	 39: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/util/busy.rb:19:in `busy'
	 38: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/runner.rb:89:in `block in run'
	 37: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builder.rb:149:in `call'
	 36: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 35: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	 34: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 33: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/check_shared_interface.rb:13:in `call'
	 32: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 31: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/set_name.rb:48:in `call'
	 30: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 29: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/clear_forwarded_ports.rb:16:in `call'
	 28: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 27: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/provision.rb:80:in `call'
	 26: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 25: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/prepare_forwarded_port_collision_params.rb:35:in `call'
	 24: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 23: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:52:in `call'
	 22: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 21: from /Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/action/prepare_nfs_valid_ids.rb:12:in `call'
	 20: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 19: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/synced_folders/nfs/action_cleanup.rb:25:in `call'
	 18: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 17: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in `call'
	 16: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 15: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/delayed.rb:19:in `call'
	 14: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/warden.rb:48:in `call'
	 13: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/action/builtin/synced_folders.rb:145:in `call'
	 12: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/guest.rb:43:in `capability'
	 11: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/capability_host.rb:111:in `capability'
	 10: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/capability_host.rb:111:in `call'
	  9: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:27:in `persist_mount_shared_folder'
	  8: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:27:in `map'
	  7: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:27:in `each'
	  6: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:28:in `block in persist_mount_shared_folder'
	  5: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:28:in `map'
	  4: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:28:in `each'
	  3: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/plugins/guests/linux/cap/persist_mount_shared_folder.rb:37:in `block (2 levels) in persist_mount_shared_folder'
	  2: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/capability_host.rb:111:in `capability'
	  1: from /opt/vagrant/embedded/gems/2.2.15/gems/vagrant-2.2.15/lib/vagrant/capability_host.rb:111:in `call'
/Users/shakim/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/cap/mount_options.rb:33:in `mount_name': wrong number of arguments (given 3, expected 2) (ArgumentError)

For anyone needing a workaround, editing $HOME/.vagrant.d/gems/2.6.6/gems/vagrant-parallels-2.2.0/lib/vagrant-parallels/cap/mount_options.rb and replacing

        def self.mount_name(machine, data)
          data[:guestpath].gsub(/[*":<>?|\/\\]/,'_').sub(/^_/, '')
        end

with

        def self.mount_name(*args)
          machine = args[0]
          data = args[-1]
          
          data[:guestpath].gsub(/[*":<>?|\/\\]/,'_').sub(/^_/, '')
        end

seems to work.

@spencerhakim Thank you for reporting this issue!
I'll try to prepare the fix soon.

        def self.mount_name(*args)
          machine = args[0]
          data = args[-1]
          
          data[:guestpath].gsub(/[*":<>?|\/\\]/,'_').sub(/^_/, '')
        end

seems to work.

Thanks so much @spencerhakim!

Is the fix coming any time soon? Patching manually every single vagrant install is not that easy...

Hi guys, sorry for a delay. Here is the fix: #386

I'll complete the verification on both Vagrant 2.2.14 and 2.2.15 and then will cut a new release of the plugin.

@ondrasek @robrecord The fix is released in vagrant-parallels v2.2.1. Could you please check that it works on your setup?

I was running into the same issues as described above, the new plugin works perfectly! 🎉

$ vagrant plugin list
vagrant-parallels (2.2.1, global)
$ vagrant --version
Vagrant 2.2.15

Also works for me on vagrant 2.2.16. Thank you!