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,9 @@
1
+ module Vagrant
2
+ module Config
3
+ module V2
4
+ autoload :DummyConfig, "vagrant/config/v2/dummy_config"
5
+ autoload :Loader, "vagrant/config/v2/loader"
6
+ autoload :Root, "vagrant/config/v2/root"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,80 @@
1
+ module Vagrant
2
+ module Config
3
+ # This is the base class for any configuration versions, and includes
4
+ # the stub methods that configuaration versions must implement. Vagrant
5
+ # supports configuration versioning so that backwards compatibility can be
6
+ # maintained for past Vagrantfiles while newer configurations are added.
7
+ # Vagrant only introduces new configuration versions for major versions
8
+ # of Vagrant.
9
+ class VersionBase
10
+ # Returns an empty configuration object. This can be any kind of object,
11
+ # since it is treated as an opaque value on the other side, used only
12
+ # for things like calling into {merge}.
13
+ #
14
+ # @return [Object]
15
+ def self.init
16
+ raise NotImplementedError
17
+ end
18
+
19
+ # This is called just before configuration loading is complete of
20
+ # a potentially completely-merged value to perform final touch-ups
21
+ # to the configuration, if required.
22
+ #
23
+ # This is an optional method to implement. The default implementation
24
+ # will simply return the same object.
25
+ #
26
+ # This will ONLY be called if this is the version that is being
27
+ # used. In the case that an `upgrade` is called, this will never
28
+ # be called.
29
+ #
30
+ # @param [Object] obj Final configuration object.
31
+ # @param [Object] Finalized configuration object.
32
+ def self.finalize(obj)
33
+ obj
34
+ end
35
+
36
+ # Loads the configuration for the given proc and returns a configuration
37
+ # object. The return value is treated as an opaque object, so it can be
38
+ # anything you'd like. The return value is the object that is passed
39
+ # into methods like {merge}, so it should be something you expect.
40
+ #
41
+ # @param [Proc] proc The proc that is to be configured.
42
+ # @return [Object]
43
+ def self.load(proc)
44
+ raise NotImplementedError
45
+ end
46
+
47
+ # Merges two configuration objects, returning the merged object.
48
+ # The values of `old` and `new` are the opaque objects returned by
49
+ # {load} or {init}.
50
+ #
51
+ # Once again, the return object is treated as an opaque value by
52
+ # the Vagrant configuration loader, so it can be anything you'd like.
53
+ #
54
+ # @param [Object] old Old configuration object.
55
+ # @param [Object] new New configuration object.
56
+ # @return [Object] The merged configuration object.
57
+ def self.merge(old, new)
58
+ raise NotImplementedError
59
+ end
60
+
61
+ # This is called if a previous version of configuration needs to be
62
+ # upgraded to this version. Each version of configuration should know
63
+ # how to upgrade the version immediately prior to it. This should be
64
+ # a best effort upgrade that makes many assumptions. The goal is for
65
+ # this to work in almost every case, but perhaps with some warnings.
66
+ # The return value for this is a 3-tuple: `[object, warnings, errors]`,
67
+ # where `object` is the upgraded configuration object, `warnings` is
68
+ # an array of warning messages, and `errors` is an array of error
69
+ # messages.
70
+ #
71
+ # @param [Object] old The version of the configuration object just
72
+ # prior to this one.
73
+ # @return [Array] The 3-tuple result. Please see the above documentation
74
+ # for more information on the exact structure of this object.
75
+ def self.upgrade(old)
76
+ raise NotImplementedError
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,61 @@
1
+ require "vagrant/registry"
2
+
3
+ module Vagrant
4
+ module Config
5
+ autoload :Loader, 'vagrant/config/loader'
6
+ autoload :VersionBase, 'vagrant/config/version_base'
7
+
8
+ autoload :V1, 'vagrant/config/v1'
9
+ autoload :V2, 'vagrant/config/v2'
10
+
11
+ # This is a mutex used to guarantee that only one thread can load
12
+ # procs at any given time.
13
+ CONFIGURE_MUTEX = Mutex.new
14
+
15
+ # This is the registry which keeps track of what configuration
16
+ # versions are available, mapped by the version string used in
17
+ # `Vagrant.configure` calls.
18
+ VERSIONS = Registry.new
19
+ VERSIONS.register("1") { V1::Loader }
20
+ VERSIONS.register("2") { V2::Loader }
21
+
22
+ # This is the order of versions. This is used by the loader to figure out
23
+ # how to "upgrade" versions up to the desired (current) version. The
24
+ # current version is always considered to be the last version in this
25
+ # list.
26
+ VERSIONS_ORDER = ["1", "2"]
27
+ CURRENT_VERSION = VERSIONS_ORDER.last
28
+
29
+ # This is the method which is called by all Vagrantfiles to configure Vagrant.
30
+ # This method expects a block which accepts a single argument representing
31
+ # an instance of the {Config::Top} class.
32
+ #
33
+ # Note that the block is not run immediately. Instead, it's proc is stored
34
+ # away for execution later.
35
+ def self.run(version="1", &block)
36
+ # Store it for later
37
+ @last_procs ||= []
38
+ @last_procs << [version, block]
39
+ end
40
+
41
+ # This is a method which will yield to a block and will capture all
42
+ # ``Vagrant.configure`` calls, returning an array of `Proc`s.
43
+ #
44
+ # Wrapping this around anytime you call code which loads configurations
45
+ # will force a mutex so that procs never get mixed up. This keeps
46
+ # the configuration loading part of Vagrant thread-safe.
47
+ def self.capture_configures
48
+ CONFIGURE_MUTEX.synchronize do
49
+ # Reset the last procs so that we start fresh
50
+ @last_procs = []
51
+
52
+ # Yield to allow the caller to do whatever loading needed
53
+ yield
54
+
55
+ # Return the last procs we've seen while still in the mutex,
56
+ # knowing we're safe.
57
+ return @last_procs
58
+ end
59
+ end
60
+ end
61
+ end