fixed-vagrant 0.7.4.dev

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 (242) hide show
  1. data/.gitignore +15 -0
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +272 -0
  4. data/Gemfile +21 -0
  5. data/LICENSE +21 -0
  6. data/README.md +75 -0
  7. data/Rakefile +22 -0
  8. data/bin/vagrant +22 -0
  9. data/config/default.rb +39 -0
  10. data/contrib/README.md +12 -0
  11. data/contrib/emacs/vagrant.el +8 -0
  12. data/contrib/vim/vagrantfile.vim +9 -0
  13. data/keys/README.md +17 -0
  14. data/keys/vagrant +27 -0
  15. data/keys/vagrant.ppk +26 -0
  16. data/keys/vagrant.pub +1 -0
  17. data/lib/vagrant.rb +42 -0
  18. data/lib/vagrant/action.rb +134 -0
  19. data/lib/vagrant/action/box.rb +11 -0
  20. data/lib/vagrant/action/box/destroy.rb +21 -0
  21. data/lib/vagrant/action/box/download.rb +72 -0
  22. data/lib/vagrant/action/box/package.rb +19 -0
  23. data/lib/vagrant/action/box/unpackage.rb +55 -0
  24. data/lib/vagrant/action/box/verify.rb +23 -0
  25. data/lib/vagrant/action/builder.rb +124 -0
  26. data/lib/vagrant/action/builtin.rb +104 -0
  27. data/lib/vagrant/action/env.rb +7 -0
  28. data/lib/vagrant/action/env/set.rb +18 -0
  29. data/lib/vagrant/action/environment.rb +50 -0
  30. data/lib/vagrant/action/general.rb +8 -0
  31. data/lib/vagrant/action/general/package.rb +109 -0
  32. data/lib/vagrant/action/general/validate.rb +19 -0
  33. data/lib/vagrant/action/vm.rb +31 -0
  34. data/lib/vagrant/action/vm/boot.rb +48 -0
  35. data/lib/vagrant/action/vm/check_box.rb +28 -0
  36. data/lib/vagrant/action/vm/check_guest_additions.rb +30 -0
  37. data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
  38. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +39 -0
  39. data/lib/vagrant/action/vm/clear_nfs_exports.rb +20 -0
  40. data/lib/vagrant/action/vm/clear_shared_folders.rb +32 -0
  41. data/lib/vagrant/action/vm/customize.rb +21 -0
  42. data/lib/vagrant/action/vm/destroy.rb +19 -0
  43. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +30 -0
  44. data/lib/vagrant/action/vm/discard_state.rb +22 -0
  45. data/lib/vagrant/action/vm/export.rb +52 -0
  46. data/lib/vagrant/action/vm/forward_ports.rb +134 -0
  47. data/lib/vagrant/action/vm/forward_ports_helpers.rb +28 -0
  48. data/lib/vagrant/action/vm/halt.rb +29 -0
  49. data/lib/vagrant/action/vm/host_name.rb +21 -0
  50. data/lib/vagrant/action/vm/import.rb +35 -0
  51. data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
  52. data/lib/vagrant/action/vm/network.rb +139 -0
  53. data/lib/vagrant/action/vm/nfs.rb +159 -0
  54. data/lib/vagrant/action/vm/nfs_helpers.rb +11 -0
  55. data/lib/vagrant/action/vm/package.rb +23 -0
  56. data/lib/vagrant/action/vm/package_vagrantfile.rb +33 -0
  57. data/lib/vagrant/action/vm/provision.rb +41 -0
  58. data/lib/vagrant/action/vm/resume.rb +20 -0
  59. data/lib/vagrant/action/vm/share_folders.rb +70 -0
  60. data/lib/vagrant/action/vm/suspend.rb +20 -0
  61. data/lib/vagrant/action/warden.rb +79 -0
  62. data/lib/vagrant/box.rb +90 -0
  63. data/lib/vagrant/box_collection.rb +53 -0
  64. data/lib/vagrant/cli.rb +55 -0
  65. data/lib/vagrant/command.rb +25 -0
  66. data/lib/vagrant/command/base.rb +106 -0
  67. data/lib/vagrant/command/box.rb +33 -0
  68. data/lib/vagrant/command/destroy.rb +17 -0
  69. data/lib/vagrant/command/group_base.rb +107 -0
  70. data/lib/vagrant/command/halt.rb +18 -0
  71. data/lib/vagrant/command/helpers.rb +33 -0
  72. data/lib/vagrant/command/init.rb +14 -0
  73. data/lib/vagrant/command/named_base.rb +14 -0
  74. data/lib/vagrant/command/package.rb +41 -0
  75. data/lib/vagrant/command/provision.rb +17 -0
  76. data/lib/vagrant/command/reload.rb +17 -0
  77. data/lib/vagrant/command/resume.rb +17 -0
  78. data/lib/vagrant/command/ssh.rb +42 -0
  79. data/lib/vagrant/command/ssh_config.rb +26 -0
  80. data/lib/vagrant/command/status.rb +22 -0
  81. data/lib/vagrant/command/suspend.rb +17 -0
  82. data/lib/vagrant/command/up.rb +19 -0
  83. data/lib/vagrant/command/upgrade_to_060.rb +45 -0
  84. data/lib/vagrant/command/version.rb +13 -0
  85. data/lib/vagrant/config.rb +123 -0
  86. data/lib/vagrant/config/base.rb +85 -0
  87. data/lib/vagrant/config/error_recorder.rb +19 -0
  88. data/lib/vagrant/config/nfs.rb +10 -0
  89. data/lib/vagrant/config/package.rb +9 -0
  90. data/lib/vagrant/config/ssh.rb +33 -0
  91. data/lib/vagrant/config/top.rb +61 -0
  92. data/lib/vagrant/config/vagrant.rb +16 -0
  93. data/lib/vagrant/config/vm.rb +137 -0
  94. data/lib/vagrant/config/vm/provisioner.rb +56 -0
  95. data/lib/vagrant/config/vm/sub_vm.rb +17 -0
  96. data/lib/vagrant/data_store.rb +70 -0
  97. data/lib/vagrant/downloaders.rb +7 -0
  98. data/lib/vagrant/downloaders/base.rb +23 -0
  99. data/lib/vagrant/downloaders/file.rb +22 -0
  100. data/lib/vagrant/downloaders/http.rb +64 -0
  101. data/lib/vagrant/environment.rb +392 -0
  102. data/lib/vagrant/errors.rb +332 -0
  103. data/lib/vagrant/hosts.rb +8 -0
  104. data/lib/vagrant/hosts/arch.rb +27 -0
  105. data/lib/vagrant/hosts/base.rb +78 -0
  106. data/lib/vagrant/hosts/bsd.rb +52 -0
  107. data/lib/vagrant/hosts/linux.rb +47 -0
  108. data/lib/vagrant/plugin.rb +57 -0
  109. data/lib/vagrant/provisioners.rb +9 -0
  110. data/lib/vagrant/provisioners/base.rb +63 -0
  111. data/lib/vagrant/provisioners/chef.rb +130 -0
  112. data/lib/vagrant/provisioners/chef_server.rb +103 -0
  113. data/lib/vagrant/provisioners/chef_solo.rb +142 -0
  114. data/lib/vagrant/provisioners/puppet.rb +137 -0
  115. data/lib/vagrant/provisioners/puppet_server.rb +55 -0
  116. data/lib/vagrant/provisioners/shell.rb +52 -0
  117. data/lib/vagrant/ssh.rb +173 -0
  118. data/lib/vagrant/ssh/session.rb +125 -0
  119. data/lib/vagrant/systems.rb +11 -0
  120. data/lib/vagrant/systems/base.rb +87 -0
  121. data/lib/vagrant/systems/debian.rb +36 -0
  122. data/lib/vagrant/systems/freebsd.rb +84 -0
  123. data/lib/vagrant/systems/gentoo.rb +27 -0
  124. data/lib/vagrant/systems/linux.rb +83 -0
  125. data/lib/vagrant/systems/linux/config.rb +21 -0
  126. data/lib/vagrant/systems/linux/error.rb +9 -0
  127. data/lib/vagrant/systems/redhat.rb +39 -0
  128. data/lib/vagrant/systems/solaris.rb +62 -0
  129. data/lib/vagrant/systems/ubuntu.rb +17 -0
  130. data/lib/vagrant/test_helpers.rb +128 -0
  131. data/lib/vagrant/ui.rb +69 -0
  132. data/lib/vagrant/util.rb +13 -0
  133. data/lib/vagrant/util/busy.rb +59 -0
  134. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  135. data/lib/vagrant/util/plain_logger.rb +25 -0
  136. data/lib/vagrant/util/platform.rb +65 -0
  137. data/lib/vagrant/util/resource_logger.rb +63 -0
  138. data/lib/vagrant/util/retryable.rb +25 -0
  139. data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
  140. data/lib/vagrant/util/template_renderer.rb +83 -0
  141. data/lib/vagrant/version.rb +6 -0
  142. data/lib/vagrant/vm.rb +177 -0
  143. data/templates/chef_server_client.erb +18 -0
  144. data/templates/chef_solo_solo.erb +19 -0
  145. data/templates/commands/init/Vagrantfile.erb +82 -0
  146. data/templates/config/validation_failed.erb +7 -0
  147. data/templates/locales/en.yml +535 -0
  148. data/templates/network_entry_debian.erb +8 -0
  149. data/templates/network_entry_gentoo.erb +5 -0
  150. data/templates/network_entry_redhat.erb +8 -0
  151. data/templates/nfs/exports.erb +5 -0
  152. data/templates/nfs/exports_linux.erb +5 -0
  153. data/templates/package_Vagrantfile.erb +11 -0
  154. data/templates/ssh_config.erb +9 -0
  155. data/test/locales/en.yml +8 -0
  156. data/test/test_helper.rb +26 -0
  157. data/test/vagrant/action/box/destroy_test.rb +18 -0
  158. data/test/vagrant/action/box/download_test.rb +125 -0
  159. data/test/vagrant/action/box/package_test.rb +25 -0
  160. data/test/vagrant/action/box/unpackage_test.rb +84 -0
  161. data/test/vagrant/action/box/verify_test.rb +30 -0
  162. data/test/vagrant/action/builder_test.rb +203 -0
  163. data/test/vagrant/action/env/set_test.rb +24 -0
  164. data/test/vagrant/action/environment_test.rb +27 -0
  165. data/test/vagrant/action/general/package_test.rb +268 -0
  166. data/test/vagrant/action/general/validate_test.rb +31 -0
  167. data/test/vagrant/action/vm/boot_test.rb +66 -0
  168. data/test/vagrant/action/vm/check_box_test.rb +56 -0
  169. data/test/vagrant/action/vm/check_guest_additions_test.rb +9 -0
  170. data/test/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
  171. data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +72 -0
  172. data/test/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
  173. data/test/vagrant/action/vm/clear_shared_folders_test.rb +49 -0
  174. data/test/vagrant/action/vm/customize_test.rb +30 -0
  175. data/test/vagrant/action/vm/destroy_test.rb +25 -0
  176. data/test/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
  177. data/test/vagrant/action/vm/discard_state_test.rb +45 -0
  178. data/test/vagrant/action/vm/export_test.rb +107 -0
  179. data/test/vagrant/action/vm/forward_ports_helpers_test.rb +70 -0
  180. data/test/vagrant/action/vm/forward_ports_test.rb +194 -0
  181. data/test/vagrant/action/vm/halt_test.rb +79 -0
  182. data/test/vagrant/action/vm/host_name_test.rb +36 -0
  183. data/test/vagrant/action/vm/import_test.rb +66 -0
  184. data/test/vagrant/action/vm/match_mac_address_test.rb +36 -0
  185. data/test/vagrant/action/vm/network_test.rb +286 -0
  186. data/test/vagrant/action/vm/nfs_helpers_test.rb +26 -0
  187. data/test/vagrant/action/vm/nfs_test.rb +260 -0
  188. data/test/vagrant/action/vm/package_test.rb +25 -0
  189. data/test/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
  190. data/test/vagrant/action/vm/provision_test.rb +90 -0
  191. data/test/vagrant/action/vm/resume_test.rb +35 -0
  192. data/test/vagrant/action/vm/share_folders_test.rb +139 -0
  193. data/test/vagrant/action/vm/suspend_test.rb +35 -0
  194. data/test/vagrant/action/warden_test.rb +119 -0
  195. data/test/vagrant/action_test.rb +89 -0
  196. data/test/vagrant/box_collection_test.rb +45 -0
  197. data/test/vagrant/box_test.rb +74 -0
  198. data/test/vagrant/cli_test.rb +35 -0
  199. data/test/vagrant/command/base_test.rb +23 -0
  200. data/test/vagrant/command/group_base_test.rb +15 -0
  201. data/test/vagrant/command/helpers_test.rb +88 -0
  202. data/test/vagrant/command/package_test.rb +27 -0
  203. data/test/vagrant/config/base_test.rb +52 -0
  204. data/test/vagrant/config/error_recorder_test.rb +18 -0
  205. data/test/vagrant/config/ssh_test.rb +12 -0
  206. data/test/vagrant/config/vagrant_test.rb +35 -0
  207. data/test/vagrant/config/vm/provisioner_test.rb +92 -0
  208. data/test/vagrant/config/vm_test.rb +86 -0
  209. data/test/vagrant/config_test.rb +162 -0
  210. data/test/vagrant/data_store_test.rb +77 -0
  211. data/test/vagrant/downloaders/base_test.rb +28 -0
  212. data/test/vagrant/downloaders/file_test.rb +48 -0
  213. data/test/vagrant/downloaders/http_test.rb +80 -0
  214. data/test/vagrant/environment_test.rb +508 -0
  215. data/test/vagrant/errors_test.rb +42 -0
  216. data/test/vagrant/hosts/base_test.rb +46 -0
  217. data/test/vagrant/hosts/bsd_test.rb +53 -0
  218. data/test/vagrant/hosts/linux_test.rb +54 -0
  219. data/test/vagrant/plugin_test.rb +9 -0
  220. data/test/vagrant/provisioners/base_test.rb +63 -0
  221. data/test/vagrant/provisioners/chef_server_test.rb +188 -0
  222. data/test/vagrant/provisioners/chef_solo_test.rb +219 -0
  223. data/test/vagrant/provisioners/chef_test.rb +179 -0
  224. data/test/vagrant/provisioners/puppet_server_test.rb +68 -0
  225. data/test/vagrant/provisioners/puppet_test.rb +182 -0
  226. data/test/vagrant/provisioners/shell_test.rb +68 -0
  227. data/test/vagrant/ssh/session_test.rb +40 -0
  228. data/test/vagrant/ssh_test.rb +342 -0
  229. data/test/vagrant/systems/base_test.rb +18 -0
  230. data/test/vagrant/systems/linux_test.rb +114 -0
  231. data/test/vagrant/ui_test.rb +29 -0
  232. data/test/vagrant/util/busy_test.rb +106 -0
  233. data/test/vagrant/util/hash_with_indifferent_access_test.rb +39 -0
  234. data/test/vagrant/util/plain_logger_test.rb +17 -0
  235. data/test/vagrant/util/platform_test.rb +18 -0
  236. data/test/vagrant/util/resource_logger_test.rb +78 -0
  237. data/test/vagrant/util/retryable_test.rb +50 -0
  238. data/test/vagrant/util/stacked_proc_runner_test.rb +43 -0
  239. data/test/vagrant/util/template_renderer_test.rb +145 -0
  240. data/test/vagrant/vm_test.rb +291 -0
  241. data/vagrant.gemspec +36 -0
  242. metadata +514 -0
@@ -0,0 +1,39 @@
1
+ Vagrant::Config.run do |config|
2
+ # default config goes here
3
+ config.vagrant.dotfile_name = ".vagrant"
4
+ config.vagrant.host = :detect
5
+
6
+ config.ssh.username = "vagrant"
7
+ config.ssh.host = "127.0.0.1"
8
+ config.ssh.forwarded_port_key = "ssh"
9
+ config.ssh.max_tries = 10
10
+ config.ssh.timeout = 30
11
+ config.ssh.private_key_path = File.expand_path("keys/vagrant", Vagrant.source_root)
12
+ config.ssh.forward_agent = false
13
+ config.ssh.forward_x11 = false
14
+
15
+ config.vm.auto_port_range = (2200..2250)
16
+ config.vm.box_ovf = "box.ovf"
17
+ config.vm.box_url = nil
18
+ config.vm.base_mac = nil
19
+ config.vm.forward_port("ssh", 22, 2222, :auto => true)
20
+ config.vm.disk_image_format = 'VMDK'
21
+ config.vm.shared_folder_uid = nil
22
+ config.vm.shared_folder_gid = nil
23
+ config.vm.boot_mode = "vrdp"
24
+ config.vm.system = :linux
25
+
26
+ config.vm.customize do |vm|
27
+ # Make VM name the name of the containing folder by default
28
+ vm.name = File.basename(config.env.cwd) + "_#{Time.now.to_i}"
29
+ end
30
+
31
+ # Share the root folder. This can then be overridden by
32
+ # other Vagrantfiles, if they wish.
33
+ config.vm.share_folder("v-root", "/vagrant", ".")
34
+
35
+ config.nfs.map_uid = :auto
36
+ config.nfs.map_gid = :auto
37
+
38
+ config.package.name = 'package.box'
39
+ end
@@ -0,0 +1,12 @@
1
+ # Vagrant Contrib
2
+
3
+ Miscellaneous contributions which assist people in using Vagrant will
4
+ make their way into this directory. An up-to-date list of short descriptions
5
+ for each item will be kept below.
6
+
7
+ ## List of Contrib Items
8
+
9
+ * `emacs` - Contains a file showing how to associate `Vagrantfile` with
10
+ Ruby syntax highlighting.
11
+ * `vim` - Contains a `.vim` file for enabling Ruby syntax highlighting
12
+ for `Vagrantfile`s.
@@ -0,0 +1,8 @@
1
+ ;;--------------------------------------------------------------------
2
+ ;; Teach emacs to syntax highlight Vagrantfile as Ruby.
3
+ ;;
4
+ ;; Installation: Copy the line below into your emacs configuration,
5
+ ;; or drop this file anywhere in your "~/.emacs.d" directory and be
6
+ ;; sure to "load" it.
7
+ ;;--------------------------------------------------------------------
8
+ (add-to-list 'auto-mode-alist '("Vagrantfile$" . ruby-mode))
@@ -0,0 +1,9 @@
1
+ " Teach vim to syntax highlight Vagrantfile as ruby
2
+ "
3
+ " Install: $HOME/.vim/plugin/vagrant.vim
4
+ " Author: Brandon Philips <brandon@ifup.org>
5
+
6
+ augroup vagrant
7
+ au!
8
+ au BufRead,BufNewFile Vagrantfile set filetype=ruby
9
+ augroup END
@@ -0,0 +1,17 @@
1
+ # Insecure Keypair
2
+
3
+ These keys are the "insecure" public/private keypair we offer to
4
+ [base box creators](http://vagrantup.com/docs/base_boxes.html) for use in their base boxes so that
5
+ vagrant installations can automatically SSH into the boxes.
6
+
7
+ If you're working with a team or company or with a custom box and
8
+ you want more secure SSH, you should create your own keypair
9
+ and configure the private key in the Vagrantfile with
10
+ `config.ssh.private_key_path`
11
+
12
+ # Putty
13
+
14
+ If you are using Vagrant on windows, the .ppk file contained here, in the keys directory,
15
+ has been generated from the private key and should be used to connect Putty to any VMs that
16
+ are leveraging the default key pair. See [guide](http://vagrantup.com/docs/getting-started/windows.html)
17
+ in the documentation for more details on using Putty with Vagrant.
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
3
+ w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
4
+ kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
5
+ hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
6
+ Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
7
+ yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
8
+ ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
9
+ Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
10
+ TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
11
+ iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
12
+ sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
13
+ 4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
14
+ cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
15
+ EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
16
+ CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
17
+ 3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
18
+ YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
19
+ 3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
20
+ dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
21
+ 6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
22
+ P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
23
+ llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
24
+ kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
25
+ +vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
26
+ NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,26 @@
1
+ PuTTY-User-Key-File-2: ssh-rsa
2
+ Encryption: none
3
+ Comment: imported-openssh-key
4
+ Public-Lines: 6
5
+ AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+k
6
+ z4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdO
7
+ KLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4
8
+ O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGj
9
+ yiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPK
10
+ cF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==
11
+ Private-Lines: 14
12
+ AAABAQDiKpY8le3NkDryYp0QuziMmx3KTL57B1l412zm2NycdTnNRgTbkr598kQP
13
+ 2pRYgJwtkNzzVMZaMfICoPUHDtemBTAWB5QnBSXNC6sC/7/JKfGLC5oYl+EUzUJp
14
+ AfN9emGBWaX59lS+clRO/N9MrYuDoR1tQT1NqtSUF//E9+4SExKUgTmR5v9nPf8t
15
+ SVGDzIOrPnD5BZUni62cqcqKrBk3SbCnBTthLImGVPhhXUXefhiMuzAznAmzaiqb
16
+ SOyxC78FPS3IRc0NgEsQXgCwKVpa5InaSOrsqGuthfNqCqGdJ6L04NgVKEm7xRZV
17
+ 5zciFvlleXM7q901DUn1ex/ib7bLAAAAgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/
18
+ orApiHmHDsURs5rUKDx0f9iPcXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsM
19
+ kE4CUSiJcYrMANtx54cGH7RkEjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTG
20
+ yAK+OLD3M2QdCQAAAIEA7cfKTQgMUe8oR2yFk9QB+uvl1jfG16u5d0Tv7pHmnIvf
21
+ CX5G5MVEWYbcVfxx7r1IZzy3V908MoDwWGRTaOKc1RIc1qE7ZxLaxbniscnN/i42
22
+ abqPpgZUOjkbX4JK/YAVaYV2RmBM5Ag95VXZfC+HMPQVaSqyQrNXObWhow4HSJ0A
23
+ AACANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH+vq/
24
+ 5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQNE5O
25
+ gEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
26
+ Private-MAC: bc710f345e67c736d57dd72aab10fe4625345dae
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
@@ -0,0 +1,42 @@
1
+ require 'pathname'
2
+ require 'json'
3
+ require 'i18n'
4
+ require 'virtualbox'
5
+
6
+ module Vagrant
7
+ autoload :Action, 'vagrant/action'
8
+ autoload :Box, 'vagrant/box'
9
+ autoload :BoxCollection, 'vagrant/box_collection'
10
+ autoload :CLI, 'vagrant/cli'
11
+ autoload :Config, 'vagrant/config'
12
+ autoload :DataStore, 'vagrant/data_store'
13
+ autoload :Downloaders, 'vagrant/downloaders'
14
+ autoload :Environment, 'vagrant/environment'
15
+ autoload :Errors, 'vagrant/errors'
16
+ autoload :Hosts, 'vagrant/hosts'
17
+ autoload :Plugin, 'vagrant/plugin'
18
+ autoload :TestHelpers, 'vagrant/test_helpers'
19
+ autoload :UI, 'vagrant/ui'
20
+ autoload :Util, 'vagrant/util'
21
+ autoload :VM, 'vagrant/vm'
22
+
23
+ # The source root is the path to the root directory of
24
+ # the Vagrant gem.
25
+ def self.source_root
26
+ @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
27
+ end
28
+ end
29
+
30
+ # Default I18n to load the en locale
31
+ I18n.load_path << File.expand_path("templates/locales/en.yml", Vagrant.source_root)
32
+
33
+ # Load the things which must be loaded before anything else. Note that
34
+ # I'm not sure why 'vagrant/ssh' must be loaded. But if I don't, I get
35
+ # a very scary "unsupported cipher" error from net-ssh for no apparent reason.
36
+ require 'vagrant/command'
37
+ require 'vagrant/provisioners'
38
+ require 'vagrant/systems'
39
+ require 'vagrant/ssh'
40
+ require 'vagrant/version'
41
+ Vagrant::Action.builtin!
42
+ Vagrant::Plugin.load!
@@ -0,0 +1,134 @@
1
+ require 'vagrant/action/builder'
2
+ require 'vagrant/action/builtin'
3
+
4
+ # The builtin middlewares
5
+ require 'vagrant/action/box'
6
+ require 'vagrant/action/env'
7
+ require 'vagrant/action/general'
8
+ require 'vagrant/action/vm'
9
+
10
+ module Vagrant
11
+ # Manages action running and registration. Every Vagrant environment
12
+ # has an instance of {Action} to allow for running in the context of
13
+ # the environment, which is accessible at {Environment#actions}. Actions
14
+ # are the foundation of most functionality in Vagrant, and are implemented
15
+ # architecturally as "middleware."
16
+ #
17
+ # # Registering an Action
18
+ #
19
+ # The main benefits of registering an action is the ability to retrieve and
20
+ # modify that registered action, as well as easily run the action. An example
21
+ # of registering an action is shown below, with a simple middleware which just
22
+ # outputs to `STDOUT`:
23
+ #
24
+ # class StdoutMiddleware
25
+ # def initialize(app, env)
26
+ # @app = app
27
+ # end
28
+ #
29
+ # def call(env)
30
+ # puts "HI!"
31
+ # @app.call(env)
32
+ # end
33
+ # end
34
+ #
35
+ # Vagrant::Action.register(:stdout, StdoutMiddleware)
36
+ #
37
+ # Then to run a registered action, assuming `env` is a loaded {Environment}:
38
+ #
39
+ # env.actions.run(:stdout)
40
+ #
41
+ # Or to retrieve the action class for any reason:
42
+ #
43
+ # Vagrant::Action[:stdout]
44
+ #
45
+ # # Running an Action
46
+ #
47
+ # There are various built-in registered actions such as `start`, `stop`, `up`,
48
+ # etc. Actions are built to be run in the context of an environment, so use
49
+ # {Environment#actions} to run all actions. Then simply call {#run}:
50
+ #
51
+ # env.actions.run(:name)
52
+ #
53
+ # Where `:name` is the name of the registered action.
54
+ #
55
+ class Action
56
+ autoload :Environment, 'vagrant/action/environment'
57
+ autoload :Warden, 'vagrant/action/warden'
58
+
59
+ include Util
60
+ @@reported_interrupt = false
61
+
62
+ class << self
63
+ # Returns the list of registered actions.
64
+ #
65
+ # @return [Array]
66
+ def actions
67
+ @actions ||= {}
68
+ end
69
+
70
+ # Registers an action and associates it with a symbol. This
71
+ # symbol can then be referenced in other action builds and
72
+ # callbacks can be registered on that symbol.
73
+ #
74
+ # @param [Symbol] key
75
+ def register(key, callable)
76
+ actions[key.to_sym] = callable
77
+ end
78
+
79
+ # Retrieves a registered action by key.
80
+ #
81
+ # @param [Symbol] key
82
+ def [](key)
83
+ actions[key.to_sym]
84
+ end
85
+ end
86
+
87
+ # The environment to run the actions in.
88
+ attr_reader :env
89
+
90
+ # Initializes the action with the given environment which the actions
91
+ # will be run in.
92
+ #
93
+ # @param [Environment] env
94
+ def initialize(env)
95
+ @env = env
96
+ end
97
+
98
+ # Runs the given callable object in the context of the environment.
99
+ # If a symbol is given as the `callable` parameter, then it is looked
100
+ # up in the registered actions list which are registered with {register}.
101
+ #
102
+ # Any options given are injected into the environment hash.
103
+ #
104
+ # @param [Object] callable An object which responds to `call`.
105
+ def run(callable_id, options=nil)
106
+ callable = callable_id
107
+ callable = Builder.new.use(callable_id) if callable_id.kind_of?(Class)
108
+ callable = self.class.actions[callable_id] if callable_id.kind_of?(Symbol)
109
+ raise ArgumentError, "Argument to run must be a callable object or registered action." if !callable || !callable.respond_to?(:call)
110
+
111
+ action_environment = Action::Environment.new(env)
112
+ action_environment.merge!(options || {})
113
+
114
+ # Run the before action run callback, if we're not doing that already
115
+ run(:before_action_run, action_environment) if callable_id != :before_action_run
116
+
117
+ # Run the action chain in a busy block, marking the environment as
118
+ # interrupted if a SIGINT occurs, and exiting cleanly once the
119
+ # chain has been run.
120
+ int_callback = lambda do
121
+ if action_environment.interrupted?
122
+ env.ui.error I18n.t("vagrant.actions.runner.exit_immediately")
123
+ abort
124
+ end
125
+
126
+ env.ui.warn I18n.t("vagrant.actions.runner.waiting_cleanup") if !@@reported_interrupt
127
+ action_environment.interrupt!
128
+ @@reported_interrupt = true
129
+ end
130
+
131
+ Busy.busy(int_callback) { callable.call(action_environment) }
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,11 @@
1
+ module Vagrant
2
+ class Action
3
+ module Box
4
+ autoload :Destroy, 'vagrant/action/box/destroy'
5
+ autoload :Download, 'vagrant/action/box/download'
6
+ autoload :Package, 'vagrant/action/box/package'
7
+ autoload :Unpackage, 'vagrant/action/box/unpackage'
8
+ autoload :Verify, 'vagrant/action/box/verify'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ require 'fileutils'
2
+
3
+ module Vagrant
4
+ class Action
5
+ module Box
6
+ class Destroy
7
+ def initialize(app, env)
8
+ @app = app
9
+ @env = env
10
+ end
11
+
12
+ def call(env)
13
+ env.ui.info I18n.t("vagrant.actions.box.destroy.destroying", :name => env["box"].name)
14
+ FileUtils.rm_rf(env["box"].directory)
15
+
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,72 @@
1
+ module Vagrant
2
+ class Action
3
+ module Box
4
+ class Download
5
+ BASENAME = "box"
6
+
7
+ include Util
8
+
9
+ attr_reader :temp_path
10
+
11
+ def initialize(app, env)
12
+ @app = app
13
+ @env = env
14
+ @env["download.classes"] ||= []
15
+ @env["download.classes"] += [Downloaders::HTTP, Downloaders::File]
16
+ @downloader = nil
17
+ end
18
+
19
+ def call(env)
20
+ @env = env
21
+
22
+ download if instantiate_downloader
23
+ @app.call(@env)
24
+
25
+ recover(env) # called in both cases to cleanup workspace
26
+ end
27
+
28
+ def instantiate_downloader
29
+ @env["download.classes"].each do |klass|
30
+ if klass.match?(@env["box"].uri)
31
+ @env.ui.info I18n.t("vagrant.actions.box.download.with", :class => klass.to_s)
32
+ @downloader = klass.new(@env)
33
+ end
34
+ end
35
+
36
+ raise Errors::BoxDownloadUnknownType if !@downloader
37
+
38
+ @downloader.prepare(@env["box"].uri)
39
+ true
40
+ end
41
+
42
+ def download
43
+ with_tempfile do |tempfile|
44
+ download_to(tempfile)
45
+ @temp_path = @env["download.temp_path"] = tempfile.path
46
+ end
47
+ end
48
+
49
+ def recover(env)
50
+ if temp_path && File.exist?(temp_path)
51
+ env.ui.info I18n.t("vagrant.actions.box.download.cleaning")
52
+ File.unlink(temp_path)
53
+ end
54
+ end
55
+
56
+ def with_tempfile
57
+ File.open(box_temp_path, Platform.tar_file_options) do |tempfile|
58
+ yield tempfile
59
+ end
60
+ end
61
+
62
+ def box_temp_path
63
+ @env.env.tmp_path.join(BASENAME + Time.now.to_i.to_s)
64
+ end
65
+
66
+ def download_to(f)
67
+ @downloader.download!(@env["box"].uri, f)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,19 @@
1
+ require 'vagrant/action/general/package'
2
+
3
+ module Vagrant
4
+ class Action
5
+ module Box
6
+ # Packages a box which has already been unpackaged (such as
7
+ # for the `vagrant box repackage` command) by leveraging the
8
+ # general packager middleware.
9
+ class Package < General::Package
10
+ # Alias instead of calling super for testability
11
+ alias_method :general_call, :call
12
+ def call(env)
13
+ env["package.directory"] = env["box"].directory
14
+ general_call(env)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end