vagrant-unbundled 1.8.1.2 → 1.8.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -13
- data/.travis.yml +3 -0
- data/CHANGELOG.md +167 -4
- data/LICENSE +1 -1
- data/README.md +7 -9
- data/RELEASE.md +28 -0
- data/bin/vagrant +1 -1
- data/contrib/bash/completion.sh +6 -1
- data/contrib/sudoers/linux-fedora +1 -1
- data/keys/README.md +1 -1
- data/lib/vagrant/action/builtin/box_add.rb +7 -3
- data/lib/vagrant/action/general/package.rb +47 -13
- data/lib/vagrant/box.rb +1 -1
- data/lib/vagrant/box_collection.rb +3 -4
- data/lib/vagrant/bundler.rb +29 -11
- data/lib/vagrant/machine.rb +14 -5
- data/lib/vagrant/ui.rb +1 -1
- data/lib/vagrant/util/is_port_open.rb +1 -1
- data/lib/vagrant/util/platform.rb +67 -42
- data/plugins/commands/box/command/remove.rb +1 -1
- data/plugins/commands/box/command/update.rb +10 -0
- data/plugins/commands/destroy/command.rb +1 -1
- data/plugins/commands/halt/command.rb +1 -1
- data/plugins/commands/init/command.rb +8 -2
- data/plugins/commands/login/client.rb +19 -1
- data/plugins/commands/package/command.rb +1 -1
- data/plugins/commands/plugin/command/mixin_install_opts.rb +1 -1
- data/plugins/commands/plugin/gem_helper.rb +1 -1
- data/plugins/commands/port/command.rb +1 -1
- data/plugins/commands/rdp/command.rb +1 -1
- data/plugins/commands/resume/command.rb +15 -1
- data/plugins/commands/snapshot/command/pop.rb +16 -1
- data/plugins/commands/snapshot/command/push_shared.rb +7 -9
- data/plugins/commands/snapshot/command/restore.rb +14 -1
- data/plugins/commands/ssh/command.rb +2 -1
- data/plugins/commands/ssh_config/command.rb +1 -1
- data/plugins/commands/status/command.rb +1 -1
- data/plugins/commands/suspend/command.rb +1 -1
- data/plugins/commands/up/command.rb +4 -4
- data/plugins/communicators/ssh/communicator.rb +2 -2
- data/plugins/communicators/winrm/communicator.rb +11 -11
- data/plugins/communicators/winrm/config.rb +7 -1
- data/plugins/communicators/winrm/shell.rb +41 -41
- data/plugins/guests/amazon/cap/flavor.rb +14 -0
- data/plugins/guests/amazon/guest.rb +9 -0
- data/plugins/guests/amazon/plugin.rb +20 -0
- data/plugins/guests/arch/cap/change_host_name.rb +15 -6
- data/plugins/guests/arch/cap/configure_networks.rb +33 -14
- data/plugins/guests/arch/plugin.rb +1 -1
- data/plugins/guests/atomic/cap/change_host_name.rb +16 -1
- data/plugins/guests/atomic/plugin.rb +2 -2
- data/plugins/guests/coreos/cap/change_host_name.rb +10 -4
- data/plugins/guests/coreos/cap/configure_networks.rb +49 -37
- data/plugins/guests/coreos/guest.rb +2 -0
- data/plugins/guests/coreos/plugin.rb +1 -1
- data/plugins/guests/darwin/cap/change_host_name.rb +25 -7
- data/plugins/guests/darwin/cap/choose_addressable_ip_addr.rb +7 -7
- data/plugins/guests/darwin/cap/insert_public_key.rb +19 -7
- data/plugins/guests/darwin/guest.rb +1 -1
- data/plugins/guests/darwin/plugin.rb +1 -1
- data/plugins/guests/debian/cap/change_host_name.rb +37 -84
- data/plugins/guests/debian/cap/configure_networks.rb +61 -46
- data/plugins/guests/debian/cap/nfs_client.rb +5 -4
- data/plugins/guests/debian/cap/rsync.rb +6 -3
- data/plugins/guests/debian/cap/smb.rb +6 -7
- data/plugins/guests/debian/guest.rb +2 -0
- data/plugins/guests/debian/plugin.rb +1 -1
- data/plugins/guests/fedora/cap/change_host_name.rb +18 -64
- data/plugins/guests/fedora/cap/configure_networks.rb +10 -9
- data/plugins/guests/fedora/plugin.rb +1 -1
- data/plugins/guests/freebsd/cap/change_host_name.rb +21 -3
- data/plugins/guests/freebsd/cap/configure_networks.rb +45 -30
- data/plugins/guests/freebsd/cap/halt.rb +1 -1
- data/plugins/guests/freebsd/cap/insert_public_key.rb +21 -8
- data/plugins/guests/freebsd/cap/mount_nfs_folder.rb +10 -7
- data/plugins/guests/freebsd/cap/rsync.rb +1 -11
- data/plugins/guests/freebsd/plugin.rb +1 -1
- data/plugins/guests/funtoo/cap/configure_networks.rb +10 -6
- data/plugins/guests/gentoo/cap/configure_networks.rb +9 -8
- data/plugins/guests/linux/cap/choose_addressable_ip_addr.rb +6 -6
- data/plugins/guests/linux/cap/insert_public_key.rb +18 -8
- data/plugins/guests/linux/cap/mount_nfs.rb +16 -12
- data/plugins/guests/linux/cap/mount_smb_shared_folder.rb +2 -2
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +1 -1
- data/plugins/guests/linux/guest.rb +0 -2
- data/plugins/guests/linux/plugin.rb +1 -1
- data/plugins/guests/mint/guest.rb +0 -2
- data/plugins/guests/mint/plugin.rb +1 -1
- data/plugins/guests/netbsd/cap/configure_networks.rb +8 -8
- data/plugins/guests/nixos/cap/change_host_name.rb +11 -8
- data/plugins/guests/nixos/cap/configure_networks.rb +12 -9
- data/plugins/guests/omnios/cap/change_host_name.rb +17 -5
- data/plugins/guests/omnios/cap/mount_nfs_folder.rb +10 -4
- data/plugins/guests/omnios/cap/rsync.rb +11 -0
- data/plugins/guests/omnios/guest.rb +0 -2
- data/plugins/guests/omnios/plugin.rb +6 -1
- data/plugins/guests/openbsd/cap/configure_networks.rb +8 -6
- data/plugins/guests/photon/cap/change_host_name.rb +17 -4
- data/plugins/guests/photon/cap/configure_networks.rb +14 -26
- data/plugins/guests/photon/guest.rb +1 -1
- data/plugins/guests/photon/plugin.rb +12 -12
- data/plugins/guests/pld/cap/change_host_name.rb +21 -9
- data/plugins/guests/pld/guest.rb +0 -2
- data/plugins/guests/pld/plugin.rb +1 -1
- data/plugins/guests/redhat/cap/change_host_name.rb +30 -96
- data/plugins/guests/redhat/cap/configure_networks.rb +44 -50
- data/plugins/guests/redhat/cap/flavor.rb +3 -4
- data/plugins/guests/redhat/cap/nfs_client.rb +13 -25
- data/plugins/guests/redhat/cap/rsync.rb +6 -6
- data/plugins/guests/redhat/guest.rb +0 -2
- data/plugins/guests/redhat/plugin.rb +1 -10
- data/plugins/guests/slackware/cap/change_host_name.rb +19 -8
- data/plugins/guests/slackware/cap/configure_networks.rb +30 -14
- data/plugins/guests/slackware/guest.rb +0 -2
- data/plugins/guests/slackware/plugin.rb +1 -1
- data/plugins/guests/smartos/config.rb +3 -15
- data/plugins/guests/suse/cap/change_host_name.rb +15 -7
- data/plugins/guests/suse/cap/configure_networks.rb +31 -37
- data/plugins/guests/suse/cap/nfs_client.rb +5 -6
- data/plugins/guests/suse/cap/rsync.rb +1 -3
- data/plugins/guests/suse/guest.rb +0 -2
- data/plugins/guests/suse/plugin.rb +1 -1
- data/plugins/guests/tinycore/cap/mount_nfs.rb +46 -0
- data/plugins/guests/tinycore/plugin.rb +5 -0
- data/plugins/guests/trisquel/guest.rb +9 -0
- data/plugins/guests/trisquel/plugin.rb +15 -0
- data/plugins/guests/ubuntu/cap/change_host_name.rb +42 -41
- data/plugins/guests/ubuntu/guest.rb +0 -2
- data/plugins/guests/ubuntu/plugin.rb +1 -3
- data/plugins/guests/windows/guest_network.rb +1 -1
- data/plugins/hosts/arch/cap/nfs.rb +3 -19
- data/plugins/hosts/darwin/cap/provider_install_virtualbox.rb +4 -5
- data/plugins/hosts/darwin/cap/rdp.rb +34 -6
- data/plugins/hosts/gentoo/cap/nfs.rb +1 -1
- data/plugins/hosts/windows/cap/provider_install_virtualbox.rb +4 -5
- data/plugins/hosts/windows/cap/ps.rb +2 -2
- data/plugins/hosts/windows/cap/rdp.rb +8 -17
- data/plugins/kernel_v2/config/ssh_connect.rb +6 -0
- data/plugins/kernel_v2/config/vm.rb +3 -1
- data/plugins/providers/docker/action.rb +3 -3
- data/plugins/providers/docker/action/create.rb +1 -1
- data/plugins/providers/docker/command/exec.rb +104 -0
- data/plugins/providers/docker/config.rb +9 -1
- data/plugins/providers/docker/errors.rb +4 -0
- data/plugins/providers/docker/plugin.rb +6 -0
- data/plugins/providers/docker/provider.rb +1 -2
- data/plugins/providers/hyperv/action.rb +56 -1
- data/plugins/providers/hyperv/action/import.rb +13 -5
- data/plugins/providers/hyperv/action/snapshot_delete.rb +27 -0
- data/plugins/providers/hyperv/action/snapshot_restore.rb +23 -0
- data/plugins/providers/hyperv/action/snapshot_save.rb +27 -0
- data/plugins/providers/hyperv/cap/snapshot_list.rb +11 -0
- data/plugins/providers/hyperv/config.rb +5 -2
- data/plugins/providers/hyperv/driver.rb +18 -1
- data/plugins/providers/hyperv/plugin.rb +5 -0
- data/plugins/providers/hyperv/scripts/clone_vhd.ps1 +9 -0
- data/plugins/providers/hyperv/scripts/create_snapshot.ps1 +8 -0
- data/plugins/providers/hyperv/scripts/delete_snapshot.ps1 +8 -0
- data/plugins/providers/hyperv/scripts/get_vm_status.ps1 +8 -2
- data/plugins/providers/hyperv/scripts/import_vm.ps1 +5 -1
- data/plugins/providers/hyperv/scripts/list_snapshots.ps1 +12 -0
- data/plugins/providers/hyperv/scripts/restore_snapshot.ps1 +8 -0
- data/plugins/providers/virtualbox/action.rb +9 -4
- data/plugins/providers/virtualbox/action/import_master.rb +81 -75
- data/plugins/providers/virtualbox/action/package.rb +1 -29
- data/plugins/providers/virtualbox/action/package_setup_files.rb +51 -0
- data/plugins/providers/virtualbox/action/package_setup_folders.rb +38 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +23 -1
- data/plugins/providers/virtualbox/action/setup_package_files.rb +9 -43
- data/plugins/providers/virtualbox/driver/version_4_1.rb +104 -6
- data/plugins/providers/virtualbox/driver/version_4_2.rb +6 -5
- data/plugins/providers/virtualbox/driver/version_4_3.rb +6 -5
- data/plugins/providers/virtualbox/driver/version_5_0.rb +6 -5
- data/plugins/provisioners/ansible/cap/guest/arch/ansible_install.rb +8 -3
- data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +26 -4
- data/plugins/provisioners/ansible/cap/guest/facts.rb +24 -0
- data/plugins/provisioners/ansible/cap/guest/fedora/ansible_install.rb +16 -6
- data/plugins/provisioners/ansible/cap/guest/freebsd/ansible_install.rb +7 -2
- data/plugins/provisioners/ansible/cap/guest/pip/pip.rb +28 -0
- data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +1 -1
- data/plugins/provisioners/ansible/cap/guest/redhat/ansible_install.rb +24 -7
- data/plugins/provisioners/ansible/cap/guest/suse/ansible_install.rb +6 -2
- data/plugins/provisioners/ansible/cap/guest/ubuntu/ansible_install.rb +17 -6
- data/plugins/provisioners/ansible/config/base.rb +15 -23
- data/plugins/provisioners/ansible/config/guest.rb +9 -22
- data/plugins/provisioners/ansible/config/host.rb +9 -19
- data/plugins/provisioners/ansible/errors.rb +4 -0
- data/plugins/provisioners/ansible/helpers.rb +4 -24
- data/plugins/provisioners/ansible/provisioner/base.rb +58 -10
- data/plugins/provisioners/ansible/provisioner/guest.rb +55 -22
- data/plugins/provisioners/ansible/provisioner/host.rb +50 -9
- data/plugins/provisioners/chef/cap/linux/chef_installed.rb +2 -2
- data/plugins/provisioners/chef/cap/omnios/chef_installed.rb +3 -3
- data/plugins/provisioners/chef/cap/redhat/chef_install.rb +7 -11
- data/plugins/provisioners/chef/cap/suse/chef_install.rb +27 -0
- data/plugins/provisioners/chef/cap/windows/chef_installed.rb +1 -1
- data/plugins/provisioners/chef/command_builder.rb +1 -0
- data/plugins/provisioners/chef/config/base.rb +5 -6
- data/plugins/provisioners/chef/config/chef_solo.rb +6 -0
- data/plugins/provisioners/chef/installer.rb +2 -2
- data/plugins/provisioners/chef/omnibus.rb +1 -1
- data/plugins/provisioners/chef/plugin.rb +5 -0
- data/plugins/provisioners/chef/provisioner/base.rb +52 -56
- data/plugins/provisioners/chef/provisioner/chef_apply.rb +9 -10
- data/plugins/provisioners/chef/provisioner/chef_client.rb +1 -1
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +1 -0
- data/plugins/provisioners/docker/client.rb +22 -4
- data/plugins/provisioners/puppet/provisioner/puppet.rb +3 -3
- data/plugins/provisioners/salt/provisioner.rb +19 -24
- data/plugins/pushes/ftp/adapter.rb +18 -1
- data/plugins/pushes/heroku/locales/en.yml +1 -1
- data/plugins/synced_folders/rsync/helper.rb +1 -1
- data/templates/commands/init/Vagrantfile.erb +6 -3
- data/templates/commands/init/Vagrantfile.min.erb +1 -1
- data/templates/commands/ssh_config/config.erb +5 -1
- data/templates/guests/debian/network_dhcp.erb +2 -2
- data/templates/guests/debian/network_static.erb +2 -2
- data/templates/guests/debian/network_static6.erb +2 -2
- data/templates/guests/fedora/network_static6.erb +9 -0
- data/templates/guests/freebsd/network_dhcp.erb +2 -1
- data/templates/guests/freebsd/network_static.erb +1 -1
- data/templates/guests/slackware/network_dhcp.erb +8 -20
- data/templates/guests/slackware/network_static.erb +10 -22
- data/templates/guests/suse/network_dhcp.erb +1 -1
- data/templates/guests/suse/network_static.erb +3 -3
- data/templates/locales/en.yml +35 -18
- data/templates/locales/providers_docker.yml +8 -0
- data/templates/provisioners/chef_solo/solo.erb +7 -7
- data/test/support/isolated_environment.rb +1 -1
- data/test/unit/base.rb +9 -1
- data/test/unit/plugins/commands/box/command/update_test.rb +7 -1
- data/test/unit/plugins/commands/init/command_test.rb +86 -0
- data/test/unit/plugins/commands/login/client_test.rb +7 -0
- data/test/unit/plugins/commands/ssh_config/command_test.rb +2 -14
- data/test/unit/plugins/communicators/winrm/shell_test.rb +40 -16
- data/test/unit/plugins/guests/amazon/cap/flavor_test.rb +19 -0
- data/test/unit/plugins/guests/arch/cap/change_host_name_test.rb +38 -0
- data/test/unit/plugins/guests/arch/cap/configure_networks_test.rb +55 -0
- data/test/unit/plugins/guests/atomic/cap/change_host_name_test.rb +38 -0
- data/test/unit/plugins/guests/atomic/cap/docker_test.rb +28 -0
- data/test/unit/plugins/guests/coreos/cap/change_host_name_test.rb +37 -0
- data/test/unit/plugins/guests/coreos/cap/configure_networks_test.rb +59 -0
- data/test/unit/plugins/guests/coreos/cap/docker_test.rb +28 -0
- data/test/unit/plugins/guests/darwin/cap/change_host_name_test.rb +40 -0
- data/test/unit/plugins/guests/darwin/cap/choose_addressable_ip_addr_test.rb +36 -0
- data/test/unit/plugins/guests/debian/cap/change_host_name_test.rb +23 -16
- data/test/unit/plugins/guests/debian/cap/configure_networks_test.rb +54 -0
- data/test/unit/plugins/guests/debian/cap/nfs_client_test.rb +30 -0
- data/test/unit/plugins/guests/debian/cap/rsync_test.rb +38 -0
- data/test/unit/plugins/guests/debian/cap/smb_test.rb +38 -0
- data/test/unit/plugins/guests/freebsd/cap/change_host_name_test.rb +40 -0
- data/test/unit/plugins/guests/freebsd/cap/configure_networks_test.rb +51 -0
- data/test/unit/plugins/guests/freebsd/cap/halt_test.rb +35 -0
- data/test/unit/plugins/guests/freebsd/cap/insert_public_key_test.rb +31 -0
- data/test/unit/plugins/guests/freebsd/cap/mount_nfs_folder_test.rb +53 -0
- data/test/unit/plugins/guests/freebsd/cap/rsync_test.rb +46 -0
- data/test/unit/plugins/guests/linux/cap/choose_addressable_ip_addr_test.rb +38 -0
- data/test/unit/plugins/guests/linux/cap/halt_test.rb +36 -0
- data/test/unit/plugins/guests/linux/cap/insert_public_key_test.rb +32 -0
- data/test/unit/plugins/guests/linux/cap/mount_nfs_test.rb +78 -0
- data/test/unit/plugins/guests/linux/cap/mount_shared_folder_test.rb +1 -1
- data/test/unit/plugins/guests/linux/cap/nfs_client_test.rb +29 -0
- data/test/unit/plugins/guests/linux/cap/port_test.rb +30 -0
- data/test/unit/plugins/guests/omnios/cap/change_host_name_test.rb +41 -0
- data/test/unit/plugins/guests/omnios/cap/mount_nfs_folder_test.rb +47 -0
- data/test/unit/plugins/guests/omnios/cap/rsync_test.rb +29 -0
- data/test/unit/plugins/guests/photon/cap/change_host_name_test.rb +26 -18
- data/test/unit/plugins/guests/photon/cap/configure_networks_test.rb +37 -26
- data/test/unit/plugins/guests/photon/cap/docker_test.rb +17 -12
- data/test/unit/plugins/guests/pld/cap/change_host_name_test.rb +39 -0
- data/test/unit/plugins/guests/pld/cap/flavor_test.rb +21 -0
- data/test/unit/plugins/guests/pld/cap/network_scripts_dir_test.rb +21 -0
- data/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb +23 -51
- data/test/unit/plugins/guests/redhat/cap/configure_networks_test.rb +80 -0
- data/test/unit/plugins/guests/redhat/cap/flavor_test.rb +40 -0
- data/test/unit/plugins/guests/redhat/cap/network_scripts_dir_test.rb +21 -0
- data/test/unit/plugins/guests/redhat/cap/nfs_client_test.rb +30 -0
- data/test/unit/plugins/guests/redhat/cap/rsync_test.rb +29 -0
- data/test/unit/plugins/guests/slackware/cap/change_host_name_test.rb +40 -0
- data/test/unit/plugins/guests/slackware/cap/configure_networks_test.rb +48 -0
- data/test/unit/plugins/guests/smartos/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/smartos/cap/configure_networks_test.rb +1 -1
- data/test/unit/plugins/guests/smartos/cap/halt_test.rb +1 -1
- data/test/unit/plugins/guests/smartos/cap/mount_nfs_test.rb +1 -1
- data/test/unit/plugins/guests/smartos/cap/rsync_test.rb +1 -1
- data/test/unit/plugins/guests/suse/cap/change_host_name_test.rb +40 -0
- data/test/unit/plugins/guests/suse/cap/configure_networks_test.rb +60 -0
- data/test/unit/plugins/guests/suse/cap/halt_test.rb +36 -0
- data/test/unit/plugins/guests/suse/cap/network_scripts_dir_test.rb +19 -0
- data/test/unit/plugins/guests/suse/cap/nfs_client_test.rb +31 -0
- data/test/unit/plugins/guests/suse/cap/rsync_test.rb +38 -0
- data/test/unit/plugins/guests/tinycore/cap/change_host_name_test.rb +1 -1
- data/test/unit/plugins/guests/ubuntu/cap/change_host_name_test.rb +24 -16
- data/test/unit/plugins/guests/windows/cap/change_host_name_test.rb +1 -1
- data/test/unit/plugins/guests/windows/cap/halt_test.rb +1 -1
- data/test/unit/plugins/guests/windows/cap/mount_shared_folder_test.rb +1 -1
- data/test/unit/plugins/guests/windows/cap/reboot_test.rb +1 -1
- data/test/unit/plugins/guests/windows/cap/rsync_test.rb +1 -1
- data/test/unit/plugins/hosts/darwin/cap/rdp_test.rb +36 -0
- data/test/unit/plugins/kernel_v2/config/vm_test.rb +27 -1
- data/test/unit/plugins/providers/docker/action/create_test.rb +55 -0
- data/test/unit/plugins/providers/docker/command/exec_test.rb +44 -0
- data/test/unit/plugins/providers/docker/config_test.rb +7 -2
- data/test/unit/plugins/providers/virtualbox/action/prepare_nfs_settings_test.rb +18 -0
- data/test/unit/plugins/provisioners/ansible/config/guest_test.rb +83 -0
- data/test/unit/plugins/provisioners/ansible/config/host_test.rb +98 -0
- data/test/unit/plugins/provisioners/ansible/config/shared.rb +107 -0
- data/test/unit/plugins/provisioners/ansible/provisioner_test.rb +82 -10
- data/test/unit/plugins/provisioners/chef/config/base_test.rb +2 -2
- data/test/unit/plugins/provisioners/chef/provisioner/base_test.rb +29 -0
- data/test/unit/plugins/pushes/atlas/push_test.rb +12 -8
- data/test/unit/plugins/pushes/ftp/adapter_test.rb +1 -1
- data/test/unit/plugins/pushes/ftp/push_test.rb +5 -4
- data/test/unit/support/isolated_environment.rb +4 -4
- data/test/unit/support/shared/base_context.rb +11 -3
- data/test/unit/templates/guests/arch/network_dhcp_test.rb +2 -2
- data/test/unit/templates/guests/arch/network_static_test.rb +4 -4
- data/test/unit/templates/guests/debian/network_dhcp_test.rb +6 -6
- data/test/unit/templates/guests/debian/network_static_test.rb +6 -6
- data/test/unit/templates/guests/fedora/network_static6_test.rb +25 -0
- data/test/unit/templates/guests/freebsd/network_dhcp_test.rb +5 -2
- data/test/unit/templates/guests/freebsd/network_static_test.rb +13 -17
- data/test/unit/templates/guests/suse/network_dhcp_test.rb +2 -2
- data/test/unit/templates/guests/suse/network_static_test.rb +4 -4
- data/test/unit/vagrant/action/builtin/box_add_test.rb +33 -31
- data/test/unit/vagrant/action/builtin/lock_test.rb +5 -2
- data/test/unit/vagrant/action/builtin/mixin_synced_folders_test.rb +6 -2
- data/test/unit/vagrant/action/builtin/synced_folder_cleanup_test.rb +5 -1
- data/test/unit/vagrant/action/builtin/synced_folders_test.rb +5 -1
- data/test/unit/vagrant/box_collection_test.rb +19 -7
- data/test/unit/vagrant/box_test.rb +13 -2
- data/test/unit/vagrant/config_test.rb +1 -1
- data/test/unit/vagrant/environment_test.rb +16 -12
- data/test/unit/vagrant/machine_index_test.rb +5 -1
- data/test/unit/vagrant/machine_test.rb +5 -1
- data/test/unit/vagrant/plugin/manager_test.rb +1 -5
- data/test/unit/vagrant/plugin/state_file_test.rb +1 -5
- data/test/unit/vagrant/util/platform_test.rb +5 -0
- data/test/unit/vagrant/util/safe_chdir_test.rb +11 -5
- data/test/unit/vagrant/vagrantfile_test.rb +5 -1
- data/vagrant.gemspec +8 -3
- data/version.txt +1 -1
- metadata +3657 -12
- data/CONTRIBUTING.md +0 -41
- data/test/unit/plugins/guests/support/shared/debian_like_host_name_examples.rb +0 -106
- data/test/unit/plugins/guests/support/shared/redhat_like_host_name_examples.rb +0 -252
- data/test/unit/plugins/provisioners/ansible/config_test.rb +0 -224
@@ -238,7 +238,7 @@ module VagrantPlugins
|
|
238
238
|
end
|
239
239
|
|
240
240
|
def max_network_adapters
|
241
|
-
|
241
|
+
8
|
242
242
|
end
|
243
243
|
|
244
244
|
def read_forwarded_ports(uuid=nil, active_only=false)
|
@@ -594,9 +594,9 @@ module VagrantPlugins
|
|
594
594
|
result = raw("showvminfo", uuid)
|
595
595
|
return true if result.exit_code == 0
|
596
596
|
|
597
|
-
#
|
598
|
-
#
|
599
|
-
return false if
|
597
|
+
# If vboxmanage returned VBOX_E_OBJECT_NOT_FOUND,
|
598
|
+
# then the vm truly does not exist. Any other error might be transient
|
599
|
+
return false if result.stderr.include?("VBOX_E_OBJECT_NOT_FOUND")
|
600
600
|
|
601
601
|
# Sleep a bit though to give VirtualBox time to fix itself
|
602
602
|
sleep 2
|
@@ -656,7 +656,8 @@ module VagrantPlugins
|
|
656
656
|
|
657
657
|
result.sort
|
658
658
|
rescue Vagrant::Errors::VBoxManageError => e
|
659
|
-
|
659
|
+
d = e.extra_data
|
660
|
+
return [] if d[:stderr].include?("does not have") || d[:stdout].include?("does not have")
|
660
661
|
raise
|
661
662
|
end
|
662
663
|
|
@@ -135,7 +135,8 @@ module VagrantPlugins
|
|
135
135
|
|
136
136
|
result.sort
|
137
137
|
rescue Vagrant::Errors::VBoxManageError => e
|
138
|
-
|
138
|
+
d = e.extra_data
|
139
|
+
return [] if d[:stderr].include?("does not have") || d[:stdout].include?("does not have")
|
139
140
|
raise
|
140
141
|
end
|
141
142
|
|
@@ -347,7 +348,7 @@ module VagrantPlugins
|
|
347
348
|
end
|
348
349
|
|
349
350
|
def max_network_adapters
|
350
|
-
|
351
|
+
8
|
351
352
|
end
|
352
353
|
|
353
354
|
def read_forwarded_ports(uuid=nil, active_only=false)
|
@@ -700,9 +701,9 @@ module VagrantPlugins
|
|
700
701
|
result = raw("showvminfo", uuid)
|
701
702
|
return true if result.exit_code == 0
|
702
703
|
|
703
|
-
#
|
704
|
-
#
|
705
|
-
return false if
|
704
|
+
# If vboxmanage returned VBOX_E_OBJECT_NOT_FOUND,
|
705
|
+
# then the vm truly does not exist. Any other error might be transient
|
706
|
+
return false if result.stderr.include?("VBOX_E_OBJECT_NOT_FOUND")
|
706
707
|
|
707
708
|
# Sleep a bit though to give VirtualBox time to fix itself
|
708
709
|
sleep 2
|
@@ -131,7 +131,8 @@ module VagrantPlugins
|
|
131
131
|
|
132
132
|
result.sort
|
133
133
|
rescue Vagrant::Errors::VBoxManageError => e
|
134
|
-
|
134
|
+
d = e.extra_data
|
135
|
+
return [] if d[:stderr].include?("does not have") || d[:stdout].include?("does not have")
|
135
136
|
raise
|
136
137
|
end
|
137
138
|
|
@@ -343,7 +344,7 @@ module VagrantPlugins
|
|
343
344
|
end
|
344
345
|
|
345
346
|
def max_network_adapters
|
346
|
-
|
347
|
+
8
|
347
348
|
end
|
348
349
|
|
349
350
|
def read_forwarded_ports(uuid=nil, active_only=false)
|
@@ -701,9 +702,9 @@ module VagrantPlugins
|
|
701
702
|
result = raw("showvminfo", uuid)
|
702
703
|
return true if result.exit_code == 0
|
703
704
|
|
704
|
-
#
|
705
|
-
#
|
706
|
-
return false if
|
705
|
+
# If vboxmanage returned VBOX_E_OBJECT_NOT_FOUND,
|
706
|
+
# then the vm truly does not exist. Any other error might be transient
|
707
|
+
return false if result.stderr.include?("VBOX_E_OBJECT_NOT_FOUND")
|
707
708
|
|
708
709
|
# Sleep a bit though to give VirtualBox time to fix itself
|
709
710
|
sleep 2
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative "../../../errors"
|
1
2
|
|
2
3
|
module VagrantPlugins
|
3
4
|
module Ansible
|
@@ -6,9 +7,13 @@ module VagrantPlugins
|
|
6
7
|
module Arch
|
7
8
|
module AnsibleInstall
|
8
9
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
11
|
-
|
10
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
11
|
+
if install_mode == :pip
|
12
|
+
raise Ansible::Errors::AnsiblePipInstallIsNotSupported
|
13
|
+
else
|
14
|
+
machine.communicate.sudo "pacman -Syy --noconfirm"
|
15
|
+
machine.communicate.sudo "pacman -S --noconfirm ansible"
|
16
|
+
end
|
12
17
|
end
|
13
18
|
|
14
19
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative "../pip/pip"
|
1
2
|
|
2
3
|
module VagrantPlugins
|
3
4
|
module Ansible
|
@@ -6,8 +7,23 @@ module VagrantPlugins
|
|
6
7
|
module Debian
|
7
8
|
module AnsibleInstall
|
8
9
|
|
9
|
-
def self.ansible_install(machine)
|
10
10
|
|
11
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
12
|
+
if (install_mode == :pip)
|
13
|
+
ansible_pip_install machine, ansible_version
|
14
|
+
else
|
15
|
+
ansible_apt_install machine
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.ansible_pip_install(machine, ansible_version)
|
20
|
+
pip_setup machine
|
21
|
+
Pip::pip_install machine, "ansible", ansible_version
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def self.ansible_apt_install(machine)
|
11
27
|
install_backports_if_wheezy_release = <<INLINE_CRIPT
|
12
28
|
CODENAME=`lsb_release -cs`
|
13
29
|
if [ x$CODENAME == 'xwheezy' ]; then
|
@@ -15,9 +31,15 @@ if [ x$CODENAME == 'xwheezy' ]; then
|
|
15
31
|
fi
|
16
32
|
INLINE_CRIPT
|
17
33
|
|
18
|
-
machine.communicate.sudo
|
19
|
-
machine.communicate.sudo
|
20
|
-
machine.communicate.sudo
|
34
|
+
machine.communicate.sudo install_backports_if_wheezy_release
|
35
|
+
machine.communicate.sudo "apt-get update -y -qq"
|
36
|
+
machine.communicate.sudo "apt-get install -y -qq ansible"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.pip_setup(machine)
|
40
|
+
machine.communicate.sudo "apt-get update -y -qq"
|
41
|
+
machine.communicate.sudo "apt-get install -y -qq build-essential curl git libssl-dev libffi-dev python-dev"
|
42
|
+
Pip::get_pip machine
|
21
43
|
end
|
22
44
|
|
23
45
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
module VagrantPlugins
|
3
|
+
module Ansible
|
4
|
+
module Cap
|
5
|
+
module Guest
|
6
|
+
module Facts
|
7
|
+
|
8
|
+
def self.dnf?(machine)
|
9
|
+
machine.communicate.test "/usr/bin/which -s dnf"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.yum?(machine)
|
13
|
+
machine.communicate.test "/usr/bin/which -s yum"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.rpm_package_manager(machine)
|
17
|
+
dnf?(machine) ? "dnf" : "yum"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative "../facts"
|
2
|
+
require_relative "../pip/pip"
|
1
3
|
|
2
4
|
module VagrantPlugins
|
3
5
|
module Ansible
|
@@ -6,16 +8,24 @@ module VagrantPlugins
|
|
6
8
|
module Fedora
|
7
9
|
module AnsibleInstall
|
8
10
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
11
|
-
|
11
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
12
|
+
rpm_package_manager = Facts::rpm_package_manager(machine)
|
13
|
+
|
14
|
+
if install_mode == :pip
|
15
|
+
pip_setup machine
|
16
|
+
Pip::pip_install machine, "ansible", ansible_version
|
12
17
|
else
|
13
|
-
machine.communicate.sudo
|
18
|
+
machine.communicate.sudo "#{rpm_package_manager} -y install ansible"
|
14
19
|
end
|
15
20
|
end
|
16
21
|
|
17
|
-
|
18
|
-
|
22
|
+
private
|
23
|
+
|
24
|
+
def self.pip_setup(machine)
|
25
|
+
rpm_package_manager = Facts::rpm_package_manager(machine)
|
26
|
+
|
27
|
+
machine.communicate.sudo "#{rpm_package_manager} install -y curl gcc gmp-devel libffi-devel openssl-devel python-crypto python-devel python-dnf python-setuptools redhat-rpm-config"
|
28
|
+
Pip::get_pip machine
|
19
29
|
end
|
20
30
|
|
21
31
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative "../../../errors"
|
1
2
|
|
2
3
|
module VagrantPlugins
|
3
4
|
module Ansible
|
@@ -6,8 +7,12 @@ module VagrantPlugins
|
|
6
7
|
module FreeBSD
|
7
8
|
module AnsibleInstall
|
8
9
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
10
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
11
|
+
if install_mode == :pip
|
12
|
+
raise Ansible::Errors::AnsiblePipInstallIsNotSupported
|
13
|
+
else
|
14
|
+
machine.communicate.sudo "yes | pkg install ansible"
|
15
|
+
end
|
11
16
|
end
|
12
17
|
|
13
18
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module VagrantPlugins
|
3
|
+
module Ansible
|
4
|
+
module Cap
|
5
|
+
module Guest
|
6
|
+
module Pip
|
7
|
+
|
8
|
+
def self.pip_install(machine, package, version = "", upgrade = true)
|
9
|
+
upgrade_arg = "--upgrade " if upgrade
|
10
|
+
version_arg = ""
|
11
|
+
|
12
|
+
if !version.to_s.empty? && version.to_s.to_sym != :latest
|
13
|
+
version_arg = "==#{version}"
|
14
|
+
end
|
15
|
+
|
16
|
+
machine.communicate.sudo "pip install #{upgrade_arg}#{package}#{version_arg}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.get_pip(machine)
|
20
|
+
machine.ui.detail I18n.t("vagrant.provisioners.ansible.installing_pip")
|
21
|
+
machine.communicate.execute "curl https://bootstrap.pypa.io/get-pip.py | sudo python"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative "../facts"
|
2
|
+
require_relative "../pip/pip"
|
1
3
|
|
2
4
|
module VagrantPlugins
|
3
5
|
module Ansible
|
@@ -6,17 +8,32 @@ module VagrantPlugins
|
|
6
8
|
module RedHat
|
7
9
|
module AnsibleInstall
|
8
10
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
11
|
-
|
12
|
-
machine
|
11
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
12
|
+
if install_mode == :pip
|
13
|
+
pip_setup machine
|
14
|
+
Pip::pip_install machine, "ansible", ansible_version
|
15
|
+
else
|
16
|
+
ansible_rpm_install machine
|
13
17
|
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def self.ansible_rpm_install(machine)
|
23
|
+
rpm_package_manager = Facts::rpm_package_manager(machine)
|
14
24
|
|
15
|
-
machine.communicate.
|
25
|
+
epel = machine.communicate.execute "#{rpm_package_manager} repolist epel | grep -q epel", error_check: false
|
26
|
+
if epel != 0
|
27
|
+
machine.communicate.sudo 'sudo rpm -i https://dl.fedoraproject.org/pub/epel/epel-release-latest-`rpm -E %dist | sed -n \'s/.*el\([0-9]\).*/\1/p\'`.noarch.rpm'
|
28
|
+
end
|
29
|
+
machine.communicate.sudo "#{rpm_package_manager} -y --enablerepo=epel install ansible"
|
16
30
|
end
|
17
31
|
|
18
|
-
def self.
|
19
|
-
|
32
|
+
def self.pip_setup(machine)
|
33
|
+
rpm_package_manager = Facts::rpm_package_manager(machine)
|
34
|
+
|
35
|
+
machine.communicate.sudo("#{rpm_package_manager} -y install curl gcc libffi-devel openssl-devel python-crypto python-devel python-setuptools")
|
36
|
+
Pip::get_pip machine
|
20
37
|
end
|
21
38
|
|
22
39
|
end
|
@@ -6,8 +6,12 @@ module VagrantPlugins
|
|
6
6
|
module SUSE
|
7
7
|
module AnsibleInstall
|
8
8
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
9
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
10
|
+
if install_mode == :pip
|
11
|
+
raise Ansible::Errors::AnsiblePipInstallIsNotSupported
|
12
|
+
else
|
13
|
+
machine.communicate.sudo("zypper --non-interactive --quiet install ansible")
|
14
|
+
end
|
11
15
|
end
|
12
16
|
|
13
17
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require_relative "../debian/ansible_install"
|
1
2
|
|
2
3
|
module VagrantPlugins
|
3
4
|
module Ansible
|
@@ -6,12 +7,22 @@ module VagrantPlugins
|
|
6
7
|
module Ubuntu
|
7
8
|
module AnsibleInstall
|
8
9
|
|
9
|
-
def self.ansible_install(machine)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
def self.ansible_install(machine, install_mode, ansible_version)
|
11
|
+
if install_mode == :pip
|
12
|
+
Debian::AnsibleInstall::ansible_pip_install machine, ansible_version
|
13
|
+
else
|
14
|
+
ansible_apt_install machine
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def self.ansible_apt_install(machine)
|
21
|
+
machine.communicate.sudo "apt-get update -y -qq"
|
22
|
+
machine.communicate.sudo "apt-get install -y -qq software-properties-common python-software-properties"
|
23
|
+
machine.communicate.sudo "add-apt-repository ppa:ansible/ansible -y"
|
24
|
+
machine.communicate.sudo "apt-get update -y -qq"
|
25
|
+
machine.communicate.sudo "apt-get install -y -qq ansible"
|
15
26
|
end
|
16
27
|
|
17
28
|
end
|
@@ -74,34 +74,15 @@ module VagrantPlugins
|
|
74
74
|
@errors << I18n.t("vagrant.provisioners.ansible.errors.no_playbook")
|
75
75
|
end
|
76
76
|
|
77
|
-
|
78
|
-
check_path_is_a_file(machine, playbook, "vagrant.provisioners.ansible.errors.playbook_path_invalid")
|
79
|
-
end
|
80
|
-
|
81
|
-
if inventory_path
|
82
|
-
check_path_exists(machine, inventory_path, "vagrant.provisioners.ansible.errors.inventory_path_invalid")
|
83
|
-
end
|
84
|
-
|
85
|
-
if galaxy_role_file
|
86
|
-
check_path_is_a_file(machine, galaxy_role_file, "vagrant.provisioners.ansible.errors.galaxy_role_file_invalid")
|
87
|
-
end
|
88
|
-
|
89
|
-
if vault_password_file
|
90
|
-
check_path_is_a_file(machine, vault_password_file, "vagrant.provisioners.ansible.errors.vault_password_file_invalid")
|
91
|
-
end
|
92
|
-
|
93
|
-
# Validate that extra_vars is either a hash, or a path to an existing file
|
77
|
+
# Validate that extra_vars is either a Hash or a String (for a file path)
|
94
78
|
if extra_vars
|
95
79
|
extra_vars_is_valid = extra_vars.kind_of?(Hash) || extra_vars.kind_of?(String)
|
96
80
|
if extra_vars.kind_of?(String)
|
97
|
-
# Accept the usage of '@' prefix in Vagrantfile
|
98
|
-
# and 'vars.yml' are both supported)
|
81
|
+
# Accept the usage of '@' prefix in Vagrantfile
|
82
|
+
# (e.g. '@vars.yml' and 'vars.yml' are both supported)
|
99
83
|
match_data = /^@?(.+)$/.match(extra_vars)
|
100
84
|
extra_vars_path = match_data[1].to_s
|
101
|
-
|
102
|
-
if extra_vars_is_valid
|
103
|
-
@extra_vars = '@' + extra_vars_path
|
104
|
-
end
|
85
|
+
@extra_vars = '@' + extra_vars_path
|
105
86
|
end
|
106
87
|
|
107
88
|
if !extra_vars_is_valid
|
@@ -112,6 +93,17 @@ module VagrantPlugins
|
|
112
93
|
end
|
113
94
|
end
|
114
95
|
|
96
|
+
if raw_arguments
|
97
|
+
if raw_arguments.kind_of?(String)
|
98
|
+
@raw_arguments = [raw_arguments]
|
99
|
+
elsif !raw_arguments.kind_of?(Array)
|
100
|
+
@errors << I18n.t(
|
101
|
+
"vagrant.provisioners.ansible.errors.raw_arguments_invalid",
|
102
|
+
type: raw_arguments.class.to_s,
|
103
|
+
value: raw_arguments.to_s)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
115
107
|
end
|
116
108
|
end
|
117
109
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative "base"
|
2
|
+
require_relative "../helpers"
|
2
3
|
|
3
4
|
module VagrantPlugins
|
4
5
|
module Ansible
|
@@ -8,12 +9,14 @@ module VagrantPlugins
|
|
8
9
|
attr_accessor :provisioning_path
|
9
10
|
attr_accessor :tmp_path
|
10
11
|
attr_accessor :install
|
12
|
+
attr_accessor :install_mode
|
11
13
|
attr_accessor :version
|
12
14
|
|
13
15
|
def initialize
|
14
16
|
super
|
15
17
|
|
16
18
|
@install = UNSET_VALUE
|
19
|
+
@install_mode = UNSET_VALUE
|
17
20
|
@provisioning_path = UNSET_VALUE
|
18
21
|
@tmp_path = UNSET_VALUE
|
19
22
|
@version = UNSET_VALUE
|
@@ -23,6 +26,7 @@ module VagrantPlugins
|
|
23
26
|
super
|
24
27
|
|
25
28
|
@install = true if @install == UNSET_VALUE
|
29
|
+
@install_mode = :default if @install_mode == UNSET_VALUE
|
26
30
|
@provisioning_path = "/vagrant" if provisioning_path == UNSET_VALUE
|
27
31
|
@tmp_path = "/tmp/vagrant-ansible" if tmp_path == UNSET_VALUE
|
28
32
|
@version = "" if @version == UNSET_VALUE
|
@@ -31,30 +35,13 @@ module VagrantPlugins
|
|
31
35
|
def validate(machine)
|
32
36
|
super
|
33
37
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
def check_path(machine, path, test_args, error_message_key = nil)
|
40
|
-
remote_path = Pathname.new(path).expand_path(@provisioning_path)
|
41
|
-
if machine.communicate.ready? && !machine.communicate.test("test #{test_args} #{remote_path}")
|
42
|
-
if error_message_key
|
43
|
-
@errors << I18n.t(error_message_key, path: remote_path, system: "guest")
|
44
|
-
end
|
45
|
-
return false
|
38
|
+
if @install_mode.to_s.to_sym == :pip
|
39
|
+
@install_mode = :pip
|
40
|
+
else
|
41
|
+
@install_mode = :default
|
46
42
|
end
|
47
|
-
# when the machine is not ready for SSH communication,
|
48
|
-
# the check is "optimistically" by passed.
|
49
|
-
true
|
50
|
-
end
|
51
|
-
|
52
|
-
def check_path_is_a_file(machine, path, error_message_key = nil)
|
53
|
-
check_path(machine, path, "-f", error_message_key)
|
54
|
-
end
|
55
43
|
|
56
|
-
|
57
|
-
check_path(machine, path, "-e", error_message_key)
|
44
|
+
{ "ansible local provisioner" => @errors }
|
58
45
|
end
|
59
46
|
|
60
47
|
end
|