vagrant 0.5.4 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 +142 -108
- 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
|