tnargav 1.2.2

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 (452) hide show
  1. data/.gitignore +31 -0
  2. data/.gitsetup.yml +5 -0
  3. data/.travis.yml +7 -0
  4. data/.yardopts +1 -0
  5. data/CHANGELOG.md +1067 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +21 -0
  8. data/README.md +89 -0
  9. data/Rakefile +18 -0
  10. data/bin/vagrant +106 -0
  11. data/config/default.rb +36 -0
  12. data/contrib/README.md +12 -0
  13. data/contrib/bash/completion.sh +3 -0
  14. data/contrib/emacs/vagrant.el +8 -0
  15. data/contrib/vim/vagrantfile.vim +9 -0
  16. data/keys/README.md +17 -0
  17. data/keys/vagrant +27 -0
  18. data/keys/vagrant.pub +1 -0
  19. data/lib/vagrant/action/builder.rb +174 -0
  20. data/lib/vagrant/action/builtin/box_add.rb +81 -0
  21. data/lib/vagrant/action/builtin/call.rb +67 -0
  22. data/lib/vagrant/action/builtin/config_validate.rb +30 -0
  23. data/lib/vagrant/action/builtin/confirm.rb +38 -0
  24. data/lib/vagrant/action/builtin/destroy_confirm.rb +21 -0
  25. data/lib/vagrant/action/builtin/env_set.rb +24 -0
  26. data/lib/vagrant/action/builtin/graceful_halt.rb +73 -0
  27. data/lib/vagrant/action/builtin/handle_box_url.rb +77 -0
  28. data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +134 -0
  29. data/lib/vagrant/action/builtin/lock.rb +57 -0
  30. data/lib/vagrant/action/builtin/nfs.rb +118 -0
  31. data/lib/vagrant/action/builtin/provision.rb +70 -0
  32. data/lib/vagrant/action/builtin/set_hostname.rb +27 -0
  33. data/lib/vagrant/action/builtin/ssh_exec.rb +42 -0
  34. data/lib/vagrant/action/builtin/ssh_run.rb +43 -0
  35. data/lib/vagrant/action/general/package.rb +103 -0
  36. data/lib/vagrant/action/hook.rb +107 -0
  37. data/lib/vagrant/action/runner.rb +69 -0
  38. data/lib/vagrant/action/warden.rb +103 -0
  39. data/lib/vagrant/action.rb +43 -0
  40. data/lib/vagrant/batch_action.rb +113 -0
  41. data/lib/vagrant/box.rb +97 -0
  42. data/lib/vagrant/box_collection.rb +375 -0
  43. data/lib/vagrant/cli.rb +82 -0
  44. data/lib/vagrant/config/loader.rb +222 -0
  45. data/lib/vagrant/config/v1/dummy_config.rb +13 -0
  46. data/lib/vagrant/config/v1/loader.rb +105 -0
  47. data/lib/vagrant/config/v1/root.rb +60 -0
  48. data/lib/vagrant/config/v1.rb +9 -0
  49. data/lib/vagrant/config/v2/dummy_config.rb +13 -0
  50. data/lib/vagrant/config/v2/loader.rb +141 -0
  51. data/lib/vagrant/config/v2/root.rb +105 -0
  52. data/lib/vagrant/config/v2/util.rb +21 -0
  53. data/lib/vagrant/config/v2.rb +9 -0
  54. data/lib/vagrant/config/version_base.rb +80 -0
  55. data/lib/vagrant/config.rb +61 -0
  56. data/lib/vagrant/environment.rb +843 -0
  57. data/lib/vagrant/errors.rb +570 -0
  58. data/lib/vagrant/guest.rb +163 -0
  59. data/lib/vagrant/hosts.rb +28 -0
  60. data/lib/vagrant/machine.rb +325 -0
  61. data/lib/vagrant/machine_state.rb +45 -0
  62. data/lib/vagrant/plugin/v1/command.rb +169 -0
  63. data/lib/vagrant/plugin/v1/communicator.rb +98 -0
  64. data/lib/vagrant/plugin/v1/config.rb +112 -0
  65. data/lib/vagrant/plugin/v1/errors.rb +15 -0
  66. data/lib/vagrant/plugin/v1/guest.rb +92 -0
  67. data/lib/vagrant/plugin/v1/host.rb +66 -0
  68. data/lib/vagrant/plugin/v1/manager.rb +131 -0
  69. data/lib/vagrant/plugin/v1/plugin.rb +229 -0
  70. data/lib/vagrant/plugin/v1/provider.rb +68 -0
  71. data/lib/vagrant/plugin/v1/provisioner.rb +50 -0
  72. data/lib/vagrant/plugin/v1.rb +19 -0
  73. data/lib/vagrant/plugin/v2/command.rb +234 -0
  74. data/lib/vagrant/plugin/v2/communicator.rb +98 -0
  75. data/lib/vagrant/plugin/v2/components.rb +47 -0
  76. data/lib/vagrant/plugin/v2/config.rb +136 -0
  77. data/lib/vagrant/plugin/v2/errors.rb +15 -0
  78. data/lib/vagrant/plugin/v2/guest.rb +78 -0
  79. data/lib/vagrant/plugin/v2/host.rb +66 -0
  80. data/lib/vagrant/plugin/v2/manager.rb +173 -0
  81. data/lib/vagrant/plugin/v2/plugin.rb +226 -0
  82. data/lib/vagrant/plugin/v2/provider.rb +69 -0
  83. data/lib/vagrant/plugin/v2/provisioner.rb +47 -0
  84. data/lib/vagrant/plugin/v2.rb +22 -0
  85. data/lib/vagrant/plugin.rb +6 -0
  86. data/lib/vagrant/registry.rb +78 -0
  87. data/lib/vagrant/ui.rb +215 -0
  88. data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
  89. data/lib/vagrant/util/busy.rb +59 -0
  90. data/lib/vagrant/util/counter.rb +24 -0
  91. data/lib/vagrant/util/downloader.rb +146 -0
  92. data/lib/vagrant/util/file_checksum.rb +38 -0
  93. data/lib/vagrant/util/file_mode.rb +12 -0
  94. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  95. data/lib/vagrant/util/is_port_open.rb +38 -0
  96. data/lib/vagrant/util/line_ending_helpers.rb +14 -0
  97. data/lib/vagrant/util/network_ip.rb +28 -0
  98. data/lib/vagrant/util/platform.rb +58 -0
  99. data/lib/vagrant/util/retryable.rb +31 -0
  100. data/lib/vagrant/util/safe_chdir.rb +33 -0
  101. data/lib/vagrant/util/safe_exec.rb +36 -0
  102. data/lib/vagrant/util/safe_puts.rb +31 -0
  103. data/lib/vagrant/util/scoped_hash_override.rb +45 -0
  104. data/lib/vagrant/util/ssh.rb +150 -0
  105. data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
  106. data/lib/vagrant/util/string_block_editor.rb +77 -0
  107. data/lib/vagrant/util/subprocess.rb +273 -0
  108. data/lib/vagrant/util/template_renderer.rb +83 -0
  109. data/lib/vagrant/util/which.rb +43 -0
  110. data/lib/vagrant/util.rb +12 -0
  111. data/lib/vagrant/version.rb +6 -0
  112. data/lib/vagrant.rb +258 -0
  113. data/plugins/README.md +5 -0
  114. data/plugins/commands/box/command/add.rb +51 -0
  115. data/plugins/commands/box/command/list.rb +41 -0
  116. data/plugins/commands/box/command/remove.rb +37 -0
  117. data/plugins/commands/box/command/repackage.rb +43 -0
  118. data/plugins/commands/box/command/root.rb +75 -0
  119. data/plugins/commands/box/plugin.rb +15 -0
  120. data/plugins/commands/destroy/command.rb +31 -0
  121. data/plugins/commands/destroy/plugin.rb +18 -0
  122. data/plugins/commands/halt/command.rb +33 -0
  123. data/plugins/commands/halt/plugin.rb +18 -0
  124. data/plugins/commands/init/command.rb +40 -0
  125. data/plugins/commands/init/plugin.rb +18 -0
  126. data/plugins/commands/package/command.rb +83 -0
  127. data/plugins/commands/package/plugin.rb +18 -0
  128. data/plugins/commands/plugin/action/bundler_check.rb +25 -0
  129. data/plugins/commands/plugin/action/install_gem.rb +81 -0
  130. data/plugins/commands/plugin/action/license_plugin.rb +54 -0
  131. data/plugins/commands/plugin/action/list_plugins.rb +54 -0
  132. data/plugins/commands/plugin/action/prune_gems.rb +149 -0
  133. data/plugins/commands/plugin/action/uninstall_plugin.rb +23 -0
  134. data/plugins/commands/plugin/action.rb +52 -0
  135. data/plugins/commands/plugin/command/base.rb +22 -0
  136. data/plugins/commands/plugin/command/install.rb +58 -0
  137. data/plugins/commands/plugin/command/license.rb +31 -0
  138. data/plugins/commands/plugin/command/list.rb +28 -0
  139. data/plugins/commands/plugin/command/root.rb +75 -0
  140. data/plugins/commands/plugin/command/uninstall.rb +28 -0
  141. data/plugins/commands/plugin/gem_helper.rb +74 -0
  142. data/plugins/commands/plugin/plugin.rb +22 -0
  143. data/plugins/commands/plugin/state_file.rb +57 -0
  144. data/plugins/commands/provision/command.rb +34 -0
  145. data/plugins/commands/provision/plugin.rb +18 -0
  146. data/plugins/commands/reload/command.rb +37 -0
  147. data/plugins/commands/reload/plugin.rb +18 -0
  148. data/plugins/commands/resume/command.rb +25 -0
  149. data/plugins/commands/resume/plugin.rb +17 -0
  150. data/plugins/commands/ssh/command.rb +63 -0
  151. data/plugins/commands/ssh/plugin.rb +17 -0
  152. data/plugins/commands/ssh_config/command.rb +49 -0
  153. data/plugins/commands/ssh_config/plugin.rb +18 -0
  154. data/plugins/commands/status/command.rb +39 -0
  155. data/plugins/commands/status/plugin.rb +18 -0
  156. data/plugins/commands/suspend/command.rb +25 -0
  157. data/plugins/commands/suspend/plugin.rb +18 -0
  158. data/plugins/commands/up/command.rb +57 -0
  159. data/plugins/commands/up/plugin.rb +17 -0
  160. data/plugins/commands/up/start_mixins.rb +26 -0
  161. data/plugins/communicators/ssh/communicator.rb +342 -0
  162. data/plugins/communicators/ssh/plugin.rb +19 -0
  163. data/plugins/guests/arch/cap/change_host_name.rb +18 -0
  164. data/plugins/guests/arch/cap/configure_networks.rb +23 -0
  165. data/plugins/guests/arch/guest.rb +11 -0
  166. data/plugins/guests/arch/plugin.rb +25 -0
  167. data/plugins/guests/debian/cap/change_host_name.rb +18 -0
  168. data/plugins/guests/debian/cap/configure_networks.rb +61 -0
  169. data/plugins/guests/debian/guest.rb +9 -0
  170. data/plugins/guests/debian/plugin.rb +25 -0
  171. data/plugins/guests/fedora/cap/configure_networks.rb +59 -0
  172. data/plugins/guests/fedora/cap/network_scripts_dir.rb +15 -0
  173. data/plugins/guests/fedora/guest.rb +11 -0
  174. data/plugins/guests/fedora/plugin.rb +25 -0
  175. data/plugins/guests/freebsd/cap/change_host_name.rb +14 -0
  176. data/plugins/guests/freebsd/cap/configure_networks.rb +39 -0
  177. data/plugins/guests/freebsd/cap/halt.rb +16 -0
  178. data/plugins/guests/freebsd/cap/mount_nfs_folder.rb +14 -0
  179. data/plugins/guests/freebsd/guest.rb +14 -0
  180. data/plugins/guests/freebsd/plugin.rb +35 -0
  181. data/plugins/guests/gentoo/cap/change_host_name.rb +17 -0
  182. data/plugins/guests/gentoo/cap/configure_networks.rb +43 -0
  183. data/plugins/guests/gentoo/guest.rb +9 -0
  184. data/plugins/guests/gentoo/plugin.rb +25 -0
  185. data/plugins/guests/linux/cap/halt.rb +16 -0
  186. data/plugins/guests/linux/cap/mount_nfs.rb +30 -0
  187. data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +40 -0
  188. data/plugins/guests/linux/cap/read_ip_address.rb +17 -0
  189. data/plugins/guests/linux/cap/shell_expand_guest_path.rb +26 -0
  190. data/plugins/guests/linux/guest.rb +11 -0
  191. data/plugins/guests/linux/plugin.rb +40 -0
  192. data/plugins/guests/openbsd/cap/halt.rb +16 -0
  193. data/plugins/guests/openbsd/guest.rb +11 -0
  194. data/plugins/guests/openbsd/plugin.rb +20 -0
  195. data/plugins/guests/pld/cap/network_scripts_dir.rb +11 -0
  196. data/plugins/guests/pld/guest.rb +11 -0
  197. data/plugins/guests/pld/plugin.rb +20 -0
  198. data/plugins/guests/redhat/cap/change_host_name.rb +18 -0
  199. data/plugins/guests/redhat/cap/configure_networks.rb +60 -0
  200. data/plugins/guests/redhat/cap/network_scripts_dir.rb +11 -0
  201. data/plugins/guests/redhat/guest.rb +11 -0
  202. data/plugins/guests/redhat/plugin.rb +30 -0
  203. data/plugins/guests/solaris/cap/change_host_name.rb +17 -0
  204. data/plugins/guests/solaris/cap/configure_networks.rb +25 -0
  205. data/plugins/guests/solaris/cap/halt.rb +21 -0
  206. data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +28 -0
  207. data/plugins/guests/solaris/config.rb +18 -0
  208. data/plugins/guests/solaris/guest.rb +14 -0
  209. data/plugins/guests/solaris/plugin.rb +40 -0
  210. data/plugins/guests/suse/cap/change_host_name.rb +18 -0
  211. data/plugins/guests/suse/cap/network_scripts_dir.rb +11 -0
  212. data/plugins/guests/suse/guest.rb +11 -0
  213. data/plugins/guests/suse/plugin.rb +25 -0
  214. data/plugins/guests/ubuntu/cap/change_host_name.rb +23 -0
  215. data/plugins/guests/ubuntu/guest.rb +32 -0
  216. data/plugins/guests/ubuntu/plugin.rb +20 -0
  217. data/plugins/hosts/arch/host.rb +68 -0
  218. data/plugins/hosts/arch/plugin.rb +15 -0
  219. data/plugins/hosts/bsd/host.rb +102 -0
  220. data/plugins/hosts/bsd/plugin.rb +15 -0
  221. data/plugins/hosts/fedora/host.rb +51 -0
  222. data/plugins/hosts/fedora/plugin.rb +15 -0
  223. data/plugins/hosts/freebsd/host.rb +43 -0
  224. data/plugins/hosts/freebsd/plugin.rb +15 -0
  225. data/plugins/hosts/gentoo/host.rb +24 -0
  226. data/plugins/hosts/gentoo/plugin.rb +15 -0
  227. data/plugins/hosts/linux/host.rb +95 -0
  228. data/plugins/hosts/linux/plugin.rb +15 -0
  229. data/plugins/hosts/opensuse/host.rb +34 -0
  230. data/plugins/hosts/opensuse/plugin.rb +15 -0
  231. data/plugins/hosts/windows/host.rb +17 -0
  232. data/plugins/hosts/windows/plugin.rb +15 -0
  233. data/plugins/kernel_v1/config/nfs.rb +20 -0
  234. data/plugins/kernel_v1/config/package.rb +17 -0
  235. data/plugins/kernel_v1/config/ssh.rb +46 -0
  236. data/plugins/kernel_v1/config/vagrant.rb +31 -0
  237. data/plugins/kernel_v1/config/vm.rb +184 -0
  238. data/plugins/kernel_v1/plugin.rb +44 -0
  239. data/plugins/kernel_v2/config/nfs.rb +14 -0
  240. data/plugins/kernel_v2/config/package.rb +13 -0
  241. data/plugins/kernel_v2/config/ssh.rb +76 -0
  242. data/plugins/kernel_v2/config/ssh_connect.rb +40 -0
  243. data/plugins/kernel_v2/config/vagrant.rb +13 -0
  244. data/plugins/kernel_v2/config/vm.rb +416 -0
  245. data/plugins/kernel_v2/config/vm_provisioner.rb +55 -0
  246. data/plugins/kernel_v2/config/vm_subvm.rb +30 -0
  247. data/plugins/kernel_v2/plugin.rb +44 -0
  248. data/plugins/providers/virtualbox/action/boot.rb +49 -0
  249. data/plugins/providers/virtualbox/action/check_accessible.rb +23 -0
  250. data/plugins/providers/virtualbox/action/check_created.rb +21 -0
  251. data/plugins/providers/virtualbox/action/check_guest_additions.rb +45 -0
  252. data/plugins/providers/virtualbox/action/check_running.rb +21 -0
  253. data/plugins/providers/virtualbox/action/check_virtualbox.rb +22 -0
  254. data/plugins/providers/virtualbox/action/clean_machine_folder.rb +43 -0
  255. data/plugins/providers/virtualbox/action/clear_forwarded_ports.rb +18 -0
  256. data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +31 -0
  257. data/plugins/providers/virtualbox/action/clear_shared_folders.rb +17 -0
  258. data/plugins/providers/virtualbox/action/created.rb +20 -0
  259. data/plugins/providers/virtualbox/action/customize.rb +36 -0
  260. data/plugins/providers/virtualbox/action/destroy.rb +19 -0
  261. data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +16 -0
  262. data/plugins/providers/virtualbox/action/discard_state.rb +20 -0
  263. data/plugins/providers/virtualbox/action/export.rb +57 -0
  264. data/plugins/providers/virtualbox/action/forced_halt.rb +25 -0
  265. data/plugins/providers/virtualbox/action/forward_ports.rb +87 -0
  266. data/plugins/providers/virtualbox/action/import.rb +51 -0
  267. data/plugins/providers/virtualbox/action/is_paused.rb +20 -0
  268. data/plugins/providers/virtualbox/action/is_running.rb +20 -0
  269. data/plugins/providers/virtualbox/action/is_saved.rb +20 -0
  270. data/plugins/providers/virtualbox/action/match_mac_address.rb +21 -0
  271. data/plugins/providers/virtualbox/action/message_already_running.rb +16 -0
  272. data/plugins/providers/virtualbox/action/message_not_created.rb +16 -0
  273. data/plugins/providers/virtualbox/action/message_not_running.rb +16 -0
  274. data/plugins/providers/virtualbox/action/message_will_not_destroy.rb +17 -0
  275. data/plugins/providers/virtualbox/action/network.rb +410 -0
  276. data/plugins/providers/virtualbox/action/package.rb +20 -0
  277. data/plugins/providers/virtualbox/action/package_vagrantfile.rb +33 -0
  278. data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +35 -0
  279. data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +64 -0
  280. data/plugins/providers/virtualbox/action/prune_nfs_exports.rb +20 -0
  281. data/plugins/providers/virtualbox/action/resume.rb +25 -0
  282. data/plugins/providers/virtualbox/action/sane_defaults.rb +91 -0
  283. data/plugins/providers/virtualbox/action/set_name.rb +40 -0
  284. data/plugins/providers/virtualbox/action/setup_package_files.rb +51 -0
  285. data/plugins/providers/virtualbox/action/share_folders.rb +128 -0
  286. data/plugins/providers/virtualbox/action/suspend.rb +20 -0
  287. data/plugins/providers/virtualbox/action.rb +311 -0
  288. data/plugins/providers/virtualbox/config.rb +86 -0
  289. data/plugins/providers/virtualbox/driver/base.rb +360 -0
  290. data/plugins/providers/virtualbox/driver/meta.rb +142 -0
  291. data/plugins/providers/virtualbox/driver/version_4_0.rb +485 -0
  292. data/plugins/providers/virtualbox/driver/version_4_1.rb +485 -0
  293. data/plugins/providers/virtualbox/driver/version_4_2.rb +482 -0
  294. data/plugins/providers/virtualbox/model/forwarded_port.rb +58 -0
  295. data/plugins/providers/virtualbox/plugin.rb +42 -0
  296. data/plugins/providers/virtualbox/provider.rb +92 -0
  297. data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +31 -0
  298. data/plugins/provisioners/ansible/config.rb +72 -0
  299. data/plugins/provisioners/ansible/plugin.rb +23 -0
  300. data/plugins/provisioners/ansible/provisioner.rb +45 -0
  301. data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +19 -0
  302. data/plugins/provisioners/cfengine/cap/linux/cfengine_installed.rb +14 -0
  303. data/plugins/provisioners/cfengine/cap/linux/cfengine_needs_bootstrap.rb +34 -0
  304. data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +24 -0
  305. data/plugins/provisioners/cfengine/config.rb +120 -0
  306. data/plugins/provisioners/cfengine/plugin.rb +42 -0
  307. data/plugins/provisioners/cfengine/provisioner.rb +136 -0
  308. data/plugins/provisioners/chef/config/base.rb +85 -0
  309. data/plugins/provisioners/chef/config/chef_client.rb +57 -0
  310. data/plugins/provisioners/chef/config/chef_solo.rb +87 -0
  311. data/plugins/provisioners/chef/plugin.rb +33 -0
  312. data/plugins/provisioners/chef/provisioner/base.rb +93 -0
  313. data/plugins/provisioners/chef/provisioner/chef_client.rb +107 -0
  314. data/plugins/provisioners/chef/provisioner/chef_solo.rb +192 -0
  315. data/plugins/provisioners/puppet/config/puppet.rb +70 -0
  316. data/plugins/provisioners/puppet/config/puppet_server.rb +16 -0
  317. data/plugins/provisioners/puppet/plugin.rb +33 -0
  318. data/plugins/provisioners/puppet/provisioner/puppet.rb +117 -0
  319. data/plugins/provisioners/puppet/provisioner/puppet_server.rb +67 -0
  320. data/plugins/provisioners/shell/config.rb +56 -0
  321. data/plugins/provisioners/shell/plugin.rb +23 -0
  322. data/plugins/provisioners/shell/provisioner.rb +86 -0
  323. data/tasks/acceptance.rake +113 -0
  324. data/tasks/bundler.rake +3 -0
  325. data/tasks/test.rake +20 -0
  326. data/templates/commands/init/Vagrantfile.erb +111 -0
  327. data/templates/commands/ssh_config/config.erb +16 -0
  328. data/templates/config/messages.erb +14 -0
  329. data/templates/config/validation_failed.erb +7 -0
  330. data/templates/guests/arch/network_dhcp.erb +4 -0
  331. data/templates/guests/arch/network_static.erb +6 -0
  332. data/templates/guests/debian/network_dhcp.erb +11 -0
  333. data/templates/guests/debian/network_static.erb +7 -0
  334. data/templates/guests/fedora/network_dhcp.erb +6 -0
  335. data/templates/guests/fedora/network_static.erb +13 -0
  336. data/templates/guests/freebsd/network_dhcp.erb +3 -0
  337. data/templates/guests/freebsd/network_static.erb +3 -0
  338. data/templates/guests/gentoo/network_dhcp.erb +4 -0
  339. data/templates/guests/gentoo/network_static.erb +4 -0
  340. data/templates/guests/redhat/network_dhcp.erb +6 -0
  341. data/templates/guests/redhat/network_static.erb +8 -0
  342. data/templates/locales/en.yml +1126 -0
  343. data/templates/nfs/exports.erb +5 -0
  344. data/templates/nfs/exports_freebsd.erb +5 -0
  345. data/templates/nfs/exports_linux.erb +5 -0
  346. data/templates/package_Vagrantfile.erb +11 -0
  347. data/templates/provisioners/chef_client/client.erb +32 -0
  348. data/templates/provisioners/chef_solo/solo.erb +25 -0
  349. data/templates/rgloader.rb +9 -0
  350. data/test/acceptance/base.rb +48 -0
  351. data/test/acceptance/box_test.rb +99 -0
  352. data/test/acceptance/destroy_test.rb +37 -0
  353. data/test/acceptance/halt_test.rb +72 -0
  354. data/test/acceptance/init_test.rb +33 -0
  355. data/test/acceptance/networking/host_only_test.rb +37 -0
  356. data/test/acceptance/networking/port_forward_test.rb +125 -0
  357. data/test/acceptance/package_test.rb +46 -0
  358. data/test/acceptance/provisioning/basic_test.rb +61 -0
  359. data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
  360. data/test/acceptance/provisioning/shell_test.rb +53 -0
  361. data/test/acceptance/resume_test.rb +17 -0
  362. data/test/acceptance/shared_folders_test.rb +84 -0
  363. data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
  364. data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
  365. data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
  366. data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
  367. data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
  368. data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
  369. data/test/acceptance/ssh_test.rb +46 -0
  370. data/test/acceptance/support/config.rb +42 -0
  371. data/test/acceptance/support/isolated_environment.rb +118 -0
  372. data/test/acceptance/support/matchers/have_color.rb +9 -0
  373. data/test/acceptance/support/matchers/match_output.rb +14 -0
  374. data/test/acceptance/support/matchers/succeed.rb +14 -0
  375. data/test/acceptance/support/network_tests.rb +29 -0
  376. data/test/acceptance/support/output.rb +95 -0
  377. data/test/acceptance/support/shared/base_context.rb +72 -0
  378. data/test/acceptance/support/shared/command_examples.rb +33 -0
  379. data/test/acceptance/support/virtualbox.rb +36 -0
  380. data/test/acceptance/suspend_test.rb +56 -0
  381. data/test/acceptance/up_basic_test.rb +33 -0
  382. data/test/acceptance/up_with_box_url.rb +40 -0
  383. data/test/acceptance/vagrant_test.rb +47 -0
  384. data/test/acceptance/version_test.rb +15 -0
  385. data/test/config/acceptance_boxes.yml +7 -0
  386. data/test/support/isolated_environment.rb +46 -0
  387. data/test/support/tempdir.rb +43 -0
  388. data/test/unit/base.rb +27 -0
  389. data/test/unit/support/dummy_provider.rb +16 -0
  390. data/test/unit/support/isolated_environment.rb +179 -0
  391. data/test/unit/support/shared/base_context.rb +104 -0
  392. data/test/unit/vagrant/action/builder_test.rb +242 -0
  393. data/test/unit/vagrant/action/builtin/call_test.rb +145 -0
  394. data/test/unit/vagrant/action/builtin/confirm_test.rb +36 -0
  395. data/test/unit/vagrant/action/builtin/env_set_test.rb +20 -0
  396. data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +61 -0
  397. data/test/unit/vagrant/action/builtin/lock_test.rb +98 -0
  398. data/test/unit/vagrant/action/builtin/ssh_exec_test.rb +57 -0
  399. data/test/unit/vagrant/action/hook_test.rb +120 -0
  400. data/test/unit/vagrant/action/runner_test.rb +71 -0
  401. data/test/unit/vagrant/action/warden_test.rb +92 -0
  402. data/test/unit/vagrant/batch_action_test.rb +36 -0
  403. data/test/unit/vagrant/box_collection_test.rb +237 -0
  404. data/test/unit/vagrant/box_test.rb +122 -0
  405. data/test/unit/vagrant/cli_test.rb +27 -0
  406. data/test/unit/vagrant/config/loader_test.rb +184 -0
  407. data/test/unit/vagrant/config/v1/dummy_config_test.rb +24 -0
  408. data/test/unit/vagrant/config/v1/loader_test.rb +145 -0
  409. data/test/unit/vagrant/config/v1/root_test.rb +40 -0
  410. data/test/unit/vagrant/config/v2/dummy_config_test.rb +24 -0
  411. data/test/unit/vagrant/config/v2/loader_test.rb +151 -0
  412. data/test/unit/vagrant/config/v2/root_test.rb +97 -0
  413. data/test/unit/vagrant/config/v2/util_test.rb +21 -0
  414. data/test/unit/vagrant/config_test.rb +66 -0
  415. data/test/unit/vagrant/environment_test.rb +721 -0
  416. data/test/unit/vagrant/guest_test.rb +166 -0
  417. data/test/unit/vagrant/hosts_test.rb +37 -0
  418. data/test/unit/vagrant/machine_state_test.rb +26 -0
  419. data/test/unit/vagrant/machine_test.rb +384 -0
  420. data/test/unit/vagrant/plugin/v1/command_test.rb +143 -0
  421. data/test/unit/vagrant/plugin/v1/communicator_test.rb +9 -0
  422. data/test/unit/vagrant/plugin/v1/config_test.rb +50 -0
  423. data/test/unit/vagrant/plugin/v1/host_test.rb +5 -0
  424. data/test/unit/vagrant/plugin/v1/manager_test.rb +114 -0
  425. data/test/unit/vagrant/plugin/v1/plugin_test.rb +267 -0
  426. data/test/unit/vagrant/plugin/v1/provider_test.rb +18 -0
  427. data/test/unit/vagrant/plugin/v2/command_test.rb +238 -0
  428. data/test/unit/vagrant/plugin/v2/communicator_test.rb +9 -0
  429. data/test/unit/vagrant/plugin/v2/components_test.rb +17 -0
  430. data/test/unit/vagrant/plugin/v2/config_test.rb +60 -0
  431. data/test/unit/vagrant/plugin/v2/host_test.rb +5 -0
  432. data/test/unit/vagrant/plugin/v2/manager_test.rb +174 -0
  433. data/test/unit/vagrant/plugin/v2/plugin_test.rb +305 -0
  434. data/test/unit/vagrant/plugin/v2/provider_test.rb +18 -0
  435. data/test/unit/vagrant/registry_test.rb +128 -0
  436. data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
  437. data/test/unit/vagrant/util/downloader_test.rb +57 -0
  438. data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
  439. data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
  440. data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
  441. data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
  442. data/test/unit/vagrant/util/network_ip_test.rb +17 -0
  443. data/test/unit/vagrant/util/retryable_test.rb +106 -0
  444. data/test/unit/vagrant/util/safe_chdir_test.rb +43 -0
  445. data/test/unit/vagrant/util/scoped_hash_override_test.rb +48 -0
  446. data/test/unit/vagrant/util/ssh_test.rb +30 -0
  447. data/test/unit/vagrant/util/string_block_editor_test.rb +106 -0
  448. data/test/unit/vagrant/util/which_test.rb +43 -0
  449. data/test/unit/vagrant_test.rb +56 -0
  450. data/tnargav.gemspec +69 -0
  451. data/vagrant.gemspec +69 -0
  452. metadata +730 -0
@@ -0,0 +1,311 @@
1
+ require "vagrant/action/builder"
2
+
3
+ module VagrantPlugins
4
+ module ProviderVirtualBox
5
+ module Action
6
+ autoload :Boot, File.expand_path("../action/boot", __FILE__)
7
+ autoload :CheckAccessible, File.expand_path("../action/check_accessible", __FILE__)
8
+ autoload :CheckCreated, File.expand_path("../action/check_created", __FILE__)
9
+ autoload :CheckGuestAdditions, File.expand_path("../action/check_guest_additions", __FILE__)
10
+ autoload :CheckRunning, File.expand_path("../action/check_running", __FILE__)
11
+ autoload :CheckVirtualbox, File.expand_path("../action/check_virtualbox", __FILE__)
12
+ autoload :CleanMachineFolder, File.expand_path("../action/clean_machine_folder", __FILE__)
13
+ autoload :ClearForwardedPorts, File.expand_path("../action/clear_forwarded_ports", __FILE__)
14
+ autoload :ClearNetworkInterfaces, File.expand_path("../action/clear_network_interfaces", __FILE__)
15
+ autoload :ClearSharedFolders, File.expand_path("../action/clear_shared_folders", __FILE__)
16
+ autoload :Created, File.expand_path("../action/created", __FILE__)
17
+ autoload :Customize, File.expand_path("../action/customize", __FILE__)
18
+ autoload :Destroy, File.expand_path("../action/destroy", __FILE__)
19
+ autoload :DestroyUnusedNetworkInterfaces, File.expand_path("../action/destroy_unused_network_interfaces", __FILE__)
20
+ autoload :DiscardState, File.expand_path("../action/discard_state", __FILE__)
21
+ autoload :Export, File.expand_path("../action/export", __FILE__)
22
+ autoload :ForcedHalt, File.expand_path("../action/forced_halt", __FILE__)
23
+ autoload :ForwardPorts, File.expand_path("../action/forward_ports", __FILE__)
24
+ autoload :Import, File.expand_path("../action/import", __FILE__)
25
+ autoload :IsPaused, File.expand_path("../action/is_paused", __FILE__)
26
+ autoload :IsRunning, File.expand_path("../action/is_running", __FILE__)
27
+ autoload :IsSaved, File.expand_path("../action/is_saved", __FILE__)
28
+ autoload :MatchMACAddress, File.expand_path("../action/match_mac_address", __FILE__)
29
+ autoload :MessageAlreadyRunning, File.expand_path("../action/message_already_running", __FILE__)
30
+ autoload :MessageNotCreated, File.expand_path("../action/message_not_created", __FILE__)
31
+ autoload :MessageNotRunning, File.expand_path("../action/message_not_running", __FILE__)
32
+ autoload :MessageWillNotDestroy, File.expand_path("../action/message_will_not_destroy", __FILE__)
33
+ autoload :Network, File.expand_path("../action/network", __FILE__)
34
+ autoload :Package, File.expand_path("../action/package", __FILE__)
35
+ autoload :PackageVagrantfile, File.expand_path("../action/package_vagrantfile", __FILE__)
36
+ autoload :PrepareNFSSettings, File.expand_path("../action/prepare_nfs_settings", __FILE__)
37
+ autoload :PrepareForwardedPortCollisionParams, File.expand_path("../action/prepare_forwarded_port_collision_params", __FILE__)
38
+ autoload :PruneNFSExports, File.expand_path("../action/prune_nfs_exports", __FILE__)
39
+ autoload :Resume, File.expand_path("../action/resume", __FILE__)
40
+ autoload :SaneDefaults, File.expand_path("../action/sane_defaults", __FILE__)
41
+ autoload :SetName, File.expand_path("../action/set_name", __FILE__)
42
+ autoload :SetupPackageFiles, File.expand_path("../action/setup_package_files", __FILE__)
43
+ autoload :ShareFolders, File.expand_path("../action/share_folders", __FILE__)
44
+ autoload :Suspend, File.expand_path("../action/suspend", __FILE__)
45
+
46
+ # Include the built-in modules so that we can use them as top-level
47
+ # things.
48
+ include Vagrant::Action::Builtin
49
+
50
+ # This action boots the VM, assuming the VM is in a state that requires
51
+ # a bootup (i.e. not saved).
52
+ def self.action_boot
53
+ Vagrant::Action::Builder.new.tap do |b|
54
+ b.use CheckAccessible
55
+ b.use CleanMachineFolder
56
+ b.use SetName
57
+ b.use ClearForwardedPorts
58
+ b.use Provision
59
+ b.use EnvSet, :port_collision_repair => true
60
+ b.use PrepareForwardedPortCollisionParams
61
+ b.use HandleForwardedPortCollisions
62
+ b.use PruneNFSExports
63
+ b.use NFS
64
+ b.use PrepareNFSSettings
65
+ b.use ClearSharedFolders
66
+ b.use ShareFolders
67
+ b.use ClearNetworkInterfaces
68
+ b.use Network
69
+ b.use ForwardPorts
70
+ b.use SetHostname
71
+ b.use SaneDefaults
72
+ b.use Customize
73
+ b.use Boot
74
+ b.use CheckGuestAdditions
75
+ end
76
+ end
77
+
78
+ # This is the action that is primarily responsible for completely
79
+ # freeing the resources of the underlying virtual machine.
80
+ def self.action_destroy
81
+ Vagrant::Action::Builder.new.tap do |b|
82
+ b.use CheckVirtualbox
83
+ b.use Call, Created do |env1, b2|
84
+ if !env1[:result]
85
+ b2.use MessageNotCreated
86
+ next
87
+ end
88
+
89
+ b2.use Call, DestroyConfirm do |env2, b3|
90
+ if env2[:result]
91
+ b3.use ConfigValidate
92
+ b3.use CheckAccessible
93
+ b3.use EnvSet, :force_halt => true
94
+ b3.use action_halt
95
+ b3.use PruneNFSExports
96
+ b3.use Destroy
97
+ b3.use CleanMachineFolder
98
+ b3.use DestroyUnusedNetworkInterfaces
99
+ else
100
+ b3.use MessageWillNotDestroy
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+
107
+ # This is the action that is primarily responsible for halting
108
+ # the virtual machine, gracefully or by force.
109
+ def self.action_halt
110
+ Vagrant::Action::Builder.new.tap do |b|
111
+ b.use CheckVirtualbox
112
+ b.use Call, Created do |env, b2|
113
+ if env[:result]
114
+ b2.use CheckAccessible
115
+ b2.use DiscardState
116
+
117
+ b2.use Call, IsPaused do |env2, b3|
118
+ next if !env2[:result]
119
+ b3.use Resume
120
+ end
121
+
122
+ b2.use Call, GracefulHalt, :poweroff, :running do |env2, b3|
123
+ if !env2[:result]
124
+ b3.use ForcedHalt
125
+ end
126
+ end
127
+ else
128
+ b2.use MessageNotCreated
129
+ end
130
+ end
131
+ end
132
+ end
133
+
134
+ # This action packages the virtual machine into a single box file.
135
+ def self.action_package
136
+ Vagrant::Action::Builder.new.tap do |b|
137
+ b.use CheckVirtualbox
138
+ b.use Call, Created do |env1, b2|
139
+ if !env1[:result]
140
+ b2.use MessageNotCreated
141
+ next
142
+ end
143
+
144
+ b2.use SetupPackageFiles
145
+ b2.use CheckAccessible
146
+ b2.use action_halt
147
+ b2.use ClearForwardedPorts
148
+ b2.use ClearSharedFolders
149
+ b2.use Export
150
+ b2.use PackageVagrantfile
151
+ b2.use Package
152
+ end
153
+ end
154
+ end
155
+
156
+ # This action just runs the provisioners on the machine.
157
+ def self.action_provision
158
+ Vagrant::Action::Builder.new.tap do |b|
159
+ b.use CheckVirtualbox
160
+ b.use ConfigValidate
161
+ b.use Call, Created do |env1, b2|
162
+ if !env1[:result]
163
+ b2.use MessageNotCreated
164
+ next
165
+ end
166
+
167
+ b2.use Call, IsRunning do |env2, b3|
168
+ if !env2[:result]
169
+ b3.use MessageNotRunning
170
+ next
171
+ end
172
+
173
+ b3.use CheckAccessible
174
+ b3.use Provision
175
+ end
176
+ end
177
+ end
178
+ end
179
+
180
+ # This action is responsible for reloading the machine, which
181
+ # brings it down, sucks in new configuration, and brings the
182
+ # machine back up with the new configuration.
183
+ def self.action_reload
184
+ Vagrant::Action::Builder.new.tap do |b|
185
+ b.use CheckVirtualbox
186
+ b.use Call, Created do |env1, b2|
187
+ if !env1[:result]
188
+ b2.use MessageNotCreated
189
+ next
190
+ end
191
+
192
+ b2.use ConfigValidate
193
+ b2.use action_halt
194
+ b2.use action_start
195
+ end
196
+ end
197
+ end
198
+
199
+ # This is the action that is primarily responsible for resuming
200
+ # suspended machines.
201
+ def self.action_resume
202
+ Vagrant::Action::Builder.new.tap do |b|
203
+ b.use CheckVirtualbox
204
+ b.use Call, Created do |env, b2|
205
+ if env[:result]
206
+ b2.use CheckAccessible
207
+ b2.use EnvSet, :port_collision_repair => false
208
+ b2.use PrepareForwardedPortCollisionParams
209
+ b2.use HandleForwardedPortCollisions
210
+ b2.use Resume
211
+ else
212
+ b2.use MessageNotCreated
213
+ end
214
+ end
215
+ end
216
+ end
217
+
218
+ # This is the action that will exec into an SSH shell.
219
+ def self.action_ssh
220
+ Vagrant::Action::Builder.new.tap do |b|
221
+ b.use CheckVirtualbox
222
+ b.use CheckCreated
223
+ b.use CheckAccessible
224
+ b.use CheckRunning
225
+ b.use SSHExec
226
+ end
227
+ end
228
+
229
+ # This is the action that will run a single SSH command.
230
+ def self.action_ssh_run
231
+ Vagrant::Action::Builder.new.tap do |b|
232
+ b.use CheckVirtualbox
233
+ b.use CheckCreated
234
+ b.use CheckAccessible
235
+ b.use CheckRunning
236
+ b.use SSHRun
237
+ end
238
+ end
239
+
240
+ # This action starts a VM, assuming it is already imported and exists.
241
+ # A precondition of this action is that the VM exists.
242
+ def self.action_start
243
+ Vagrant::Action::Builder.new.tap do |b|
244
+ b.use CheckVirtualbox
245
+ b.use ConfigValidate
246
+ b.use Call, IsRunning do |env, b2|
247
+ # If the VM is running, then our work here is done, exit
248
+ if env[:result]
249
+ b2.use MessageAlreadyRunning
250
+ next
251
+ end
252
+
253
+ b2.use Call, IsSaved do |env2, b3|
254
+ if env2[:result]
255
+ # The VM is saved, so just resume it
256
+ b3.use action_resume
257
+ next
258
+ end
259
+
260
+ b3.use Call, IsPaused do |env3, b4|
261
+ if env3[:result]
262
+ b4.use Resume
263
+ next
264
+ end
265
+
266
+ # The VM is not saved, so we must have to boot it up
267
+ # like normal. Boot!
268
+ b4.use action_boot
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
274
+
275
+ # This is the action that is primarily responsible for suspending
276
+ # the virtual machine.
277
+ def self.action_suspend
278
+ Vagrant::Action::Builder.new.tap do |b|
279
+ b.use CheckVirtualbox
280
+ b.use Call, Created do |env, b2|
281
+ if env[:result]
282
+ b2.use CheckAccessible
283
+ b2.use Suspend
284
+ else
285
+ b2.use MessageNotCreated
286
+ end
287
+ end
288
+ end
289
+ end
290
+
291
+ # This action brings the machine up from nothing, including importing
292
+ # the box, configuring metadata, and booting.
293
+ def self.action_up
294
+ Vagrant::Action::Builder.new.tap do |b|
295
+ b.use CheckVirtualbox
296
+ b.use ConfigValidate
297
+ b.use Call, Created do |env, b2|
298
+ # If the VM is NOT created yet, then do the setup steps
299
+ if !env[:result]
300
+ b2.use CheckAccessible
301
+ b2.use HandleBoxUrl
302
+ b2.use Import
303
+ b2.use MatchMACAddress
304
+ end
305
+ end
306
+ b.use action_start
307
+ end
308
+ end
309
+ end
310
+ end
311
+ end
@@ -0,0 +1,86 @@
1
+ module VagrantPlugins
2
+ module ProviderVirtualBox
3
+ class Config < Vagrant.plugin("2", :config)
4
+ # Vagrant by default will make "smart" decisions to enable/disable
5
+ # the NAT DNS proxy. If this is set to `true`, then the DNS proxy
6
+ # will not be enabled, and it is up to the end user to do it.
7
+ #
8
+ # @return [Boolean]
9
+ attr_accessor :auto_nat_dns_proxy
10
+
11
+ # An array of customizations to make on the VM prior to booting it.
12
+ #
13
+ # @return [Array]
14
+ attr_reader :customizations
15
+
16
+ # If set to `true`, then VirtualBox will be launched with a GUI.
17
+ #
18
+ # @return [Boolean]
19
+ attr_accessor :gui
20
+
21
+ # This should be set to the name of the machine in the VirtualBox
22
+ # GUI.
23
+ #
24
+ # @return [String]
25
+ attr_accessor :name
26
+
27
+ # The defined network adapters.
28
+ #
29
+ # @return [Hash]
30
+ attr_reader :network_adapters
31
+
32
+ def initialize
33
+ @auto_nat_dns_proxy = UNSET_VALUE
34
+ @customizations = []
35
+ @name = UNSET_VALUE
36
+ @network_adapters = {}
37
+ @gui = UNSET_VALUE
38
+
39
+ # We require that network adapter 1 is a NAT device.
40
+ network_adapter(1, :nat)
41
+ end
42
+
43
+ # Customize the VM by calling `VBoxManage` with the given
44
+ # arguments.
45
+ #
46
+ # When called multiple times, the customizations will be applied
47
+ # in the order given.
48
+ #
49
+ # The special `:name` parameter in the command will be replaced with
50
+ # the unique ID or name of the virtual machine. This is useful for
51
+ # parameters to `modifyvm` and the like.
52
+ #
53
+ # @param [Array] command An array of arguments to pass to
54
+ # VBoxManage.
55
+ def customize(command)
56
+ @customizations << command
57
+ end
58
+
59
+ # This defines a network adapter that will be added to the VirtualBox
60
+ # virtual machine in the given slot.
61
+ #
62
+ # @param [Integer] slot The slot for this network adapter.
63
+ # @param [Symbol] type The type of adapter.
64
+ def network_adapter(slot, type, *args)
65
+ @network_adapters[slot] = [type, args]
66
+ end
67
+
68
+ # This is the hook that is called to finalize the object before it
69
+ # is put into use.
70
+ def finalize!
71
+ # Default is to auto the DNS proxy
72
+ @auto_nat_dns_proxy = true if @auto_nat_dns_proxy == UNSET_VALUE
73
+
74
+ # Default is to not show a GUI
75
+ @gui = false if @gui == UNSET_VALUE
76
+
77
+ # The default name is just nothing, and we default it
78
+ @name = nil if @name == UNSET_VALUE
79
+ end
80
+
81
+ def to_s
82
+ "VirtualBox"
83
+ end
84
+ end
85
+ end
86
+ end