tnargav 1.2.3 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (380) hide show
  1. data/.gitignore +19 -3
  2. data/CHANGELOG.md +311 -0
  3. data/bin/vagrant +12 -0
  4. data/config/default.rb +2 -4
  5. data/keys/README.md +0 -7
  6. data/lib/vagrant.rb +7 -0
  7. data/lib/vagrant/action.rb +2 -0
  8. data/lib/vagrant/action/builtin/box_add.rb +12 -1
  9. data/lib/vagrant/action/builtin/confirm.rb +1 -0
  10. data/lib/vagrant/action/builtin/graceful_halt.rb +9 -5
  11. data/lib/vagrant/action/builtin/handle_box_url.rb +16 -7
  12. data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +1 -1
  13. data/lib/vagrant/action/builtin/mixin_provisioners.rb +43 -0
  14. data/lib/vagrant/action/builtin/nfs.rb +18 -8
  15. data/lib/vagrant/action/builtin/provision.rb +30 -21
  16. data/lib/vagrant/action/builtin/provisioner_cleanup.rb +35 -0
  17. data/lib/vagrant/action/builtin/wait_for_communicator.rb +84 -0
  18. data/lib/vagrant/action/warden.rb +2 -1
  19. data/lib/vagrant/box_collection.rb +62 -44
  20. data/lib/vagrant/cli.rb +1 -9
  21. data/lib/vagrant/config/v2/root.rb +6 -0
  22. data/lib/vagrant/environment.rb +27 -51
  23. data/lib/vagrant/errors.rb +33 -1
  24. data/lib/vagrant/guest.rb +2 -2
  25. data/lib/vagrant/machine.rb +14 -22
  26. data/lib/vagrant/plugin/v2/command.rb +4 -1
  27. data/lib/vagrant/plugin/v2/communicator.rb +21 -0
  28. data/lib/vagrant/plugin/v2/guest.rb +1 -56
  29. data/lib/vagrant/plugin/v2/provisioner.rb +6 -0
  30. data/lib/vagrant/util/downloader.rb +7 -2
  31. data/lib/vagrant/util/platform.rb +43 -0
  32. data/lib/vagrant/util/ssh.rb +5 -0
  33. data/lib/vagrant/util/subprocess.rb +16 -2
  34. data/lib/vagrant/version.rb +1 -1
  35. data/plugins/commands/box/command/remove.rb +22 -2
  36. data/plugins/commands/box/command/repackage.rb +1 -1
  37. data/plugins/commands/destroy/command.rb +8 -3
  38. data/plugins/commands/help/command.rb +12 -0
  39. data/plugins/commands/help/plugin.rb +17 -0
  40. data/plugins/commands/plugin/action.rb +11 -0
  41. data/plugins/commands/plugin/action/install_gem.rb +26 -1
  42. data/plugins/commands/plugin/action/plugin_exists_check.rb +26 -0
  43. data/plugins/commands/plugin/command/install.rb +4 -21
  44. data/plugins/commands/plugin/command/mixin_install_opts.rb +30 -0
  45. data/plugins/commands/plugin/command/root.rb +5 -0
  46. data/plugins/commands/plugin/command/update.rb +41 -0
  47. data/plugins/commands/reload/command.rb +4 -0
  48. data/plugins/commands/status/command.rb +6 -1
  49. data/plugins/commands/up/command.rb +10 -0
  50. data/plugins/commands/up/start_mixins.rb +12 -1
  51. data/plugins/communicators/ssh/communicator.rb +61 -6
  52. data/plugins/guests/arch/cap/change_host_name.rb +1 -2
  53. data/plugins/guests/arch/cap/configure_networks.rb +6 -0
  54. data/plugins/guests/coreos/cap/change_host_name.rb +15 -0
  55. data/plugins/guests/coreos/cap/configure_networks.rb +72 -0
  56. data/plugins/guests/coreos/guest.rb +9 -0
  57. data/plugins/guests/coreos/plugin.rb +25 -0
  58. data/plugins/guests/darwin/cap/change_host_name.rb +14 -0
  59. data/plugins/guests/darwin/cap/configure_networks.rb +52 -0
  60. data/plugins/guests/darwin/cap/halt.rb +16 -0
  61. data/plugins/guests/darwin/cap/mount_nfs_folder.rb +25 -0
  62. data/plugins/guests/darwin/cap/mount_vmware_shared_folder.rb +36 -0
  63. data/plugins/guests/darwin/cap/shell_expand_guest_path.rb +26 -0
  64. data/plugins/guests/darwin/cap/verify_vmware_hgfs.rb +12 -0
  65. data/plugins/guests/darwin/guest.rb +15 -0
  66. data/plugins/guests/darwin/plugin.rb +50 -0
  67. data/plugins/guests/debian/cap/change_host_name.rb +1 -0
  68. data/plugins/guests/gentoo/guest.rb +1 -1
  69. data/plugins/guests/linux/cap/mount_nfs.rb +9 -1
  70. data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +26 -7
  71. data/plugins/guests/linux/cap/shell_expand_guest_path.rb +4 -1
  72. data/plugins/guests/openbsd/cap/change_host_name.rb +14 -0
  73. data/plugins/guests/openbsd/cap/configure_networks.rb +40 -0
  74. data/plugins/guests/openbsd/cap/mount_nfs_folder.rb +14 -0
  75. data/plugins/guests/openbsd/plugin.rb +15 -0
  76. data/plugins/guests/solaris/cap/halt.rb +2 -1
  77. data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +4 -1
  78. data/plugins/guests/solaris11/cap/change_host_name.rb +25 -0
  79. data/plugins/guests/solaris11/cap/configure_networks.rb +32 -0
  80. data/plugins/guests/solaris11/cap/halt.rb +26 -0
  81. data/plugins/guests/solaris11/cap/mount_virtualbox_shared_folder.rb +35 -0
  82. data/plugins/guests/solaris11/config.rb +22 -0
  83. data/plugins/guests/solaris11/guest.rb +15 -0
  84. data/plugins/guests/solaris11/plugin.rb +44 -0
  85. data/plugins/guests/suse/cap/configure_networks.rb +60 -0
  86. data/plugins/guests/suse/plugin.rb +5 -0
  87. data/plugins/guests/ubuntu/cap/change_host_name.rb +1 -0
  88. data/plugins/guests/ubuntu/cap/mount_nfs.rb +19 -0
  89. data/plugins/guests/ubuntu/cap/mount_virtualbox_shared_folder.rb +14 -0
  90. data/plugins/guests/ubuntu/guest.rb +0 -19
  91. data/plugins/guests/ubuntu/plugin.rb +10 -0
  92. data/plugins/hosts/arch/host.rb +5 -28
  93. data/plugins/hosts/bsd/host.rb +83 -7
  94. data/plugins/hosts/fedora/host.rb +12 -6
  95. data/plugins/hosts/gentoo/host.rb +3 -1
  96. data/plugins/hosts/linux/host.rb +42 -9
  97. data/plugins/hosts/opensuse/host.rb +3 -1
  98. data/plugins/hosts/slackware/host.rb +26 -0
  99. data/plugins/hosts/slackware/plugin.rb +15 -0
  100. data/plugins/kernel_v1/config/ssh.rb +2 -2
  101. data/plugins/kernel_v2/config/ssh.rb +8 -16
  102. data/plugins/kernel_v2/config/vm.rb +68 -11
  103. data/plugins/providers/virtualbox/action.rb +15 -2
  104. data/plugins/providers/virtualbox/action/boot.rb +0 -26
  105. data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +1 -1
  106. data/plugins/providers/virtualbox/action/customize.rb +10 -3
  107. data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +8 -1
  108. data/plugins/providers/virtualbox/action/forward_ports.rb +1 -0
  109. data/plugins/providers/virtualbox/action/import.rb +3 -0
  110. data/plugins/providers/virtualbox/action/network.rb +14 -2
  111. data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +7 -2
  112. data/plugins/providers/virtualbox/action/set_name.rb +13 -1
  113. data/plugins/providers/virtualbox/config.rb +39 -2
  114. data/plugins/providers/virtualbox/driver/base.rb +5 -0
  115. data/plugins/providers/virtualbox/driver/meta.rb +7 -1
  116. data/plugins/providers/virtualbox/driver/version_4_0.rb +2 -2
  117. data/plugins/providers/virtualbox/driver/version_4_1.rb +2 -2
  118. data/plugins/providers/virtualbox/driver/version_4_2.rb +17 -0
  119. data/plugins/providers/virtualbox/model/forwarded_port.rb +7 -1
  120. data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +5 -1
  121. data/plugins/provisioners/ansible/config.rb +40 -23
  122. data/plugins/provisioners/ansible/provisioner.rb +68 -13
  123. data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +1 -1
  124. data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +1 -1
  125. data/plugins/provisioners/cfengine/config.rb +7 -1
  126. data/plugins/provisioners/cfengine/provisioner.rb +4 -5
  127. data/plugins/provisioners/chef/config/base.rb +31 -0
  128. data/plugins/provisioners/chef/config/chef_client.rb +15 -6
  129. data/plugins/provisioners/chef/config/chef_solo.rb +18 -11
  130. data/plugins/provisioners/chef/provisioner/base.rb +23 -3
  131. data/plugins/provisioners/chef/provisioner/chef_client.rb +25 -6
  132. data/plugins/provisioners/chef/provisioner/chef_solo.rb +16 -13
  133. data/plugins/provisioners/file/config.rb +29 -0
  134. data/plugins/provisioners/file/plugin.rb +23 -0
  135. data/plugins/provisioners/file/provisioner.rb +16 -0
  136. data/plugins/provisioners/puppet/config/puppet.rb +4 -1
  137. data/plugins/provisioners/puppet/provisioner/puppet.rb +15 -9
  138. data/plugins/provisioners/puppet/provisioner/puppet_server.rb +9 -2
  139. data/plugins/provisioners/salt/bootstrap-salt.sh +6 -0
  140. data/plugins/provisioners/salt/config.rb +105 -0
  141. data/plugins/provisioners/salt/errors.rb +11 -0
  142. data/plugins/provisioners/salt/plugin.rb +22 -0
  143. data/plugins/provisioners/salt/provisioner.rb +249 -0
  144. data/plugins/provisioners/shell/config.rb +11 -2
  145. data/plugins/provisioners/shell/provisioner.rb +15 -3
  146. data/scripts/website_push_docs.sh +12 -0
  147. data/scripts/website_push_www.sh +12 -0
  148. data/templates/commands/init/Vagrantfile.erb +5 -2
  149. data/templates/commands/ssh_config/config.erb +4 -0
  150. data/templates/guests/coreos/etcd.service.erb +10 -0
  151. data/templates/guests/fedora/network_static.erb +2 -3
  152. data/templates/guests/openbsd/network_dhcp.erb +1 -0
  153. data/templates/guests/openbsd/network_static.erb +1 -0
  154. data/templates/guests/suse/network_dhcp.erb +6 -0
  155. data/templates/guests/suse/network_static.erb +10 -0
  156. data/templates/locales/en.yml +123 -13
  157. data/templates/nfs/exports.erb +4 -4
  158. data/templates/nfs/exports_freebsd.erb +4 -4
  159. data/templates/nfs/exports_linux.erb +5 -3
  160. data/templates/provisioners/chef_client/client.erb +9 -0
  161. data/templates/provisioners/chef_solo/solo.erb +19 -1
  162. data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +1 -2
  163. data/test/unit/vagrant/cli_test.rb +1 -0
  164. data/test/unit/vagrant/config/v2/root_test.rb +18 -0
  165. data/test/unit/vagrant/environment_test.rb +25 -0
  166. data/test/unit/vagrant/util/downloader_test.rb +4 -4
  167. data/test/unit/vagrant_test.rb +18 -0
  168. data/website/docs/.buildpacks +2 -0
  169. data/website/docs/Gemfile +13 -0
  170. data/website/docs/Gemfile.lock +141 -0
  171. data/website/docs/Procfile +1 -0
  172. data/website/docs/README.md +26 -0
  173. data/website/docs/config.rb +78 -0
  174. data/website/docs/config.ru +44 -0
  175. data/website/docs/helpers/sidebar_helpers.rb +19 -0
  176. data/website/docs/lib/redirect_to_latest.rb +25 -0
  177. data/website/docs/lib/redirect_v1_docs.rb +26 -0
  178. data/website/docs/source/404.html.erb +7 -0
  179. data/website/docs/source/images/bullet_1.png +0 -0
  180. data/website/docs/source/images/bullet_2.png +0 -0
  181. data/website/docs/source/images/bullet_3.png +0 -0
  182. data/website/docs/source/images/customers.png +0 -0
  183. data/website/docs/source/images/customers_small.png +0 -0
  184. data/website/docs/source/images/footer_background.png +0 -0
  185. data/website/docs/source/images/footer_hashi_logo.png +0 -0
  186. data/website/docs/source/images/footer_vagrant_logo.png +0 -0
  187. data/website/docs/source/images/get_started_background.png +0 -0
  188. data/website/docs/source/images/icon_caution.png +0 -0
  189. data/website/docs/source/images/logo_docs.png +0 -0
  190. data/website/docs/source/images/logo_docs_small.png +0 -0
  191. data/website/docs/source/images/logo_small.png +0 -0
  192. data/website/docs/source/images/logo_vagrant.png +0 -0
  193. data/website/docs/source/images/open_close.png +0 -0
  194. data/website/docs/source/images/search_icon.png +0 -0
  195. data/website/docs/source/images/sidebar_background_docs.png +0 -0
  196. data/website/docs/source/images/sidebar_background_inner.png +0 -0
  197. data/website/docs/source/images/steps_background.png +0 -0
  198. data/website/docs/source/images/vagrant_header_background.png +0 -0
  199. data/website/docs/source/index.html.erb +0 -0
  200. data/website/docs/source/javascripts/backstretch.js +4 -0
  201. data/website/docs/source/javascripts/bootstrap.min.js +7 -0
  202. data/website/docs/source/javascripts/fittext.js +43 -0
  203. data/website/docs/source/javascripts/grid-overlay.js +161 -0
  204. data/website/docs/source/javascripts/jquery.js +2 -0
  205. data/website/docs/source/javascripts/less-1.3.0.min.js +9 -0
  206. data/website/docs/source/javascripts/modernizr.js +1384 -0
  207. data/website/docs/source/javascripts/vagrantup.js +15 -0
  208. data/website/docs/source/layouts/layout.erb +266 -0
  209. data/website/docs/source/stylesheets/_base.less +317 -0
  210. data/website/docs/source/stylesheets/_components.less +74 -0
  211. data/website/docs/source/stylesheets/_footer.less +101 -0
  212. data/website/docs/source/stylesheets/_media-queries.less +452 -0
  213. data/website/docs/source/stylesheets/_mixins.less +174 -0
  214. data/website/docs/source/stylesheets/_nav.less +71 -0
  215. data/website/docs/source/stylesheets/_pages.less +276 -0
  216. data/website/docs/source/stylesheets/_sidebar.less +136 -0
  217. data/website/docs/source/stylesheets/_type.less +36 -0
  218. data/website/docs/source/stylesheets/_variables.less +39 -0
  219. data/website/docs/source/stylesheets/bootstrap.css +5946 -0
  220. data/website/docs/source/stylesheets/vagrantup.less +16 -0
  221. data/website/docs/source/v2/boxes.html.md +78 -0
  222. data/website/docs/source/v2/boxes/format.html.md +32 -0
  223. data/website/docs/source/v2/cli/box.html.md +62 -0
  224. data/website/docs/source/v2/cli/destroy.html.md +20 -0
  225. data/website/docs/source/v2/cli/halt.html.md +19 -0
  226. data/website/docs/source/v2/cli/index.html.md +24 -0
  227. data/website/docs/source/v2/cli/init.html.md +18 -0
  228. data/website/docs/source/v2/cli/package.html.md +43 -0
  229. data/website/docs/source/v2/cli/plugin.html.md +56 -0
  230. data/website/docs/source/v2/cli/provision.html.md +24 -0
  231. data/website/docs/source/v2/cli/reload.html.md +27 -0
  232. data/website/docs/source/v2/cli/resume.html.md +11 -0
  233. data/website/docs/source/v2/cli/ssh.html.md +24 -0
  234. data/website/docs/source/v2/cli/ssh_config.html.md +16 -0
  235. data/website/docs/source/v2/cli/status.html.md +14 -0
  236. data/website/docs/source/v2/cli/suspend.html.md +19 -0
  237. data/website/docs/source/v2/cli/up.html.md +34 -0
  238. data/website/docs/source/v2/debugging.html.md +42 -0
  239. data/website/docs/source/v2/getting-started/boxes.html.md +56 -0
  240. data/website/docs/source/v2/getting-started/index.html.md +43 -0
  241. data/website/docs/source/v2/getting-started/networking.html.md +45 -0
  242. data/website/docs/source/v2/getting-started/project_setup.html.md +38 -0
  243. data/website/docs/source/v2/getting-started/providers.html.md +37 -0
  244. data/website/docs/source/v2/getting-started/provisioning.html.md +75 -0
  245. data/website/docs/source/v2/getting-started/rebuild.html.md +17 -0
  246. data/website/docs/source/v2/getting-started/synced_folders.html.md +42 -0
  247. data/website/docs/source/v2/getting-started/teardown.html.md +41 -0
  248. data/website/docs/source/v2/getting-started/up.html.md +35 -0
  249. data/website/docs/source/v2/index.html.md +10 -0
  250. data/website/docs/source/v2/installation/backwards-compatibility.html.md +35 -0
  251. data/website/docs/source/v2/installation/index.html.md +28 -0
  252. data/website/docs/source/v2/installation/uninstallation.html.md +39 -0
  253. data/website/docs/source/v2/installation/upgrading-from-1-0.html.md +26 -0
  254. data/website/docs/source/v2/installation/upgrading.html.md +20 -0
  255. data/website/docs/source/v2/multi-machine/index.html.md +105 -0
  256. data/website/docs/source/v2/networking/basic_usage.html.md +43 -0
  257. data/website/docs/source/v2/networking/forwarded_ports.html.md +57 -0
  258. data/website/docs/source/v2/networking/index.html.md +40 -0
  259. data/website/docs/source/v2/networking/private_network.html.md +48 -0
  260. data/website/docs/source/v2/networking/public_network.html.md +53 -0
  261. data/website/docs/source/v2/plugins/commands.html.md +116 -0
  262. data/website/docs/source/v2/plugins/configuration.html.md +166 -0
  263. data/website/docs/source/v2/plugins/development-basics.html.md +139 -0
  264. data/website/docs/source/v2/plugins/guest-capabilities.html.md +100 -0
  265. data/website/docs/source/v2/plugins/guests.html.md +99 -0
  266. data/website/docs/source/v2/plugins/hosts.html.md +46 -0
  267. data/website/docs/source/v2/plugins/index.html.md +21 -0
  268. data/website/docs/source/v2/plugins/packaging.html.md +102 -0
  269. data/website/docs/source/v2/plugins/providers.html.md +234 -0
  270. data/website/docs/source/v2/plugins/provisioners.html.md +64 -0
  271. data/website/docs/source/v2/plugins/usage.html.md +58 -0
  272. data/website/docs/source/v2/providers/basic_usage.html.md +67 -0
  273. data/website/docs/source/v2/providers/configuration.html.md +89 -0
  274. data/website/docs/source/v2/providers/custom.html.md +9 -0
  275. data/website/docs/source/v2/providers/default.html.md +22 -0
  276. data/website/docs/source/v2/providers/index.html.md +23 -0
  277. data/website/docs/source/v2/providers/installation.html.md +11 -0
  278. data/website/docs/source/v2/provisioning/ansible.html.md +144 -0
  279. data/website/docs/source/v2/provisioning/basic_usage.html.md +67 -0
  280. data/website/docs/source/v2/provisioning/chef_client.html.md +109 -0
  281. data/website/docs/source/v2/provisioning/chef_solo.html.md +156 -0
  282. data/website/docs/source/v2/provisioning/index.html.md +28 -0
  283. data/website/docs/source/v2/provisioning/puppet_agent.html.md +70 -0
  284. data/website/docs/source/v2/provisioning/puppet_apply.html.md +114 -0
  285. data/website/docs/source/v2/provisioning/shell.html.md +88 -0
  286. data/website/docs/source/v2/synced-folders/basic_usage.html.md +53 -0
  287. data/website/docs/source/v2/synced-folders/index.html.md +17 -0
  288. data/website/docs/source/v2/synced-folders/nfs.html.md +53 -0
  289. data/website/docs/source/v2/vagrantfile/index.html.md +75 -0
  290. data/website/docs/source/v2/vagrantfile/machine_settings.html.md +84 -0
  291. data/website/docs/source/v2/vagrantfile/ssh_settings.html.md +61 -0
  292. data/website/docs/source/v2/vagrantfile/vagrant_settings.html.md +19 -0
  293. data/website/docs/source/v2/vagrantfile/version.html.md +64 -0
  294. data/website/docs/source/v2/virtualbox/boxes.html.md +71 -0
  295. data/website/docs/source/v2/virtualbox/configuration.html.md +63 -0
  296. data/website/docs/source/v2/virtualbox/index.html.md +21 -0
  297. data/website/docs/source/v2/virtualbox/usage.html.md +12 -0
  298. data/website/docs/source/v2/vmware/boxes.html.md +107 -0
  299. data/website/docs/source/v2/vmware/configuration.html.md +91 -0
  300. data/website/docs/source/v2/vmware/index.html.md +30 -0
  301. data/website/docs/source/v2/vmware/installation.html.md +40 -0
  302. data/website/docs/source/v2/vmware/known-issues.html.md +21 -0
  303. data/website/docs/source/v2/vmware/usage.html.md +27 -0
  304. data/website/docs/source/v2/why-vagrant/index.html.md +46 -0
  305. data/website/www/.buildpacks +2 -0
  306. data/website/www/Gemfile +15 -0
  307. data/website/www/Gemfile.lock +123 -0
  308. data/website/www/Procfile +1 -0
  309. data/website/www/README.md +26 -0
  310. data/website/www/config.rb +88 -0
  311. data/website/www/config.ru +39 -0
  312. data/website/www/helpers/sidebar_helpers.rb +12 -0
  313. data/website/www/lib/legacy_redirect.rb +32 -0
  314. data/website/www/source/404.html.erb +11 -0
  315. data/website/www/source/_sidebar_about.erb +5 -0
  316. data/website/www/source/_sidebar_blog.erb +11 -0
  317. data/website/www/source/_sidebar_support.html.erb +6 -0
  318. data/website/www/source/about.html.markdown +16 -0
  319. data/website/www/source/blog.html.erb +34 -0
  320. data/website/www/source/blog/2013-09-16-test.html.markdown +26 -0
  321. data/website/www/source/blog_feed.xml.builder +23 -0
  322. data/website/www/source/images/bullet_1.png +0 -0
  323. data/website/www/source/images/bullet_2.png +0 -0
  324. data/website/www/source/images/bullet_3.png +0 -0
  325. data/website/www/source/images/customers.png +0 -0
  326. data/website/www/source/images/customers_small.png +0 -0
  327. data/website/www/source/images/footer_background.png +0 -0
  328. data/website/www/source/images/footer_hashi_logo.png +0 -0
  329. data/website/www/source/images/footer_vagrant_logo.png +0 -0
  330. data/website/www/source/images/get_started_background.png +0 -0
  331. data/website/www/source/images/icon_caution.png +0 -0
  332. data/website/www/source/images/logo_docs.png +0 -0
  333. data/website/www/source/images/logo_docs_small.png +0 -0
  334. data/website/www/source/images/logo_small.png +0 -0
  335. data/website/www/source/images/logo_vagrant.png +0 -0
  336. data/website/www/source/images/open_close.png +0 -0
  337. data/website/www/source/images/search_icon.png +0 -0
  338. data/website/www/source/images/sidebar_background_docs.png +0 -0
  339. data/website/www/source/images/sidebar_background_inner.png +0 -0
  340. data/website/www/source/images/sponsors/fastly.png +0 -0
  341. data/website/www/source/images/sponsors/kiip.png +0 -0
  342. data/website/www/source/images/sponsors/softlayer.jpg +0 -0
  343. data/website/www/source/images/sponsors/typekit.png +0 -0
  344. data/website/www/source/images/steps_background.png +0 -0
  345. data/website/www/source/images/vagrant_header_background.png +0 -0
  346. data/website/www/source/images/vagrant_vmware_background.png +0 -0
  347. data/website/www/source/index.html.erb +109 -0
  348. data/website/www/source/javascripts/backstretch.js +4 -0
  349. data/website/www/source/javascripts/bootstrap.min.js +7 -0
  350. data/website/www/source/javascripts/fittext.js +43 -0
  351. data/website/www/source/javascripts/grid-overlay.js +161 -0
  352. data/website/www/source/javascripts/jquery.js +2 -0
  353. data/website/www/source/javascripts/less-1.3.0.min.js +9 -0
  354. data/website/www/source/javascripts/modernizr.js +1384 -0
  355. data/website/www/source/javascripts/vagrantup.js +58 -0
  356. data/website/www/source/layouts/blog_post.erb +42 -0
  357. data/website/www/source/layouts/inner.erb +34 -0
  358. data/website/www/source/layouts/layout.erb +107 -0
  359. data/website/www/source/sponsors.html.erb +23 -0
  360. data/website/www/source/stylesheets/_base.less +326 -0
  361. data/website/www/source/stylesheets/_components.less +74 -0
  362. data/website/www/source/stylesheets/_footer.less +101 -0
  363. data/website/www/source/stylesheets/_media-queries.less +549 -0
  364. data/website/www/source/stylesheets/_mixins.less +175 -0
  365. data/website/www/source/stylesheets/_modules.less +37 -0
  366. data/website/www/source/stylesheets/_nav.less +74 -0
  367. data/website/www/source/stylesheets/_pages.less +467 -0
  368. data/website/www/source/stylesheets/_sidebar.less +137 -0
  369. data/website/www/source/stylesheets/_type.less +36 -0
  370. data/website/www/source/stylesheets/_variables.less +39 -0
  371. data/website/www/source/stylesheets/bootstrap.css +5946 -0
  372. data/website/www/source/stylesheets/vagrantup.less +17 -0
  373. data/website/www/source/support.html.erb +25 -0
  374. data/website/www/source/support/community.html.erb +28 -0
  375. data/website/www/source/support/professional.html.erb +17 -0
  376. data/website/www/source/vmware/eula.html.md +21 -0
  377. data/website/www/source/vmware/index.html.erb +185 -0
  378. data/website/www/source/vmware/privacy-policy.html.md +71 -0
  379. data/website/www/source/vmware/terms-of-service.html.md +50 -0
  380. metadata +436 -186
@@ -0,0 +1,32 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ module VagrantPlugins
6
+ module GuestSolaris11
7
+ module Cap
8
+ class ConfigureNetworks
9
+ def self.configure_networks(machine, networks)
10
+ networks.each do |network|
11
+ device = "#{machine.config.solaris11.device}#{network[:interface]}"
12
+ su_cmd = machine.config.solaris11.suexec_cmd
13
+ mask = "#{network[:netmask]}"
14
+ cidr = mask.split(".").map { |e| e.to_i.to_s(2).rjust(8, "0") }.join.count("1").to_s
15
+ #ifconfig_cmd = "#{su_cmd} /sbin/ifconfig #{device}"
16
+ #machine.communicate.execute("#{ifconfig_cmd} plumb")
17
+ if network[:type].to_sym == :static
18
+ #machine.communicate.execute("#{ifconfig_cmd} inet #{network[:ip]} netmask #{network[:netmask]}")
19
+ #machine.communicate.execute("#{ifconfig_cmd} up")
20
+ #machine.communicate.execute("#{su_cmd} sh -c \"echo '#{network[:ip]}' > /etc/hostname.#{device}\"")
21
+ # ipadm create-addr -T static -a local=172.16.10.15/24 net2/v4
22
+ machine.communicate.execute("#{su_cmd} ipadm create-addr -T static -a #{network[:ip]}/#{cidr} #{device}/v4")
23
+ elsif network[:type].to_sym == :dhcp
24
+ #machine.communicate.execute("#{ifconfig_cmd} dhcp start")
25
+ machine.communicate.execute("#{su_cmd} ipadm create-addr -T addrconf #{device}/v4")
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ module VagrantPlugins
6
+ module GuestSolaris11
7
+ module Cap
8
+ class Halt
9
+ def self.halt(machine)
10
+ # There should be an exception raised if the line
11
+ #
12
+ # vagrant::::profiles=Primary Administrator
13
+ #
14
+ # does not exist in /etc/user_attr. TODO
15
+ begin
16
+ machine.communicate.execute(
17
+ "#{machine.config.solaris11.suexec_cmd} /usr/sbin/shutdown -y -i5 -g0")
18
+ rescue IOError
19
+ # Ignore, this probably means connection closed because it
20
+ # shut down.
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,35 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ module VagrantPlugins
6
+ module GuestSolaris11
7
+ module Cap
8
+ class MountVirtualBoxSharedFolder
9
+ def self.mount_virtualbox_shared_folder(machine, name, guestpath, options)
10
+ # These are just far easier to use than the full options syntax
11
+ owner = options[:owner]
12
+ group = options[:group]
13
+
14
+ # Create the shared folder
15
+ machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} mkdir -p #{guestpath}")
16
+
17
+ # We have to use this `id` command instead of `/usr/bin/id` since this
18
+ # one accepts the "-u" and "-g" flags.
19
+ id_cmd = "/usr/xpg4/bin/id"
20
+
21
+ # Mount the folder with the proper owner/group
22
+ mount_options = "-o uid=`#{id_cmd} -u #{owner}`,gid=`#{id_cmd} -g #{group}`"
23
+ if options[:mount_options]
24
+ mount_options += ",#{options[:mount_options].join(",")}"
25
+ end
26
+
27
+ machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} /sbin/mount -F vboxfs #{mount_options} #{name} #{guestpath}")
28
+
29
+ # chown the folder to the proper owner/group
30
+ machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} chown `#{id_cmd} -u #{owner}`:`#{id_cmd} -g #{group}` #{guestpath}")
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,22 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ module VagrantPlugins
6
+ module GuestSolaris11
7
+ class Config < Vagrant.plugin("2", :config)
8
+ attr_accessor :halt_timeout
9
+ attr_accessor :halt_check_interval
10
+ # This sets the command to use to execute items as a superuser. sudo is default
11
+ attr_accessor :suexec_cmd
12
+ attr_accessor :device
13
+
14
+ def initialize
15
+ @halt_timeout = 30
16
+ @halt_check_interval = 1
17
+ @suexec_cmd = 'sudo'
18
+ @device = "net"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ require "vagrant"
6
+
7
+ module VagrantPlugins
8
+ module GuestSolaris11
9
+ class Guest < Vagrant.plugin("2", :guest)
10
+ def detect?(machine)
11
+ machine.communicate.test("uname -s | grep SunOS")
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,44 @@
1
+ # A general Vagrant system implementation for "solaris 11".
2
+ #
3
+ # Contributed by Jan Thomas Moldung <janth@moldung.no>
4
+
5
+ require "vagrant"
6
+
7
+ module VagrantPlugins
8
+ module GuestSolaris11
9
+ class Plugin < Vagrant.plugin("2")
10
+ name "Solaris 11 guest."
11
+ description "Solaris 11 guest support."
12
+
13
+ config("solaris11") do
14
+ require File.expand_path("../config", __FILE__)
15
+ Config
16
+ end
17
+
18
+ guest("solaris11") do
19
+ require File.expand_path("../guest", __FILE__)
20
+ Guest
21
+ end
22
+
23
+ guest_capability("solaris11", "change_host_name") do
24
+ require_relative "cap/change_host_name"
25
+ Cap::ChangeHostName
26
+ end
27
+
28
+ guest_capability("solaris11", "configure_networks") do
29
+ require_relative "cap/configure_networks"
30
+ Cap::ConfigureNetworks
31
+ end
32
+
33
+ guest_capability("solaris11", "halt") do
34
+ require_relative "cap/halt"
35
+ Cap::Halt
36
+ end
37
+
38
+ guest_capability("solaris11", "mount_virtualbox_shared_folder") do
39
+ require_relative "cap/mount_virtualbox_shared_folder"
40
+ Cap::MountVirtualBoxSharedFolder
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,60 @@
1
+ require "set"
2
+ require "tempfile"
3
+
4
+ require "vagrant/util/retryable"
5
+ require "vagrant/util/template_renderer"
6
+
7
+ module VagrantPlugins
8
+ module GuestSuse
9
+ module Cap
10
+ class ConfigureNetworks
11
+ extend Vagrant::Util::Retryable
12
+ include Vagrant::Util
13
+
14
+ def self.configure_networks(machine, networks)
15
+ network_scripts_dir = machine.guest.capability("network_scripts_dir")
16
+
17
+ # Accumulate the configurations to add to the interfaces file as
18
+ # well as what interfaces we're actually configuring since we use that
19
+ # later.
20
+ interfaces = Set.new
21
+ networks.each do |network|
22
+ interfaces.add(network[:interface])
23
+
24
+ # Remove any previous vagrant configuration in this network interface's
25
+ # configuration files.
26
+ machine.communicate.sudo("touch #{network_scripts_dir}/ifcfg-eth#{network[:interface]}")
27
+ machine.communicate.sudo("sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' #{network_scripts_dir}/ifcfg-eth#{network[:interface]} > /tmp/vagrant-ifcfg-eth#{network[:interface]}")
28
+ machine.communicate.sudo("cat /tmp/vagrant-ifcfg-eth#{network[:interface]} > #{network_scripts_dir}/ifcfg-eth#{network[:interface]}")
29
+ machine.communicate.sudo("rm /tmp/vagrant-ifcfg-eth#{network[:interface]}")
30
+
31
+ # Render and upload the network entry file to a deterministic
32
+ # temporary location.
33
+ entry = TemplateRenderer.render("guests/suse/network_#{network[:type]}",
34
+ :options => network)
35
+
36
+ temp = Tempfile.new("vagrant")
37
+ temp.binmode
38
+ temp.write(entry)
39
+ temp.close
40
+
41
+ machine.communicate.upload(temp.path, "/tmp/vagrant-network-entry_#{network[:interface]}")
42
+ end
43
+
44
+ # Bring down all the interfaces we're reconfiguring. By bringing down
45
+ # each specifically, we avoid reconfiguring eth0 (the NAT interface) so
46
+ # SSH never dies.
47
+ interfaces.each do |interface|
48
+ retryable(:on => Vagrant::Errors::VagrantError, :tries => 3, :sleep => 2) do
49
+ machine.communicate.sudo("/sbin/ifdown eth#{interface} 2> /dev/null", :error_check => false)
50
+ machine.communicate.sudo("cat /tmp/vagrant-network-entry_#{interface} >> #{network_scripts_dir}/ifcfg-eth#{interface}")
51
+ machine.communicate.sudo("/sbin/ifup eth#{interface} 2> /dev/null")
52
+ end
53
+
54
+ machine.communicate.sudo("rm /tmp/vagrant-network-entry_#{interface}")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -16,6 +16,11 @@ module VagrantPlugins
16
16
  Cap::ChangeHostName
17
17
  end
18
18
 
19
+ guest_capability("suse", "configure_networks") do
20
+ require_relative "cap/configure_networks"
21
+ Cap::ConfigureNetworks
22
+ end
23
+
19
24
  guest_capability("suse", "network_scripts_dir") do
20
25
  require_relative "cap/network_scripts_dir"
21
26
  Cap::NetworkScriptsDir
@@ -14,6 +14,7 @@ module VagrantPlugins
14
14
  comm.sudo("service hostname start")
15
15
  end
16
16
  comm.sudo("hostname --fqdn > /etc/mailname")
17
+ comm.sudo("ifdown -a; ifup -a; ifup -a --allow=hotplug")
17
18
  end
18
19
  end
19
20
  end
@@ -0,0 +1,19 @@
1
+ require Vagrant.source_root.join("plugins/guests/linux/cap/mount_nfs")
2
+
3
+ module VagrantPlugins
4
+ module GuestUbuntu
5
+ module Cap
6
+ class MountNFS < GuestLinux::Cap::MountNFS
7
+ def self.mount_nfs_folder(machine, ip, folders)
8
+ super
9
+
10
+ # Emit an upstart events if upstart is available
11
+ folders.each do |name, opts|
12
+ real_guestpath = machine.guest.capability(:shell_expand_guest_path, opts[:guestpath])
13
+ machine.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{real_guestpath}")
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ require Vagrant.source_root.join("plugins/guests/linux/cap/mount_virtualbox_shared_folder")
2
+
3
+ module VagrantPlugins
4
+ module GuestUbuntu
5
+ module Cap
6
+ class MountVirtualBoxSharedFolder < GuestLinux::Cap::MountVirtualBoxSharedFolder
7
+ def self.mount_virtualbox_shared_folder(machine, name, guestpath, options)
8
+ super
9
+ machine.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{guestpath}")
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -8,25 +8,6 @@ module VagrantPlugins
8
8
  def detect?(machine)
9
9
  machine.communicate.test("cat /etc/issue | grep 'Ubuntu'")
10
10
  end
11
-
12
- def mount_shared_folder(name, guestpath, options)
13
- # Mount it like normal
14
- super
15
-
16
- # Emit an upstart event if upstart is available
17
- vm.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{guestpath}")
18
- end
19
-
20
- def mount_nfs(ip, folders)
21
- # Mount it like normal
22
- super
23
-
24
- # Emit an upstart events if upstart is available
25
- folders.each do |name, opts|
26
- real_guestpath = expanded_guest_path(opts[:guestpath])
27
- vm.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{real_guestpath}")
28
- end
29
- end
30
11
  end
31
12
  end
32
13
  end
@@ -15,6 +15,16 @@ module VagrantPlugins
15
15
  require_relative "cap/change_host_name"
16
16
  Cap::ChangeHostName
17
17
  end
18
+
19
+ guest_capability("ubuntu", "mount_nfs_folder") do
20
+ require_relative "cap/mount_nfs"
21
+ Cap::MountNFS
22
+ end
23
+
24
+ guest_capability("ubuntu", "mount_virtualbox_shared_folder") do
25
+ require_relative "cap/mount_virtualbox_shared_folder"
26
+ Cap::MountVirtualBoxSharedFolder
27
+ end
18
28
  end
19
29
  end
20
30
  end
@@ -23,36 +23,13 @@ module VagrantPlugins
23
23
  5
24
24
  end
25
25
 
26
- def nfs_export(id, ip, folders)
27
- output = TemplateRenderer.render('nfs/exports_linux',
28
- :uuid => id,
29
- :ip => ip,
30
- :folders => folders)
31
-
32
- @ui.info I18n.t("vagrant.hosts.arch.nfs_export.prepare")
33
- sleep 0.5
34
-
35
- nfs_cleanup(id)
36
-
37
- output.split("\n").each do |line|
38
- # This should only ask for administrative permission once, even
39
- # though its executed in multiple subshells.
40
- system(%Q[sudo su root -c "echo '#{line}' >> /etc/exports"])
41
- end
42
-
26
+ def initialize
43
27
  if systemd?
44
- # Call start to be nice. This will be a no-op if things are
45
- # already running. Then use exportfs to pick up the changes we
46
- # just made.
47
- system("sudo systemctl start nfsd.service rpc-idmapd.service rpc-mountd.service rpcbind.service")
48
- system("sudo exportfs -r")
28
+ @nfs_check_command = "/usr/sbin/systemctl status nfsd"
29
+ @nfs_start_command = "/usr/sbin/systemctl start nfsd rpc-idmapd rpc-mountd rpcbind"
49
30
  else
50
- # The restarting of services when we might not need to can be
51
- # considered evil, but this will be obviated by systemd soon
52
- # enough anyway.
53
- system("sudo /etc/rc.d/rpcbind restart")
54
- system("sudo /etc/rc.d/nfs-common restart")
55
- system("sudo /etc/rc.d/nfs-server restart")
31
+ @nfs_check_command = "/etc/rc.d/nfs-server status"
32
+ @nfs_start_command = "sh -c 'for s in {rpcbind,nfs-common,nfs-server}; do /etc/rc.d/$s start; done'"
56
33
  end
57
34
  end
58
35
 
@@ -34,11 +34,81 @@ module VagrantPlugins
34
34
  end
35
35
  end
36
36
 
37
- def nfs_export(id, ip, folders)
37
+ def nfs_export(id, ips, folders)
38
+ # We need to build up mapping of directories that are enclosed
39
+ # within each other because the exports file has to have subdirectories
40
+ # of an exported directory on the same line. e.g.:
41
+ #
42
+ # "/foo" "/foo/bar" ...
43
+ # "/bar"
44
+ #
45
+ # We build up this mapping within the following hash.
46
+ @logger.debug("Compiling map of sub-directories for NFS exports...")
47
+ dirmap = {}
48
+ folders.each do |_, opts|
49
+ hostpath = opts[:hostpath].dup
50
+ hostpath.gsub!('"', '\"')
51
+
52
+ found = false
53
+ dirmap.each do |dirs, diropts|
54
+ dirs.each do |dir|
55
+ if dir.start_with?(hostpath) || hostpath.start_with?(dir)
56
+ # TODO: verify opts and diropts are _identical_, raise an error
57
+ # if not. NFS mandates subdirectories have identical options.
58
+ dirs << hostpath
59
+ found = true
60
+ break
61
+ end
62
+ end
63
+
64
+ break if found
65
+ end
66
+
67
+ if !found
68
+ dirmap[[hostpath]] = opts.dup
69
+ end
70
+ end
71
+
72
+ # Sort all the keys by length so that the directory closest to
73
+ # the root is exported first.
74
+ dirmap.each do |dirs, _|
75
+ dirs.sort_by! { |d| d.length }
76
+ end
77
+
78
+ # Setup the NFS options
79
+ dirmap.each do |dirs, opts|
80
+ if !opts[:bsd__nfs_options]
81
+ opts[:bsd__nfs_options] = ["alldirs"]
82
+ end
83
+
84
+ hasmapall = false
85
+ opts[:bsd__nfs_options].each do |opt|
86
+ if opt =~ /^mapall=/
87
+ hasmapall = true
88
+ break
89
+ end
90
+ end
91
+
92
+ if !hasmapall
93
+ opts[:bsd__nfs_options] << "mapall=#{opts[:map_uid]}:#{opts[:map_gid]}"
94
+ end
95
+
96
+ opts[:bsd__compiled_nfs_options] = opts[:bsd__nfs_options].map do |opt|
97
+ "-#{opt}"
98
+ end.join(" ")
99
+ end
100
+
101
+ @logger.info("Exporting the following for NFS...")
102
+ dirmap.each do |dirs, opts|
103
+ @logger.info("NFS DIR: #{dirs.inspect}")
104
+ @logger.info("NFS OPTS: #{opts.inspect}")
105
+ end
106
+
38
107
  output = TemplateRenderer.render(@nfs_exports_template,
39
108
  :uuid => id,
40
- :ip => ip,
41
- :folders => folders)
109
+ :ips => ips,
110
+ :folders => dirmap,
111
+ :user => Process.uid)
42
112
 
43
113
  # The sleep ensures that the output is truly flushed before any `sudo`
44
114
  # commands are issued.
@@ -50,8 +120,9 @@ module VagrantPlugins
50
120
 
51
121
  # Output the rendered template into the exports
52
122
  output.split("\n").each do |line|
53
- line = line.gsub('"', '\"')
54
- system(%Q[sudo su root -c "echo '#{line}' >> /etc/exports"])
123
+ line.gsub!('"', '\"')
124
+ line.gsub!("'", "'\\\\''")
125
+ system(%Q[sudo -s -- "echo '#{line}' >> /etc/exports"])
55
126
  end
56
127
 
57
128
  # We run restart here instead of "update" just in case nfsd
@@ -65,9 +136,10 @@ module VagrantPlugins
65
136
  @logger.info("Pruning invalid NFS entries...")
66
137
 
67
138
  output = false
139
+ user = Process.uid
68
140
 
69
141
  File.read("/etc/exports").lines.each do |line|
70
- if id = line[/^# VAGRANT-BEGIN: (.+?)$/, 1]
142
+ if id = line[/^# VAGRANT-BEGIN:( #{user})? ([A-Za-z0-9-]+?)$/, 2]
71
143
  if valid_ids.include?(id)
72
144
  @logger.debug("Valid ID: #{id}")
73
145
  else
@@ -82,6 +154,8 @@ module VagrantPlugins
82
154
  end
83
155
  end
84
156
  end
157
+ rescue Errno::EACCES
158
+ raise Vagrant::Errors::NFSCantReadExports
85
159
  end
86
160
 
87
161
  protected
@@ -93,9 +167,11 @@ module VagrantPlugins
93
167
  id = id.gsub("/", "\\/")
94
168
  id = id.gsub(".", "\\.")
95
169
 
170
+ user = Process.uid
171
+
96
172
  # Use sed to just strip out the block of code which was inserted
97
173
  # by Vagrant, and restart NFS.
98
- system("sudo sed -e '/^# VAGRANT-BEGIN: #{id}/,/^# VAGRANT-END: #{id}/ d' -ibak /etc/exports")
174
+ system("sudo sed -E -e '/^# VAGRANT-BEGIN:( #{user})? #{id}/,/^# VAGRANT-END:( #{user})? #{id}/ d' -ibak /etc/exports")
99
175
  end
100
176
  end
101
177
  end