vagrant 0.8.10 → 0.9.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.
- data/CHANGELOG.md +77 -1
- data/Gemfile +0 -14
- data/LICENSE +1 -1
- data/bin/vagrant +47 -20
- data/config/default.rb +6 -14
- data/lib/vagrant.rb +132 -5
- data/lib/vagrant/action.rb +45 -123
- data/lib/vagrant/action/box/destroy.rb +7 -3
- data/lib/vagrant/action/box/download.rb +8 -8
- data/lib/vagrant/action/box/package.rb +2 -2
- data/lib/vagrant/action/box/unpackage.rb +13 -7
- data/lib/vagrant/action/box/verify.rb +5 -5
- data/lib/vagrant/action/builder.rb +23 -19
- data/lib/vagrant/action/builtin.rb +117 -79
- data/lib/vagrant/action/env/set.rb +7 -4
- data/lib/vagrant/action/environment.rb +3 -41
- data/lib/vagrant/action/general/package.rb +14 -29
- data/lib/vagrant/action/general/validate.rb +2 -2
- data/lib/vagrant/action/runner.rb +53 -0
- data/lib/vagrant/action/vm/boot.rb +9 -9
- data/lib/vagrant/action/vm/check_accessible.rb +2 -2
- data/lib/vagrant/action/vm/check_box.rb +10 -12
- data/lib/vagrant/action/vm/check_guest_additions.rb +8 -8
- data/lib/vagrant/action/vm/check_port_collisions.rb +85 -0
- data/lib/vagrant/action/vm/clean_machine_folder.rb +4 -4
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +3 -11
- data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
- data/lib/vagrant/action/vm/clear_shared_folders.rb +2 -11
- data/lib/vagrant/action/vm/customize.rb +19 -9
- data/lib/vagrant/action/vm/destroy.rb +4 -4
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +2 -12
- data/lib/vagrant/action/vm/discard_state.rb +4 -4
- data/lib/vagrant/action/vm/export.rb +13 -8
- data/lib/vagrant/action/vm/forward_ports.rb +55 -102
- data/lib/vagrant/action/vm/halt.rb +9 -6
- data/lib/vagrant/action/vm/host_name.rb +4 -4
- data/lib/vagrant/action/vm/import.rb +19 -10
- data/lib/vagrant/action/vm/match_mac_address.rb +4 -9
- data/lib/vagrant/action/vm/network.rb +300 -94
- data/lib/vagrant/action/vm/nfs.rb +41 -26
- data/lib/vagrant/action/vm/package.rb +1 -1
- data/lib/vagrant/action/vm/package_vagrantfile.rb +5 -2
- data/lib/vagrant/action/vm/provision.rb +42 -13
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +2 -2
- data/lib/vagrant/action/vm/{clear_nfs_exports.rb → prune_nfs_exports.rb} +7 -7
- data/lib/vagrant/action/vm/resume.rb +4 -4
- data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
- data/lib/vagrant/action/vm/share_folders.rb +63 -39
- data/lib/vagrant/action/vm/suspend.rb +4 -4
- data/lib/vagrant/action/warden.rb +13 -6
- data/lib/vagrant/box.rb +9 -55
- data/lib/vagrant/box_collection.rb +22 -17
- data/lib/vagrant/cli.rb +62 -47
- data/lib/vagrant/command.rb +18 -20
- data/lib/vagrant/command/base.rb +135 -90
- data/lib/vagrant/command/box.rb +46 -21
- data/lib/vagrant/command/box_add.rb +33 -0
- data/lib/vagrant/command/box_list.rb +25 -0
- data/lib/vagrant/command/box_remove.rb +23 -0
- data/lib/vagrant/command/box_repackage.rb +23 -0
- data/lib/vagrant/command/destroy.rb +16 -5
- data/lib/vagrant/command/halt.rb +25 -7
- data/lib/vagrant/command/init.rb +30 -7
- data/lib/vagrant/command/package.rb +49 -18
- data/lib/vagrant/command/provision.rb +22 -9
- data/lib/vagrant/command/reload.rb +18 -5
- data/lib/vagrant/command/resume.rb +18 -5
- data/lib/vagrant/command/ssh.rb +69 -31
- data/lib/vagrant/command/ssh_config.rb +37 -22
- data/lib/vagrant/command/status.rb +22 -20
- data/lib/vagrant/command/suspend.rb +18 -5
- data/lib/vagrant/command/up.rb +41 -8
- data/lib/vagrant/communication.rb +7 -0
- data/lib/vagrant/communication/base.rb +56 -0
- data/lib/vagrant/communication/ssh.rb +200 -0
- data/lib/vagrant/config.rb +29 -103
- data/lib/vagrant/config/base.rb +18 -26
- data/lib/vagrant/config/container.rb +37 -0
- data/lib/vagrant/config/error_recorder.rb +1 -1
- data/lib/vagrant/config/loader.rb +125 -0
- data/lib/vagrant/config/nfs.rb +1 -3
- data/lib/vagrant/config/package.rb +1 -3
- data/lib/vagrant/config/ssh.rb +31 -16
- data/lib/vagrant/config/top.rb +36 -25
- data/lib/vagrant/config/vagrant.rb +2 -5
- data/lib/vagrant/config/vm.rb +115 -56
- data/lib/vagrant/config/vm/provisioner.rb +16 -20
- data/lib/vagrant/config/vm/sub_vm.rb +1 -1
- data/lib/vagrant/data_store.rb +23 -15
- data/lib/vagrant/downloaders/base.rb +7 -5
- data/lib/vagrant/downloaders/file.rb +4 -4
- data/lib/vagrant/downloaders/http.rb +4 -5
- data/lib/vagrant/driver.rb +7 -0
- data/lib/vagrant/driver/virtualbox.rb +121 -0
- data/lib/vagrant/driver/virtualbox_4_0.rb +411 -0
- data/lib/vagrant/driver/virtualbox_4_1.rb +411 -0
- data/lib/vagrant/driver/virtualbox_base.rb +284 -0
- data/lib/vagrant/environment.rb +221 -240
- data/lib/vagrant/errors.rb +74 -25
- data/lib/vagrant/guest.rb +16 -0
- data/lib/vagrant/guest/arch.rb +48 -0
- data/lib/vagrant/{systems → guest}/base.rb +30 -18
- data/lib/vagrant/guest/debian.rb +61 -0
- data/lib/vagrant/{systems → guest}/freebsd.rb +11 -18
- data/lib/vagrant/guest/gentoo.rb +32 -0
- data/lib/vagrant/guest/linux.rb +78 -0
- data/lib/vagrant/{systems → guest}/linux/config.rb +2 -4
- data/lib/vagrant/guest/linux/error.rb +9 -0
- data/lib/vagrant/guest/redhat.rb +66 -0
- data/lib/vagrant/guest/solaris.rb +114 -0
- data/lib/vagrant/{systems → guest}/suse.rb +2 -2
- data/lib/vagrant/guest/ubuntu.rb +23 -0
- data/lib/vagrant/hosts.rb +23 -6
- data/lib/vagrant/hosts/arch.rb +7 -3
- data/lib/vagrant/hosts/base.rb +36 -46
- data/lib/vagrant/hosts/bsd.rb +53 -16
- data/lib/vagrant/hosts/fedora.rb +14 -0
- data/lib/vagrant/hosts/freebsd.rb +6 -36
- data/lib/vagrant/hosts/linux.rb +45 -20
- data/lib/vagrant/hosts/windows.rb +16 -0
- data/lib/vagrant/provisioners.rb +10 -7
- data/lib/vagrant/provisioners/base.rb +11 -34
- data/lib/vagrant/provisioners/chef.rb +30 -26
- data/lib/vagrant/provisioners/chef_client.rb +37 -23
- data/lib/vagrant/provisioners/chef_solo.rb +61 -16
- data/lib/vagrant/provisioners/puppet.rb +70 -38
- data/lib/vagrant/provisioners/puppet_server.rb +12 -13
- data/lib/vagrant/provisioners/shell.rb +24 -24
- data/lib/vagrant/registry.rb +49 -0
- data/lib/vagrant/ssh.rb +82 -153
- data/lib/vagrant/ui.rb +118 -50
- data/lib/vagrant/util/busy.rb +1 -1
- data/lib/vagrant/util/file_mode.rb +12 -0
- data/lib/vagrant/util/network_ip.rb +28 -0
- data/lib/vagrant/util/platform.rb +1 -0
- data/lib/vagrant/util/subprocess.rb +227 -0
- data/lib/vagrant/version.rb +1 -1
- data/lib/vagrant/vm.rb +111 -97
- data/tasks/acceptance.rake +3 -3
- data/tasks/test.rake +7 -2
- data/templates/commands/init/Vagrantfile.erb +11 -4
- data/templates/{ssh_config.erb → commands/ssh_config/config.erb} +0 -0
- data/templates/guests/arch/network_dhcp.erb +7 -0
- data/templates/guests/arch/network_static.erb +7 -0
- data/templates/guests/debian/network_dhcp.erb +6 -0
- data/templates/guests/debian/network_static.erb +7 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +4 -0
- data/templates/guests/redhat/network_dhcp.erb +6 -0
- data/templates/guests/redhat/network_static.erb +7 -0
- data/templates/locales/en.yml +241 -122
- data/templates/{chef_server_client.erb → provisioners/chef_client/client.erb} +0 -0
- data/templates/{chef_solo_solo.erb → provisioners/chef_solo/solo.erb} +0 -0
- data/test/acceptance/base.rb +10 -10
- data/test/acceptance/box_test.rb +28 -6
- data/test/acceptance/destroy_test.rb +1 -1
- data/test/acceptance/halt_test.rb +4 -4
- data/test/acceptance/init_test.rb +3 -3
- data/test/acceptance/networking/host_only_test.rb +37 -0
- data/test/acceptance/networking/port_forward_test.rb +125 -0
- data/test/acceptance/package_test.rb +46 -0
- data/test/acceptance/provisioning/basic_test.rb +61 -0
- data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
- data/test/acceptance/provisioning/shell_test.rb +53 -0
- data/test/acceptance/resume_test.rb +1 -1
- data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
- data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
- data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/ssh_test.rb +7 -2
- data/test/acceptance/support/config.rb +1 -1
- data/test/acceptance/support/isolated_environment.rb +41 -150
- data/test/acceptance/support/matchers/match_output.rb +1 -1
- data/test/acceptance/support/matchers/succeed.rb +14 -0
- data/test/acceptance/support/network_tests.rb +29 -0
- data/test/acceptance/support/output.rb +9 -1
- data/test/acceptance/support/shared/base_context.rb +16 -9
- data/test/acceptance/support/shared/command_examples.rb +4 -4
- data/test/acceptance/suspend_test.rb +1 -1
- data/test/acceptance/up_basic_test.rb +26 -7
- data/test/acceptance/up_with_box_url.rb +1 -1
- data/test/acceptance/vagrant_test.rb +1 -1
- data/test/acceptance/version_test.rb +0 -5
- data/test/support/isolated_environment.rb +46 -0
- data/test/{acceptance/support → support}/tempdir.rb +0 -0
- data/test/unit/base.rb +21 -0
- data/test/unit/support/isolated_environment.rb +39 -0
- data/test/unit/support/shared/base_context.rb +30 -0
- data/test/unit/vagrant/action/builder_test.rb +126 -177
- data/test/unit/vagrant/action/environment_test.rb +10 -21
- data/test/unit/vagrant/action/runner_test.rb +65 -0
- data/test/unit/vagrant/action/warden_test.rb +64 -97
- data/test/unit/vagrant/box_collection_test.rb +44 -33
- data/test/unit/vagrant/box_test.rb +25 -65
- data/test/unit/vagrant/command/base_test.rb +141 -14
- data/test/unit/vagrant/config/base_test.rb +16 -43
- data/test/unit/vagrant/config/loader_test.rb +79 -0
- data/test/unit/vagrant/config/top_test.rb +69 -0
- data/test/unit/vagrant/config/vm_test.rb +62 -47
- data/test/unit/vagrant/config_test.rb +16 -151
- data/test/unit/vagrant/data_store_test.rb +43 -61
- data/test/unit/vagrant/downloaders/base_test.rb +12 -22
- data/test/unit/vagrant/downloaders/file_test.rb +58 -31
- data/test/unit/vagrant/downloaders/http_test.rb +12 -86
- data/test/unit/vagrant/environment_test.rb +107 -536
- data/test/unit/vagrant/hosts_test.rb +36 -0
- data/test/unit/vagrant/registry_test.rb +56 -0
- data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
- data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +23 -24
- data/test/unit/vagrant/util/network_ip_test.rb +17 -0
- data/test/unit/vagrant/util/retryable_test.rb +90 -34
- data/test/unit/vagrant_test.rb +27 -0
- data/test/{unit → unit_legacy}/locales/en.yml +0 -0
- data/test/{unit → unit_legacy}/test_helper.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/box/destroy_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/box/download_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/box/package_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/box/unpackage_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/box/verify_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/env/set_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/general/package_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/general/validate_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/boot_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/check_accessible_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/check_box_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/check_guest_additions_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/clean_machine_folder_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/clear_forwarded_ports_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/clear_nfs_exports_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/clear_shared_folders_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/customize_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/destroy_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/discard_state_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/export_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/forward_ports_helpers_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/forward_ports_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/halt_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/host_name_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/import_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/match_mac_address_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/modify_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/network_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/nfs_helpers_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/nfs_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/package_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/package_vagrantfile_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/provision_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/provisioner_cleanup_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/resume_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/share_folders_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action/vm/suspend_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/action_test.rb +0 -0
- data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
- data/test/unit_legacy/vagrant/box_test.rb +74 -0
- data/test/{unit → unit_legacy}/vagrant/cli_test.rb +0 -0
- data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
- data/test/{unit → unit_legacy}/vagrant/command/group_base_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/command/helpers_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/command/init_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/command/package_test.rb +0 -0
- data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
- data/test/{unit → unit_legacy}/vagrant/config/error_recorder_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/config/ssh_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/config/vagrant_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/config/vm/provisioner_test.rb +0 -0
- data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
- data/test/unit_legacy/vagrant/config_test.rb +148 -0
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
- data/test/unit_legacy/vagrant/environment_test.rb +539 -0
- data/test/{unit → unit_legacy}/vagrant/errors_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/hosts/base_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/hosts/bsd_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/hosts/linux_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/plugin_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/base_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/chef_client_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/chef_solo_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/chef_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/puppet_server_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/puppet_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/provisioners/shell_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/ssh/session_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/ssh_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/systems/base_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/systems/linux_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/util/busy_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/util/counter_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/util/platform_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/util/stacked_proc_runner_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/util/template_renderer_test.rb +0 -0
- data/test/{unit → unit_legacy}/vagrant/vm_test.rb +0 -0
- data/vagrant.gemspec +7 -9
- metadata +214 -216
- data/keys/vagrant.ppk +0 -26
- data/lib/vagrant/action/box.rb +0 -11
- data/lib/vagrant/action/env.rb +0 -7
- data/lib/vagrant/action/general.rb +0 -8
- data/lib/vagrant/action/vm.rb +0 -34
- data/lib/vagrant/action/vm/forward_ports_helpers.rb +0 -28
- data/lib/vagrant/action/vm/modify.rb +0 -37
- data/lib/vagrant/action/vm/nfs_helpers.rb +0 -11
- data/lib/vagrant/command/group_base.rb +0 -107
- data/lib/vagrant/command/helpers.rb +0 -33
- data/lib/vagrant/command/named_base.rb +0 -14
- data/lib/vagrant/command/upgrade_to_060.rb +0 -45
- data/lib/vagrant/command/version.rb +0 -13
- data/lib/vagrant/ssh/session.rb +0 -136
- data/lib/vagrant/systems.rb +0 -13
- data/lib/vagrant/systems/arch.rb +0 -34
- data/lib/vagrant/systems/debian.rb +0 -36
- data/lib/vagrant/systems/gentoo.rb +0 -27
- data/lib/vagrant/systems/linux.rb +0 -82
- data/lib/vagrant/systems/linux/error.rb +0 -9
- data/lib/vagrant/systems/redhat.rb +0 -48
- data/lib/vagrant/systems/solaris.rb +0 -113
- data/lib/vagrant/systems/ubuntu.rb +0 -17
- data/templates/network_entry_arch.erb +0 -9
- data/templates/network_entry_debian.erb +0 -8
- data/templates/network_entry_gentoo.erb +0 -5
- data/templates/network_entry_redhat.erb +0 -9
- data/test/unit/vagrant/ui_test.rb +0 -29
data/lib/vagrant/systems.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
# These can't be autoloaded because they have to register functionality
|
2
|
-
# with Vagrant core.
|
3
|
-
require 'vagrant/systems/base'
|
4
|
-
require 'vagrant/systems/freebsd'
|
5
|
-
require 'vagrant/systems/linux'
|
6
|
-
require 'vagrant/systems/solaris'
|
7
|
-
|
8
|
-
require 'vagrant/systems/debian'
|
9
|
-
require 'vagrant/systems/gentoo'
|
10
|
-
require 'vagrant/systems/redhat'
|
11
|
-
require 'vagrant/systems/suse'
|
12
|
-
require 'vagrant/systems/ubuntu'
|
13
|
-
require 'vagrant/systems/arch'
|
data/lib/vagrant/systems/arch.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module Vagrant
|
2
|
-
module Systems
|
3
|
-
class Arch < Linux
|
4
|
-
def change_host_name(name)
|
5
|
-
vm.ssh.execute do |ssh|
|
6
|
-
# Only do this if the hostname is not already set
|
7
|
-
if !ssh.test?("sudo hostname | grep '#{name}'")
|
8
|
-
ssh.exec!("sudo sed -i 's/\\(HOSTNAME=\\).*/\\1#{name}/' /etc/rc.conf")
|
9
|
-
ssh.exec!("sudo hostname #{name}")
|
10
|
-
ssh.exec!("sudo sed -i 's@^\\(127[.]0[.]0[.]1[[:space:]]\\+\\)@\\1#{name} @' /etc/hosts")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def prepare_host_only_network(net_options=nil)
|
16
|
-
vm.ssh.execute do |ssh|
|
17
|
-
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/rc.conf > /tmp/vagrant-network-interfaces")
|
18
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/rc.conf'")
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def enable_host_only_network(net_options)
|
23
|
-
entry = TemplateRenderer.render('network_entry_arch', :net_options => net_options)
|
24
|
-
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
25
|
-
|
26
|
-
vm.ssh.execute do |ssh|
|
27
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/rc.conf'")
|
28
|
-
ssh.exec!("sudo /etc/rc.d/network restart")
|
29
|
-
ssh.exec!("sudo su -c 'dhcpcd -k eth0 && dhcpcd eth0 & sleep 3'")
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Vagrant
|
2
|
-
module Systems
|
3
|
-
class Debian < Linux
|
4
|
-
def prepare_host_only_network(net_options=nil)
|
5
|
-
# Remove any previous host only network additions to the
|
6
|
-
# interface file.
|
7
|
-
vm.ssh.execute do |ssh|
|
8
|
-
# Clear out any previous entries
|
9
|
-
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces")
|
10
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/network/interfaces'")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def enable_host_only_network(net_options)
|
15
|
-
entry = TemplateRenderer.render('network_entry_debian', :net_options => net_options)
|
16
|
-
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
17
|
-
|
18
|
-
vm.ssh.execute do |ssh|
|
19
|
-
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null")
|
20
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/network/interfaces'")
|
21
|
-
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def change_host_name(name)
|
26
|
-
vm.ssh.execute do |ssh|
|
27
|
-
if !ssh.test?("sudo hostname | grep '#{name}'")
|
28
|
-
ssh.exec!("sudo sed -i 's@^\\(127[.]0[.]1[.]1[[:space:]]\\+\\)@\\1#{name} #{name.split('.')[0]} @' /etc/hosts")
|
29
|
-
ssh.exec!("sudo sed -i 's/.*$/#{name}/' /etc/hostname")
|
30
|
-
ssh.exec!("sudo hostname -F /etc/hostname")
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Vagrant
|
2
|
-
module Systems
|
3
|
-
class Gentoo < Linux
|
4
|
-
def prepare_host_only_network(net_options=nil)
|
5
|
-
# Remove any previous host only network additions to the
|
6
|
-
# interface file.
|
7
|
-
vm.ssh.execute do |ssh|
|
8
|
-
# Clear out any previous entries
|
9
|
-
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/conf.d/net > /tmp/vagrant-network-interfaces")
|
10
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/conf.d/net'")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def enable_host_only_network(net_options)
|
15
|
-
entry = TemplateRenderer.render('network_entry_gentoo', :net_options => net_options)
|
16
|
-
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
17
|
-
|
18
|
-
vm.ssh.execute do |ssh|
|
19
|
-
ssh.exec!("sudo ln -fs /etc/init.d/net.lo /etc/init.d/net.eth#{net_options[:adapter]}")
|
20
|
-
ssh.exec!("sudo /etc/init.d/net.eth#{net_options[:adapter]} stop 2> /dev/null")
|
21
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/conf.d/net'")
|
22
|
-
ssh.exec!("sudo /etc/init.d/net.eth#{net_options[:adapter]} start")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
require 'vagrant/systems/linux/error'
|
2
|
-
require 'vagrant/systems/linux/config'
|
3
|
-
|
4
|
-
module Vagrant
|
5
|
-
module Systems
|
6
|
-
class Linux < Base
|
7
|
-
def distro_dispatch
|
8
|
-
vm.ssh.execute do |ssh|
|
9
|
-
if ssh.test?("cat /etc/debian_version")
|
10
|
-
return :debian if ssh.test?("cat /proc/version | grep 'Debian'")
|
11
|
-
return :ubuntu if ssh.test?("cat /proc/version | grep 'Ubuntu'")
|
12
|
-
end
|
13
|
-
|
14
|
-
return :gentoo if ssh.test?("cat /etc/gentoo-release")
|
15
|
-
return :redhat if ssh.test?("cat /etc/redhat-release")
|
16
|
-
return :suse if ssh.test?("cat /etc/SuSE-release")
|
17
|
-
return :arch if ssh.test?("cat /etc/arch-release")
|
18
|
-
end
|
19
|
-
|
20
|
-
# Can't detect the distro, assume vanilla linux
|
21
|
-
nil
|
22
|
-
end
|
23
|
-
|
24
|
-
def halt
|
25
|
-
vm.env.ui.info I18n.t("vagrant.systems.linux.attempting_halt")
|
26
|
-
vm.ssh.execute do |ssh|
|
27
|
-
ssh.exec!("sudo halt")
|
28
|
-
end
|
29
|
-
|
30
|
-
# Wait until the VM's state is actually powered off. If this doesn't
|
31
|
-
# occur within a reasonable amount of time (15 seconds by default),
|
32
|
-
# then simply return and allow Vagrant to kill the machine.
|
33
|
-
count = 0
|
34
|
-
while vm.vm.state != :powered_off
|
35
|
-
count += 1
|
36
|
-
|
37
|
-
return if count >= vm.env.config.linux.halt_timeout
|
38
|
-
sleep vm.env.config.linux.halt_check_interval
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def mount_shared_folder(ssh, name, guestpath, owner, group)
|
43
|
-
ssh.exec!("sudo mkdir -p #{guestpath}")
|
44
|
-
mount_folder(ssh, name, guestpath, owner, group)
|
45
|
-
ssh.exec!("sudo chown `id -u #{owner}`:`id -g #{group}` #{guestpath}")
|
46
|
-
end
|
47
|
-
|
48
|
-
def mount_nfs(ip, folders)
|
49
|
-
# TODO: Maybe check for nfs support on the guest, since its often
|
50
|
-
# not installed by default
|
51
|
-
folders.each do |name, opts|
|
52
|
-
vm.ssh.execute do |ssh|
|
53
|
-
ssh.exec!("sudo mkdir -p #{opts[:guestpath]}")
|
54
|
-
ssh.exec!("sudo mount #{ip}:'#{opts[:hostpath]}' #{opts[:guestpath]}", :_error_class => LinuxError, :_key => :mount_nfs_fail)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
#-------------------------------------------------------------------
|
60
|
-
# "Private" methods which assist above methods
|
61
|
-
#-------------------------------------------------------------------
|
62
|
-
def mount_folder(ssh, name, guestpath, owner, group, sleeptime=5)
|
63
|
-
# Determine the permission string to attach to the mount command
|
64
|
-
options = "-o uid=`id -u #{owner}`,gid=`id -g #{group}`"
|
65
|
-
|
66
|
-
attempts = 0
|
67
|
-
while true
|
68
|
-
result = ssh.exec!("sudo mount -t vboxsf #{options} #{name} #{guestpath}") do |ch, type, data|
|
69
|
-
# net/ssh returns the value in ch[:result] (based on looking at source)
|
70
|
-
ch[:result] = !!(type == :stderr && data =~ /No such device/i)
|
71
|
-
end
|
72
|
-
|
73
|
-
break unless result
|
74
|
-
|
75
|
-
attempts += 1
|
76
|
-
raise LinuxError, :mount_fail if attempts >= 10
|
77
|
-
sleep sleeptime
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Vagrant
|
2
|
-
module Systems
|
3
|
-
class Redhat < Linux
|
4
|
-
def prepare_host_only_network(net_options)
|
5
|
-
# Remove any previous host only network additions to the
|
6
|
-
# interface file.
|
7
|
-
vm.ssh.execute do |ssh|
|
8
|
-
# Clear out any previous entries
|
9
|
-
ssh.exec!("sudo touch #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}")
|
10
|
-
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]} > /tmp/vagrant-ifcfg-eth#{net_options[:adapter]}")
|
11
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-ifcfg-eth#{net_options[:adapter]} > #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}'")
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def enable_host_only_network(net_options)
|
16
|
-
entry = TemplateRenderer.render('network_entry_redhat', :net_options => net_options)
|
17
|
-
|
18
|
-
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
19
|
-
|
20
|
-
vm.ssh.execute do |ssh|
|
21
|
-
interface_up = ssh.test?("/sbin/ifconfig eth#{net_options[:adapter]} | grep 'inet addr:'")
|
22
|
-
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null") if interface_up
|
23
|
-
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}'")
|
24
|
-
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# The path to the directory with the network configuration scripts.
|
29
|
-
# This is pulled out into its own directory since there are other
|
30
|
-
# operationg systems (SuSE) which behave similarly but with a different
|
31
|
-
# path to the network scripts.
|
32
|
-
def network_scripts_dir
|
33
|
-
'/etc/sysconfig/network-scripts/'
|
34
|
-
end
|
35
|
-
|
36
|
-
def change_host_name(name)
|
37
|
-
vm.ssh.execute do |ssh|
|
38
|
-
# Only do this if the hostname is not already set
|
39
|
-
if !ssh.test?("sudo hostname | grep '#{name}'")
|
40
|
-
ssh.exec!("sudo sed -i 's/\\(HOSTNAME=\\).*/\\1#{name}/' /etc/sysconfig/network")
|
41
|
-
ssh.exec!("sudo hostname #{name}")
|
42
|
-
ssh.exec!("sudo sed -i 's@^\\(127[.]0[.]0[.]1[[:space:]]\\+\\)@\\1#{name} #{name.split('.')[0]} @' /etc/hosts")
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
module Vagrant
|
2
|
-
module Systems
|
3
|
-
# A general Vagrant system implementation for "solaris".
|
4
|
-
#
|
5
|
-
# Contributed by Blake Irvin <b.irvin@modcloth.com>
|
6
|
-
class Solaris < Base
|
7
|
-
# A custom config class which will be made accessible via `config.solaris`
|
8
|
-
# This is not necessary for all system implementers, of course. However,
|
9
|
-
# generally, Vagrant tries to make almost every aspect of its execution
|
10
|
-
# configurable, and this assists that goal.
|
11
|
-
class SolarisConfig < Vagrant::Config::Base
|
12
|
-
configures :solaris
|
13
|
-
|
14
|
-
attr_accessor :halt_timeout
|
15
|
-
attr_accessor :halt_check_interval
|
16
|
-
# This sets the command to use to execute items as a superuser. sudo is default
|
17
|
-
attr_accessor :suexec_cmd
|
18
|
-
attr_accessor :device
|
19
|
-
|
20
|
-
def initialize
|
21
|
-
@halt_timeout = 30
|
22
|
-
@halt_check_interval = 1
|
23
|
-
@suexec_cmd = 'sudo'
|
24
|
-
@device = "e1000g"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Here for whenever it may be used.
|
29
|
-
class SolarisError < Errors::VagrantError
|
30
|
-
error_namespace("vagrant.systems.solaris")
|
31
|
-
end
|
32
|
-
|
33
|
-
def prepare_host_only_network(net_options=nil)
|
34
|
-
end
|
35
|
-
|
36
|
-
def enable_host_only_network(net_options)
|
37
|
-
device = "#{vm.env.config.solaris.device}#{net_options[:adapter]}"
|
38
|
-
su_cmd = vm.env.config.solaris.suexec_cmd
|
39
|
-
ifconfig_cmd = "#{su_cmd} /sbin/ifconfig #{device}"
|
40
|
-
vm.ssh.execute do |ssh|
|
41
|
-
ssh.exec!("#{ifconfig_cmd} plumb")
|
42
|
-
ssh.exec!("#{ifconfig_cmd} inet #{net_options[:ip]} netmask #{net_options[:netmask]}")
|
43
|
-
ssh.exec!("#{ifconfig_cmd} up")
|
44
|
-
ssh.exec!("#{su_cmd} sh -c \"echo '#{net_options[:ip]}' > /etc/hostname.#{device}\"")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def change_host_name(name)
|
49
|
-
su_cmd = vm.env.config.solaris.suexec_cmd
|
50
|
-
vm.ssh.execute do |ssh|
|
51
|
-
# Only do this if the hostname is not already set
|
52
|
-
if !ssh.test?("#{su_cmd} hostname | grep '#{name}'")
|
53
|
-
ssh.exec!("#{su_cmd} sh -c \"echo '#{name}' > /etc/nodename\"")
|
54
|
-
ssh.exec!("#{su_cmd} uname -S #{name}")
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
# There should be an exception raised if the line
|
61
|
-
#
|
62
|
-
# vagrant::::profiles=Primary Administrator
|
63
|
-
#
|
64
|
-
# does not exist in /etc/user_attr. TODO
|
65
|
-
def halt
|
66
|
-
vm.env.ui.info I18n.t("vagrant.systems.solaris.attempting_halt")
|
67
|
-
vm.ssh.execute do |ssh|
|
68
|
-
# Wait until the VM's state is actually powered off. If this doesn't
|
69
|
-
# occur within a reasonable amount of time (15 seconds by default),
|
70
|
-
# then simply return and allow Vagrant to kill the machine.
|
71
|
-
count = 0
|
72
|
-
last_error = nil
|
73
|
-
while vm.vm.state != :powered_off
|
74
|
-
begin
|
75
|
-
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} /usr/sbin/poweroff")
|
76
|
-
rescue IOError => e
|
77
|
-
# Save the last error; if it's not shutdown in a reasonable amount
|
78
|
-
# of attempts we will re-raise the error so it's not hidden for
|
79
|
-
# all time
|
80
|
-
last_error = e
|
81
|
-
end
|
82
|
-
|
83
|
-
count += 1
|
84
|
-
if count >= vm.env.config.solaris.halt_timeout
|
85
|
-
# Check for last error and re-raise it
|
86
|
-
if last_error != nil
|
87
|
-
raise last_error
|
88
|
-
else
|
89
|
-
# Otherwise, just return
|
90
|
-
return
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
# Still opportunities remaining; sleep and loop
|
95
|
-
sleep vm.env.config.solaris.halt_check_interval
|
96
|
-
end # while
|
97
|
-
end # do
|
98
|
-
end
|
99
|
-
|
100
|
-
def mount_shared_folder(ssh, name, guestpath, owner, group)
|
101
|
-
# Create the shared folder
|
102
|
-
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} mkdir -p #{guestpath}")
|
103
|
-
|
104
|
-
# Mount the folder with the proper owner/group
|
105
|
-
options = "-o uid=`id -u #{owner}`,gid=`id -g #{group}`"
|
106
|
-
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} /sbin/mount -F vboxfs #{options} #{name} #{guestpath}")
|
107
|
-
|
108
|
-
# chown the folder to the proper owner/group
|
109
|
-
ssh.exec!("#{vm.env.config.solaris.suexec_cmd} chown `id -u #{owner}`:`id -g #{group}` #{guestpath}")
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'vagrant/systems/debian'
|
2
|
-
|
3
|
-
module Vagrant
|
4
|
-
module Systems
|
5
|
-
class Ubuntu < Debian
|
6
|
-
def change_host_name(name)
|
7
|
-
vm.ssh.execute do |ssh|
|
8
|
-
if !ssh.test?("sudo hostname | grep '#{name}'")
|
9
|
-
ssh.exec!("sudo sed -i 's/.*$/#{name}/' /etc/hostname")
|
10
|
-
ssh.exec!("sudo sed -i 's@^\\(127[.]0[.]1[.]1[[:space:]]\\+\\)@\\1#{name} #{name.split('.')[0]} @' /etc/hosts")
|
11
|
-
ssh.exec!("sudo service hostname start")
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
|
2
|
-
#VAGRANT-BEGIN
|
3
|
-
# The contents below are automatically generated by Vagrant.
|
4
|
-
# Please do not modify any of these contents.
|
5
|
-
interface=eth<%= net_options[:adapter] %>
|
6
|
-
address=<%= net_options[:ip]%>
|
7
|
-
netmask=<%= net_options[:netmask] %>
|
8
|
-
gateway=
|
9
|
-
#VAGRANT-END
|
@@ -1,8 +0,0 @@
|
|
1
|
-
#VAGRANT-BEGIN
|
2
|
-
# The contents below are automatically generated by Vagrant.
|
3
|
-
# Please do not modify any of these contents.
|
4
|
-
auto eth<%= net_options[:adapter] %>
|
5
|
-
iface eth<%= net_options[:adapter] %> inet static
|
6
|
-
address <%= net_options[:ip] %>
|
7
|
-
netmask <%= net_options[:netmask] %>
|
8
|
-
#VAGRANT-END
|
@@ -1,9 +0,0 @@
|
|
1
|
-
#VAGRANT-BEGIN
|
2
|
-
# The contents below are automatically generated by Vagrant.
|
3
|
-
# Please do not modify any of these contents.
|
4
|
-
BOOTPROTO=static
|
5
|
-
DHCPCLASS=
|
6
|
-
IPADDR=<%= net_options[:ip] %>
|
7
|
-
NETMASK=<%= net_options[:netmask] %>
|
8
|
-
DEVICE=eth<%= net_options[:adapter] %>
|
9
|
-
#VAGRANT-END
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
|
3
|
-
class ShellUITest < Test::Unit::TestCase
|
4
|
-
setup do
|
5
|
-
@klass = Vagrant::UI::Shell
|
6
|
-
@shell = mock("shell")
|
7
|
-
@instance = @klass.new(vagrant_env, @shell)
|
8
|
-
end
|
9
|
-
|
10
|
-
context "prefixing with resource" do
|
11
|
-
should "prefix message with environment resource" do
|
12
|
-
@shell.expects(:say).with() do |message, color|
|
13
|
-
assert message =~ /\[#{@instance.env.resource}\]/
|
14
|
-
true
|
15
|
-
end
|
16
|
-
|
17
|
-
@instance.info("vagrant.errors.test_key")
|
18
|
-
end
|
19
|
-
|
20
|
-
should "not prefix the message if given false" do
|
21
|
-
@shell.expects(:say).with() do |message, color|
|
22
|
-
assert message !~ /\[#{@instance.env.resource}\]/
|
23
|
-
true
|
24
|
-
end
|
25
|
-
|
26
|
-
@instance.info("vagrant.errors.test_key", :prefix => false)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|