fixed-vagrant 0.7.4.dev

Sign up to get free protection for your applications and to get access to all the features.
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,15 @@
1
+ .DS_Store
2
+ pkg/*
3
+ Vagrantfile
4
+ .vagrant
5
+ .bundle
6
+ cookbooks/*
7
+ _site/*
8
+ !templates/*
9
+ *.org
10
+ .yardoc/
11
+ doc/
12
+ tags
13
+ Gemfile.lock
14
+ .idea/*
15
+ *.iml
@@ -0,0 +1 @@
1
+ -m markdown
@@ -0,0 +1,272 @@
1
+ ## 0.7.4 (unreleased)
2
+
3
+
4
+
5
+ ## 0.7.3 (April 19, 2011)
6
+
7
+ - Retry all SSH on Net::SSH::Disconnect in case SSH is just restarting. [GH-313]
8
+ - Add NFS shared folder support for Arch linux. [GH-346]
9
+ - Fix issue with unknown terminal type output for sudo commands.
10
+ - Forwarded port protocol can now be set as UDP. [GH-311]
11
+ - Chef server file cache path and file backup path can be configured. [GH-310]
12
+ - Setting hostname should work on Debian now. [GH-307]
13
+
14
+ ## 0.7.2 (February 8, 2011)
15
+
16
+ - Update JSON dependency to 1.5.1, which works with Ruby 1.9 on
17
+ Windows.
18
+ - Fix sudo issues on sudo < 1.7.0 (again).
19
+ - Fix race condition in SSH, which specifically manifested itself in
20
+ the chef server provisioner. [GH-295]
21
+ - Change sudo shell to use `bash` (configurable). [GH-301]
22
+ - Can now set mac address of host only network. [GH-294]
23
+ - NFS shared folders with spaces now work properly. [GH-293]
24
+ - Failed SSH commands now show output in error message. [GH-285]
25
+
26
+ ## 0.7.1 (January 28, 2011)
27
+
28
+ - Change error output with references to VirtualBox 3.2 to 4.0.
29
+ - Internal SSH through net-ssh now uses `IdentitiesOnly` thanks to
30
+ upstream net-ssh fix.
31
+ - Fix issue causing warnings to show with `forwardx11` enabled for SSH. [GH-279]
32
+ - FreeBSD support for host only networks, NFS, halting, etc. [GH-275]
33
+ - Make SSH commands which use sudo compatible with sudo < 1.7.0. [GH-278]
34
+ - Fix broken puppet server provisioner which called a nonexistent
35
+ method.
36
+ - Default SSH host changed from `localhost` to `127.0.0.1` since
37
+ `localhost` is not always loopback.
38
+ - New `shell` provisioner which simply uploads and executes a script as
39
+ root on the VM.
40
+ - Gentoo host only networking no longer fails if alrady setup. [GH-286]
41
+ - Set the host name of your guest OS with `config.vm.host_name` [GH-273]
42
+ - `vagrant ssh-config` now outputs the configured `config.ssh.host`
43
+
44
+ ## 0.7.0 (January 19, 2011)
45
+
46
+ - VirtualBox 4.0 support. Support for VirtualBox 3.2 is _dropped_, since
47
+ the API is so different. Stay with the 0.6.x series if you have VirtualBox
48
+ 3.2.x.
49
+ - Puppet server provisioner. [GH-262]
50
+ - Use numeric uid/gid in mounting shared folders to increase portability. [GH-252]
51
+ - HTTP downloading follows redirects. [GH-163]
52
+ - Downloaders have clearer output to note what they're doing.
53
+ - Shared folders with no guest path are not automounted. [GH-184]
54
+ - Boxes downloaded during `vagrant up` reload the Vagrantfile config, which
55
+ fixes a problem with box settings not being properly loaded. [GH-231]
56
+ - `config.ssh.forward_x11` to enable the ForwardX11 SSH option. [GH-255]
57
+ - Vagrant source now has a `contrib` directory where contributions of miscellaneous
58
+ addons for Vagrant will be added.
59
+ - Vagrantfiles are now loaded only once (instead of 4+ times) [GH-238]
60
+ - Ability to move home vagrant dir (~/.vagrant) by setting VAGRANT_HOME
61
+ environmental variable.
62
+ - Removed check and error for the "OSE" version of VirtualBox, since with
63
+ VirtualBox 4 this distinction no longer exists.
64
+ - Ability to specify proxy settings for chef. [GH-169]
65
+ - Helpful error message shown if NFS mounting fails. [GH-135]
66
+ - Gentoo guests now support host only networks. [GH-240]
67
+ - RedHat (CentOS included) guests now support host only networks. [GH-260]
68
+ - New Vagrantfile syntax for enabling and configuring provisioners. This
69
+ change is not backwards compatible. [GH-265]
70
+ - Provisioners are now RVM-friendly, meaning if you installed chef or puppet
71
+ with an RVM managed Ruby, Vagrant now finds then. [GH-254]
72
+ - Changed the unused host only network destroy mechanism to check for
73
+ uselessness after the VM is destroyed. This should result in more accurate
74
+ checks.
75
+ - Networks are no longer disabled upon halt/destroy. With the above
76
+ change, its unnecessary.
77
+ - Puppet supports `module_path` configuration to mount local modules directory
78
+ as a shared folder and configure puppet with it. [GH-270]
79
+ - `ssh-config` now outputs `127.0.0.1` as the host instead of `localhost`.
80
+
81
+ ## 0.6.9 (December 21, 2010)
82
+
83
+ - Puppet provisioner. [GH-223]
84
+ - Solaris system configurable to use `sudo`.
85
+ - Solaris system registered, so it can be set with `:solaris`.
86
+ - `vagrant package` include can be a directory name, which will cause the
87
+ contents to be recursively copied into the package. [GH-241]
88
+ - Arbitrary options to puppet binary can be set with `config.puppet.options`. [GH-242]
89
+ - BSD hosts use proper GNU sed syntax for clearing NFS shares. [GH-243]
90
+ - Enumerate VMs in a multi-VM environment in order they were defined. [GH-244]
91
+ - Check for VM boot changed to use `timeout` library, which works better with Windows.
92
+ - Show special error if VirtualBox not detected on 64-bit Windows.
93
+ - Show error to Windows users attempting to use host only networking since
94
+ it doesn't work yet.
95
+
96
+ ## 0.6.8 (November 30, 2010)
97
+
98
+ - Network interfaces are now up/down in distinct commands instead of just
99
+ restarting "networking." [GH-192]
100
+ - Add missing translation for chef binary missing. [GH-203]
101
+ - Fix default settings for Opscode platform and comments. [GH-213]
102
+ - Blank client name for chef server now uses FQDN by default, instead of "client" [GH-214]
103
+ - Run list can now be nil, which will cause it to sync with chef server (when
104
+ chef server is enabled). [GH-214]
105
+ - Multiple NFS folders now work on linux. [GH-215]
106
+ - Add translation for state "stuck" which is very rare. [GH-218]
107
+ - virtualbox gem dependency minimum raised to 0.7.6 to verify FFI < 1.0.0 is used.
108
+ - Fix issue where box downloading from `vagrant up` didn't reload the box collection. [GH-229]
109
+
110
+ ## 0.6.7 (November 3, 2010)
111
+
112
+ - Added validation to verify that a box is specified.
113
+ - Proper error message when box is not found for `config.vm.box`. [GH-195]
114
+ - Fix output of `vagrant status` with multi-vm to be correct. [GH-196]
115
+
116
+ ## 0.6.6 (October 14, 2010)
117
+
118
+ - `vagrant status NAME` works once again. [GH-191]
119
+ - Conditional validation of Vagrantfile so that some commands don't validate. [GH-188]
120
+ - Fix "junk" output for ssh-config. [GH-189]
121
+ - Fix port collision handling with greater than two VMs. [GH-185]
122
+ - Fix potential infinite loop with root path if bad CWD is given to environment.
123
+
124
+ ## 0.6.5 (October 8, 2010)
125
+
126
+ - Validations on base MAC address to avoid situation described in GH-166, GH-181
127
+ from ever happening again.
128
+ - Properly load sub-VM configuration on first-pass of config loading. Solves
129
+ a LOT of problems with multi-VM. [GH-166] [GH-181]
130
+ - Configuration now only validates on final Vagrantfile proc, so multi-VM
131
+ validates correctly.
132
+ - A nice error message is given if ".vagrant" is a directory and therefore
133
+ can't be accessed. [GH-172]
134
+ - Fix plugin loading in a Rails 2.3.x project. [GH-176]
135
+
136
+ ## 0.6.4 (October 4, 2010)
137
+
138
+ - Default VM name is now properly the parent folder of the working directory
139
+ of the environment.
140
+ - Added method to `TestHelpers` to assist with testing new downloaders.
141
+ - `up --no-provision` works again. This disables provisioning during the
142
+ boot process.
143
+ - Action warden doesn't do recovery process on `SystemExit` exceptions,
144
+ allowing the double ctrl-C to work properly again. [related to GH-166]
145
+ - Initial Vagrantfile is now heavily commented with various available
146
+ options. [GH-171]
147
+ - Box add checks if a box already exists before the download. [GH-170]
148
+ - NFS no longer attempts to clean exports file if VM is not created,
149
+ which was causing a stack trace during recovery. [related to GH-166]
150
+ - Basic validation added for Chef configuration (both solo and server).
151
+ - Top config class is now available in all `Vagrant::Config::Base`
152
+ subclasses, which is useful for config validation.
153
+ - Subcommand help shows proper full command in task listing. [GH-168]
154
+ - SSH gives error message if `ssh` binary is not found. [GH-161]
155
+ - SSH gives proper error message if VM is not running. [GH-167]
156
+ - Fix some issues with undefined constants in command errors.
157
+
158
+ ## 0.6.1, 0.6.2, 0.6.3 (September 27, 2010)
159
+
160
+ A lot of quick releases which all were to fix issues with Ruby 1.8.7
161
+ compatibility.
162
+
163
+ ## 0.6.0 (September 27, 2010)
164
+
165
+ - VM name now defaults to the name of the containing folder, plus a timestamp.
166
+ This should make it easier to identify VMs in the VirtualBox GUI.
167
+ - Exposed Vagrant test helpers in `Vagrant::TestHelpers` for plugins to easily
168
+ test themselves against Vagrant environments.
169
+ - **Plugins** have landed. Plugins are simply gems which have a `vagrant_init.rb`
170
+ file somewhere in their load path. Please read the documentation on
171
+ vagrantup.com before attempting to create a plugin (which is very easy)
172
+ for more information on how it all works and also some guidelines.
173
+ - `vagrant package` now takes a `--vagrantfile` option to specify a
174
+ Vagrantfile to package. The `--include` approach for including a Vagrantfile
175
+ no longer works (previously built boxes will continue to work).
176
+ - `vagrant package` has new logic with regards to the `--include` option
177
+ depending on if the file path is relative or absolute (they can be
178
+ intermixed):
179
+ * _Relative_ paths are copied directly into the box, preserving
180
+ their path. So `--include lib/foo` would be in the box as "lib/foo"
181
+ * _Absolute_ paths are simply copied files into the root of the
182
+ box. So `--include /lib/foo` would be in the box as "foo"
183
+ - "vagrant_main" is no longer the default run list. Instead, chef
184
+ run list starts empty. It is up to you to specify all recipes in
185
+ the Vagrantfile now.
186
+ - Fixed various issues with certain action middleware not working if
187
+ the VM was not created.
188
+ - SSH connection is retried 5 times if there is a connection refused.
189
+ Related to GH-140.
190
+ - If `http_proxy` environmental variable is set, it will be used as the proxy
191
+ box adding via http.
192
+ - Remove `config.ssh.password`. It hasn't been used for a few versions
193
+ now and was only kept around to avoid exceptions in Vagrantfiles.
194
+ - Configuration is now validated so improper input can be found in
195
+ Vagrantfiles.
196
+ - Fixed issue with not detecting Vagrantfile at root directory ("/").
197
+ - Vagrant now gives a nice error message if there is a syntax error
198
+ in any Vagrantfile. [GH-154]
199
+ - The format of the ".vagrant" file which stores persisted VMs has
200
+ changed. This is **backwards incompatible**. Will provide an upgrade
201
+ utility prior to 0.6 launch.
202
+ - Every [expected] Vagrant error now exits with a clean error message
203
+ and a unique exit status, and raises a unique exception (if you're
204
+ scripting Vagrant).
205
+ - Added I18n gem dependency for pulling strings into clean YML files.
206
+ Vagrant is now localizable as a side effect! Translations welcome.
207
+ - Fixed issue with "Waiting for cleanup" message appearing twice in
208
+ some cases. [GH-145]
209
+ - Converted CLI to use Thor. As a tradeoff, there are some backwards
210
+ incompatibilities:
211
+ * `vagrant package` - The `--include` flag now separates filenames
212
+ by spaces, instead of by commas. e.g. `vagrant package --include x y z`
213
+ * `vagrant ssh` - If you specify a command to execute using the `--execute`
214
+ flag, you may now only specify one command (before you were able to
215
+ specify an arbitrary amount). e.g. `vagrant ssh -e "echo hello"`
216
+ * `vagrant ssh-config` has become `vagrant ssh_config` due to a limitation
217
+ in Thor.
218
+
219
+ ## 0.5.4 (September 7, 2010)
220
+
221
+ - Fix issue with the "exec failed" by running on Tiger as well.
222
+ - Give an error when downloading a box which already exists prior
223
+ to actually downloading the box.
224
+
225
+ ## 0.5.3 (August 23, 2010)
226
+
227
+ - Add erubis as a dependency since its rendering of `erb` is sane.
228
+ - Fixed poorly formatted Vagrantfile after `vagrant init`. [GH-142]
229
+ - Fixed NFS not working properly with multiple NFS folders.
230
+ - Fixed chef solo provision to work on Windows. It was expanding a linux
231
+ path which prepended a drive letter onto it.
232
+
233
+ ## 0.5.2 (August 3, 2010)
234
+
235
+ - `vagrant up` can be used as a way to resume the VM as well (same as
236
+ `vagrant resume`). [GH-134]
237
+ - Sudo uses "-E" flag to preserve environment for chef provisioners.
238
+ This fixes issues with CentOS. [GH-133]
239
+ - Added "IdentitiesOnly yes" to options when `vagrant ssh` is run to
240
+ avoid "Too Many Authentication Failures" error. [GH-131]
241
+ - Fix regression with `package` not working. [GH-132]
242
+ - Added ability to specify box url in `init`, which populates the
243
+ Vagrantfile with the proper `config.vm.box_url`.
244
+
245
+ ## 0.5.1 (July 31, 2010)
246
+
247
+ - Allow specifying cookbook paths which exist only on the VM in `config.chef.cookbooks_path`.
248
+ This is used for specifying cookbook paths when `config.chef.recipe_url` is used. [GH-130]
249
+ See updated chef solo documentation for more information on this.
250
+ - No longer show "Disabling host only networks..." if no host only networks
251
+ are destroyed. Quiets `destroy`, `halt`, etc output a bit.
252
+ - Updated getting started guide to be more up to date and generic. [GH-125]
253
+ - Fixed error with doing a `vagrant up` when no Vagrantfile existed. [GH-128]
254
+ - Fixed NFS erroring when NFS wasn't even enabled if `/etc/exports` doesn't
255
+ exist. [GH-126]
256
+ - Fixed `vagrant resume` to properly resume a suspended VM. [GH-122]
257
+ - Fixed `halt`, `destroy`, `reload` to where they failed if the VM was
258
+ in a saved state. [GH-123]
259
+ - Added `config.chef.recipe_url` which allows you to specify a URL to
260
+ a gzipped tar file for chef solo to download cookbooks. See the
261
+ [chef-solo docs](http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-RunningfromaURL) for more information.
262
+ [GH-121]
263
+ - Added `vagrant box repackage` which repackages boxes which have
264
+ been added. This is useful in case you want to redistribute a base
265
+ box you have but may have lost the actual "box" file. [GH-120]
266
+
267
+ ## Previous
268
+
269
+ The changelog began with version 0.5.1 so any changes prior to that
270
+ can be seen by checking the tagged releases and reading git commit
271
+ messages.
272
+
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source "http://rubygems.org"
2
+
3
+ #gem "vagrant", :path => '.'
4
+
5
+ # Use the following gems straight from git, since Vagrant dev
6
+ # typically coincides with it
7
+ gem "virtualbox", :git => "git://github.com/mitchellh/virtualbox.git"
8
+
9
+ # Gems required for testing only. To install run
10
+ # gem bundle test
11
+ group :test do
12
+ gem "rake"
13
+ gem "contest", ">= 0.1.2"
14
+ gem "mocha"
15
+
16
+ # For documentation
17
+ platforms :ruby do
18
+ gem "yard", "~> 0.6.1"
19
+ gem "bluecloth"
20
+ end
21
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010 Mitchell Hashimoto and John Bender
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,75 @@
1
+ # Vagrant
2
+
3
+ ## This version of vagrant fixes the issue when running 'vagrant up' for the first time.
4
+
5
+ The local file Vagrant uses to store data ".vagrant" already exists
6
+ and is a directory! If you are in your home directory, then please run
7
+ this command in another directory. If you aren't in a home directory,
8
+ then please rename ".vagrant" to something else, or configure Vagrant
9
+
10
+ I will attempt to keep this branch as updated as possible with the vagrant source.
11
+
12
+ I implore the vagrant developers to either merge in my fix, or fix the issue on their own, as currently any new installations of vagrant are completely broken, which I believe is stifling this otherwise excellent project.
13
+
14
+
15
+ Now on to your regularly scheduled program...
16
+
17
+ * Website: [http://vagrantup.com](http://vagrantup.com)
18
+ * Source: [http://github.com/mitchellh/vagrant](http://github.com/mitchellh/vagrant)
19
+ * IRC: `#vagrant` on Freenode
20
+ * Mailing list: [Google Groups](http://groups.google.com/group/vagrant-up)
21
+
22
+ Vagrant is a tool for building and distributing virtualized development environments.
23
+
24
+ By providing automated creation and provisioning of virtual machines using [Oracle’s VirtualBox](http://www.virtualbox.org),
25
+ Vagrant provides the tools to create and configure lightweight, reproducible, and portable
26
+ virtual environments. For more information, see the part of the getting started guide
27
+ on “[Why Vagrant?](http://vagrantup.com/docs/getting-started/index.html)”
28
+
29
+ ## Quick Start
30
+
31
+ First, make sure your development machine has [VirtualBox](http://www.virtualbox.org)
32
+ installed. The setup from that point forward is very easy, since Vagrant is simply
33
+ a rubygem.
34
+
35
+ gem install vagrant
36
+
37
+ To build your first virtual environment:
38
+
39
+ vagrant init lucid32 http://files.vagrantup.com/lucid32.box
40
+ vagrant up
41
+
42
+ Note: The above `vagrant up` command will also trigger Vagrant to download the
43
+ `lucid32` box via the specified URL. Vagrant only does this if it detects that
44
+ the box doesn't already exist on your system.
45
+
46
+ ## Getting Started Guide and Video
47
+
48
+ To learn how to build a fully functional rails development environment, view the
49
+ [getting started guide](http://vagrantup.com/docs/getting-started/index.html).
50
+
51
+ There is also a fairly short (12 minute) [getting started video](http://vimeo.com/9976342) which
52
+ explains how to build a fully functional LAMP development environment, which
53
+ covers a few parts of Vagrant in more detail than the website guide.
54
+
55
+ ## Installing the Gem from Git
56
+
57
+ If you want the bleeding edge version of Vagrant, we try to keep master pretty stable
58
+ and you're welcome to give it a shot. The following is an example showing how to do this:
59
+
60
+ rake install
61
+
62
+ ## Contributing to Vagrant
63
+
64
+ To hack on vagrant, you'll need [bundler](http://github.com/carlhuda/bundler) which can
65
+ be installed with a simple `gem install bundler --pre`. Afterwords, do the following:
66
+
67
+ bundle install
68
+ rake
69
+
70
+ This will run the test suite, which should come back all green! Then you're good to go!
71
+
72
+ If you want to run Vagrant without having to install the gem, you may use `bundle exec`,
73
+ like so:
74
+
75
+ bundle exec bin/vagrant help
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rake/testtask'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ task :default => :test
7
+
8
+ Rake::TestTask.new do |t|
9
+ t.libs << "test"
10
+ t.pattern = 'test/**/*_test.rb'
11
+ end
12
+
13
+ begin
14
+ require 'yard'
15
+ YARD::Rake::YardocTask.new do |t|
16
+ t.options = ['--main', 'README.md', '--markup', 'markdown']
17
+ t.options += ['--title', 'Vagrant Developer Documentation']
18
+ end
19
+ rescue LoadError
20
+ puts "Yard not available. Install it with: gem install yard"
21
+ puts "if you wish to be able to generate developer documentation."
22
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ require 'vagrant'
3
+ require 'vagrant/cli'
4
+
5
+ env = Vagrant::Environment.new
6
+
7
+ begin
8
+ # Set the UI early in case any errors are raised, and load
9
+ # the config immediately, so we gather any new commands from
10
+ # plugins
11
+ env.ui = Vagrant::UI::Shell.new(env, Thor::Base.shell.new)
12
+ env.load!
13
+
14
+ # Kick start the CLI
15
+ Vagrant::CLI.start(ARGV, :env => env)
16
+ rescue Vagrant::Errors::VagrantError => e
17
+ opts = { :prefix => false }
18
+ env.ui.error e.message, opts if e.message
19
+ env.ui.error e.backtrace.join("\n"), opts if ENV["VAGRANT_DEBUG"]
20
+ exit e.status_code if e.respond_to?(:status_code)
21
+ exit 999 # An error occurred with no status code defined
22
+ end