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.
Files changed (235) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.yardopts +1 -0
  4. data/CHANGELOG.md +56 -0
  5. data/Gemfile +14 -3
  6. data/Gemfile.lock +38 -11
  7. data/README.md +1 -1
  8. data/bin/vagrant +20 -5
  9. data/config/default.rb +6 -8
  10. data/lib/vagrant.rb +40 -13
  11. data/lib/vagrant/action.rb +56 -16
  12. data/lib/vagrant/action/box/destroy.rb +3 -1
  13. data/lib/vagrant/action/box/download.rb +8 -13
  14. data/lib/vagrant/action/box/unpackage.rb +8 -11
  15. data/lib/vagrant/action/box/verify.rb +3 -3
  16. data/lib/vagrant/action/builder.rb +3 -30
  17. data/lib/vagrant/action/builtin.rb +6 -1
  18. data/lib/vagrant/action/environment.rb +14 -62
  19. data/lib/vagrant/action/general/package.rb +29 -22
  20. data/lib/vagrant/action/vm/boot.rb +5 -12
  21. data/lib/vagrant/action/vm/check_box.rb +4 -4
  22. data/lib/vagrant/action/vm/check_guest_additions.rb +4 -6
  23. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +2 -2
  24. data/lib/vagrant/action/vm/clear_nfs_exports.rb +1 -1
  25. data/lib/vagrant/action/vm/clear_shared_folders.rb +1 -1
  26. data/lib/vagrant/action/vm/customize.rb +1 -1
  27. data/lib/vagrant/action/vm/destroy.rb +1 -2
  28. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +1 -1
  29. data/lib/vagrant/action/vm/disable_networks.rb +11 -9
  30. data/lib/vagrant/action/vm/discard_state.rb +2 -2
  31. data/lib/vagrant/action/vm/export.rb +10 -11
  32. data/lib/vagrant/action/vm/forward_ports.rb +21 -9
  33. data/lib/vagrant/action/vm/halt.rb +3 -8
  34. data/lib/vagrant/action/vm/import.rb +16 -14
  35. data/lib/vagrant/action/vm/match_mac_address.rb +1 -1
  36. data/lib/vagrant/action/vm/network.rb +9 -16
  37. data/lib/vagrant/action/vm/nfs.rb +14 -18
  38. data/lib/vagrant/action/vm/provision.rb +5 -5
  39. data/lib/vagrant/action/vm/resume.rb +1 -1
  40. data/lib/vagrant/action/vm/share_folders.rb +6 -44
  41. data/lib/vagrant/action/vm/suspend.rb +1 -1
  42. data/lib/vagrant/action/warden.rb +74 -0
  43. data/lib/vagrant/box.rb +18 -82
  44. data/lib/vagrant/box_collection.rb +47 -0
  45. data/lib/vagrant/cli.rb +55 -0
  46. data/lib/vagrant/command/base.rb +106 -0
  47. data/lib/vagrant/command/box.rb +33 -0
  48. data/lib/vagrant/command/destroy.rb +17 -0
  49. data/lib/vagrant/command/group_base.rb +99 -0
  50. data/lib/vagrant/command/halt.rb +18 -0
  51. data/lib/vagrant/command/helpers.rb +33 -0
  52. data/lib/vagrant/command/init.rb +14 -0
  53. data/lib/vagrant/command/named_base.rb +14 -0
  54. data/lib/vagrant/command/package.rb +41 -0
  55. data/lib/vagrant/command/provision.rb +17 -0
  56. data/lib/vagrant/command/reload.rb +17 -0
  57. data/lib/vagrant/command/resume.rb +17 -0
  58. data/lib/vagrant/command/ssh.rb +41 -0
  59. data/lib/vagrant/command/ssh_config.rb +21 -0
  60. data/lib/vagrant/command/status.rb +23 -0
  61. data/lib/vagrant/command/suspend.rb +17 -0
  62. data/lib/vagrant/command/up.rb +20 -0
  63. data/lib/vagrant/command/upgrade_to_060.rb +45 -0
  64. data/lib/vagrant/command/version.rb +13 -0
  65. data/lib/vagrant/config.rb +107 -189
  66. data/lib/vagrant/config/base.rb +67 -0
  67. data/lib/vagrant/config/error_recorder.rb +19 -0
  68. data/lib/vagrant/config/nfs.rb +10 -0
  69. data/lib/vagrant/config/package.rb +9 -0
  70. data/lib/vagrant/config/ssh.rb +28 -0
  71. data/lib/vagrant/config/vagrant.rb +21 -0
  72. data/lib/vagrant/config/vm.rb +111 -0
  73. data/lib/vagrant/data_store.rb +68 -0
  74. data/lib/vagrant/downloaders/file.rb +3 -3
  75. data/lib/vagrant/downloaders/http.rb +5 -5
  76. data/lib/vagrant/environment.rb +246 -243
  77. data/lib/vagrant/errors.rb +306 -0
  78. data/lib/vagrant/hosts/base.rb +1 -1
  79. data/lib/vagrant/hosts/bsd.rb +3 -9
  80. data/lib/vagrant/hosts/linux.rb +3 -9
  81. data/lib/vagrant/plugin.rb +50 -0
  82. data/lib/vagrant/provisioners/base.rb +0 -6
  83. data/lib/vagrant/provisioners/chef.rb +63 -58
  84. data/lib/vagrant/provisioners/chef_server.rb +9 -11
  85. data/lib/vagrant/provisioners/chef_solo.rb +2 -2
  86. data/lib/vagrant/ssh.rb +34 -37
  87. data/lib/vagrant/systems/base.rb +0 -13
  88. data/lib/vagrant/systems/linux.rb +10 -33
  89. data/lib/vagrant/systems/solaris.rb +59 -0
  90. data/lib/vagrant/test_helpers.rb +109 -0
  91. data/lib/vagrant/ui.rb +65 -0
  92. data/lib/vagrant/util.rb +9 -19
  93. data/lib/vagrant/util/glob_loader.rb +19 -17
  94. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  95. data/lib/vagrant/util/plain_logger.rb +2 -0
  96. data/lib/vagrant/util/platform.rb +2 -0
  97. data/lib/vagrant/util/resource_logger.rb +5 -70
  98. data/lib/vagrant/util/retryable.rb +25 -0
  99. data/lib/vagrant/util/template_renderer.rb +1 -1
  100. data/lib/vagrant/version.rb +1 -1
  101. data/lib/vagrant/vm.rb +27 -13
  102. data/templates/commands/init/Vagrantfile.erb +13 -0
  103. data/templates/config/validation_failed.erb +7 -0
  104. data/templates/locales/en.yml +402 -0
  105. data/templates/package_Vagrantfile.erb +1 -1
  106. data/test/locales/en.yml +8 -0
  107. data/test/test_helper.rb +19 -103
  108. data/test/vagrant/action/box/destroy_test.rb +7 -19
  109. data/test/vagrant/action/box/download_test.rb +9 -25
  110. data/test/vagrant/action/box/package_test.rb +2 -2
  111. data/test/vagrant/action/box/unpackage_test.rb +8 -34
  112. data/test/vagrant/action/box/verify_test.rb +10 -19
  113. data/test/vagrant/action/builder_test.rb +0 -15
  114. data/test/vagrant/action/env/set_test.rb +1 -1
  115. data/test/vagrant/action/environment_test.rb +8 -26
  116. data/test/vagrant/action/general/package_test.rb +53 -53
  117. data/test/vagrant/action/vm/boot_test.rb +5 -22
  118. data/test/vagrant/action/vm/check_box_test.rb +35 -25
  119. data/test/vagrant/action/vm/clean_machine_folder_test.rb +1 -1
  120. data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +1 -1
  121. data/test/vagrant/action/vm/clear_nfs_exports_test.rb +1 -1
  122. data/test/vagrant/action/vm/clear_shared_folders_test.rb +1 -1
  123. data/test/vagrant/action/vm/customize_test.rb +2 -1
  124. data/test/vagrant/action/vm/destroy_test.rb +1 -2
  125. data/test/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +1 -1
  126. data/test/vagrant/action/vm/disable_networks_test.rb +10 -1
  127. data/test/vagrant/action/vm/discard_state_test.rb +10 -1
  128. data/test/vagrant/action/vm/export_test.rb +9 -37
  129. data/test/vagrant/action/vm/forward_ports_helpers_test.rb +2 -2
  130. data/test/vagrant/action/vm/forward_ports_test.rb +19 -16
  131. data/test/vagrant/action/vm/halt_test.rb +11 -1
  132. data/test/vagrant/action/vm/import_test.rb +37 -21
  133. data/test/vagrant/action/vm/match_mac_address_test.rb +1 -1
  134. data/test/vagrant/action/vm/network_test.rb +8 -7
  135. data/test/vagrant/action/vm/nfs_helpers_test.rb +6 -3
  136. data/test/vagrant/action/vm/nfs_test.rb +20 -45
  137. data/test/vagrant/action/vm/package_test.rb +1 -1
  138. data/test/vagrant/action/vm/package_vagrantfile_test.rb +1 -1
  139. data/test/vagrant/action/vm/provision_test.rb +10 -17
  140. data/test/vagrant/action/vm/resume_test.rb +1 -1
  141. data/test/vagrant/action/vm/share_folders_test.rb +25 -106
  142. data/test/vagrant/action/vm/suspend_test.rb +1 -1
  143. data/test/vagrant/action/warden_test.rb +105 -0
  144. data/test/vagrant/action_test.rb +5 -27
  145. data/test/vagrant/box_collection_test.rb +44 -0
  146. data/test/vagrant/box_test.rb +5 -105
  147. data/test/vagrant/cli_test.rb +35 -0
  148. data/test/vagrant/command/base_test.rb +23 -0
  149. data/test/vagrant/command/group_base_test.rb +15 -0
  150. data/test/vagrant/command/helpers_test.rb +88 -0
  151. data/test/vagrant/config/base_test.rb +52 -0
  152. data/test/vagrant/config/error_recorder_test.rb +18 -0
  153. data/test/vagrant/config/ssh_test.rb +12 -0
  154. data/test/vagrant/config/vagrant_test.rb +11 -0
  155. data/test/vagrant/config/vm_test.rb +70 -0
  156. data/test/vagrant/config_test.rb +113 -206
  157. data/test/vagrant/data_store_test.rb +68 -0
  158. data/test/vagrant/downloaders/base_test.rb +1 -1
  159. data/test/vagrant/downloaders/file_test.rb +4 -3
  160. data/test/vagrant/downloaders/http_test.rb +14 -4
  161. data/test/vagrant/environment_test.rb +290 -590
  162. data/test/vagrant/errors_test.rb +42 -0
  163. data/test/vagrant/hosts/base_test.rb +1 -1
  164. data/test/vagrant/hosts/bsd_test.rb +3 -6
  165. data/test/vagrant/hosts/linux_test.rb +3 -5
  166. data/test/vagrant/plugin_test.rb +9 -0
  167. data/test/vagrant/provisioners/base_test.rb +1 -1
  168. data/test/vagrant/provisioners/chef_server_test.rb +31 -35
  169. data/test/vagrant/provisioners/chef_solo_test.rb +1 -1
  170. data/test/vagrant/provisioners/chef_test.rb +7 -7
  171. data/test/vagrant/ssh_session_test.rb +3 -10
  172. data/test/vagrant/ssh_test.rb +25 -33
  173. data/test/vagrant/systems/linux_test.rb +6 -71
  174. data/test/vagrant/ui_test.rb +29 -0
  175. data/test/vagrant/util/hash_with_indifferent_access_test.rb +39 -0
  176. data/test/vagrant/util/resource_logger_test.rb +14 -81
  177. data/test/vagrant/util/retryable_test.rb +38 -0
  178. data/test/vagrant/util/template_renderer_test.rb +4 -4
  179. data/test/vagrant/vm_test.rb +47 -26
  180. data/vagrant.gemspec +14 -12
  181. metadata +121 -89
  182. data/bin/.gitignore +0 -0
  183. data/lib/vagrant/action/action_exception.rb +0 -16
  184. data/lib/vagrant/action/env/error_halt.rb +0 -16
  185. data/lib/vagrant/action/exception_catcher.rb +0 -14
  186. data/lib/vagrant/action/vm/persist.rb +0 -22
  187. data/lib/vagrant/active_list.rb +0 -83
  188. data/lib/vagrant/command.rb +0 -27
  189. data/lib/vagrant/commands/base.rb +0 -181
  190. data/lib/vagrant/commands/box.rb +0 -16
  191. data/lib/vagrant/commands/box/add.rb +0 -30
  192. data/lib/vagrant/commands/box/list.rb +0 -30
  193. data/lib/vagrant/commands/box/remove.rb +0 -30
  194. data/lib/vagrant/commands/box/repackage.rb +0 -35
  195. data/lib/vagrant/commands/destroy.rb +0 -37
  196. data/lib/vagrant/commands/halt.rb +0 -43
  197. data/lib/vagrant/commands/init.rb +0 -36
  198. data/lib/vagrant/commands/package.rb +0 -81
  199. data/lib/vagrant/commands/provision.rb +0 -31
  200. data/lib/vagrant/commands/reload.rb +0 -36
  201. data/lib/vagrant/commands/resume.rb +0 -35
  202. data/lib/vagrant/commands/ssh.rb +0 -78
  203. data/lib/vagrant/commands/ssh_config.rb +0 -45
  204. data/lib/vagrant/commands/status.rb +0 -125
  205. data/lib/vagrant/commands/suspend.rb +0 -36
  206. data/lib/vagrant/commands/up.rb +0 -44
  207. data/lib/vagrant/exceptions/uncallable_action.rb +0 -17
  208. data/lib/vagrant/util/translator.rb +0 -35
  209. data/templates/strings.yml +0 -341
  210. data/templates/unison/crontab_entry.erb +0 -1
  211. data/templates/unison/script.erb +0 -71
  212. data/test/vagrant/action/env/error_halt_test.rb +0 -21
  213. data/test/vagrant/action/exception_catcher_test.rb +0 -30
  214. data/test/vagrant/action/vm/persist_test.rb +0 -50
  215. data/test/vagrant/active_list_test.rb +0 -173
  216. data/test/vagrant/command_test.rb +0 -53
  217. data/test/vagrant/commands/base_test.rb +0 -139
  218. data/test/vagrant/commands/box/add_test.rb +0 -34
  219. data/test/vagrant/commands/box/list_test.rb +0 -32
  220. data/test/vagrant/commands/box/remove_test.rb +0 -41
  221. data/test/vagrant/commands/box/repackage_test.rb +0 -52
  222. data/test/vagrant/commands/destroy_test.rb +0 -44
  223. data/test/vagrant/commands/halt_test.rb +0 -50
  224. data/test/vagrant/commands/init_test.rb +0 -71
  225. data/test/vagrant/commands/package_test.rb +0 -97
  226. data/test/vagrant/commands/provision_test.rb +0 -60
  227. data/test/vagrant/commands/reload_test.rb +0 -47
  228. data/test/vagrant/commands/resume_test.rb +0 -44
  229. data/test/vagrant/commands/ssh_config_test.rb +0 -77
  230. data/test/vagrant/commands/ssh_test.rb +0 -129
  231. data/test/vagrant/commands/status_test.rb +0 -40
  232. data/test/vagrant/commands/suspend_test.rb +0 -44
  233. data/test/vagrant/commands/up_test.rb +0 -49
  234. data/test/vagrant/util/translator_test.rb +0 -61
  235. 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
@@ -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