vagrant 0.5.4 → 0.6.0

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 (234) hide show
  1. data/.gitignore +1 -0
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +56 -0
  4. data/Gemfile +14 -3
  5. data/Gemfile.lock +38 -11
  6. data/README.md +1 -1
  7. data/bin/vagrant +20 -5
  8. data/config/default.rb +6 -8
  9. data/lib/vagrant.rb +40 -13
  10. data/lib/vagrant/action.rb +56 -16
  11. data/lib/vagrant/action/box/destroy.rb +3 -1
  12. data/lib/vagrant/action/box/download.rb +8 -13
  13. data/lib/vagrant/action/box/unpackage.rb +8 -11
  14. data/lib/vagrant/action/box/verify.rb +3 -3
  15. data/lib/vagrant/action/builder.rb +3 -30
  16. data/lib/vagrant/action/builtin.rb +6 -1
  17. data/lib/vagrant/action/environment.rb +14 -62
  18. data/lib/vagrant/action/general/package.rb +29 -22
  19. data/lib/vagrant/action/vm/boot.rb +5 -12
  20. data/lib/vagrant/action/vm/check_box.rb +4 -4
  21. data/lib/vagrant/action/vm/check_guest_additions.rb +4 -6
  22. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +2 -2
  23. data/lib/vagrant/action/vm/clear_nfs_exports.rb +1 -1
  24. data/lib/vagrant/action/vm/clear_shared_folders.rb +1 -1
  25. data/lib/vagrant/action/vm/customize.rb +1 -1
  26. data/lib/vagrant/action/vm/destroy.rb +1 -2
  27. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +1 -1
  28. data/lib/vagrant/action/vm/disable_networks.rb +11 -9
  29. data/lib/vagrant/action/vm/discard_state.rb +2 -2
  30. data/lib/vagrant/action/vm/export.rb +10 -11
  31. data/lib/vagrant/action/vm/forward_ports.rb +21 -9
  32. data/lib/vagrant/action/vm/halt.rb +3 -8
  33. data/lib/vagrant/action/vm/import.rb +16 -14
  34. data/lib/vagrant/action/vm/match_mac_address.rb +1 -1
  35. data/lib/vagrant/action/vm/network.rb +9 -16
  36. data/lib/vagrant/action/vm/nfs.rb +14 -18
  37. data/lib/vagrant/action/vm/provision.rb +5 -5
  38. data/lib/vagrant/action/vm/resume.rb +1 -1
  39. data/lib/vagrant/action/vm/share_folders.rb +6 -44
  40. data/lib/vagrant/action/vm/suspend.rb +1 -1
  41. data/lib/vagrant/action/warden.rb +74 -0
  42. data/lib/vagrant/box.rb +18 -82
  43. data/lib/vagrant/box_collection.rb +47 -0
  44. data/lib/vagrant/cli.rb +55 -0
  45. data/lib/vagrant/command/base.rb +106 -0
  46. data/lib/vagrant/command/box.rb +33 -0
  47. data/lib/vagrant/command/destroy.rb +17 -0
  48. data/lib/vagrant/command/group_base.rb +99 -0
  49. data/lib/vagrant/command/halt.rb +18 -0
  50. data/lib/vagrant/command/helpers.rb +33 -0
  51. data/lib/vagrant/command/init.rb +14 -0
  52. data/lib/vagrant/command/named_base.rb +14 -0
  53. data/lib/vagrant/command/package.rb +41 -0
  54. data/lib/vagrant/command/provision.rb +17 -0
  55. data/lib/vagrant/command/reload.rb +17 -0
  56. data/lib/vagrant/command/resume.rb +17 -0
  57. data/lib/vagrant/command/ssh.rb +41 -0
  58. data/lib/vagrant/command/ssh_config.rb +21 -0
  59. data/lib/vagrant/command/status.rb +23 -0
  60. data/lib/vagrant/command/suspend.rb +17 -0
  61. data/lib/vagrant/command/up.rb +20 -0
  62. data/lib/vagrant/command/upgrade_to_060.rb +45 -0
  63. data/lib/vagrant/command/version.rb +13 -0
  64. data/lib/vagrant/config.rb +107 -189
  65. data/lib/vagrant/config/base.rb +67 -0
  66. data/lib/vagrant/config/error_recorder.rb +19 -0
  67. data/lib/vagrant/config/nfs.rb +10 -0
  68. data/lib/vagrant/config/package.rb +9 -0
  69. data/lib/vagrant/config/ssh.rb +28 -0
  70. data/lib/vagrant/config/vagrant.rb +21 -0
  71. data/lib/vagrant/config/vm.rb +111 -0
  72. data/lib/vagrant/data_store.rb +68 -0
  73. data/lib/vagrant/downloaders/file.rb +3 -3
  74. data/lib/vagrant/downloaders/http.rb +5 -5
  75. data/lib/vagrant/environment.rb +246 -243
  76. data/lib/vagrant/errors.rb +306 -0
  77. data/lib/vagrant/hosts/base.rb +1 -1
  78. data/lib/vagrant/hosts/bsd.rb +3 -9
  79. data/lib/vagrant/hosts/linux.rb +3 -9
  80. data/lib/vagrant/plugin.rb +50 -0
  81. data/lib/vagrant/provisioners/base.rb +0 -6
  82. data/lib/vagrant/provisioners/chef.rb +63 -58
  83. data/lib/vagrant/provisioners/chef_server.rb +9 -11
  84. data/lib/vagrant/provisioners/chef_solo.rb +2 -2
  85. data/lib/vagrant/ssh.rb +34 -37
  86. data/lib/vagrant/systems/base.rb +0 -13
  87. data/lib/vagrant/systems/linux.rb +10 -33
  88. data/lib/vagrant/systems/solaris.rb +59 -0
  89. data/lib/vagrant/test_helpers.rb +109 -0
  90. data/lib/vagrant/ui.rb +65 -0
  91. data/lib/vagrant/util.rb +9 -19
  92. data/lib/vagrant/util/glob_loader.rb +19 -17
  93. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  94. data/lib/vagrant/util/plain_logger.rb +2 -0
  95. data/lib/vagrant/util/platform.rb +2 -0
  96. data/lib/vagrant/util/resource_logger.rb +5 -70
  97. data/lib/vagrant/util/retryable.rb +25 -0
  98. data/lib/vagrant/util/template_renderer.rb +1 -1
  99. data/lib/vagrant/version.rb +1 -1
  100. data/lib/vagrant/vm.rb +27 -13
  101. data/templates/commands/init/Vagrantfile.erb +13 -0
  102. data/templates/config/validation_failed.erb +7 -0
  103. data/templates/locales/en.yml +402 -0
  104. data/templates/package_Vagrantfile.erb +1 -1
  105. data/test/locales/en.yml +8 -0
  106. data/test/test_helper.rb +19 -103
  107. data/test/vagrant/action/box/destroy_test.rb +7 -19
  108. data/test/vagrant/action/box/download_test.rb +9 -25
  109. data/test/vagrant/action/box/package_test.rb +2 -2
  110. data/test/vagrant/action/box/unpackage_test.rb +8 -34
  111. data/test/vagrant/action/box/verify_test.rb +10 -19
  112. data/test/vagrant/action/builder_test.rb +0 -15
  113. data/test/vagrant/action/env/set_test.rb +1 -1
  114. data/test/vagrant/action/environment_test.rb +8 -26
  115. data/test/vagrant/action/general/package_test.rb +53 -53
  116. data/test/vagrant/action/vm/boot_test.rb +5 -22
  117. data/test/vagrant/action/vm/check_box_test.rb +35 -25
  118. data/test/vagrant/action/vm/clean_machine_folder_test.rb +1 -1
  119. data/test/vagrant/action/vm/clear_forwarded_ports_test.rb +1 -1
  120. data/test/vagrant/action/vm/clear_nfs_exports_test.rb +1 -1
  121. data/test/vagrant/action/vm/clear_shared_folders_test.rb +1 -1
  122. data/test/vagrant/action/vm/customize_test.rb +2 -1
  123. data/test/vagrant/action/vm/destroy_test.rb +1 -2
  124. data/test/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +1 -1
  125. data/test/vagrant/action/vm/disable_networks_test.rb +10 -1
  126. data/test/vagrant/action/vm/discard_state_test.rb +10 -1
  127. data/test/vagrant/action/vm/export_test.rb +9 -37
  128. data/test/vagrant/action/vm/forward_ports_helpers_test.rb +2 -2
  129. data/test/vagrant/action/vm/forward_ports_test.rb +19 -16
  130. data/test/vagrant/action/vm/halt_test.rb +11 -1
  131. data/test/vagrant/action/vm/import_test.rb +37 -21
  132. data/test/vagrant/action/vm/match_mac_address_test.rb +1 -1
  133. data/test/vagrant/action/vm/network_test.rb +8 -7
  134. data/test/vagrant/action/vm/nfs_helpers_test.rb +6 -3
  135. data/test/vagrant/action/vm/nfs_test.rb +20 -45
  136. data/test/vagrant/action/vm/package_test.rb +1 -1
  137. data/test/vagrant/action/vm/package_vagrantfile_test.rb +1 -1
  138. data/test/vagrant/action/vm/provision_test.rb +10 -17
  139. data/test/vagrant/action/vm/resume_test.rb +1 -1
  140. data/test/vagrant/action/vm/share_folders_test.rb +25 -106
  141. data/test/vagrant/action/vm/suspend_test.rb +1 -1
  142. data/test/vagrant/action/warden_test.rb +105 -0
  143. data/test/vagrant/action_test.rb +5 -27
  144. data/test/vagrant/box_collection_test.rb +44 -0
  145. data/test/vagrant/box_test.rb +5 -105
  146. data/test/vagrant/cli_test.rb +35 -0
  147. data/test/vagrant/command/base_test.rb +23 -0
  148. data/test/vagrant/command/group_base_test.rb +15 -0
  149. data/test/vagrant/command/helpers_test.rb +88 -0
  150. data/test/vagrant/config/base_test.rb +52 -0
  151. data/test/vagrant/config/error_recorder_test.rb +18 -0
  152. data/test/vagrant/config/ssh_test.rb +12 -0
  153. data/test/vagrant/config/vagrant_test.rb +11 -0
  154. data/test/vagrant/config/vm_test.rb +70 -0
  155. data/test/vagrant/config_test.rb +113 -206
  156. data/test/vagrant/data_store_test.rb +68 -0
  157. data/test/vagrant/downloaders/base_test.rb +1 -1
  158. data/test/vagrant/downloaders/file_test.rb +4 -3
  159. data/test/vagrant/downloaders/http_test.rb +14 -4
  160. data/test/vagrant/environment_test.rb +290 -590
  161. data/test/vagrant/errors_test.rb +42 -0
  162. data/test/vagrant/hosts/base_test.rb +1 -1
  163. data/test/vagrant/hosts/bsd_test.rb +3 -6
  164. data/test/vagrant/hosts/linux_test.rb +3 -5
  165. data/test/vagrant/plugin_test.rb +9 -0
  166. data/test/vagrant/provisioners/base_test.rb +1 -1
  167. data/test/vagrant/provisioners/chef_server_test.rb +31 -35
  168. data/test/vagrant/provisioners/chef_solo_test.rb +1 -1
  169. data/test/vagrant/provisioners/chef_test.rb +7 -7
  170. data/test/vagrant/ssh_session_test.rb +3 -10
  171. data/test/vagrant/ssh_test.rb +25 -33
  172. data/test/vagrant/systems/linux_test.rb +6 -71
  173. data/test/vagrant/ui_test.rb +29 -0
  174. data/test/vagrant/util/hash_with_indifferent_access_test.rb +39 -0
  175. data/test/vagrant/util/resource_logger_test.rb +14 -81
  176. data/test/vagrant/util/retryable_test.rb +38 -0
  177. data/test/vagrant/util/template_renderer_test.rb +4 -4
  178. data/test/vagrant/vm_test.rb +47 -26
  179. data/vagrant.gemspec +14 -12
  180. metadata +142 -108
  181. data/bin/.gitignore +0 -0
  182. data/lib/vagrant/action/action_exception.rb +0 -16
  183. data/lib/vagrant/action/env/error_halt.rb +0 -16
  184. data/lib/vagrant/action/exception_catcher.rb +0 -14
  185. data/lib/vagrant/action/vm/persist.rb +0 -22
  186. data/lib/vagrant/active_list.rb +0 -83
  187. data/lib/vagrant/command.rb +0 -27
  188. data/lib/vagrant/commands/base.rb +0 -181
  189. data/lib/vagrant/commands/box.rb +0 -16
  190. data/lib/vagrant/commands/box/add.rb +0 -30
  191. data/lib/vagrant/commands/box/list.rb +0 -30
  192. data/lib/vagrant/commands/box/remove.rb +0 -30
  193. data/lib/vagrant/commands/box/repackage.rb +0 -35
  194. data/lib/vagrant/commands/destroy.rb +0 -37
  195. data/lib/vagrant/commands/halt.rb +0 -43
  196. data/lib/vagrant/commands/init.rb +0 -36
  197. data/lib/vagrant/commands/package.rb +0 -81
  198. data/lib/vagrant/commands/provision.rb +0 -31
  199. data/lib/vagrant/commands/reload.rb +0 -36
  200. data/lib/vagrant/commands/resume.rb +0 -35
  201. data/lib/vagrant/commands/ssh.rb +0 -78
  202. data/lib/vagrant/commands/ssh_config.rb +0 -45
  203. data/lib/vagrant/commands/status.rb +0 -125
  204. data/lib/vagrant/commands/suspend.rb +0 -36
  205. data/lib/vagrant/commands/up.rb +0 -44
  206. data/lib/vagrant/exceptions/uncallable_action.rb +0 -17
  207. data/lib/vagrant/util/translator.rb +0 -35
  208. data/templates/strings.yml +0 -341
  209. data/templates/unison/crontab_entry.erb +0 -1
  210. data/templates/unison/script.erb +0 -71
  211. data/test/vagrant/action/env/error_halt_test.rb +0 -21
  212. data/test/vagrant/action/exception_catcher_test.rb +0 -30
  213. data/test/vagrant/action/vm/persist_test.rb +0 -50
  214. data/test/vagrant/active_list_test.rb +0 -173
  215. data/test/vagrant/command_test.rb +0 -53
  216. data/test/vagrant/commands/base_test.rb +0 -139
  217. data/test/vagrant/commands/box/add_test.rb +0 -34
  218. data/test/vagrant/commands/box/list_test.rb +0 -32
  219. data/test/vagrant/commands/box/remove_test.rb +0 -41
  220. data/test/vagrant/commands/box/repackage_test.rb +0 -52
  221. data/test/vagrant/commands/destroy_test.rb +0 -44
  222. data/test/vagrant/commands/halt_test.rb +0 -50
  223. data/test/vagrant/commands/init_test.rb +0 -71
  224. data/test/vagrant/commands/package_test.rb +0 -97
  225. data/test/vagrant/commands/provision_test.rb +0 -60
  226. data/test/vagrant/commands/reload_test.rb +0 -47
  227. data/test/vagrant/commands/resume_test.rb +0 -44
  228. data/test/vagrant/commands/ssh_config_test.rb +0 -77
  229. data/test/vagrant/commands/ssh_test.rb +0 -129
  230. data/test/vagrant/commands/status_test.rb +0 -40
  231. data/test/vagrant/commands/suspend_test.rb +0 -44
  232. data/test/vagrant/commands/up_test.rb +0 -49
  233. data/test/vagrant/util/translator_test.rb +0 -61
  234. data/test/vagrant/util_test.rb +0 -27
@@ -0,0 +1,13 @@
1
+ Vagrant::Config.run do |config|
2
+ # All Vagrant configuration is done here. For a detailed explanation
3
+ # and listing of configuration options, please view the documentation
4
+ # online.
5
+
6
+ # Every Vagrant virtual environment requires a box to build off of.
7
+ config.vm.box = "<%= box_name %>"
8
+ <% if !box_url.nil? %>
9
+
10
+ # The url from where the 'config.vm.box' box will be fetched if it
11
+ # doesn't already exist on the user's system
12
+ config.vm.box_url = "<%= box_url %>"<% end %>
13
+ end
@@ -0,0 +1,7 @@
1
+ <% errors.each do |key, container| -%>
2
+ <%= key %>:
3
+ <% container.errors.each do |error| -%>
4
+ * <%= error %>
5
+ <% end -%>
6
+
7
+ <% end -%>
@@ -0,0 +1,402 @@
1
+ en:
2
+ vagrant:
3
+ general:
4
+ creating_home_dir: "Creating home directory since it doesn't exist: %{directory}"
5
+
6
+ #-------------------------------------------------------------------------------
7
+ # Translations for exception classes
8
+ #-------------------------------------------------------------------------------
9
+ errors:
10
+ base_vm_not_found: The base VM with the name '%{name}' was not found.
11
+ box_not_found: Box '%{name}' could not be found.
12
+ cli_missing_env: This command requires that a Vagrant environment be properly passed in as the last parameter.
13
+ config_validation: |-
14
+ There was a problem with the configuration of Vagrant. The error message(s)
15
+ are printed below:
16
+
17
+ %{messages}
18
+ interrupted: Vagrant exited after cleanup due to external interrupt.
19
+ multi_vm_required: A multi-vm environment is required for name specification to this command.
20
+ multi_vm_target_required: `vagrant %{command}` requires a specific VM name to target in a multi-VM environment.
21
+ no_env: No Vagrant environment detected. Run `vagrant init` to set one up.
22
+ ssh_authentication_failed: |-
23
+ SSH authentication failed! This is typically caused by the public/private
24
+ keypair for the SSH user not being properly set on the guest VM. Please
25
+ verify that the guest VM is setup with the proper public key, and that
26
+ the private key path for Vagrant is setup properly as well.
27
+ ssh_bad_exit_status: |-
28
+ The following SSH command responded with a non-zero exit status.
29
+ Vagrant assumes that this means the command failed!
30
+
31
+ %{command}
32
+ ssh_connection_refused: |-
33
+ SSH connection was refused! This usually happens if the VM failed to
34
+ boot properly. Some steps to try to fix this: First, try reloading your
35
+ VM with `vagrant reload`, since a simple restart sometimes fixes things.
36
+ If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
37
+ followed by a `vagrant up`. If that doesn't work, contact a Vagrant
38
+ maintainer (support channels listed on the website) for more assistance.
39
+ ssh_key_bad_permissions: |-
40
+ The private key to connect to this box via SSH has invalid permissions
41
+ set on it. The permissions of the private key should be set to 0600, otherwise SSH will
42
+ ignore the key. Vagrant tried to do this automatically for you but failed. Please set the
43
+ permissions on the following file to 0600 and then try running this command again:
44
+
45
+ %{key_path}
46
+ ssh_unavailable_windows: |-
47
+ `vagrant ssh` isn't available on the Windows platform. The
48
+ vagrant.ppk file for use with Putty is available at:
49
+
50
+ %{key_path}.ppk
51
+
52
+ To use this create a new Putty session for `vagrant@localhost`
53
+ on port `%{ssh_port}`, in the Connection>SSH>Auth
54
+ configuration section navigate to the vagrant.ppk file,
55
+ select it, save the session for later use, and connect.
56
+
57
+ For a more detailed guide please consult:
58
+
59
+ http://vagrantup.com/docs/getting-started/windows.
60
+
61
+ system:
62
+ invalid_class: |-
63
+ The specified system does not inherit from `Vagrant::Systems::Base`. The
64
+ specified system class must inherit from this class.
65
+
66
+ The specified system class was: %{system}
67
+ unknown_type: |-
68
+ The specified system type is unknown: %{system}. Please change this
69
+ to a proper value.
70
+ unspecified: |-
71
+ A VM system type must be specified! This is done via the `config.vm.system`
72
+ configuration value. Please read the documentation online for more information.
73
+ vagrantfile_syntax_error: |-
74
+ There is a syntax error in the following Vagrantfile. The syntax error
75
+ message is reproduced below for convenience:
76
+
77
+ %{file}
78
+ virtualbox_invalid_ose: |-
79
+ Vagrant has detected you're using an OSE ("Open Source Edition") of VirtualBox.
80
+ Vagrant currently doesn't support any of the OSE editions due to slight API
81
+ differences. Please download the regular package from virtualbox.org and install
82
+ to continue.
83
+ virtualbox_invalid_version: |-
84
+ Vagrant has detected that you have VirtualBox version %{version} installed!
85
+ Vagrant requires that you use at least VirtualBox version 3.2. Please install
86
+ a more recent version of VirtualBox to continue.
87
+ virtualbox_not_detected: |-
88
+ Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
89
+ If VirtualBox is installed, it may be an incorrect version. Vagrant currently
90
+ requires VirtualBox 3.2.x. Please install the proper version to continue.
91
+ vm_creation_required: VM must be created before running this command. Run `vagrant up` first.
92
+ vm_not_found: A VM by the name of %{name} was not found.
93
+
94
+ #-------------------------------------------------------------------------------
95
+ # Translations for config validation errors
96
+ #-------------------------------------------------------------------------------
97
+ config:
98
+ common:
99
+ error_empty: `%{field}` must be filled in.
100
+ ssh:
101
+ private_key_missing: "`private_key_path` file must exist: %{path}"
102
+ vm:
103
+ shared_folder_hostpath_missing: "Shared folder host path for '%{name}' doesn't exist: %{path}"
104
+ boot_mode_invalid: "Boot mode must be one of: vrdp or gui"
105
+
106
+ #-------------------------------------------------------------------------------
107
+ # Translations for commands. e.g. `vagrant x`
108
+ #-------------------------------------------------------------------------------
109
+ commands:
110
+ common:
111
+ vm_not_created: "VM not created. Moving on..."
112
+ box:
113
+ no_installed_boxes: "There are no installed boxes! Use `vagrant box add` to add some."
114
+ ssh:
115
+ execute: "Execute: %{command}"
116
+ status:
117
+ output: |-
118
+ Current VM states:
119
+
120
+ %{states}
121
+
122
+ %{message}
123
+ not_created: |-
124
+ The environment has not yet been created. Run `vagrant up` to
125
+ create the environment.
126
+ powered_off: The VM is powered off. To restart the VM, simply run `vagrant up`
127
+ running: |-
128
+ The VM is running. To stop this VM, you can run `vagrant halt` to
129
+ shut it down forcefully, or you can run `vagrant suspend` to simply
130
+ suspend the virtual machine. In either case, to restart it again,
131
+ simply run `vagrant up`.
132
+ saved: To resume this VM, simply run `vagrant up`.
133
+ listing: |-
134
+ This environment represents multiple VMs. The VMs are all listed
135
+ above with their current state. For more information about a specific
136
+ VM, run `vagrant status NAME`.
137
+ up:
138
+ vm_created: "VM already created. Booting if its not already running..."
139
+ upgrade_to_060:
140
+ already_done: "Environment appears to already be upgraded to 0.6.0. Doing nothing!"
141
+ ask: "Are you sure you want to execute this command?"
142
+ backing_up: "Backing up previous .vagrant file..."
143
+ complete: "Environment upgraded to 0.6.0 successfully."
144
+ info: |-
145
+ This command will upgrade the current environment from a pre-0.6.0
146
+ environment to a 0.6.x compatible environment. Running this command
147
+ multiple times should be okay. This command will make a backup file
148
+ prior to making any changes. Therefore, if anything goes wrong, then
149
+ restore that file to ".vagrant" in the same directory as the Vagrantfile.
150
+ quit: "Not executing this command by user request. Quitting..."
151
+ version:
152
+ output: "Vagrant version %{version}"
153
+
154
+ #-------------------------------------------------------------------------------
155
+ # Translations for Vagrant middleware acions
156
+ #-------------------------------------------------------------------------------
157
+ actions:
158
+ runner:
159
+ waiting_cleanup: "Waiting for cleanup before exiting..."
160
+ exit_immediately: "Exiting immediately, without cleanup!"
161
+ vm:
162
+ boot:
163
+ booting: Booting VM...
164
+ waiting: Waiting for VM to boot. This can take a few minutes.
165
+ ready: VM booted and ready for use!
166
+ failed: Failed to connect to VM!
167
+ failed_to_boot: VM failed to boot.
168
+ check_box:
169
+ not_found: Box %{name} was not found. Fetching box from specified URL...
170
+ not_specified: |-
171
+ No base box was specified! A base box is required as a staring point
172
+ for every vagrant virtual machine. Please specify one in your Vagrantfile
173
+ using `config.vm.box`
174
+ does_not_exist: |-
175
+ Specified box `%{name}` does not exist!
176
+
177
+ The box must be added through the `vagrant box add` command. Please view
178
+ the documentation associated with the command for more information.
179
+ check_guest_additions:
180
+ not_detected: |-
181
+ No guest additions were detected on the base box for this VM! Guest
182
+ additions are required for forwarded ports, shared folders, host only
183
+ networking, and more. If SSH fails on this machine, please install
184
+ the guest additions and repackage the box to continue.
185
+
186
+ This is not an error message; everything may continue to work properly,
187
+ in which case you may ignore this message.
188
+ version_mismatch: |-
189
+ The guest additions on this VM do not match the install version of
190
+ VirtualBox! This may cause things such as forwarded ports, shared
191
+ folders, and more to not work properly. If any of those things fail on
192
+ this machine, please update the guest additions and repackage the
193
+ box.
194
+
195
+ Guest Additions Version: %{guest_version}
196
+ VirtualBox Version: %{virtualbox_version}
197
+ clear_forward_ports:
198
+ deleting: Clearing any previously set forwarded ports...
199
+ clear_shared_folders:
200
+ deleting: Cleaning previously set shared folders...
201
+ customize:
202
+ running: Running any VM customizations...
203
+ destroy:
204
+ destroying: Destroying VM and associated drives...
205
+ destroy_network:
206
+ destroying: Destroying unused networking interface...
207
+ disable_networks:
208
+ disabling: Disabling host only networks...
209
+ discard_state:
210
+ discarding: Discarding saved state of VM...
211
+ export:
212
+ create_dir: Creating temporary directory for export...
213
+ exporting: Exporting VM...
214
+ power_off: "The Vagrant virtual environment you are trying to package must be powered off."
215
+ forward_ports:
216
+ auto_empty: |-
217
+ Vagrant found a port collision for the specified port and virtual machine.
218
+ While this port was marked to be auto-corrected, the ports in the
219
+ auto-correction range are all also used.
220
+
221
+ VM: %{vm_name}
222
+ Forwarded port: %{name} (%{guest_port} => %{host_port})
223
+ below_threshold_error: |-
224
+ The host port of all forwarded ports must be above 1024. VirtualBox
225
+ does not allow host ports to be below 1024. (Guest ports below 1024
226
+ are fine. For example: SSH on port 22 on the guest can be forwarded
227
+ to port 2222, but not 222).
228
+ collision_error: |-
229
+ Vagrant cannot forward the specified ports on this VM, since they
230
+ would collide with another VirtualBox virtual machine's forwarded
231
+ ports! The '%{name}' forwarded port (%{host_port}) is already in use on the host
232
+ machine.
233
+
234
+ To fix this, modify your current projects Vagrantfile to use another
235
+ port. Example, where '1234' would be replaced by a unique host port:
236
+
237
+ config.vm.forward_port("%{name}", %{guest_port}, 1234)
238
+
239
+ fixed_collision: Fixed port collision '%{name}'. Now on port %{new_port}.
240
+ forwarding: Forwarding ports...
241
+ forwarding_entry: "-- %{name}: %{guest_port} => %{host_port} (adapter %{adapter})"
242
+ non_nat: |-
243
+ VirtualBox adapter #%{adapter} not configured as "NAT"
244
+ Skipping port forwarding '%{name}'.
245
+ halt:
246
+ force: Forcing shutdown of VM...
247
+ import:
248
+ importing: Importing base box '%{name}'...
249
+ failure: |-
250
+ The VM import failed! Try running `VBoxManage import` on the box file
251
+ manually for more verbose error output.
252
+ match_mac:
253
+ matching: Matching MAC address for NAT networking...
254
+ network:
255
+ collides: |-
256
+ The specified host network collides with a non-hostonly network!
257
+ This will cause your specified IP to be inaccessible. Please change
258
+ the IP or name of your host only network to not match that of
259
+ a bridged or non-hostonly network.
260
+ creating: Creating new host only network for environment...
261
+ enabling: Enabling host only network...
262
+ not_found: |-
263
+ The specified host network could not be found: '%{name}.'
264
+ If the name specification is removed, Vagrant will create a new
265
+ host only network for you. Alternatively, please create the
266
+ specified network manually.
267
+ preparing: Preparing host only network...
268
+ nfs:
269
+ host_required: |-
270
+ A host class is required for NFS shared folders. By default, these
271
+ are auto-detected, but can be overridden with `config.vagrant.host`.
272
+ There is currently not host class loaded.
273
+ no_host_network: |-
274
+ NFS shared folders requires that host only networking is enabled.
275
+ Please enable host only networking via `config.vm.network`.
276
+ not_supported: |-
277
+ The host class is reporting that NFS is not supported by this host,
278
+ or `nfsd` may not be installed. Please verify that `nfsd` is installed
279
+ on your machine, and retry.
280
+ exporting: Exporting NFS shared folders...
281
+ mounting: Mounting NFS shared folders...
282
+ persist:
283
+ dotfile_error: |-
284
+ The dotfile which Vagrant uses to store the UUID of the project's
285
+ virtual machine already exists and is not a file! The dotfile is
286
+ currently configured to be '%{dotfile_path}'
287
+
288
+ To change this value, please see `config.vagrant.dotfile_name`
289
+
290
+ Are you trying to use Vagrant from your home directory? This is the
291
+ leading cause of this error message. To resolve this, simply use a
292
+ different directory. Or, if you really want to run Vagrant from your
293
+ home directory, modify the `config.vagrant.dotfile_name` configuration
294
+ key.
295
+ persisting: "Persisting the VM UUID (%{uuid})..."
296
+ provision:
297
+ beginning: "Beginning provisioning process..."
298
+ enabled: "Provisioning enabled with %{provisioner}..."
299
+ invalid_class: "Provisioners must be an instance of Vagrant::Provisioners::Base"
300
+ unknown_type: "Unknown provisioner type: %{provisioner}"
301
+ resume:
302
+ resuming: Resuming suspended VM...
303
+ share_folders:
304
+ creating: Creating shared folders metadata...
305
+ mounting: Mounting shared folders...
306
+ mounting_entry: "-- %{name}: %{guest_path}"
307
+ suspend:
308
+ suspending: Saving VM state and suspending execution...
309
+
310
+ box:
311
+ destroy:
312
+ destroying: "Deleting box '%{name}'..."
313
+ download:
314
+ with: "Downloading with %{class}..."
315
+ cleaning: "Cleaning up downloaded box..."
316
+ copying: "Copying box to temporary location..."
317
+ unknown_type: "Unknown or unsupported URI type given for box download."
318
+ unpackage:
319
+ extracting: "Extracting box..."
320
+ already_exists: |-
321
+ A box already exists under the name of '%{name}'. This may or may
322
+ not be the same box you are trying to add. Please use another name
323
+ or remove the previous box then try to add it again.
324
+ verify:
325
+ verifying: "Verifying box..."
326
+ failed: |-
327
+ The box file you're attempting to add is invalid. This can be
328
+ commonly attributed to typos in the path given to the box add
329
+ command. Another common case of this is invalid packaging of the
330
+ box itself.
331
+
332
+ general:
333
+ package:
334
+ packaging: "Packaging additional file: %{file}"
335
+ compressing: "Compressing package to: %{tar_path}"
336
+ output_exists: |-
337
+ The specified file to save the package as already exists. Please
338
+ remove this file or specify a different file name for outputting.
339
+ requires_directory: |-
340
+ A directory was not specified to package. This should never happen
341
+ and is a result of an internal inconsistency.
342
+ include_file_missing: |-
343
+ Package include file doesn't exist: %{file}
344
+
345
+ downloaders:
346
+ file:
347
+ file_missing: "The specified path to a file doesn't exist."
348
+ http:
349
+ socket_error: |-
350
+ An error occurred while trying to download the specified box. This most
351
+ often happens if there is no internet connection or the address is
352
+ invalid.
353
+
354
+ hosts:
355
+ bsd:
356
+ nfs_export:
357
+ prepare: "Preparing to edit /etc/exports. Administrator privileges will be required..."
358
+ linux:
359
+ nfs_export:
360
+ prepare: "Preparing to edit /etc/exports. Administrator privileges will be required..."
361
+
362
+ provisioners:
363
+ chef:
364
+ json: "Generating chef JSON and uploading..."
365
+ client_key_folder: "Creating folder to hold client key..."
366
+ upload_validation_key: "Uploading chef client validation key..."
367
+ running_client: "Running chef-client..."
368
+ running_solo: "Running chef-solo..."
369
+ invalid_provisioner: "Vagrant::Provisioners::Chef is not a valid provisioner! Use ChefSolo or ChefServer instead."
370
+ not_detected: |-
371
+ The `%{binary}` binary appears to not be in the PATH of the guest. This
372
+ could be because the PATH is not properly setup or perhaps chef is not
373
+ installed on this guest. Chef provisioning can not continue without
374
+ chef properly installed.
375
+ server_url_required: |-
376
+ Chef server provisioning requires that the `config.chef.chef_server_url` be set to the
377
+ URL of your chef server. Examples include "http://12.12.12.12:4000" and
378
+ "http://myserver.com:4000" (the port of course can be different, but 4000 is the default)
379
+ server_validation_key_required: |-
380
+ Chef server provisioning requires that the `config.chef.validation_key_path` configuration
381
+ be set to a path on your local machine of the validation key used to register the
382
+ VM with the chef server.
383
+ server_validation_key_doesnt_exist: |-
384
+ The validation key set for `config.chef.validation_key_path` does not exist! This
385
+ file needs to exist so it can be uploaded to the virtual machine.
386
+
387
+ systems:
388
+ linux:
389
+ attempting_halt: "Attempting graceful shutdown of linux..."
390
+ mount_fail: "Failed to mount shared folders. `vboxsf` was not available."
391
+ network_not_debian: |-
392
+ Host only networking is only supported for Debian/Ubuntu by the built-in
393
+ "Linux" system. If you're using some other distro and want to implement
394
+ host only networking, please subclass the `Vagrant::Systems::Linux` class
395
+ and implement the `prepare_host_only_network` and `enable_host_only_network`
396
+ methods.
397
+
398
+ Otherwise, please report your distro and how to modify network interfaces
399
+ to the Vagrant mailing list or IRC and we'll probably be glad to add it
400
+ to the internal systems.
401
+ solaris:
402
+ attempting_halt: "Attempting graceful shutdown of solaris..."
@@ -7,5 +7,5 @@ end
7
7
 
8
8
  # Load include vagrant file if it exists after the auto-generated
9
9
  # so it can override any of the settings
10
- include_vagrantfile = File.expand_path(File.join(File.dirname(__FILE__), "include", "Vagrantfile"))
10
+ include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
11
11
  load include_vagrantfile if File.exist?(include_vagrantfile)
@@ -0,0 +1,8 @@
1
+ en:
2
+ vagrant:
3
+ test:
4
+ errors:
5
+ test_key: This is a test key
6
+ test_key_with_interpolation: This is a test key that says %{key}
7
+ alternate:
8
+ test_key: This is an alternate
data/test/test_helper.rb CHANGED
@@ -1,127 +1,43 @@
1
- # ruby-debug, not necessary, but useful if we have it
2
- begin
3
- require 'ruby-debug'
4
- rescue LoadError; end
5
-
6
- require File.join(File.dirname(__FILE__), '..', 'lib', 'vagrant')
7
- require 'contest'
8
- require 'mocha'
9
-
10
1
  # Add this folder to the load path for "test_helper"
11
2
  $:.unshift(File.dirname(__FILE__))
12
3
 
13
- class Test::Unit::TestCase
14
- # Mocks an environment, setting it up with the given config.
15
- def mock_environment
16
- environment = Vagrant::Environment.new
17
-
18
- Vagrant::Config.reset!(environment)
19
-
20
- Vagrant::Config.run do |config|
21
- config.vagrant.home = '~/.home'
22
- config.vagrant.dotfile_name = ".vagrant"
23
- config.vagrant.log_output = nil
24
- config.vagrant.host = :detect
25
-
26
- config.ssh.username = "foo"
27
- config.ssh.host = "baz"
28
- config.ssh.port = 22
29
- config.ssh.forwarded_port_key = "ssh"
30
- config.ssh.max_tries = 10
31
- config.ssh.timeout = 10
32
- config.ssh.private_key_path = '~/foo'
33
-
34
- config.vm.box = "foo"
35
- config.vm.box_url = nil
36
- config.vm.box_ovf = "box.ovf"
37
- config.vm.base_mac = "42"
38
- config.vm.disk_image_format = 'VMDK'
39
- config.vm.forward_port("ssh", 22, 2222)
40
- config.vm.shared_folder_uid = nil
41
- config.vm.shared_folder_gid = nil
42
- config.vm.system = :linux
43
- config.vm.share_folder("v-root", "/vagrant", ".")
44
-
45
- config.package.name = 'package'
46
-
47
- # Unison
48
- config.unison.folder_suffix = ".sync"
49
- config.unison.log_file = "foo-%s"
50
-
51
- # Chef
52
- config.chef.chef_server_url = "http://localhost:4000"
53
- config.chef.validation_key_path = "validation.pem"
54
- config.chef.client_key_path = "/zoo/foo/bar.pem"
55
- config.chef.node_name = "baz"
56
- config.chef.recipe_url = nil
57
- config.chef.cookbooks_path = "cookbooks"
58
- config.chef.provisioning_path = "/tmp/vagrant-chef"
59
- config.chef.log_level = :info
60
- config.chef.json = {
61
- :recipes => ["vagrant_main"]
62
- }
63
- end
64
-
65
- if block_given?
66
- Vagrant::Config.run do |config|
67
- yield config
68
- end
69
- end
4
+ require 'vagrant'
5
+ require 'mario'
6
+ require 'contest'
7
+ require 'mocha'
70
8
 
71
- config = Vagrant::Config.execute!
9
+ # Try to load ruby debug since its useful if it is available.
10
+ # But not a big deal if its not available (probably on a non-MRI
11
+ # platform)
12
+ begin
13
+ require 'ruby-debug'
14
+ rescue LoadError
15
+ end
72
16
 
73
- environment.instance_variable_set(:@config, config)
17
+ # Silence Mario by sending log output to black hole
18
+ Mario::Platform.logger(nil)
74
19
 
75
- # Setup the logger. We create it then reset it so that subsequent
76
- # calls will recreate it for us.
77
- environment.load_logger!
78
- environment.logger.class.reset_singleton_logger!
79
- environment.logger.stubs(:flush_progress)
80
- environment.logger.stubs(:cl_reset).returns("")
20
+ # Add the I18n locale for tests
21
+ I18n.load_path << File.expand_path("../locales/en.yml", __FILE__)
81
22
 
82
- environment
83
- end
23
+ class Test::Unit::TestCase
24
+ include Vagrant::TestHelpers
84
25
 
85
26
  # Sets up the mocks for a VM
86
27
  def mock_vm(env=nil)
87
- env ||= mock_environment
28
+ env ||= vagrant_env
88
29
  vm = Vagrant::VM.new
89
30
  vm.stubs(:env).returns(env)
90
31
  vm.stubs(:ssh).returns(Vagrant::SSH.new(vm.env))
91
32
  vm
92
33
  end
93
34
 
94
- def mock_action_data
95
- app = lambda { |env| }
96
- env = Vagrant::Action::Environment.new(mock_environment)
97
- env["vagrant.test"] = true
98
- [app, env]
99
- end
100
-
101
- # Returns a resource logger which is safe for tests
102
- def quiet_logger(resource, env=nil)
103
- logger = Vagrant::ResourceLogger.new(resource, env)
104
- logger.stubs(:flush_progress)
105
- logger.stubs(:cl_reset).returns("")
106
- logger
107
- end
108
-
109
- # Returns a linux system
110
- def linux_system(vm)
111
- Vagrant::Systems::Linux.new(vm)
112
- end
113
-
114
- def stub_default_action_dependecies(mock)
115
- mock.stubs(:precedes).returns([])
116
- mock.stubs(:follows).returns([])
117
- end
118
-
119
35
  # Sets up the mocks and stubs for a downloader
120
36
  def mock_downloader(downloader_klass)
121
37
  tempfile = mock("tempfile")
122
38
  tempfile.stubs(:write)
123
39
 
124
- _, env = mock_action_data
40
+ _, env = action_env
125
41
  [downloader_klass.new(env), tempfile]
126
42
  end
127
43
  end