vagrantup 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +91 -0
- data/LICENSE +2 -2
- data/README.md +11 -13
- data/bin/vagrant +29 -5
- data/config/default.rb +14 -9
- data/contrib/bash/completion.sh +3 -0
- data/keys/README.md +3 -3
- data/lib/vagrant.rb +156 -102
- data/lib/vagrant/action.rb +26 -47
- data/lib/vagrant/action/builder.rb +49 -23
- data/lib/vagrant/action/builtin/box_add.rb +85 -0
- data/lib/vagrant/action/builtin/call.rb +67 -0
- data/lib/vagrant/action/builtin/config_validate.rb +30 -0
- data/lib/vagrant/action/builtin/confirm.rb +38 -0
- data/lib/vagrant/action/builtin/env_set.rb +24 -0
- data/lib/vagrant/action/builtin/graceful_halt.rb +73 -0
- data/lib/vagrant/action/builtin/handle_box_url.rb +43 -0
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +117 -0
- data/lib/vagrant/action/builtin/lock.rb +57 -0
- data/lib/vagrant/action/builtin/nfs.rb +117 -0
- data/lib/vagrant/action/builtin/provision.rb +70 -0
- data/lib/vagrant/action/builtin/set_hostname.rb +27 -0
- data/lib/vagrant/action/builtin/ssh_exec.rb +42 -0
- data/lib/vagrant/action/builtin/ssh_run.rb +43 -0
- data/lib/vagrant/action/general/package.rb +19 -18
- data/lib/vagrant/action/hook.rb +103 -0
- data/lib/vagrant/action/runner.rb +21 -5
- data/lib/vagrant/action/warden.rb +20 -9
- data/lib/vagrant/box.rb +75 -26
- data/lib/vagrant/box_collection.rb +301 -35
- data/lib/vagrant/cli.rb +20 -14
- data/lib/vagrant/config.rb +23 -9
- data/lib/vagrant/config/loader.rb +131 -36
- data/lib/vagrant/config/v1.rb +9 -0
- data/lib/vagrant/config/v1/dummy_config.rb +13 -0
- data/lib/vagrant/config/v1/loader.rb +105 -0
- data/lib/vagrant/config/v1/root.rb +60 -0
- data/lib/vagrant/config/v2.rb +9 -0
- data/lib/vagrant/config/v2/dummy_config.rb +13 -0
- data/lib/vagrant/config/v2/loader.rb +141 -0
- data/lib/vagrant/config/v2/root.rb +105 -0
- data/lib/vagrant/config/v2/util.rb +21 -0
- data/lib/vagrant/config/version_base.rb +80 -0
- data/lib/vagrant/downloaders/base.rb +0 -3
- data/lib/vagrant/downloaders/file.rb +10 -4
- data/lib/vagrant/downloaders/http.rb +29 -10
- data/lib/vagrant/environment.rb +447 -240
- data/lib/vagrant/errors.rb +138 -97
- data/lib/vagrant/hosts.rb +3 -12
- data/lib/vagrant/machine.rb +325 -0
- data/lib/vagrant/machine_state.rb +45 -0
- data/lib/vagrant/plugin.rb +3 -78
- data/lib/vagrant/plugin/v1.rb +19 -0
- data/lib/vagrant/plugin/v1/command.rb +169 -0
- data/lib/vagrant/plugin/v1/communicator.rb +98 -0
- data/lib/vagrant/plugin/v1/config.rb +112 -0
- data/lib/vagrant/plugin/v1/errors.rb +15 -0
- data/lib/vagrant/plugin/v1/guest.rb +92 -0
- data/lib/vagrant/plugin/v1/host.rb +66 -0
- data/lib/vagrant/plugin/v1/manager.rb +131 -0
- data/lib/vagrant/plugin/v1/plugin.rb +229 -0
- data/lib/vagrant/plugin/v1/provider.rb +68 -0
- data/lib/vagrant/plugin/v1/provisioner.rb +50 -0
- data/lib/vagrant/plugin/v2.rb +22 -0
- data/lib/vagrant/plugin/v2/command.rb +234 -0
- data/lib/vagrant/plugin/v2/communicator.rb +98 -0
- data/lib/vagrant/plugin/v2/components.rb +29 -0
- data/lib/vagrant/plugin/v2/config.rb +101 -0
- data/lib/vagrant/plugin/v2/errors.rb +15 -0
- data/lib/vagrant/plugin/v2/guest.rb +92 -0
- data/lib/vagrant/plugin/v2/host.rb +66 -0
- data/lib/vagrant/plugin/v2/manager.rb +158 -0
- data/lib/vagrant/plugin/v2/plugin.rb +217 -0
- data/lib/vagrant/plugin/v2/provider.rb +69 -0
- data/lib/vagrant/plugin/v2/provisioner.rb +47 -0
- data/lib/vagrant/registry.rb +43 -17
- data/lib/vagrant/ssh.rb +15 -9
- data/lib/vagrant/ui.rb +7 -5
- data/lib/vagrant/util/is_port_open.rb +1 -1
- data/lib/vagrant/util/platform.rb +19 -0
- data/lib/vagrant/util/retryable.rb +8 -2
- data/lib/vagrant/util/safe_exec.rb +2 -2
- data/lib/vagrant/util/scoped_hash_override.rb +45 -0
- data/lib/vagrant/util/ssh.rb +126 -0
- data/lib/vagrant/util/string_block_editor.rb +75 -0
- data/lib/vagrant/util/subprocess.rb +33 -10
- data/lib/vagrant/util/which.rb +43 -0
- data/lib/vagrant/version.rb +1 -1
- data/plugins/README.md +5 -0
- data/plugins/commands/box/command/add.rb +46 -0
- data/plugins/commands/box/command/list.rb +41 -0
- data/plugins/commands/box/command/remove.rb +37 -0
- data/plugins/commands/box/command/repackage.rb +43 -0
- data/plugins/commands/box/command/root.rb +75 -0
- data/plugins/commands/box/plugin.rb +15 -0
- data/plugins/commands/destroy/command.rb +31 -0
- data/plugins/commands/destroy/plugin.rb +18 -0
- data/plugins/commands/halt/command.rb +33 -0
- data/plugins/commands/halt/plugin.rb +18 -0
- data/{lib/vagrant/command/init.rb → plugins/commands/init/command.rb} +4 -4
- data/plugins/commands/init/plugin.rb +18 -0
- data/plugins/commands/package/command.rb +83 -0
- data/plugins/commands/package/plugin.rb +18 -0
- data/plugins/commands/plugin/action.rb +52 -0
- data/plugins/commands/plugin/action/bundler_check.rb +25 -0
- data/plugins/commands/plugin/action/install_gem.rb +70 -0
- data/plugins/commands/plugin/action/license_plugin.rb +54 -0
- data/plugins/commands/plugin/action/list_plugins.rb +54 -0
- data/plugins/commands/plugin/action/prune_gems.rb +149 -0
- data/plugins/commands/plugin/action/uninstall_plugin.rb +23 -0
- data/plugins/commands/plugin/command/base.rb +22 -0
- data/plugins/commands/plugin/command/install.rb +39 -0
- data/plugins/commands/plugin/command/license.rb +31 -0
- data/plugins/commands/plugin/command/list.rb +28 -0
- data/plugins/commands/plugin/command/root.rb +75 -0
- data/plugins/commands/plugin/command/uninstall.rb +28 -0
- data/plugins/commands/plugin/gem_helper.rb +74 -0
- data/plugins/commands/plugin/plugin.rb +22 -0
- data/plugins/commands/plugin/state_file.rb +57 -0
- data/plugins/commands/provision/command.rb +34 -0
- data/plugins/commands/provision/plugin.rb +18 -0
- data/plugins/commands/reload/command.rb +37 -0
- data/plugins/commands/reload/plugin.rb +18 -0
- data/plugins/commands/resume/command.rb +25 -0
- data/plugins/commands/resume/plugin.rb +17 -0
- data/{lib/vagrant/command/ssh.rb → plugins/commands/ssh/command.rb} +17 -41
- data/plugins/commands/ssh/plugin.rb +17 -0
- data/{lib/vagrant/command/ssh_config.rb → plugins/commands/ssh_config/command.rb} +14 -16
- data/plugins/commands/ssh_config/plugin.rb +18 -0
- data/plugins/commands/status/command.rb +39 -0
- data/plugins/commands/status/plugin.rb +18 -0
- data/plugins/commands/suspend/command.rb +25 -0
- data/plugins/commands/suspend/plugin.rb +18 -0
- data/plugins/commands/up/command.rb +45 -0
- data/plugins/commands/up/plugin.rb +17 -0
- data/{lib/vagrant/command → plugins/commands/up}/start_mixins.rb +6 -6
- data/{lib/vagrant/communication/ssh.rb → plugins/communicators/ssh/communicator.rb} +139 -52
- data/plugins/communicators/ssh/plugin.rb +19 -0
- data/plugins/guests/arch/guest.rb +41 -0
- data/plugins/guests/arch/plugin.rb +15 -0
- data/{lib/vagrant/guest/debian.rb → plugins/guests/debian/guest.rb} +21 -13
- data/plugins/guests/debian/plugin.rb +15 -0
- data/{lib/vagrant/guest/fedora.rb → plugins/guests/fedora/guest.rb} +19 -14
- data/plugins/guests/fedora/plugin.rb +15 -0
- data/plugins/guests/freebsd/config.rb +13 -0
- data/plugins/guests/freebsd/guest.rb +70 -0
- data/plugins/guests/freebsd/plugin.rb +20 -0
- data/plugins/guests/gentoo/guest.rb +51 -0
- data/plugins/guests/gentoo/plugin.rb +15 -0
- data/plugins/guests/linux/config.rb +13 -0
- data/{lib/vagrant/guest/linux.rb → plugins/guests/linux/guest.rb} +35 -34
- data/plugins/guests/linux/plugin.rb +20 -0
- data/plugins/guests/openbsd/guest.rb +13 -0
- data/plugins/guests/openbsd/plugin.rb +15 -0
- data/{lib/vagrant/guest/redhat.rb → plugins/guests/redhat/guest.rb} +22 -15
- data/plugins/guests/redhat/plugin.rb +15 -0
- data/plugins/guests/solaris/config.rb +18 -0
- data/plugins/guests/solaris/guest.rb +73 -0
- data/plugins/guests/solaris/plugin.rb +20 -0
- data/plugins/guests/suse/guest.rb +24 -0
- data/plugins/guests/suse/plugin.rb +15 -0
- data/plugins/guests/ubuntu/guest.rb +44 -0
- data/plugins/guests/ubuntu/plugin.rb +15 -0
- data/{lib/vagrant/hosts/arch.rb → plugins/hosts/arch/host.rb} +18 -5
- data/plugins/hosts/arch/plugin.rb +15 -0
- data/{lib/vagrant/hosts/bsd.rb → plugins/hosts/bsd/host.rb} +16 -11
- data/plugins/hosts/bsd/plugin.rb +15 -0
- data/{lib/vagrant/hosts/fedora.rb → plugins/hosts/fedora/host.rb} +8 -4
- data/plugins/hosts/fedora/plugin.rb +15 -0
- data/{lib/vagrant/hosts/freebsd.rb → plugins/hosts/freebsd/host.rb} +10 -8
- data/plugins/hosts/freebsd/plugin.rb +15 -0
- data/{lib/vagrant/hosts/gentoo.rb → plugins/hosts/gentoo/host.rb} +7 -3
- data/plugins/hosts/gentoo/plugin.rb +15 -0
- data/{lib/vagrant/hosts/linux.rb → plugins/hosts/linux/host.rb} +12 -11
- data/plugins/hosts/linux/plugin.rb +15 -0
- data/{lib/vagrant/hosts/opensuse.rb → plugins/hosts/opensuse/host.rb} +8 -4
- data/plugins/hosts/opensuse/plugin.rb +15 -0
- data/{lib/vagrant/hosts/windows.rb → plugins/hosts/windows/host.rb} +5 -4
- data/plugins/hosts/windows/plugin.rb +15 -0
- data/plugins/kernel_v1/config/nfs.rb +20 -0
- data/plugins/kernel_v1/config/package.rb +17 -0
- data/plugins/kernel_v1/config/ssh.rb +46 -0
- data/plugins/kernel_v1/config/vagrant.rb +31 -0
- data/plugins/kernel_v1/config/vm.rb +184 -0
- data/plugins/kernel_v1/plugin.rb +44 -0
- data/plugins/kernel_v2/config/nfs.rb +10 -0
- data/plugins/kernel_v2/config/package.rb +9 -0
- data/plugins/kernel_v2/config/ssh.rb +35 -0
- data/plugins/kernel_v2/config/vagrant.rb +9 -0
- data/plugins/kernel_v2/config/vm.rb +314 -0
- data/plugins/kernel_v2/config/vm_provisioner.rb +40 -0
- data/plugins/kernel_v2/config/vm_subvm.rb +30 -0
- data/plugins/kernel_v2/plugin.rb +44 -0
- data/plugins/providers/virtualbox/action.rb +308 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/boot.rb +12 -16
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_accessible.rb +5 -5
- data/plugins/providers/virtualbox/action/check_created.rb +21 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_guest_additions.rb +18 -11
- data/plugins/providers/virtualbox/action/check_running.rb +21 -0
- data/plugins/providers/virtualbox/action/check_virtualbox.rb +22 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clean_machine_folder.rb +5 -5
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_forwarded_ports.rb +4 -4
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_network_interfaces.rb +4 -4
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_shared_folders.rb +4 -5
- data/plugins/providers/virtualbox/action/created.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/customize.rb +7 -7
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/destroy.rb +5 -5
- data/plugins/providers/virtualbox/action/destroy_confirm.rb +17 -0
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +16 -0
- data/plugins/providers/virtualbox/action/discard_state.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/export.rb +7 -7
- data/plugins/providers/virtualbox/action/forced_halt.rb +25 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/forward_ports.rb +29 -42
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/import.rb +15 -12
- data/plugins/providers/virtualbox/action/is_paused.rb +20 -0
- data/plugins/providers/virtualbox/action/is_running.rb +20 -0
- data/plugins/providers/virtualbox/action/is_saved.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/match_mac_address.rb +5 -5
- data/plugins/providers/virtualbox/action/message_not_created.rb +16 -0
- data/plugins/providers/virtualbox/action/message_not_running.rb +16 -0
- data/plugins/providers/virtualbox/action/message_will_not_destroy.rb +17 -0
- data/plugins/providers/virtualbox/action/network.rb +366 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package.rb +4 -7
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package_vagrantfile.rb +5 -8
- data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +35 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +51 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/prune_nfs_exports.rb +5 -5
- data/plugins/providers/virtualbox/action/resume.rb +25 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/sane_defaults.rb +41 -32
- data/plugins/providers/virtualbox/action/set_name.rb +40 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/setup_package_files.rb +5 -8
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/share_folders.rb +24 -25
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/suspend.rb +5 -5
- data/plugins/providers/virtualbox/config.rb +82 -0
- data/plugins/providers/virtualbox/driver/base.rb +344 -0
- data/plugins/providers/virtualbox/driver/meta.rb +142 -0
- data/plugins/providers/virtualbox/driver/version_4_0.rb +485 -0
- data/plugins/providers/virtualbox/driver/version_4_1.rb +485 -0
- data/plugins/providers/virtualbox/driver/version_4_2.rb +475 -0
- data/plugins/providers/virtualbox/model/forwarded_port.rb +58 -0
- data/plugins/providers/virtualbox/plugin.rb +42 -0
- data/plugins/providers/virtualbox/provider.rb +92 -0
- data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +31 -0
- data/plugins/provisioners/chef/config/base.rb +65 -0
- data/plugins/provisioners/chef/config/chef_client.rb +39 -0
- data/plugins/provisioners/chef/config/chef_solo.rb +87 -0
- data/plugins/provisioners/chef/plugin.rb +33 -0
- data/plugins/provisioners/chef/provisioner/base.rb +91 -0
- data/plugins/provisioners/chef/provisioner/chef_client.rb +103 -0
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +182 -0
- data/plugins/provisioners/puppet/config/puppet.rb +70 -0
- data/plugins/provisioners/puppet/config/puppet_server.rb +16 -0
- data/plugins/provisioners/puppet/plugin.rb +33 -0
- data/plugins/provisioners/puppet/provisioner/puppet.rb +110 -0
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +67 -0
- data/plugins/provisioners/shell/config.rb +46 -0
- data/plugins/provisioners/shell/plugin.rb +23 -0
- data/plugins/provisioners/shell/provisioner.rb +66 -0
- data/templates/commands/init/Vagrantfile.erb +33 -21
- data/templates/commands/ssh_config/config.erb +1 -0
- data/templates/config/messages.erb +14 -0
- data/templates/config/validation_failed.erb +3 -3
- data/templates/guests/arch/network_dhcp.erb +4 -7
- data/templates/guests/arch/network_static.erb +6 -7
- data/templates/guests/debian/network_dhcp.erb +5 -0
- data/templates/locales/en.yml +336 -100
- data/templates/rgloader.rb +9 -0
- data/test/acceptance/support/isolated_environment.rb +3 -2
- data/test/support/tempdir.rb +13 -4
- data/test/unit/base.rb +6 -0
- data/test/unit/support/dummy_provider.rb +16 -0
- data/test/unit/support/isolated_environment.rb +132 -0
- data/test/unit/support/shared/base_context.rb +74 -0
- data/test/unit/vagrant/action/builder_test.rb +88 -48
- data/test/unit/vagrant/action/builtin/call_test.rb +145 -0
- data/test/unit/vagrant/action/builtin/confirm_test.rb +36 -0
- data/test/unit/vagrant/action/builtin/env_set_test.rb +20 -0
- data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +61 -0
- data/test/unit/vagrant/action/builtin/lock_test.rb +98 -0
- data/test/unit/vagrant/action/builtin/ssh_exec_test.rb +57 -0
- data/test/unit/vagrant/action/hook_test.rb +101 -0
- data/test/unit/vagrant/action/runner_test.rb +15 -9
- data/test/unit/vagrant/box_collection_test.rb +219 -38
- data/test/unit/vagrant/box_test.rb +94 -19
- data/test/unit/vagrant/cli_test.rb +27 -0
- data/test/unit/vagrant/config/loader_test.rb +154 -49
- data/test/unit/vagrant/config/v1/dummy_config_test.rb +24 -0
- data/test/unit/vagrant/config/v1/loader_test.rb +145 -0
- data/test/unit/vagrant/config/v1/root_test.rb +40 -0
- data/test/unit/vagrant/config/v2/dummy_config_test.rb +24 -0
- data/test/unit/vagrant/config/v2/loader_test.rb +151 -0
- data/test/unit/vagrant/config/v2/root_test.rb +97 -0
- data/test/unit/vagrant/config/v2/util_test.rb +21 -0
- data/test/unit/vagrant/config_test.rb +40 -1
- data/test/unit/vagrant/downloaders/base_test.rb +0 -4
- data/test/unit/vagrant/downloaders/file_test.rb +21 -9
- data/test/unit/vagrant/downloaders/http_test.rb +4 -0
- data/test/unit/vagrant/environment_test.rb +414 -63
- data/test/unit/vagrant/hosts_test.rb +10 -9
- data/test/unit/vagrant/machine_state_test.rb +26 -0
- data/test/unit/vagrant/machine_test.rb +418 -0
- data/test/unit/vagrant/{command/base_test.rb → plugin/v1/command_test.rb} +2 -9
- data/test/unit/vagrant/plugin/v1/communicator_test.rb +9 -0
- data/test/unit/vagrant/plugin/v1/config_test.rb +50 -0
- data/test/unit/vagrant/plugin/v1/host_test.rb +5 -0
- data/test/unit/vagrant/plugin/v1/manager_test.rb +114 -0
- data/test/unit/vagrant/plugin/v1/plugin_test.rb +267 -0
- data/test/unit/vagrant/plugin/v1/provider_test.rb +18 -0
- data/test/unit/vagrant/plugin/v2/command_test.rb +238 -0
- data/test/unit/vagrant/plugin/v2/communicator_test.rb +9 -0
- data/test/unit/vagrant/plugin/v2/components_test.rb +17 -0
- data/test/unit/vagrant/plugin/v2/config_test.rb +60 -0
- data/test/unit/vagrant/plugin/v2/host_test.rb +5 -0
- data/test/unit/vagrant/plugin/v2/manager_test.rb +157 -0
- data/test/unit/vagrant/plugin/v2/plugin_test.rb +287 -0
- data/test/unit/vagrant/plugin/v2/provider_test.rb +18 -0
- data/test/unit/vagrant/registry_test.rb +59 -5
- data/test/unit/vagrant/util/scoped_hash_override_test.rb +48 -0
- data/test/unit/vagrant/util/ssh_test.rb +30 -0
- data/test/unit/vagrant/util/string_block_editor_test.rb +98 -0
- data/test/unit/vagrant/util/which_test.rb +43 -0
- data/test/unit/vagrant_test.rb +42 -13
- data/vagrant.gemspec +6 -7
- data/vagrant.gemspecbak +6 -7
- metadata +273 -358
- data/lib/vagrant/action/box/destroy.rb +0 -25
- data/lib/vagrant/action/box/download.rb +0 -84
- data/lib/vagrant/action/box/package.rb +0 -19
- data/lib/vagrant/action/box/unpackage.rb +0 -61
- data/lib/vagrant/action/box/verify.rb +0 -23
- data/lib/vagrant/action/builtin.rb +0 -171
- data/lib/vagrant/action/env/set.rb +0 -21
- data/lib/vagrant/action/environment.rb +0 -12
- data/lib/vagrant/action/general/check_virtualbox.rb +0 -28
- data/lib/vagrant/action/general/validate.rb +0 -18
- data/lib/vagrant/action/vm/check_box.rb +0 -33
- data/lib/vagrant/action/vm/check_port_collisions.rb +0 -89
- data/lib/vagrant/action/vm/default_name.rb +0 -22
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +0 -20
- data/lib/vagrant/action/vm/discard_state.rb +0 -22
- data/lib/vagrant/action/vm/halt.rb +0 -32
- data/lib/vagrant/action/vm/host_name.rb +0 -21
- data/lib/vagrant/action/vm/network.rb +0 -403
- data/lib/vagrant/action/vm/nfs.rb +0 -196
- data/lib/vagrant/action/vm/provision.rb +0 -61
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +0 -26
- data/lib/vagrant/action/vm/resume.rb +0 -20
- data/lib/vagrant/command.rb +0 -24
- data/lib/vagrant/command/base.rb +0 -167
- data/lib/vagrant/command/box.rb +0 -58
- data/lib/vagrant/command/box_add.rb +0 -37
- data/lib/vagrant/command/box_list.rb +0 -28
- data/lib/vagrant/command/box_remove.rb +0 -27
- data/lib/vagrant/command/box_repackage.rb +0 -27
- data/lib/vagrant/command/destroy.rb +0 -64
- data/lib/vagrant/command/gem.rb +0 -39
- data/lib/vagrant/command/halt.rb +0 -39
- data/lib/vagrant/command/package.rb +0 -75
- data/lib/vagrant/command/provision.rb +0 -40
- data/lib/vagrant/command/reload.rb +0 -39
- data/lib/vagrant/command/resume.rb +0 -33
- data/lib/vagrant/command/status.rb +0 -36
- data/lib/vagrant/command/suspend.rb +0 -33
- data/lib/vagrant/command/up.rb +0 -40
- data/lib/vagrant/communication.rb +0 -7
- data/lib/vagrant/communication/base.rb +0 -56
- data/lib/vagrant/config/base.rb +0 -82
- data/lib/vagrant/config/error_recorder.rb +0 -19
- data/lib/vagrant/config/nfs.rb +0 -8
- data/lib/vagrant/config/package.rb +0 -7
- data/lib/vagrant/config/ssh.rb +0 -27
- data/lib/vagrant/config/top.rb +0 -72
- data/lib/vagrant/config/vagrant.rb +0 -14
- data/lib/vagrant/config/vm.rb +0 -168
- data/lib/vagrant/config/vm/provisioner.rb +0 -52
- data/lib/vagrant/config/vm/sub_vm.rb +0 -17
- data/lib/vagrant/data_store.rb +0 -92
- data/lib/vagrant/driver.rb +0 -8
- data/lib/vagrant/driver/virtualbox.rb +0 -134
- data/lib/vagrant/driver/virtualbox_4_0.rb +0 -459
- data/lib/vagrant/driver/virtualbox_4_1.rb +0 -459
- data/lib/vagrant/driver/virtualbox_4_2.rb +0 -606
- data/lib/vagrant/driver/virtualbox_base.rb +0 -326
- data/lib/vagrant/guest.rb +0 -18
- data/lib/vagrant/guest/arch.rb +0 -56
- data/lib/vagrant/guest/base.rb +0 -99
- data/lib/vagrant/guest/freebsd.rb +0 -86
- data/lib/vagrant/guest/gentoo.rb +0 -46
- data/lib/vagrant/guest/linux/config.rb +0 -19
- data/lib/vagrant/guest/linux/error.rb +0 -9
- data/lib/vagrant/guest/openbsd.rb +0 -20
- data/lib/vagrant/guest/solaris.rb +0 -118
- data/lib/vagrant/guest/suse.rb +0 -17
- data/lib/vagrant/guest/ubuntu.rb +0 -23
- data/lib/vagrant/hosts/base.rb +0 -66
- data/lib/vagrant/provisioners.rb +0 -12
- data/lib/vagrant/provisioners/base.rb +0 -44
- data/lib/vagrant/provisioners/chef.rb +0 -168
- data/lib/vagrant/provisioners/chef_client.rb +0 -132
- data/lib/vagrant/provisioners/chef_solo.rb +0 -234
- data/lib/vagrant/provisioners/puppet.rb +0 -176
- data/lib/vagrant/provisioners/puppet_server.rb +0 -78
- data/lib/vagrant/provisioners/shell.rb +0 -103
- data/lib/vagrant/vm.rb +0 -195
- data/test/buildbot/README.md +0 -72
- data/test/buildbot/buildbot_config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/loader.py +0 -24
- data/test/buildbot/buildbot_config/config/master.py +0 -24
- data/test/buildbot/buildbot_config/config/slave.py +0 -22
- data/test/buildbot/buildbot_config/master/__init__.py +0 -6
- data/test/buildbot/buildbot_config/master/builders.py +0 -78
- data/test/buildbot/buildbot_config/master/buildsteps.py +0 -100
- data/test/buildbot/buildbot_config/master/change_sources.py +0 -8
- data/test/buildbot/buildbot_config/master/schedulers.py +0 -32
- data/test/buildbot/buildbot_config/master/slaves.py +0 -60
- data/test/buildbot/buildbot_config/master/status.py +0 -52
- data/test/buildbot/master/Makefile.sample +0 -28
- data/test/buildbot/master/buildbot.tac +0 -36
- data/test/buildbot/master/master.cfg +0 -67
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +0 -545
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +0 -10
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +0 -356
- data/test/buildbot/master/public_html/static/css/prettify.css +0 -97
- data/test/buildbot/master/public_html/static/css/syntax.css +0 -60
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +0 -205
- data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
- data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
- data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +0 -80
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +0 -4
- data/test/buildbot/master/templates/authfail.html +0 -9
- data/test/buildbot/master/templates/build.html +0 -205
- data/test/buildbot/master/templates/builder.html +0 -118
- data/test/buildbot/master/templates/builders.html +0 -33
- data/test/buildbot/master/templates/buildslave.html +0 -72
- data/test/buildbot/master/templates/buildslaves.html +0 -70
- data/test/buildbot/master/templates/change.html +0 -15
- data/test/buildbot/master/templates/layouts/base.html +0 -58
- data/test/buildbot/master/templates/macros/box.html +0 -37
- data/test/buildbot/master/templates/macros/build_line.html +0 -50
- data/test/buildbot/master/templates/macros/change.html +0 -81
- data/test/buildbot/master/templates/macros/forms.html +0 -300
- data/test/buildbot/master/templates/root.html +0 -42
- data/test/buildbot/master/templates/waterfall.html +0 -53
- data/test/buildbot/requirements.txt +0 -4
- data/test/buildbot/scripts/deploy.sh +0 -38
- data/test/buildbot/scripts/setup.sh +0 -107
- data/test/buildbot/slave/buildbot.tac +0 -43
- data/test/buildbot/slave/info/admin +0 -1
- data/test/buildbot/slave/info/host +0 -1
- data/test/buildbot/tests/__init__.py +0 -0
- data/test/buildbot/tests/master/__init__.py +0 -0
- data/test/buildbot/tests/master/test_slaves.py +0 -41
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/unit/vagrant/action/environment_test.rb +0 -16
- data/test/unit/vagrant/config/base_test.rb +0 -48
- data/test/unit/vagrant/config/ssh_test.rb +0 -17
- data/test/unit/vagrant/config/top_test.rb +0 -69
- data/test/unit/vagrant/config/vm_test.rb +0 -71
- data/test/unit/vagrant/data_store_test.rb +0 -79
- data/test/unit_legacy/locales/en.yml +0 -8
- data/test/unit_legacy/test_helper.rb +0 -32
- data/test/unit_legacy/vagrant/action/box/destroy_test.rb +0 -18
- data/test/unit_legacy/vagrant/action/box/download_test.rb +0 -125
- data/test/unit_legacy/vagrant/action/box/package_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +0 -84
- data/test/unit_legacy/vagrant/action/box/verify_test.rb +0 -30
- data/test/unit_legacy/vagrant/action/env/set_test.rb +0 -24
- data/test/unit_legacy/vagrant/action/general/package_test.rb +0 -268
- data/test/unit_legacy/vagrant/action/general/validate_test.rb +0 -31
- data/test/unit_legacy/vagrant/action/vm/boot_test.rb +0 -66
- data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +0 -61
- data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +0 -61
- data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +0 -9
- data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +0 -84
- data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +0 -52
- data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +0 -22
- data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +0 -40
- data/test/unit_legacy/vagrant/action/vm/customize_test.rb +0 -37
- data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +0 -49
- data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +0 -45
- data/test/unit_legacy/vagrant/action/vm/export_test.rb +0 -107
- data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +0 -77
- data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +0 -197
- data/test/unit_legacy/vagrant/action/vm/halt_test.rb +0 -79
- data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +0 -36
- data/test/unit_legacy/vagrant/action/vm/import_test.rb +0 -66
- data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +0 -40
- data/test/unit_legacy/vagrant/action/vm/modify_test.rb +0 -38
- data/test/unit_legacy/vagrant/action/vm/network_test.rb +0 -286
- data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +0 -26
- data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +0 -260
- data/test/unit_legacy/vagrant/action/vm/package_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +0 -46
- data/test/unit_legacy/vagrant/action/vm/provision_test.rb +0 -65
- data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +0 -56
- data/test/unit_legacy/vagrant/action/vm/resume_test.rb +0 -35
- data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +0 -144
- data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +0 -35
- data/test/unit_legacy/vagrant/action_test.rb +0 -89
- data/test/unit_legacy/vagrant/box_collection_test.rb +0 -45
- data/test/unit_legacy/vagrant/box_test.rb +0 -74
- data/test/unit_legacy/vagrant/cli_test.rb +0 -35
- data/test/unit_legacy/vagrant/command/base_test.rb +0 -23
- data/test/unit_legacy/vagrant/command/group_base_test.rb +0 -15
- data/test/unit_legacy/vagrant/command/helpers_test.rb +0 -88
- data/test/unit_legacy/vagrant/command/init_test.rb +0 -10
- data/test/unit_legacy/vagrant/command/package_test.rb +0 -27
- data/test/unit_legacy/vagrant/config/base_test.rb +0 -52
- data/test/unit_legacy/vagrant/config/error_recorder_test.rb +0 -18
- data/test/unit_legacy/vagrant/config/ssh_test.rb +0 -12
- data/test/unit_legacy/vagrant/config/vagrant_test.rb +0 -35
- data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +0 -92
- data/test/unit_legacy/vagrant/config/vm_test.rb +0 -47
- data/test/unit_legacy/vagrant/config_test.rb +0 -148
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +0 -93
- data/test/unit_legacy/vagrant/environment_test.rb +0 -539
- data/test/unit_legacy/vagrant/errors_test.rb +0 -42
- data/test/unit_legacy/vagrant/hosts/base_test.rb +0 -46
- data/test/unit_legacy/vagrant/hosts/bsd_test.rb +0 -53
- data/test/unit_legacy/vagrant/hosts/linux_test.rb +0 -54
- data/test/unit_legacy/vagrant/plugin_test.rb +0 -9
- data/test/unit_legacy/vagrant/provisioners/base_test.rb +0 -63
- data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +0 -190
- data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +0 -115
- data/test/unit_legacy/vagrant/provisioners/chef_test.rb +0 -209
- data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +0 -68
- data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +0 -182
- data/test/unit_legacy/vagrant/provisioners/shell_test.rb +0 -79
- data/test/unit_legacy/vagrant/ssh/session_test.rb +0 -40
- data/test/unit_legacy/vagrant/ssh_test.rb +0 -304
- data/test/unit_legacy/vagrant/systems/base_test.rb +0 -18
- data/test/unit_legacy/vagrant/systems/linux_test.rb +0 -104
- data/test/unit_legacy/vagrant/util/busy_test.rb +0 -106
- data/test/unit_legacy/vagrant/util/counter_test.rb +0 -29
- data/test/unit_legacy/vagrant/util/platform_test.rb +0 -18
- data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +0 -43
- data/test/unit_legacy/vagrant/util/template_renderer_test.rb +0 -145
- data/test/unit_legacy/vagrant/vm_test.rb +0 -300
- data/vagrant-1.1.4.gem +0 -0
- data/vagrantup-0.1.0.gem +0 -0
- data/vagrantup-0.1.1.gem +0 -0
- data/vagrantup-0.1.2.gem +0 -0
- data/vagrantup-0.1.3.gem +0 -0
- data/vagrantup-0.1.4.gem +0 -0
- data/vagrantup-0.2.0.gem +0 -0
- data/vagrantup-0.3.0.gem +0 -0
- data/vagrantup-0.3.1.gem +0 -0
- data/vagrantup-0.3.2.gem +0 -0
- data/vagrantup-0.3.3.gem +0 -0
- data/vagrantup-0.3.4.gem +0 -0
- data/vagrantup-0.4.0.gem +0 -0
- data/vagrantup-0.4.1.gem +0 -0
- data/vagrantup-0.4.3.dev.gem +0 -0
- data/vagrantup-0.5.0.gem +0 -0
- data/vagrantup-0.5.1.gem +0 -0
- data/vagrantup-0.5.2.gem +0 -0
- data/vagrantup-0.5.3.gem +0 -0
- data/vagrantup-0.5.4.gem +0 -0
- data/vagrantup-0.6.0.gem +0 -0
- data/vagrantup-0.6.1.gem +0 -0
- data/vagrantup-0.6.2.gem +0 -0
- data/vagrantup-0.6.3.gem +0 -0
- data/vagrantup-0.6.4.gem +0 -0
- data/vagrantup-0.6.5.gem +0 -0
- data/vagrantup-0.6.6.gem +0 -0
- data/vagrantup-0.6.7.gem +0 -0
- data/vagrantup-0.6.8.gem +0 -0
- data/vagrantup-0.6.9.gem +0 -0
- data/vagrantup-0.7.0.gem +0 -0
- data/vagrantup-0.7.1.gem +0 -0
- data/vagrantup-0.7.2.gem +0 -0
- data/vagrantup-0.7.3.gem +0 -0
- data/vagrantup-0.7.4.gem +0 -0
- data/vagrantup-0.7.5.gem +0 -0
- data/vagrantup-0.7.6.gem +0 -0
- data/vagrantup-0.7.7.gem +0 -0
- data/vagrantup-0.7.8.gem +0 -0
- data/vagrantup-0.8.0.gem +0 -0
- data/vagrantup-0.8.1.gem +0 -0
- data/vagrantup-0.8.10.gem +0 -0
- data/vagrantup-0.8.2.gem +0 -0
- data/vagrantup-0.8.3.gem +0 -0
- data/vagrantup-0.8.4.gem +0 -0
- data/vagrantup-0.8.5.gem +0 -0
- data/vagrantup-0.8.6.gem +0 -0
- data/vagrantup-0.8.7.gem +0 -0
- data/vagrantup-0.8.8.gem +0 -0
- data/vagrantup-0.8.9.gem +0 -0
- data/vagrantup-0.9.0.gem +0 -0
- data/vagrantup-0.9.1.gem +0 -0
- data/vagrantup-0.9.2.gem +0 -0
- data/vagrantup-0.9.3.gem +0 -0
- data/vagrantup-0.9.4.gem +0 -0
- data/vagrantup-0.9.5.gem +0 -0
- data/vagrantup-0.9.6.gem +0 -0
- data/vagrantup-0.9.7.gem +0 -0
- data/vagrantup-0.9.99.1.gem +0 -0
- data/vagrantup-0.9.99.2.gem +0 -0
- data/vagrantup-1.0.0.gem +0 -0
- data/vagrantup-1.0.1.gem +0 -0
- data/vagrantup-1.0.2.gem +0 -0
- data/vagrantup-1.0.3.gem +0 -0
- data/vagrantup-1.0.4.gem +0 -0
- data/vagrantup-1.0.5.gem +0 -0
- data/vagrantup-1.0.6.gem +0 -0
- data/vagrantup-1.1.4.gem +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# This file loads the proper rgloader/loader.rb file that comes packaged
|
|
2
|
+
# with Vagrant so that encoded files can properly run with Vagrant.
|
|
3
|
+
|
|
4
|
+
if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]
|
|
5
|
+
require File.expand_path(
|
|
6
|
+
"rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"])
|
|
7
|
+
else
|
|
8
|
+
raise "Encoded files can't be read outside of the Vagrant installer."
|
|
9
|
+
end
|
|
@@ -51,7 +51,8 @@ module Acceptance
|
|
|
51
51
|
options = argN.last.is_a?(Hash) ? argN.pop : {}
|
|
52
52
|
options = {
|
|
53
53
|
:workdir => @workdir,
|
|
54
|
-
:env => @env
|
|
54
|
+
:env => @env,
|
|
55
|
+
:notify => [:stdin, :stderr, :stdout]
|
|
55
56
|
}.merge(options)
|
|
56
57
|
|
|
57
58
|
# Add the options to be passed on
|
|
@@ -59,7 +60,7 @@ module Acceptance
|
|
|
59
60
|
|
|
60
61
|
# Execute, logging out the stdout/stderr as we get it
|
|
61
62
|
@logger.info("Executing: #{[command].concat(argN).inspect}")
|
|
62
|
-
Vagrant::Util::Subprocess.execute(command
|
|
63
|
+
Vagrant::Util::Subprocess.execute(command *argN) do |type, data|
|
|
63
64
|
@logger.debug("#{type}: #{data}") if type == :stdout || type == :stderr
|
|
64
65
|
yield type, data if block_given?
|
|
65
66
|
end
|
data/test/support/tempdir.rb
CHANGED
|
@@ -3,9 +3,6 @@ require 'tempfile'
|
|
|
3
3
|
|
|
4
4
|
# This class provides an easy way of creating a temporary
|
|
5
5
|
# directory and having it removed when the application exits.
|
|
6
|
-
#
|
|
7
|
-
# TODO: This class doesn't currently delete the temporary
|
|
8
|
-
# directory on exit.
|
|
9
6
|
class Tempdir
|
|
10
7
|
attr_reader :path
|
|
11
8
|
|
|
@@ -25,10 +22,22 @@ class Tempdir
|
|
|
25
22
|
@path = nil
|
|
26
23
|
end
|
|
27
24
|
end
|
|
25
|
+
|
|
26
|
+
# Setup a finalizer to delete the directory. This is the same way
|
|
27
|
+
# that Tempfile and friends do this...
|
|
28
|
+
@cleanup_proc = lambda do
|
|
29
|
+
FileUtils.rm_rf(@path) if File.directory?(@path)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
ObjectSpace.define_finalizer(self, @cleanup_proc)
|
|
28
33
|
end
|
|
29
34
|
|
|
30
35
|
# This deletes the temporary directory.
|
|
31
36
|
def unlink
|
|
32
|
-
|
|
37
|
+
# Delete the directory
|
|
38
|
+
@cleanup_proc.call
|
|
39
|
+
|
|
40
|
+
# Undefine the finalizer since we're all cleaned up
|
|
41
|
+
ObjectSpace.undefine_finalizer(self)
|
|
33
42
|
end
|
|
34
43
|
end
|
data/test/unit/base.rb
CHANGED
|
@@ -9,6 +9,8 @@ require "vagrant"
|
|
|
9
9
|
$:.unshift File.expand_path("../../", __FILE__)
|
|
10
10
|
|
|
11
11
|
# Load in helpers
|
|
12
|
+
require "support/tempdir"
|
|
13
|
+
require "unit/support/dummy_provider"
|
|
12
14
|
require "unit/support/shared/base_context"
|
|
13
15
|
|
|
14
16
|
# Do not buffer output
|
|
@@ -19,3 +21,7 @@ $stderr.sync = true
|
|
|
19
21
|
RSpec.configure do |c|
|
|
20
22
|
c.expect_with :rspec, :stdlib
|
|
21
23
|
end
|
|
24
|
+
|
|
25
|
+
# Configure VAGRANT_CWD so that the tests never find an actual
|
|
26
|
+
# Vagrantfile anywhere, or at least this minimizes those chances.
|
|
27
|
+
ENV["VAGRANT_CWD"] = Tempdir.new.path
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module VagrantTests
|
|
2
|
+
class DummyProviderPlugin < Vagrant.plugin("2")
|
|
3
|
+
name "Dummy Provider"
|
|
4
|
+
description <<-EOF
|
|
5
|
+
This creates a provider named "dummy" which does nothing, so that
|
|
6
|
+
the unit tests aren't reliant on VirtualBox (or any other real
|
|
7
|
+
provider for that matter).
|
|
8
|
+
EOF
|
|
9
|
+
|
|
10
|
+
provider(:dummy) { DummyProvider }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class DummyProvider < Vagrant.plugin("2", :provider)
|
|
14
|
+
# No-op
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
require "fileutils"
|
|
2
2
|
require "pathname"
|
|
3
|
+
require "tempfile"
|
|
3
4
|
|
|
5
|
+
require "json"
|
|
4
6
|
require "log4r"
|
|
5
7
|
|
|
8
|
+
require "vagrant/util/platform"
|
|
9
|
+
require "vagrant/util/subprocess"
|
|
10
|
+
|
|
6
11
|
require "support/isolated_environment"
|
|
12
|
+
require "support/tempdir"
|
|
7
13
|
|
|
8
14
|
module Unit
|
|
9
15
|
class IsolatedEnvironment < ::IsolatedEnvironment
|
|
@@ -32,12 +38,138 @@ module Unit
|
|
|
32
38
|
end
|
|
33
39
|
|
|
34
40
|
def box(name, vagrantfile_contents="")
|
|
41
|
+
# Create the box directory
|
|
35
42
|
box_dir = boxes_dir.join(name)
|
|
36
43
|
box_dir.mkpath
|
|
44
|
+
|
|
45
|
+
# Create the "box.ovf" file because that is how Vagrant heuristically
|
|
46
|
+
# determines a box is a V1 box.
|
|
47
|
+
box_dir.join("box.ovf").open("w") { |f| f.write("") }
|
|
48
|
+
|
|
49
|
+
# Populate the vagrantfile
|
|
37
50
|
vagrantfile(vagrantfile_contents, box_dir)
|
|
51
|
+
|
|
52
|
+
# Return the directory
|
|
38
53
|
box_dir
|
|
39
54
|
end
|
|
40
55
|
|
|
56
|
+
# Create an alias because "box" makes a V1 box, so "box1"
|
|
57
|
+
alias :box1 :box
|
|
58
|
+
|
|
59
|
+
# Creates a fake box to exist in this environment.
|
|
60
|
+
#
|
|
61
|
+
# @param [String] name Name of the box
|
|
62
|
+
# @param [Symbol] provider Provider the box was built for.
|
|
63
|
+
# @return [Pathname] Path to the box directory.
|
|
64
|
+
def box2(name, provider, options=nil)
|
|
65
|
+
# Default options
|
|
66
|
+
options = {
|
|
67
|
+
:vagrantfile => ""
|
|
68
|
+
}.merge(options || {})
|
|
69
|
+
|
|
70
|
+
# Make the box directory
|
|
71
|
+
box_dir = boxes_dir.join(name, provider.to_s)
|
|
72
|
+
box_dir.mkpath
|
|
73
|
+
|
|
74
|
+
# Create a metadata.json file
|
|
75
|
+
box_metadata_file = box_dir.join("metadata.json")
|
|
76
|
+
box_metadata_file.open("w") do |f|
|
|
77
|
+
f.write(JSON.generate({
|
|
78
|
+
:provider => provider.to_s
|
|
79
|
+
}))
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Create a Vagrantfile
|
|
83
|
+
box_vagrantfile = box_dir.join("Vagrantfile")
|
|
84
|
+
box_vagrantfile.open("w") do |f|
|
|
85
|
+
f.write(options[:vagrantfile])
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Return the box directory
|
|
89
|
+
box_dir
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# This creates a "box" file that is a valid V1 box.
|
|
93
|
+
#
|
|
94
|
+
# @return [Pathname] Path to the newly created box.
|
|
95
|
+
def box1_file
|
|
96
|
+
# Create a temporary directory to store our data we will tar up
|
|
97
|
+
td_source = Tempdir.new
|
|
98
|
+
td_dest = Tempdir.new
|
|
99
|
+
|
|
100
|
+
# Store the temporary directory so it is not deleted until
|
|
101
|
+
# this instance is garbage collected.
|
|
102
|
+
@_box2_file_temp ||= []
|
|
103
|
+
@_box2_file_temp << td_dest
|
|
104
|
+
|
|
105
|
+
# The source as a Pathname, which is easier to work with
|
|
106
|
+
source = Pathname.new(td_source.path)
|
|
107
|
+
|
|
108
|
+
# The destination file
|
|
109
|
+
result = Pathname.new(td_dest.path).join("temporary.box")
|
|
110
|
+
|
|
111
|
+
# Put a "box.ovf" in there.
|
|
112
|
+
source.join("box.ovf").open("w") do |f|
|
|
113
|
+
f.write("FOO!")
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
Dir.chdir(source) do
|
|
117
|
+
# Find all the files in our current directory and tar it up!
|
|
118
|
+
files = Dir.glob(File.join(".", "**", "*"))
|
|
119
|
+
|
|
120
|
+
# Package!
|
|
121
|
+
Vagrant::Util::Subprocess.execute("bsdtar", "-czf", result.to_s, *files)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Resulting box
|
|
125
|
+
result
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# This creates a "box" file with the given provider.
|
|
129
|
+
#
|
|
130
|
+
# @param [Symbol] provider Provider for the box.
|
|
131
|
+
# @return [Pathname] Path to the newly created box.
|
|
132
|
+
def box2_file(provider, options=nil)
|
|
133
|
+
options ||= {}
|
|
134
|
+
|
|
135
|
+
# This is the metadata we want to store in our file
|
|
136
|
+
metadata = {
|
|
137
|
+
"type" => "v2_box",
|
|
138
|
+
"provider" => provider
|
|
139
|
+
}.merge(options[:metadata] || {})
|
|
140
|
+
|
|
141
|
+
# Create a temporary directory to store our data we will tar up
|
|
142
|
+
td_source = Tempdir.new
|
|
143
|
+
td_dest = Tempdir.new
|
|
144
|
+
|
|
145
|
+
# Store the temporary directory so it is not deleted until
|
|
146
|
+
# this instance is garbage collected.
|
|
147
|
+
@_box2_file_temp ||= []
|
|
148
|
+
@_box2_file_temp << td_dest
|
|
149
|
+
|
|
150
|
+
# The source as a Pathname, which is easier to work with
|
|
151
|
+
source = Pathname.new(td_source.path)
|
|
152
|
+
|
|
153
|
+
# The destination file
|
|
154
|
+
result = Pathname.new(td_dest.path).join("temporary.box")
|
|
155
|
+
|
|
156
|
+
# Put the metadata.json in here.
|
|
157
|
+
source.join("metadata.json").open("w") do |f|
|
|
158
|
+
f.write(JSON.generate(metadata))
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
Dir.chdir(source) do
|
|
162
|
+
# Find all the files in our current directory and tar it up!
|
|
163
|
+
files = Dir.glob(File.join(".", "**", "*"))
|
|
164
|
+
|
|
165
|
+
# Package!
|
|
166
|
+
Vagrant::Util::Subprocess.execute("bsdtar", "-czf", result.to_s, *files)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Resulting box
|
|
170
|
+
result
|
|
171
|
+
end
|
|
172
|
+
|
|
41
173
|
def boxes_dir
|
|
42
174
|
dir = @homedir.join("boxes")
|
|
43
175
|
dir.mkpath
|
|
@@ -1,8 +1,28 @@
|
|
|
1
1
|
require "tempfile"
|
|
2
2
|
|
|
3
|
+
require "support/tempdir"
|
|
3
4
|
require "unit/support/isolated_environment"
|
|
4
5
|
|
|
5
6
|
shared_context "unit" do
|
|
7
|
+
before(:each) do
|
|
8
|
+
# State to store the list of registered plugins that we have to
|
|
9
|
+
# unregister later.
|
|
10
|
+
@_plugins = []
|
|
11
|
+
|
|
12
|
+
# Create a thing to store our temporary files so that they aren't
|
|
13
|
+
# unlinked right away.
|
|
14
|
+
@_temp_files = []
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
after(:each) do
|
|
18
|
+
# Unregister each of the plugins we have may have temporarily
|
|
19
|
+
# registered for the duration of this test.
|
|
20
|
+
@_plugins.each do |plugin|
|
|
21
|
+
Vagrant.plugin("1").manager.unregister(plugin)
|
|
22
|
+
Vagrant.plugin("2").manager.unregister(plugin)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
6
26
|
# This creates an isolated environment so that Vagrant doesn't
|
|
7
27
|
# muck around with your real system during unit tests.
|
|
8
28
|
#
|
|
@@ -15,8 +35,25 @@ shared_context "unit" do
|
|
|
15
35
|
env
|
|
16
36
|
end
|
|
17
37
|
|
|
38
|
+
# This registers a Vagrant plugin for the duration of a single test.
|
|
39
|
+
# This will yield a new plugin class that you can then call the
|
|
40
|
+
# public plugin methods on.
|
|
41
|
+
#
|
|
42
|
+
# @yield [plugin] Yields the plugin class for you to call the public
|
|
43
|
+
# API that you need to.
|
|
44
|
+
def register_plugin(version=nil)
|
|
45
|
+
version ||= Vagrant::Config::CURRENT_VERSION
|
|
46
|
+
plugin = Class.new(Vagrant.plugin(version))
|
|
47
|
+
plugin.name("Test Plugin #{plugin.inspect}")
|
|
48
|
+
yield plugin if block_given?
|
|
49
|
+
@_plugins << plugin
|
|
50
|
+
plugin
|
|
51
|
+
end
|
|
52
|
+
|
|
18
53
|
# This helper creates a temporary file and returns a Pathname
|
|
19
54
|
# object pointed to it.
|
|
55
|
+
#
|
|
56
|
+
# @return [Pathname]
|
|
20
57
|
def temporary_file(contents=nil)
|
|
21
58
|
f = Tempfile.new("vagrant-unit")
|
|
22
59
|
|
|
@@ -25,6 +62,43 @@ shared_context "unit" do
|
|
|
25
62
|
f.flush
|
|
26
63
|
end
|
|
27
64
|
|
|
65
|
+
# Store the tempfile in an instance variable so that it is not
|
|
66
|
+
# garbage collected, so that the tempfile is not unlinked.
|
|
67
|
+
@_temp_files << f
|
|
68
|
+
|
|
28
69
|
return Pathname.new(f.path)
|
|
29
70
|
end
|
|
71
|
+
|
|
72
|
+
# This creates a temporary directory and returns a {Pathname}
|
|
73
|
+
# pointing to it.
|
|
74
|
+
#
|
|
75
|
+
# @return [Pathname]
|
|
76
|
+
def temporary_dir
|
|
77
|
+
# Create a temporary directory and append it to the instance
|
|
78
|
+
# variabe so that it isn't garbage collected and deleted
|
|
79
|
+
d = Tempdir.new("vagrant-unit")
|
|
80
|
+
@_temp_files << d
|
|
81
|
+
|
|
82
|
+
# Return the pathname
|
|
83
|
+
return Pathname.new(d.path)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# This helper provides temporary environmental variable changes.
|
|
87
|
+
def with_temp_env(environment)
|
|
88
|
+
# Build up the new environment, preserving the old values so we
|
|
89
|
+
# can replace them back in later.
|
|
90
|
+
old_env = {}
|
|
91
|
+
environment.each do |key, value|
|
|
92
|
+
old_env[key] = ENV[key]
|
|
93
|
+
ENV[key] = value
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Call the block, returning its return value
|
|
97
|
+
return yield
|
|
98
|
+
ensure
|
|
99
|
+
# Reset the environment no matter what
|
|
100
|
+
old_env.each do |key, value|
|
|
101
|
+
ENV[key] = value
|
|
102
|
+
end
|
|
103
|
+
end
|
|
30
104
|
end
|
|
@@ -2,7 +2,6 @@ require File.expand_path("../../../base", __FILE__)
|
|
|
2
2
|
|
|
3
3
|
describe Vagrant::Action::Builder do
|
|
4
4
|
let(:data) { { :data => [] } }
|
|
5
|
-
let(:instance) { described_class.new }
|
|
6
5
|
|
|
7
6
|
# This returns a proc that can be used with the builder
|
|
8
7
|
# that simply appends data to an array in the env.
|
|
@@ -10,13 +9,32 @@ describe Vagrant::Action::Builder do
|
|
|
10
9
|
Proc.new { |env| env[:data] << data }
|
|
11
10
|
end
|
|
12
11
|
|
|
12
|
+
context "copying" do
|
|
13
|
+
it "should copy the stack" do
|
|
14
|
+
copy = subject.dup
|
|
15
|
+
copy.stack.object_id.should_not == subject.stack.object_id
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
context "build" do
|
|
20
|
+
it "should provide build as a shortcut for basic sequences" do
|
|
21
|
+
data = {}
|
|
22
|
+
proc = Proc.new { |env| env[:data] = true }
|
|
23
|
+
|
|
24
|
+
subject = described_class.build(proc)
|
|
25
|
+
subject.call(data)
|
|
26
|
+
|
|
27
|
+
data[:data].should == true
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
13
31
|
context "basic `use`" do
|
|
14
32
|
it "should add items to the stack and make them callable" do
|
|
15
33
|
data = {}
|
|
16
34
|
proc = Proc.new { |env| env[:data] = true }
|
|
17
35
|
|
|
18
|
-
|
|
19
|
-
|
|
36
|
+
subject.use proc
|
|
37
|
+
subject.call(data)
|
|
20
38
|
|
|
21
39
|
data[:data].should == true
|
|
22
40
|
end
|
|
@@ -26,9 +44,9 @@ describe Vagrant::Action::Builder do
|
|
|
26
44
|
proc1 = Proc.new { |env| env[:one] = true }
|
|
27
45
|
proc2 = Proc.new { |env| env[:two] = true }
|
|
28
46
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
subject.use proc1
|
|
48
|
+
subject.use proc2
|
|
49
|
+
subject.call(data)
|
|
32
50
|
|
|
33
51
|
data[:one].should == true
|
|
34
52
|
data[:two].should == true
|
|
@@ -50,58 +68,64 @@ describe Vagrant::Action::Builder do
|
|
|
50
68
|
two.call(data)
|
|
51
69
|
data[:one].should == true
|
|
52
70
|
end
|
|
53
|
-
|
|
54
|
-
it "should be able to set additional variables when using" do
|
|
55
|
-
data = { }
|
|
56
|
-
proc1 = Proc.new { |env| env[:data] += 1 }
|
|
57
|
-
|
|
58
|
-
# Build the first builder
|
|
59
|
-
one = described_class.new
|
|
60
|
-
one.use proc1, :data => 5
|
|
61
|
-
one.call(data)
|
|
62
|
-
|
|
63
|
-
data[:data].should == 6
|
|
64
|
-
end
|
|
65
71
|
end
|
|
66
72
|
|
|
67
73
|
context "inserting" do
|
|
68
74
|
it "can insert at an index" do
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
75
|
+
subject.use appender_proc(1)
|
|
76
|
+
subject.insert(0, appender_proc(2))
|
|
77
|
+
subject.call(data)
|
|
72
78
|
|
|
73
79
|
data[:data].should == [2, 1]
|
|
74
80
|
end
|
|
75
81
|
|
|
82
|
+
it "can insert by name" do
|
|
83
|
+
# Create the proc then make sure it has a name
|
|
84
|
+
bar_proc = appender_proc(2)
|
|
85
|
+
def bar_proc.name; :bar; end
|
|
86
|
+
|
|
87
|
+
subject.use appender_proc(1)
|
|
88
|
+
subject.use bar_proc
|
|
89
|
+
subject.insert_before :bar, appender_proc(3)
|
|
90
|
+
subject.call(data)
|
|
91
|
+
|
|
92
|
+
data[:data].should == [1, 3, 2]
|
|
93
|
+
end
|
|
94
|
+
|
|
76
95
|
it "can insert next to a previous object" do
|
|
77
96
|
proc2 = appender_proc(2)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
subject.use appender_proc(1)
|
|
98
|
+
subject.use proc2
|
|
99
|
+
subject.insert(proc2, appender_proc(3))
|
|
100
|
+
subject.call(data)
|
|
82
101
|
|
|
83
102
|
data[:data].should == [1, 3, 2]
|
|
84
103
|
end
|
|
85
104
|
|
|
86
105
|
it "can insert before" do
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
106
|
+
subject.use appender_proc(1)
|
|
107
|
+
subject.insert_before 0, appender_proc(2)
|
|
108
|
+
subject.call(data)
|
|
90
109
|
|
|
91
110
|
data[:data].should == [2, 1]
|
|
92
111
|
end
|
|
93
112
|
|
|
94
113
|
it "can insert after" do
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
114
|
+
subject.use appender_proc(1)
|
|
115
|
+
subject.use appender_proc(3)
|
|
116
|
+
subject.insert_after 0, appender_proc(2)
|
|
117
|
+
subject.call(data)
|
|
99
118
|
|
|
100
119
|
data[:data].should == [1, 2, 3]
|
|
101
120
|
end
|
|
102
121
|
|
|
103
|
-
it "raises an exception if an invalid object given" do
|
|
104
|
-
expect {
|
|
122
|
+
it "raises an exception if an invalid object given for insert" do
|
|
123
|
+
expect { subject.insert "object", appender_proc(1) }.
|
|
124
|
+
to raise_error(RuntimeError)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it "raises an exception if an invalid object given for insert_after" do
|
|
128
|
+
expect { subject.insert_after "object", appender_proc(1) }.
|
|
105
129
|
to raise_error(RuntimeError)
|
|
106
130
|
end
|
|
107
131
|
end
|
|
@@ -111,9 +135,9 @@ describe Vagrant::Action::Builder do
|
|
|
111
135
|
proc1 = appender_proc(1)
|
|
112
136
|
proc2 = appender_proc(2)
|
|
113
137
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
138
|
+
subject.use proc1
|
|
139
|
+
subject.replace proc1, proc2
|
|
140
|
+
subject.call(data)
|
|
117
141
|
|
|
118
142
|
data[:data].should == [2]
|
|
119
143
|
end
|
|
@@ -122,9 +146,9 @@ describe Vagrant::Action::Builder do
|
|
|
122
146
|
proc1 = appender_proc(1)
|
|
123
147
|
proc2 = appender_proc(2)
|
|
124
148
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
149
|
+
subject.use proc1
|
|
150
|
+
subject.replace 0, proc2
|
|
151
|
+
subject.call(data)
|
|
128
152
|
|
|
129
153
|
data[:data].should == [2]
|
|
130
154
|
end
|
|
@@ -134,10 +158,10 @@ describe Vagrant::Action::Builder do
|
|
|
134
158
|
it "can delete by object" do
|
|
135
159
|
proc1 = appender_proc(1)
|
|
136
160
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
161
|
+
subject.use proc1
|
|
162
|
+
subject.use appender_proc(2)
|
|
163
|
+
subject.delete proc1
|
|
164
|
+
subject.call(data)
|
|
141
165
|
|
|
142
166
|
data[:data].should == [2]
|
|
143
167
|
end
|
|
@@ -145,12 +169,28 @@ describe Vagrant::Action::Builder do
|
|
|
145
169
|
it "can delete by index" do
|
|
146
170
|
proc1 = appender_proc(1)
|
|
147
171
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
172
|
+
subject.use proc1
|
|
173
|
+
subject.use appender_proc(2)
|
|
174
|
+
subject.delete 0
|
|
175
|
+
subject.call(data)
|
|
152
176
|
|
|
153
177
|
data[:data].should == [2]
|
|
154
178
|
end
|
|
155
179
|
end
|
|
180
|
+
|
|
181
|
+
describe "action hooks" do
|
|
182
|
+
it "applies them properly" do
|
|
183
|
+
hook = double("hook")
|
|
184
|
+
hook.stub(:apply) do |builder|
|
|
185
|
+
builder.use appender_proc(2)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
data[:action_hooks] = [hook]
|
|
189
|
+
|
|
190
|
+
subject.use appender_proc(1)
|
|
191
|
+
subject.call(data)
|
|
192
|
+
|
|
193
|
+
data[:data].should == [1, 2]
|
|
194
|
+
end
|
|
195
|
+
end
|
|
156
196
|
end
|