vagrantup 0.5.4 → 0.6.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/.gitignore +1 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +56 -0
- data/Gemfile +14 -3
- data/Gemfile.lock +38 -11
- data/README.md +1 -1
- data/bin/vagrant +20 -5
- data/config/default.rb +6 -8
- data/lib/vagrant.rb +40 -13
- data/lib/vagrant/action.rb +56 -16
- data/lib/vagrant/action/box/destroy.rb +3 -1
- data/lib/vagrant/action/box/download.rb +8 -13
- data/lib/vagrant/action/box/unpackage.rb +8 -11
- data/lib/vagrant/action/box/verify.rb +3 -3
- data/lib/vagrant/action/builder.rb +3 -30
- data/lib/vagrant/action/builtin.rb +6 -1
- data/lib/vagrant/action/environment.rb +14 -62
- data/lib/vagrant/action/general/package.rb +29 -22
- data/lib/vagrant/action/vm/boot.rb +5 -12
- data/lib/vagrant/action/vm/check_box.rb +4 -4
- data/lib/vagrant/action/vm/check_guest_additions.rb +4 -6
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +2 -2
- data/lib/vagrant/action/vm/clear_nfs_exports.rb +1 -1
- data/lib/vagrant/action/vm/clear_shared_folders.rb +1 -1
- data/lib/vagrant/action/vm/customize.rb +1 -1
- data/lib/vagrant/action/vm/destroy.rb +1 -2
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +1 -1
- data/lib/vagrant/action/vm/disable_networks.rb +11 -9
- data/lib/vagrant/action/vm/discard_state.rb +2 -2
- data/lib/vagrant/action/vm/export.rb +10 -11
- data/lib/vagrant/action/vm/forward_ports.rb +21 -9
- data/lib/vagrant/action/vm/halt.rb +3 -8
- data/lib/vagrant/action/vm/import.rb +16 -14
- data/lib/vagrant/action/vm/match_mac_address.rb +1 -1
- data/lib/vagrant/action/vm/network.rb +9 -16
- data/lib/vagrant/action/vm/nfs.rb +14 -18
- data/lib/vagrant/action/vm/provision.rb +5 -5
- data/lib/vagrant/action/vm/resume.rb +1 -1
- data/lib/vagrant/action/vm/share_folders.rb +6 -44
- data/lib/vagrant/action/vm/suspend.rb +1 -1
- data/lib/vagrant/action/warden.rb +74 -0
- data/lib/vagrant/box.rb +18 -82
- data/lib/vagrant/box_collection.rb +47 -0
- data/lib/vagrant/cli.rb +55 -0
- data/lib/vagrant/command/base.rb +106 -0
- data/lib/vagrant/command/box.rb +33 -0
- data/lib/vagrant/command/destroy.rb +17 -0
- data/lib/vagrant/command/group_base.rb +99 -0
- data/lib/vagrant/command/halt.rb +18 -0
- data/lib/vagrant/command/helpers.rb +33 -0
- data/lib/vagrant/command/init.rb +14 -0
- data/lib/vagrant/command/named_base.rb +14 -0
- data/lib/vagrant/command/package.rb +41 -0
- data/lib/vagrant/command/provision.rb +17 -0
- data/lib/vagrant/command/reload.rb +17 -0
- data/lib/vagrant/command/resume.rb +17 -0
- data/lib/vagrant/command/ssh.rb +41 -0
- data/lib/vagrant/command/ssh_config.rb +21 -0
- data/lib/vagrant/command/status.rb +23 -0
- data/lib/vagrant/command/suspend.rb +17 -0
- data/lib/vagrant/command/up.rb +20 -0
- data/lib/vagrant/command/upgrade_to_060.rb +45 -0
- data/lib/vagrant/command/version.rb +13 -0
- data/lib/vagrant/config.rb +107 -189
- data/lib/vagrant/config/base.rb +67 -0
- data/lib/vagrant/config/error_recorder.rb +19 -0
- data/lib/vagrant/config/nfs.rb +10 -0
- data/lib/vagrant/config/package.rb +9 -0
- data/lib/vagrant/config/ssh.rb +28 -0
- data/lib/vagrant/config/vagrant.rb +21 -0
- data/lib/vagrant/config/vm.rb +111 -0
- data/lib/vagrant/data_store.rb +68 -0
- data/lib/vagrant/downloaders/file.rb +3 -3
- data/lib/vagrant/downloaders/http.rb +5 -5
- data/lib/vagrant/environment.rb +246 -243
- data/lib/vagrant/errors.rb +306 -0
- data/lib/vagrant/hosts/base.rb +1 -1
- data/lib/vagrant/hosts/bsd.rb +3 -9
- data/lib/vagrant/hosts/linux.rb +3 -9
- data/lib/vagrant/plugin.rb +50 -0
- data/lib/vagrant/provisioners/base.rb +0 -6
- data/lib/vagrant/provisioners/chef.rb +63 -58
- data/lib/vagrant/provisioners/chef_server.rb +9 -11
- data/lib/vagrant/provisioners/chef_solo.rb +2 -2
- data/lib/vagrant/ssh.rb +34 -37
- data/lib/vagrant/systems/base.rb +0 -13
- data/lib/vagrant/systems/linux.rb +10 -33
- data/lib/vagrant/systems/solaris.rb +59 -0
- data/lib/vagrant/test_helpers.rb +109 -0
- data/lib/vagrant/ui.rb +65 -0
- data/lib/vagrant/util.rb +9 -19
- data/lib/vagrant/util/glob_loader.rb +19 -17
- data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
- data/lib/vagrant/util/plain_logger.rb +2 -0
- data/lib/vagrant/util/platform.rb +2 -0
- data/lib/vagrant/util/resource_logger.rb +5 -70
- data/lib/vagrant/util/retryable.rb +25 -0
- data/lib/vagrant/util/template_renderer.rb +1 -1
- data/lib/vagrant/version.rb +1 -1
- data/lib/vagrant/vm.rb +27 -13
- data/templates/commands/init/Vagrantfile.erb +13 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/locales/en.yml +402 -0
- data/templates/package_Vagrantfile.erb +1 -1
- data/test/locales/en.yml +8 -0
- data/test/test_helper.rb +19 -103
- data/test/vagrant/action/box/destroy_test.rb +7 -19
- data/test/vagrant/action/box/download_test.rb +9 -25
- data/test/vagrant/action/box/package_test.rb +2 -2
- data/test/vagrant/action/box/unpackage_test.rb +8 -34
- data/test/vagrant/action/box/verify_test.rb +10 -19
- data/test/vagrant/action/builder_test.rb +0 -15
- data/test/vagrant/action/env/set_test.rb +1 -1
- data/test/vagrant/action/environment_test.rb +8 -26
- data/test/vagrant/action/general/package_test.rb +53 -53
- data/test/vagrant/action/vm/boot_test.rb +5 -22
- data/test/vagrant/action/vm/check_box_test.rb +35 -25
- data/test/vagrant/action/vm/clean_machine_folder_test.rb +1 -1
- data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +1 -1
- data/test/vagrant/action/vm/clear_nfs_exports_test.rb +1 -1
- data/test/vagrant/action/vm/clear_shared_folders_test.rb +1 -1
- data/test/vagrant/action/vm/customize_test.rb +2 -1
- data/test/vagrant/action/vm/destroy_test.rb +1 -2
- data/test/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +1 -1
- data/test/vagrant/action/vm/disable_networks_test.rb +10 -1
- data/test/vagrant/action/vm/discard_state_test.rb +10 -1
- data/test/vagrant/action/vm/export_test.rb +9 -37
- data/test/vagrant/action/vm/forward_ports_helpers_test.rb +2 -2
- data/test/vagrant/action/vm/forward_ports_test.rb +19 -16
- data/test/vagrant/action/vm/halt_test.rb +11 -1
- data/test/vagrant/action/vm/import_test.rb +37 -21
- data/test/vagrant/action/vm/match_mac_address_test.rb +1 -1
- data/test/vagrant/action/vm/network_test.rb +8 -7
- data/test/vagrant/action/vm/nfs_helpers_test.rb +6 -3
- data/test/vagrant/action/vm/nfs_test.rb +20 -45
- data/test/vagrant/action/vm/package_test.rb +1 -1
- data/test/vagrant/action/vm/package_vagrantfile_test.rb +1 -1
- data/test/vagrant/action/vm/provision_test.rb +10 -17
- data/test/vagrant/action/vm/resume_test.rb +1 -1
- data/test/vagrant/action/vm/share_folders_test.rb +25 -106
- data/test/vagrant/action/vm/suspend_test.rb +1 -1
- data/test/vagrant/action/warden_test.rb +105 -0
- data/test/vagrant/action_test.rb +5 -27
- data/test/vagrant/box_collection_test.rb +44 -0
- data/test/vagrant/box_test.rb +5 -105
- data/test/vagrant/cli_test.rb +35 -0
- data/test/vagrant/command/base_test.rb +23 -0
- data/test/vagrant/command/group_base_test.rb +15 -0
- data/test/vagrant/command/helpers_test.rb +88 -0
- data/test/vagrant/config/base_test.rb +52 -0
- data/test/vagrant/config/error_recorder_test.rb +18 -0
- data/test/vagrant/config/ssh_test.rb +12 -0
- data/test/vagrant/config/vagrant_test.rb +11 -0
- data/test/vagrant/config/vm_test.rb +70 -0
- data/test/vagrant/config_test.rb +113 -206
- data/test/vagrant/data_store_test.rb +68 -0
- data/test/vagrant/downloaders/base_test.rb +1 -1
- data/test/vagrant/downloaders/file_test.rb +4 -3
- data/test/vagrant/downloaders/http_test.rb +14 -4
- data/test/vagrant/environment_test.rb +290 -590
- data/test/vagrant/errors_test.rb +42 -0
- data/test/vagrant/hosts/base_test.rb +1 -1
- data/test/vagrant/hosts/bsd_test.rb +3 -6
- data/test/vagrant/hosts/linux_test.rb +3 -5
- data/test/vagrant/plugin_test.rb +9 -0
- data/test/vagrant/provisioners/base_test.rb +1 -1
- data/test/vagrant/provisioners/chef_server_test.rb +31 -35
- data/test/vagrant/provisioners/chef_solo_test.rb +1 -1
- data/test/vagrant/provisioners/chef_test.rb +7 -7
- data/test/vagrant/ssh_session_test.rb +3 -10
- data/test/vagrant/ssh_test.rb +25 -33
- data/test/vagrant/systems/linux_test.rb +6 -71
- data/test/vagrant/ui_test.rb +29 -0
- data/test/vagrant/util/hash_with_indifferent_access_test.rb +39 -0
- data/test/vagrant/util/resource_logger_test.rb +14 -81
- data/test/vagrant/util/retryable_test.rb +38 -0
- data/test/vagrant/util/template_renderer_test.rb +4 -4
- data/test/vagrant/vm_test.rb +47 -26
- data/vagrant.gemspec +14 -12
- metadata +121 -89
- data/bin/.gitignore +0 -0
- data/lib/vagrant/action/action_exception.rb +0 -16
- data/lib/vagrant/action/env/error_halt.rb +0 -16
- data/lib/vagrant/action/exception_catcher.rb +0 -14
- data/lib/vagrant/action/vm/persist.rb +0 -22
- data/lib/vagrant/active_list.rb +0 -83
- data/lib/vagrant/command.rb +0 -27
- data/lib/vagrant/commands/base.rb +0 -181
- data/lib/vagrant/commands/box.rb +0 -16
- data/lib/vagrant/commands/box/add.rb +0 -30
- data/lib/vagrant/commands/box/list.rb +0 -30
- data/lib/vagrant/commands/box/remove.rb +0 -30
- data/lib/vagrant/commands/box/repackage.rb +0 -35
- data/lib/vagrant/commands/destroy.rb +0 -37
- data/lib/vagrant/commands/halt.rb +0 -43
- data/lib/vagrant/commands/init.rb +0 -36
- data/lib/vagrant/commands/package.rb +0 -81
- data/lib/vagrant/commands/provision.rb +0 -31
- data/lib/vagrant/commands/reload.rb +0 -36
- data/lib/vagrant/commands/resume.rb +0 -35
- data/lib/vagrant/commands/ssh.rb +0 -78
- data/lib/vagrant/commands/ssh_config.rb +0 -45
- data/lib/vagrant/commands/status.rb +0 -125
- data/lib/vagrant/commands/suspend.rb +0 -36
- data/lib/vagrant/commands/up.rb +0 -44
- data/lib/vagrant/exceptions/uncallable_action.rb +0 -17
- data/lib/vagrant/util/translator.rb +0 -35
- data/templates/strings.yml +0 -341
- data/templates/unison/crontab_entry.erb +0 -1
- data/templates/unison/script.erb +0 -71
- data/test/vagrant/action/env/error_halt_test.rb +0 -21
- data/test/vagrant/action/exception_catcher_test.rb +0 -30
- data/test/vagrant/action/vm/persist_test.rb +0 -50
- data/test/vagrant/active_list_test.rb +0 -173
- data/test/vagrant/command_test.rb +0 -53
- data/test/vagrant/commands/base_test.rb +0 -139
- data/test/vagrant/commands/box/add_test.rb +0 -34
- data/test/vagrant/commands/box/list_test.rb +0 -32
- data/test/vagrant/commands/box/remove_test.rb +0 -41
- data/test/vagrant/commands/box/repackage_test.rb +0 -52
- data/test/vagrant/commands/destroy_test.rb +0 -44
- data/test/vagrant/commands/halt_test.rb +0 -50
- data/test/vagrant/commands/init_test.rb +0 -71
- data/test/vagrant/commands/package_test.rb +0 -97
- data/test/vagrant/commands/provision_test.rb +0 -60
- data/test/vagrant/commands/reload_test.rb +0 -47
- data/test/vagrant/commands/resume_test.rb +0 -44
- data/test/vagrant/commands/ssh_config_test.rb +0 -77
- data/test/vagrant/commands/ssh_test.rb +0 -129
- data/test/vagrant/commands/status_test.rb +0 -40
- data/test/vagrant/commands/suspend_test.rb +0 -44
- data/test/vagrant/commands/up_test.rb +0 -49
- data/test/vagrant/util/translator_test.rb +0 -61
- data/test/vagrant/util_test.rb +0 -27
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Removes a box permanently from the hard drive.
|
|
4
|
-
module Box
|
|
5
|
-
class Remove < BoxCommand
|
|
6
|
-
BoxCommand.subcommand "remove", self
|
|
7
|
-
description "Remove an installed box permanently."
|
|
8
|
-
|
|
9
|
-
def execute(args=[])
|
|
10
|
-
if args.length != 1
|
|
11
|
-
show_help
|
|
12
|
-
return
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
box = Vagrant::Box.find(env, args[0])
|
|
16
|
-
if box.nil?
|
|
17
|
-
error_and_exit(:box_remove_doesnt_exist)
|
|
18
|
-
return # for tests
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
box.destroy
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def options_spec(opts)
|
|
25
|
-
opts.banner = "Usage: vagrant box remove NAME"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
module Box
|
|
4
|
-
# Repackage a box which has been added.
|
|
5
|
-
class Repackage < BoxCommand
|
|
6
|
-
BoxCommand.subcommand "repackage", self
|
|
7
|
-
description "Repackages a box which has already been added."
|
|
8
|
-
|
|
9
|
-
def execute(args=[])
|
|
10
|
-
args = parse_options(args)
|
|
11
|
-
return show_help if args.length != 1
|
|
12
|
-
|
|
13
|
-
box = Vagrant::Box.find(env, args.first)
|
|
14
|
-
return error_and_exit(:box_repackage_doesnt_exist) if box.nil?
|
|
15
|
-
box.repackage(options)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def options_spec(opts)
|
|
19
|
-
opts.banner = "Usage: vagrant box repackage NAME [--output FILENAME] [--include FILES]"
|
|
20
|
-
|
|
21
|
-
options["package.output"] = nil
|
|
22
|
-
options["package.include"] = []
|
|
23
|
-
|
|
24
|
-
opts.on("--include x,y,z", Array, "List of files to include in the package") do |v|
|
|
25
|
-
options["package.include"] = v
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
opts.on("-o", "--output FILE", "File to save the package as.") do |v|
|
|
29
|
-
options["package.output"] = v
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Destroys a vagrant instance. This not only shuts down the instance
|
|
4
|
-
# (if its running), but also deletes it from the system, including the
|
|
5
|
-
# hard disks associated with it.
|
|
6
|
-
#
|
|
7
|
-
# This command requires that an instance already be brought up with
|
|
8
|
-
# `vagrant up`.
|
|
9
|
-
class Destroy < Base
|
|
10
|
-
Base.subcommand "destroy", self
|
|
11
|
-
description "Destroys the vagrant environment"
|
|
12
|
-
|
|
13
|
-
def execute(args=[])
|
|
14
|
-
all_or_single(args, :destroy)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Destroys a single VM by name.
|
|
18
|
-
def destroy_single(name)
|
|
19
|
-
vm = env.vms[name.to_sym]
|
|
20
|
-
if vm.nil?
|
|
21
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
22
|
-
return # for tests
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
if vm.created?
|
|
26
|
-
vm.destroy
|
|
27
|
-
else
|
|
28
|
-
vm.env.logger.info "VM '#{name}' not created. Ignoring."
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def options_spec(opts)
|
|
33
|
-
opts.banner = "Usage: vagrant destroy"
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Halts a running vagrant instance. This forcibly halts the instance;
|
|
4
|
-
# it is the equivalent of pulling the power on a machine. The instance
|
|
5
|
-
# can be restarted again with {up}.
|
|
6
|
-
#
|
|
7
|
-
# This command requires than an instance already be brought up with
|
|
8
|
-
# `vagrant up`.
|
|
9
|
-
class Halt < Base
|
|
10
|
-
Base.subcommand "halt", self
|
|
11
|
-
description "Halts the currently running vagrant environment"
|
|
12
|
-
|
|
13
|
-
def execute(args=[])
|
|
14
|
-
all_or_single(args, :halt)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def halt_single(name)
|
|
18
|
-
vm = env.vms[name.to_sym]
|
|
19
|
-
if vm.nil?
|
|
20
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
21
|
-
return # for tests
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
if vm.created?
|
|
25
|
-
vm.halt(options)
|
|
26
|
-
else
|
|
27
|
-
vm.env.logger.info "VM '#{name}' not created. Ignoring."
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def options_spec(opts)
|
|
32
|
-
opts.banner = "Usage: vagrant halt"
|
|
33
|
-
|
|
34
|
-
# Defaults
|
|
35
|
-
options[:force] = false
|
|
36
|
-
|
|
37
|
-
opts.on("-f", "--force", "Forceful shutdown of virtual machine.") do |v|
|
|
38
|
-
options[:force] = true
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
class Init < Base
|
|
4
|
-
Base.subcommand "init", self
|
|
5
|
-
description "Initializes current folder for Vagrant usage"
|
|
6
|
-
|
|
7
|
-
def execute(args)
|
|
8
|
-
create_vagrantfile(:default_box => args[0] , :default_box_url => args[1])
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def options_spec(opts)
|
|
12
|
-
opts.banner = "Usage: vagrant init [name] [box_url]"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Actually writes the initial Vagrantfile to the current working directory.
|
|
16
|
-
# The Vagrantfile will contain the base box configuration specified, or
|
|
17
|
-
# will just use "base" if none is specified.
|
|
18
|
-
#
|
|
19
|
-
# @param [String] :default_box The default base box for this
|
|
20
|
-
# Vagrantfile
|
|
21
|
-
# @param [String] :default_box_url The default url for fetching
|
|
22
|
-
# the given box for the Vagrantfile
|
|
23
|
-
def create_vagrantfile(opts={})
|
|
24
|
-
rootfile_path = File.join(Dir.pwd, Environment::ROOTFILE_NAME)
|
|
25
|
-
error_and_exit(:rootfile_already_exists) if File.exist?(rootfile_path)
|
|
26
|
-
|
|
27
|
-
# Set the defaults of the Vagrantfile
|
|
28
|
-
opts[:default_box] ||= "base"
|
|
29
|
-
|
|
30
|
-
File.open(rootfile_path, 'w+') do |f|
|
|
31
|
-
f.write(TemplateRenderer.render(Environment::ROOTFILE_NAME, opts))
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Export and package the current vm
|
|
4
|
-
#
|
|
5
|
-
# This command requires that an instance be powered off
|
|
6
|
-
class Package < Base
|
|
7
|
-
Base.subcommand "package", self
|
|
8
|
-
description "Packages a vagrant environment for distribution"
|
|
9
|
-
|
|
10
|
-
def execute(args=[])
|
|
11
|
-
args = parse_options(args)
|
|
12
|
-
|
|
13
|
-
if options[:base]
|
|
14
|
-
package_base
|
|
15
|
-
else
|
|
16
|
-
package_single(args[0])
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def package_base
|
|
21
|
-
# Packaging a base box; that is a VM not tied to a specific
|
|
22
|
-
# vagrant environment
|
|
23
|
-
vm = VM.find(options[:base], env)
|
|
24
|
-
if !vm
|
|
25
|
-
error_and_exit(:vm_base_not_found, :name => options[:base])
|
|
26
|
-
return # for tests
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
package_vm(vm)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def package_single(name)
|
|
33
|
-
if name.nil? && env.multivm?
|
|
34
|
-
error_and_exit(:package_multivm)
|
|
35
|
-
return
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
vm = if name.nil?
|
|
39
|
-
env.vms.values.first
|
|
40
|
-
else
|
|
41
|
-
env.vms[name.to_sym]
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
if vm.nil?
|
|
45
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
46
|
-
return
|
|
47
|
-
elsif !vm.created?
|
|
48
|
-
error_and_exit(:environment_not_created)
|
|
49
|
-
return
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
package_vm(vm)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def package_vm(vm)
|
|
56
|
-
vm.package(options)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def options_spec(opts)
|
|
60
|
-
opts.banner = "Usage: vagrant package [--base BASE] [--output FILENAME] [--include FILES]"
|
|
61
|
-
|
|
62
|
-
# Defaults
|
|
63
|
-
options[:base] = nil
|
|
64
|
-
options["package.output"] = nil
|
|
65
|
-
options["package.include"] = []
|
|
66
|
-
|
|
67
|
-
opts.on("--base BASE", "Name or UUID of VM to create a base box from") do |v|
|
|
68
|
-
options[:base] = v
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
opts.on("--include x,y,z", Array, "List of files to include in the package") do |v|
|
|
72
|
-
options["package.include"] = v
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
opts.on("-o", "--output FILE", "File to save the package as.") do |v|
|
|
76
|
-
options["package.output"] = v
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
#run the provisioner on a running vm
|
|
4
|
-
class Provision < Base
|
|
5
|
-
Base.subcommand "provision", self
|
|
6
|
-
description "Run the provisioner"
|
|
7
|
-
|
|
8
|
-
def execute(args=[])
|
|
9
|
-
all_or_single(args, :provision)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def provision_single(name)
|
|
13
|
-
vm = env.vms[name.to_sym]
|
|
14
|
-
if vm.nil?
|
|
15
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
16
|
-
return # for tests
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
if vm.created? && vm.vm.running?
|
|
20
|
-
vm.provision
|
|
21
|
-
else
|
|
22
|
-
vm.env.logger.info "VM '#{name}' not running. Ignoring provision request."
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def options_spec(opts)
|
|
27
|
-
opts.banner = "Usage: vagrant provision"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Reload the environment. This is almost equivalent to the {up} command
|
|
4
|
-
# except that it doesn't import the VM and do the initialize bootstrapping
|
|
5
|
-
# of the instance. Instead, it forces a shutdown (if its running) of the
|
|
6
|
-
# VM, updates the metadata (shared folders, forwarded ports), restarts
|
|
7
|
-
# the VM, and then reruns the provisioning if enabled.
|
|
8
|
-
class Reload < Base
|
|
9
|
-
Base.subcommand "reload", self
|
|
10
|
-
description "Reload the vagrant environment"
|
|
11
|
-
|
|
12
|
-
def execute(args=[])
|
|
13
|
-
env.require_root_path
|
|
14
|
-
all_or_single(args, :reload)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def reload_single(name)
|
|
18
|
-
vm = env.vms[name.to_sym]
|
|
19
|
-
if vm.nil?
|
|
20
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
21
|
-
return # for tests
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
if vm.created?
|
|
25
|
-
vm.reload
|
|
26
|
-
else
|
|
27
|
-
vm.env.logger.info "VM '#{name}' not created. Ignoring."
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def options_spec(opts)
|
|
32
|
-
opts.banner = "Usage: vagrant reload"
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Resume a running vagrant instance. This resumes an already suspended
|
|
4
|
-
# instance (from {suspend}).
|
|
5
|
-
#
|
|
6
|
-
# This command requires that an instance already be brought up with
|
|
7
|
-
# `vagrant up`.
|
|
8
|
-
class Resume < Base
|
|
9
|
-
Base.subcommand "resume", self
|
|
10
|
-
description "Resumes a suspend vagrant environment"
|
|
11
|
-
|
|
12
|
-
def execute(args=[])
|
|
13
|
-
all_or_single(args, :resume)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def resume_single(name)
|
|
17
|
-
vm = env.vms[name.to_sym]
|
|
18
|
-
if vm.nil?
|
|
19
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
20
|
-
return # for tests
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
if vm.created?
|
|
24
|
-
vm.resume
|
|
25
|
-
else
|
|
26
|
-
vm.env.logger.info "VM '#{name}' not created. Ignoring."
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def options_spec(opts)
|
|
31
|
-
opts.banner = "Usage: vagrant resume"
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
data/lib/vagrant/commands/ssh.rb
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
class Commands
|
|
3
|
-
# Reload the environment. This is almost equivalent to the {up} command
|
|
4
|
-
# except that it doesn't import the VM and do the initialize bootstrapping
|
|
5
|
-
# of the instance. Instead, it forces a shutdown (if its running) of the
|
|
6
|
-
# VM, updates the metadata (shared folders, forwarded ports), restarts
|
|
7
|
-
# the VM, and then reruns the provisioning if enabled.
|
|
8
|
-
class SSH < Base
|
|
9
|
-
Base.subcommand "ssh", self
|
|
10
|
-
description "SSH into the currently running environment"
|
|
11
|
-
|
|
12
|
-
def execute(args=[])
|
|
13
|
-
args = parse_options(args)
|
|
14
|
-
if !options[:execute].empty?
|
|
15
|
-
vms = args[0] ? {args[0] => env.vms[args[0].to_sym]} : env.vms
|
|
16
|
-
vms.each do |name, vm|
|
|
17
|
-
ssh_execute(name, vm)
|
|
18
|
-
end
|
|
19
|
-
else
|
|
20
|
-
ssh_connect(args[0])
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def ssh_execute(name, vm)
|
|
25
|
-
if vm.nil?
|
|
26
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
27
|
-
return # for tests
|
|
28
|
-
elsif !vm.created?
|
|
29
|
-
error_and_exit(:environment_not_created)
|
|
30
|
-
return
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
vm.ssh.execute do |ssh|
|
|
34
|
-
options[:execute].each do |command|
|
|
35
|
-
vm.env.logger.info("Execute: #{command}")
|
|
36
|
-
ssh.exec!(command) do |channel, type, data|
|
|
37
|
-
# TODO: Exit status checking?
|
|
38
|
-
vm.env.logger.info("#{type}: #{data}")
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def ssh_connect(name)
|
|
45
|
-
if name.nil? && env.multivm?
|
|
46
|
-
if env.primary_vm.nil?
|
|
47
|
-
error_and_exit(:ssh_multivm)
|
|
48
|
-
return # for tests
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
vm = name.nil? ? env.primary_vm : env.vms[name.to_sym]
|
|
53
|
-
if vm.nil?
|
|
54
|
-
error_and_exit(:unknown_vm, :vm => name)
|
|
55
|
-
return # for tests
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
if !vm.created?
|
|
59
|
-
error_and_exit(:environment_not_created)
|
|
60
|
-
return
|
|
61
|
-
else
|
|
62
|
-
vm.ssh.connect
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def options_spec(opts)
|
|
67
|
-
opts.banner = "Usage: vagrant ssh [--execute COMMAND]"
|
|
68
|
-
|
|
69
|
-
# Defaults
|
|
70
|
-
options[:execute] = []
|
|
71
|
-
|
|
72
|
-
opts.on("-e", "--execute COMMAND", "A command to execute. Multiple -e's may be specified.") do |value|
|
|
73
|
-
options[:execute] << value
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|