vagrant-unbundled 2.2.9.0 → 2.2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -0
  3. data/README.md +5 -5
  4. data/contrib/README.md +1 -0
  5. data/contrib/sudoers/linux-suse +2 -2
  6. data/contrib/zsh/_vagrant +736 -0
  7. data/contrib/zsh/generate_zsh_completion.rb +166 -0
  8. data/lib/vagrant/action.rb +3 -0
  9. data/lib/vagrant/action/builder.rb +52 -18
  10. data/lib/vagrant/action/builtin/box_add.rb +6 -5
  11. data/lib/vagrant/action/builtin/cloud_init_setup.rb +127 -0
  12. data/lib/vagrant/action/builtin/cloud_init_wait.rb +30 -0
  13. data/lib/vagrant/action/builtin/handle_box.rb +1 -1
  14. data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +13 -13
  15. data/lib/vagrant/action/builtin/has_provisioner.rb +36 -0
  16. data/lib/vagrant/action/builtin/mixin_provisioners.rb +1 -0
  17. data/lib/vagrant/action/builtin/mixin_synced_folders.rb +20 -21
  18. data/lib/vagrant/action/builtin/set_hostname.rb +5 -1
  19. data/lib/vagrant/action/builtin/synced_folders.rb +10 -0
  20. data/lib/vagrant/action/builtin/trigger.rb +3 -2
  21. data/lib/vagrant/action/hook.rb +59 -24
  22. data/lib/vagrant/action/warden.rb +25 -5
  23. data/lib/vagrant/box.rb +5 -4
  24. data/lib/vagrant/bundler.rb +6 -1
  25. data/lib/vagrant/errors.rb +37 -1
  26. data/lib/vagrant/machine.rb +47 -0
  27. data/lib/vagrant/machine_index.rb +27 -1
  28. data/lib/vagrant/plugin/v2/command.rb +5 -1
  29. data/lib/vagrant/plugin/v2/components.rb +6 -0
  30. data/lib/vagrant/plugin/v2/manager.rb +14 -0
  31. data/lib/vagrant/plugin/v2/plugin.rb +12 -0
  32. data/lib/vagrant/plugin/v2/synced_folder.rb +50 -0
  33. data/lib/vagrant/plugin/v2/trigger.rb +6 -5
  34. data/lib/vagrant/ui.rb +1 -1
  35. data/lib/vagrant/util/ansi_escape_code_remover.rb +1 -1
  36. data/lib/vagrant/util/caps.rb +48 -0
  37. data/lib/vagrant/util/credential_scrubber.rb +1 -1
  38. data/lib/vagrant/util/directory.rb +19 -0
  39. data/lib/vagrant/util/downloader.rb +3 -3
  40. data/lib/vagrant/util/guest_hosts.rb +68 -0
  41. data/lib/vagrant/util/install_cli_autocomplete.rb +118 -0
  42. data/lib/vagrant/util/ipv4_interfaces.rb +15 -0
  43. data/lib/vagrant/util/is_port_open.rb +8 -19
  44. data/lib/vagrant/util/network_ip.rb +11 -1
  45. data/lib/vagrant/util/powershell.rb +1 -1
  46. data/lib/vagrant/util/subprocess.rb +9 -1
  47. data/lib/vagrant/vagrantfile.rb +1 -1
  48. data/plugins/commands/autocomplete/command/install.rb +49 -0
  49. data/plugins/commands/autocomplete/command/root.rb +64 -0
  50. data/plugins/commands/autocomplete/plugin.rb +18 -0
  51. data/plugins/commands/destroy/command.rb +6 -2
  52. data/plugins/communicators/ssh/communicator.rb +7 -1
  53. data/plugins/communicators/winrm/helper.rb +1 -1
  54. data/plugins/communicators/winssh/communicator.rb +1 -1
  55. data/plugins/guests/alpine/cap/change_host_name.rb +10 -11
  56. data/plugins/guests/alt/cap/change_host_name.rb +40 -53
  57. data/plugins/guests/arch/cap/change_host_name.rb +5 -14
  58. data/plugins/guests/arch/cap/configure_networks.rb +27 -10
  59. data/plugins/guests/atomic/cap/change_host_name.rb +5 -14
  60. data/plugins/guests/darwin/cap/change_host_name.rb +10 -6
  61. data/plugins/guests/debian/cap/change_host_name.rb +11 -11
  62. data/plugins/guests/esxi/cap/public_key.rb +3 -1
  63. data/plugins/guests/freebsd/cap/change_host_name.rb +10 -6
  64. data/plugins/guests/gentoo/cap/change_host_name.rb +14 -22
  65. data/plugins/guests/haiku/cap/rsync.rb +19 -0
  66. data/plugins/guests/haiku/plugin.rb +15 -0
  67. data/plugins/guests/linux/cap/change_host_name.rb +46 -0
  68. data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +4 -11
  69. data/plugins/guests/linux/cap/persist_mount_shared_folder.rb +62 -0
  70. data/plugins/guests/linux/plugin.rb +10 -0
  71. data/plugins/guests/omnios/cap/change_host_name.rb +10 -16
  72. data/plugins/guests/openbsd/cap/change_host_name.rb +10 -6
  73. data/plugins/guests/photon/cap/change_host_name.rb +9 -15
  74. data/plugins/guests/pld/cap/change_host_name.rb +11 -17
  75. data/plugins/guests/redhat/cap/change_host_name.rb +10 -5
  76. data/plugins/guests/slackware/cap/change_host_name.rb +11 -17
  77. data/plugins/guests/solaris11/plugin.rb +5 -0
  78. data/plugins/guests/suse/cap/change_host_name.rb +12 -11
  79. data/plugins/hosts/darwin/cap/fs_iso.rb +49 -0
  80. data/plugins/hosts/darwin/plugin.rb +10 -0
  81. data/plugins/hosts/linux/cap/fs_iso.rb +49 -0
  82. data/plugins/hosts/linux/cap/rdp.rb +1 -1
  83. data/plugins/hosts/linux/plugin.rb +10 -0
  84. data/plugins/hosts/windows/cap/fs_iso.rb +48 -0
  85. data/plugins/hosts/windows/cap/rdp.rb +1 -1
  86. data/plugins/hosts/windows/plugin.rb +15 -0
  87. data/plugins/kernel_v2/config/cloud_init.rb +126 -0
  88. data/plugins/kernel_v2/config/disk.rb +40 -18
  89. data/plugins/kernel_v2/config/vm.rb +122 -13
  90. data/plugins/kernel_v2/config/vm_provisioner.rb +13 -2
  91. data/plugins/kernel_v2/config/vm_trigger.rb +5 -1
  92. data/plugins/providers/docker/action.rb +8 -17
  93. data/plugins/providers/docker/action/forwarded_ports.rb +2 -0
  94. data/plugins/providers/docker/action/prepare_forwarded_port_collision_params.rb +61 -0
  95. data/plugins/providers/docker/cap/has_communicator.rb +11 -0
  96. data/plugins/providers/docker/communicator.rb +1 -1
  97. data/plugins/providers/docker/driver.rb +35 -0
  98. data/plugins/providers/docker/plugin.rb +5 -0
  99. data/plugins/providers/hyperv/action.rb +2 -0
  100. data/plugins/providers/hyperv/action/configure.rb +8 -0
  101. data/plugins/providers/hyperv/cap/cleanup_disks.rb +54 -0
  102. data/plugins/providers/hyperv/cap/configure_disks.rb +200 -0
  103. data/plugins/providers/hyperv/cap/validate_disk_ext.rb +34 -0
  104. data/plugins/providers/hyperv/config.rb +5 -0
  105. data/plugins/providers/hyperv/driver.rb +80 -0
  106. data/plugins/providers/hyperv/plugin.rb +25 -0
  107. data/plugins/providers/hyperv/scripts/attach_disk_drive.ps1 +28 -0
  108. data/plugins/providers/hyperv/scripts/dismount_vhd.ps1 +13 -0
  109. data/plugins/providers/hyperv/scripts/get_vhd.ps1 +16 -0
  110. data/plugins/providers/hyperv/scripts/get_vm_status.ps1 +1 -1
  111. data/plugins/providers/hyperv/scripts/list_hdds.ps1 +17 -0
  112. data/plugins/providers/hyperv/scripts/new_vhd.ps1 +31 -0
  113. data/plugins/providers/hyperv/scripts/remove_disk_drive.ps1 +25 -0
  114. data/plugins/providers/hyperv/scripts/resize_disk_drive.ps1 +18 -0
  115. data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +24 -0
  116. data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +8 -0
  117. data/plugins/providers/virtualbox/action.rb +12 -1
  118. data/plugins/providers/virtualbox/action/forward_ports.rb +2 -2
  119. data/plugins/providers/virtualbox/cap/cleanup_disks.rb +40 -9
  120. data/plugins/providers/virtualbox/cap/configure_disks.rb +230 -77
  121. data/plugins/providers/virtualbox/cap/mount_options.rb +35 -0
  122. data/plugins/providers/virtualbox/cap/validate_disk_ext.rb +10 -3
  123. data/plugins/providers/virtualbox/driver/meta.rb +3 -0
  124. data/plugins/providers/virtualbox/driver/version_5_0.rb +96 -21
  125. data/plugins/providers/virtualbox/model/storage_controller.rb +135 -0
  126. data/plugins/providers/virtualbox/model/storage_controller_array.rb +100 -0
  127. data/plugins/providers/virtualbox/plugin.rb +18 -1
  128. data/plugins/providers/virtualbox/synced_folder.rb +1 -0
  129. data/plugins/provisioners/container/client.rb +1 -1
  130. data/plugins/provisioners/shell/provisioner.rb +15 -9
  131. data/plugins/synced_folders/nfs/synced_folder.rb +3 -1
  132. data/plugins/synced_folders/smb/cap/default_fstab_modification.rb +11 -0
  133. data/plugins/synced_folders/smb/cap/mount_options.rb +36 -0
  134. data/plugins/synced_folders/smb/plugin.rb +10 -0
  135. data/plugins/synced_folders/smb/synced_folder.rb +1 -1
  136. data/plugins/synced_folders/unix_mount_helpers.rb +14 -0
  137. data/templates/guests/arch/{network_dhcp.erb → default_network/network_dhcp.erb} +0 -0
  138. data/templates/guests/arch/{network_static.erb → default_network/network_static.erb} +0 -0
  139. data/templates/guests/arch/{network_static6.erb → default_network/network_static6.erb} +0 -0
  140. data/templates/guests/arch/systemd_networkd/network_dhcp.erb +6 -0
  141. data/templates/guests/arch/systemd_networkd/network_static.erb +9 -0
  142. data/templates/guests/arch/systemd_networkd/network_static6.erb +9 -0
  143. data/templates/guests/linux/etc_fstab.erb +6 -0
  144. data/templates/locales/en.yml +121 -11
  145. data/templates/locales/providers_docker.yml +4 -0
  146. data/vagrant.gemspec +8 -7
  147. data/version.txt +1 -1
  148. metadata +1492 -1309
@@ -54,7 +54,12 @@ module VagrantPlugins
54
54
  Cap::ValidateDiskExt
55
55
  end
56
56
 
57
- provider_capability(:virtualbox, :get_default_disk_ext) do
57
+ provider_capability(:virtualbox, :default_disk_exts) do
58
+ require_relative "cap/validate_disk_ext"
59
+ Cap::ValidateDiskExt
60
+ end
61
+
62
+ provider_capability(:virtualbox, :set_default_disk_ext) do
58
63
  require_relative "cap/validate_disk_ext"
59
64
  Cap::ValidateDiskExt
60
65
  end
@@ -63,6 +68,16 @@ module VagrantPlugins
63
68
  require_relative "cap"
64
69
  Cap
65
70
  end
71
+
72
+ synced_folder_capability(:virtualbox, "mount_options") do
73
+ require_relative "cap/mount_options"
74
+ Cap::MountOptions
75
+ end
76
+
77
+ synced_folder_capability(:virtualbox, "mount_type") do
78
+ require_relative "cap/mount_options"
79
+ Cap::MountOptions
80
+ end
66
81
  end
67
82
 
68
83
  autoload :Action, File.expand_path("../action", __FILE__)
@@ -84,6 +99,8 @@ module VagrantPlugins
84
99
 
85
100
  module Model
86
101
  autoload :ForwardedPort, File.expand_path("../model/forwarded_port", __FILE__)
102
+ autoload :StorageController, File.expand_path("../model/storage_controller", __FILE__)
103
+ autoload :StorageControllerArray, File.expand_path("../model/storage_controller_array", __FILE__)
87
104
  end
88
105
 
89
106
  module Util
@@ -33,6 +33,7 @@ module VagrantPlugins
33
33
 
34
34
  # Go through each folder and mount
35
35
  machine.ui.output(I18n.t("vagrant.actions.vm.share_folders.mounting"))
36
+ fstab_folders = []
36
37
  folders.each do |id, data|
37
38
  if data[:guestpath]
38
39
  # Guest path specified, so mount the folder to specified point
@@ -160,7 +160,7 @@ module VagrantPlugins
160
160
  # If the name is the automatically assigned name, then
161
161
  # replace the "/" with "-" because "/" is not a valid
162
162
  # character for a container name.
163
- name = name.gsub("/", "-") if name == config[:original_name]
163
+ name = name.gsub("/", "-").gsub(":", "-") if name == config[:original_name]
164
164
  name
165
165
  end
166
166
 
@@ -11,6 +11,8 @@ module VagrantPlugins
11
11
 
12
12
  DEFAULT_WINDOWS_SHELL_EXT = ".ps1".freeze
13
13
 
14
+ CMD_WINDOWS_SHELL_EXT = ".bat".freeze
15
+
14
16
  def provision
15
17
  args = ""
16
18
  if config.args.is_a?(String)
@@ -138,14 +140,7 @@ module VagrantPlugins
138
140
  @machine.communicate.tap do |comm|
139
141
  env = config.env.map{|k,v| comm.generate_environment_export(k, v)}.join(';')
140
142
 
141
- remote_ext = File.extname(upload_path.to_s)
142
- if remote_ext.empty?
143
- remote_ext = File.extname(path.to_s)
144
- if remote_ext.empty?
145
- remote_ext = @machine.config.winssh.shell == "cmd" ? ".bat" : ".ps1"
146
- end
147
- end
148
-
143
+ remote_ext = get_windows_ext(path)
149
144
  remote_path = add_extension(upload_path, remote_ext)
150
145
 
151
146
  if remote_ext == ".bat"
@@ -203,7 +198,7 @@ module VagrantPlugins
203
198
  @machine.communicate.tap do |comm|
204
199
  # Make sure that the upload path has an extension, since
205
200
  # having an extension is critical for Windows execution
206
- winrm_upload_path = add_extension(upload_path, DEFAULT_WINDOWS_SHELL_EXT)
201
+ winrm_upload_path = add_extension(upload_path, get_windows_ext(path))
207
202
 
208
203
  # Upload it
209
204
  comm.upload(path.to_s, winrm_upload_path)
@@ -267,6 +262,17 @@ module VagrantPlugins
267
262
  path + ext
268
263
  end
269
264
 
265
+ def get_windows_ext(path)
266
+ remote_ext = File.extname(upload_path.to_s)
267
+ if remote_ext.empty?
268
+ remote_ext = File.extname(path.to_s)
269
+ if remote_ext.empty?
270
+ remote_ext = @machine.config.winssh.shell == "cmd" ? CMD_WINDOWS_SHELL_EXT : DEFAULT_WINDOWS_SHELL_EXT
271
+ end
272
+ end
273
+ remote_ext
274
+ end
275
+
270
276
  # This method yields the path to a script to upload and execute
271
277
  # on the remote server. This method will properly clean up the
272
278
  # script file if needed.
@@ -30,7 +30,9 @@ module VagrantPlugins
30
30
  if !machine.config.nfs.functional
31
31
  return false
32
32
  end
33
- return true if machine.env.host.capability(:nfs_installed)
33
+ if machine.env.host.capability?(:nfs_installed)
34
+ return true if machine.env.host.capability(:nfs_installed)
35
+ end
34
36
  return false if !raise_error
35
37
  raise Vagrant::Errors::NFSNotSupported
36
38
  end
@@ -0,0 +1,11 @@
1
+ module VagrantPlugins
2
+ module SyncedFolderSMB
3
+ module Cap
4
+ module DefaultFstabModification
5
+ def self.default_fstab_modification(machine)
6
+ return false
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,36 @@
1
+ require_relative "../../unix_mount_helpers"
2
+
3
+ module VagrantPlugins
4
+ module SyncedFolderSMB
5
+ module Cap
6
+ module MountOptions
7
+ extend VagrantPlugins::SyncedFolder::UnixMountHelpers
8
+
9
+ def self.mount_options(machine, name, guest_path, options)
10
+ mount_options = options.fetch(:mount_options, [])
11
+ detected_ids = detect_owner_group_ids(machine, guest_path, mount_options, options)
12
+ mount_uid = detected_ids[:uid]
13
+ mount_gid = detected_ids[:gid]
14
+
15
+ mnt_opts = []
16
+ if machine.env.host.capability?(:smb_mount_options)
17
+ mnt_opts += machine.env.host.capability(:smb_mount_options)
18
+ else
19
+ mnt_opts << "sec=ntlmssp"
20
+ end
21
+
22
+ mnt_opts << "credentials=/etc/smb_creds_#{name}"
23
+ mnt_opts << "uid=#{mount_uid}"
24
+ mnt_opts << "gid=#{mount_gid}"
25
+ if !ENV['VAGRANT_DISABLE_SMBMFSYMLINKS']
26
+ mnt_opts << "mfsymlinks"
27
+ end
28
+ mnt_opts = merge_mount_options(mnt_opts, options[:mount_options] || [])
29
+
30
+ mount_options = mnt_opts.join(",")
31
+ return mount_options, mount_uid, mount_gid
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -23,6 +23,16 @@ module VagrantPlugins
23
23
  SyncedFolder
24
24
  end
25
25
 
26
+ synced_folder_capability("smb", "default_fstab_modification") do
27
+ require_relative "cap/default_fstab_modification"
28
+ Cap::DefaultFstabModification
29
+ end
30
+
31
+ synced_folder_capability("smb", "mount_options") do
32
+ require_relative "cap/mount_options"
33
+ Cap::MountOptions
34
+ end
35
+
26
36
  protected
27
37
 
28
38
  def self.init!
@@ -66,7 +66,7 @@ module VagrantPlugins
66
66
  if machine.env.host.capability?(:smb_validate_password)
67
67
  Vagrant::Util::CredentialScrubber.sensitive(smb_password)
68
68
  auth_success = machine.env.host.capability(:smb_validate_password,
69
- smb_username, smb_password)
69
+ machine, smb_username, smb_password)
70
70
  end
71
71
 
72
72
  break if auth_success
@@ -100,6 +100,20 @@ module VagrantPlugins
100
100
  EOH
101
101
  end
102
102
 
103
+ def merge_mount_options(base, overrides)
104
+ base = base.join(",").split(",")
105
+ overrides = overrides.join(",").split(",")
106
+ b_kv = Hash[base.map{|item| item.split("=", 2) }]
107
+ o_kv = Hash[overrides.map{|item| item.split("=", 2) }]
108
+ merged = {}.tap do |opts|
109
+ (b_kv.keys + o_kv.keys).uniq.each do |key|
110
+ opts[key] = o_kv.fetch(key, b_kv[key])
111
+ end
112
+ end
113
+ merged.map do |key, value|
114
+ [key, value].compact.join("=")
115
+ end
116
+ end
103
117
  end
104
118
  end
105
119
  end
@@ -0,0 +1,6 @@
1
+ [Match]
2
+ Name=<%= options[:device] %>
3
+
4
+ [Network]
5
+ Description=A basic DHCP ethernet connection
6
+ DHCP=ipv4
@@ -0,0 +1,9 @@
1
+ [Match]
2
+ Name=<%= options[:device] %>
3
+
4
+ [Network]
5
+ Description=A basic static ethernet connection
6
+ Address=<%= options[:ip]%>/<%= options[:netmask] %>
7
+ <% if options[:gateway] -%>
8
+ Gateway=<%= options[:gateway] %>
9
+ <% end -%>
@@ -0,0 +1,9 @@
1
+ [Match]
2
+ Name=<%= options[:device] %>
3
+
4
+ [Network]
5
+ Description=A basic static ethernet connection
6
+ Address=<%= options[:ip]%>/<%= options[:netmask] %>
7
+ <% if options[:gateway] -%>
8
+ Gateway=<%= options[:gateway] %>
9
+ <% end -%>
@@ -0,0 +1,6 @@
1
+ #VAGRANT-BEGIN
2
+ # The contents below are automatically generated by Vagrant. Do not modify.
3
+ <% folders.each do |opts| %>
4
+ <%= opts[:name] %> <%= opts[:mount_point] %> <%= opts[:mount_type] %> <%= opts[:mount_options] || 'default' %> <%= opts[:dump] || 0 %> <%= opts[:fsck] || 0 %>
5
+ <%end%>
6
+ #VAGRANT-END
@@ -127,6 +127,7 @@ en:
127
127
  Warning: Chef run list is empty. This may not be what you want.
128
128
  cli_interrupt: |-
129
129
  Exiting due to interrupt.
130
+ cloud_init_waiting: Waiting for cloud init to finish running
130
131
  container_pulling_single: |-
131
132
  -- Image: %{name}
132
133
  container_building_single: |-
@@ -164,6 +165,10 @@ en:
164
165
  -- Detected newer image for container '%{name}', restarting...
165
166
  docker_starting_containers: |-
166
167
  Starting Docker containers...
168
+ hyperv_enable_enhanced_session: |-
169
+ Setting VM Enhanced session transport type to HvSocket
170
+ hyperv_disable_enhanced_session: |-
171
+ Setting VM Enhanced session transport type to disabled/default (VMBus)
167
172
  inserted_key: |-
168
173
  Key inserted! Disconnecting and reconnecting using new SSH key...
169
174
  inserting_insecure_detected: |-
@@ -788,6 +793,11 @@ en:
788
793
  Additionally, the created environment must be started with a provider
789
794
  matching this provider. For example, if you're using VirtualBox,
790
795
  the clone environment must also be using VirtualBox.
796
+ cloud_init_not_found: |-
797
+ cloud-init is not found. Please ensure that cloud-init is installed and
798
+ available on path for guest '%{guest_name}'.
799
+ cloud_init_command_failed: |-
800
+ cloud init command '%{cmd}' failed on guest '%{guest_name}'.
791
801
  command_deprecated: |-
792
802
  The command 'vagrant %{name}' has been deprecated and is no longer functional
793
803
  within Vagrant.
@@ -832,6 +842,9 @@ en:
832
842
  they'll have to be destroyed manually.
833
843
 
834
844
  Path: %{path}
845
+ create_iso_host_cap_not_found: |-
846
+ Vagrant cannot create an iso due to the host capability for creating isos not existing.
847
+ Vagrant will now exit.
835
848
  destroy_requires_force: |-
836
849
  Destroy doesn't have a TTY to ask for confirmation. Please pass the
837
850
  `--force` flag to force a destroy, otherwise attach a TTY so that
@@ -939,6 +952,18 @@ en:
939
952
  ("%{value}") could not be found. Please verify that the plugin is
940
953
  installed which implements this host and that the value you used
941
954
  for `config.vagrant.host` is correct.
955
+ iso_build_failed: |-
956
+ Failed to build iso image. The following command returned an error:
957
+
958
+ %{cmd}
959
+
960
+ Stdout from the command:
961
+
962
+ %{stdout}
963
+
964
+ Stderr from the command:
965
+
966
+ %{stderr}
942
967
  hyperv_virtualbox_error: |-
943
968
  Hyper-V and VirtualBox cannot be used together and will result in a
944
969
  system crash. Vagrant will now exit. Please disable Hyper-V if you wish
@@ -1435,6 +1460,11 @@ en:
1435
1460
  usually indicates that SSH within the guest machine was unable to
1436
1461
  properly start up. Please boot the VM in GUI mode to check whether
1437
1462
  it is booting properly.
1463
+ ssh_no_exit_status: |-
1464
+ The SSH command completed, but Vagrant did not receive an exit status.
1465
+ This indicates that the command was terminated unexpectedly. Please
1466
+ check that the VM has sufficient memory to run the command and that no
1467
+ processes were killed by the guest operating system.
1438
1468
  ssh_no_route: |-
1439
1469
  While attempting to connect with SSH, a "no route to host" (EHOSTUNREACH)
1440
1470
  error was received. Please verify your network settings are correct
@@ -1663,11 +1693,30 @@ en:
1663
1693
  4.2.14 contains a critical bug which prevents it from working with
1664
1694
  Vagrant. VirtualBox 4.2.16+ fixes this problem. Please upgrade
1665
1695
  VirtualBox.
1696
+ virtualbox_disks_controller_not_found: |-
1697
+ Vagrant expected to find a storage controller called '%{name}',
1698
+ but there is no controller with this name attached to the current VM.
1699
+ If you have changed or removed any storage controllers, please restore
1700
+ them to their previous configuration.
1701
+ virtualbox_disks_no_supported_controllers: |-
1702
+ Vagrant was unable to detect a disk controller with any of the
1703
+ following supported types:
1704
+
1705
+ %{supported_types}
1706
+
1707
+ Please add one of the supported controller types in order to use the
1708
+ disk configuration feature.
1666
1709
  virtualbox_disks_defined_exceed_limit: |-
1667
- VirtualBox only allows up to 30 disks to be attached to a single guest using the SATA Controller,
1668
- including the primray disk.
1669
-
1670
- Please ensure only up to 30 disks are configured for your guest.
1710
+ VirtualBox only allows up to %{limit} disks to be attached to the
1711
+ storage controller '%{name}'. Please remove some disks from your disk
1712
+ configuration, or attach a new storage controller.
1713
+ virtualbox_disks_primary_not_found: |-
1714
+ Vagrant was not able to detect a primary disk attached to the main
1715
+ controller. Vagrant Disks requires that the primary disk be attached
1716
+ to the first port of the main controller in order to manage it.
1717
+ virtualbox_disks_unsupported_controller: |-
1718
+ An disk operation was attempted on the controller '%{controller_name}',
1719
+ but Vagrant doesn't support this type of disk controller.
1671
1720
  virtualbox_guest_property_not_found: |-
1672
1721
  Could not find a required VirtualBox guest property:
1673
1722
  %{guest_property}
@@ -1829,6 +1878,11 @@ en:
1829
1878
  #-------------------------------------------------------------------------------
1830
1879
  config:
1831
1880
  disk:
1881
+ dvd_type_file_required:
1882
+ A 'file' option is required when defining a disk of type ':dvd' for guest '%{machine}'.
1883
+ dvd_type_primary: |-
1884
+ Disks of type ':dvd' cannot be defined as a primary disks. Please
1885
+ remove the 'primary' argument for disk '%{name}' on guest '%{machine}'.
1832
1886
  invalid_ext: |-
1833
1887
  Disk type '%{ext}' is not a valid disk extention for '%{name}'. Please pick one of the following supported disk types: %{exts}
1834
1888
  invalid_type: |-
@@ -1941,12 +1995,14 @@ en:
1941
1995
  Checksum type specified but "box_download_checksum" is blank
1942
1996
  box_download_checksum_notblank: |-
1943
1997
  Checksum specified but must also specify "box_download_checksum_type"
1998
+ box_empty: "Box value for guest '%{machine_name}' is an empty string."
1944
1999
  box_missing: "A box must be specified."
1945
2000
  box_download_options_type: |-
1946
2001
  Found "box_download_options" specified as type '%{type}', should be a Hash
1947
2002
  box_download_options_not_converted: |-
1948
2003
  Something went wrong converting VM config `box_download_options`. Value for provided key '%{missing_key}' is invalid type. Should be String or Bool
1949
2004
  clone_and_box: "Only one of clone or box can be specified."
2005
+ config_type: "Found '%{option}' specified as type '%{given}', should be '%{required}'"
1950
2006
  hostname_invalid_characters: |-
1951
2007
  The hostname set for the VM '%{name}' should only contain letters, numbers,
1952
2008
  hyphens or dots. It cannot start with a hyphen or dot.
@@ -1954,8 +2010,21 @@ en:
1954
2010
  Ignoring provider config for validation...
1955
2011
  multiple_primary_disks_error: |-
1956
2012
  There are more than one primary disks defined for guest '%{name}'. Please ensure that only one disk has been defined as a primary disk.
2013
+ multiple_disk_files_error: |-
2014
+ The following disk files are used multiple times in the disk
2015
+ configuration for the VM '%{name}':
2016
+
2017
+ %{disk_files}
2018
+
2019
+ Each disk file may only be attached to a VM once.
1957
2020
  multiple_disk_names_error: |-
1958
- Duplicate disk names defined: '%{name}'. Disk names must be unique.
2021
+ The following disks names are defined multiple times in the disk
2022
+ configuration for the VM '%{name}':
2023
+
2024
+ %{disk_names}
2025
+
2026
+ Disk names must be unique.
2027
+ multiple_networks_set_hostname: "Multiple networks have set `:hostname`"
1959
2028
  name_invalid: |-
1960
2029
  The sub-VM name '%{name}' is invalid. Please don't use special characters.
1961
2030
  network_ip_ends_in_one: |-
@@ -1974,6 +2043,7 @@ en:
1974
2043
  Forwarded port definitions require a "host" and "guest" value
1975
2044
  network_type_invalid: |-
1976
2045
  Network type '%{type}' is invalid. Please use a valid network type.
2046
+ network_with_hostname_must_set_ip: "Network specified with `:hostname` must provide a static ip"
1977
2047
  provisioner_not_found: |-
1978
2048
  The '%{name}' provisioner could not be found.
1979
2049
  shared_folder_guestpath_duplicate: |-
@@ -2205,14 +2275,17 @@ en:
2205
2275
  # Translations for Vagrant middleware actions
2206
2276
  #-------------------------------------------------------------------------------
2207
2277
  cap:
2278
+ cleanup_disks:
2279
+ disk_cleanup: |-
2280
+ Disk '%{name}' no longer exists in Vagrant config. Removing and closing medium from guest...
2281
+ disk_not_found: |-
2282
+ Disk '%{name}' could not be found, and could not be properly removed. Please remove this disk manually if it still exists
2208
2283
  configure_disks:
2209
- start: "Configuring storage mediums..."
2284
+ create_disk: |-
2285
+ Disk '%{name}' not found in guest. Creating and attaching disk to guest...
2210
2286
  floppy_not_supported: "Floppy disk configuration not yet supported. Skipping disk '%{name}'..."
2211
- dvd_not_supported: "DVD disk configuration not yet supported. Skipping disk '%{name}'..."
2212
2287
  shrink_size_not_supported: |-
2213
2288
  VirtualBox does not support shrinking disk sizes. Cannot shrink '%{name}' disks size.
2214
- create_disk: |-
2215
- Disk '%{name}' not found in guest. Creating and attaching disk to guest...
2216
2289
  resize_disk: |-
2217
2290
  Disk '%{name}' needs to be resized. Resizing disk...
2218
2291
  recovery_from_resize: |-
@@ -2221,6 +2294,35 @@ en:
2221
2294
  If Vagrant fails to reattach the original disk, it is recommended that you open the VirtualBox GUI and navigate to the current guests settings for '%{name}' and look at the 'storage' section. Here is where you can reattach a missing disk if Vagrant fails to do so...
2222
2295
  recovery_attached_disks: |-
2223
2296
  Disk has been reattached. Vagrant will now continue on an raise the exception receieved
2297
+ start: "Configuring storage mediums..."
2298
+ cloud_init:
2299
+ content_type_not_set: |-
2300
+ 'content_type' must be defined for a cloud_init config. Guest '%{machine}'
2301
+ has not defined a 'content_type' for its cloud_init config. Valid options
2302
+ supported by Vagrant are listed below:
2303
+
2304
+ %{accepted_types}
2305
+ incorrect_content_type: |-
2306
+ Content-type "%{content_type}" is not supported by Vagrant and
2307
+ cloud-init on machine '%{machine}'. Valid options supported by Vagrant are
2308
+ listed below:
2309
+
2310
+ %{accepted_types}
2311
+ incorrect_inline_type: |-
2312
+ The inline config cloud_init option for guest '%{machine}' is of type '%{type}', but
2313
+ should be a String.
2314
+ incorrect_path_type: |-
2315
+ The path '%{path}' given for guest '%{machine}' is of type '%{type}'.
2316
+ Config option 'path' must be a String.
2317
+ incorrect_type_set: |-
2318
+ The type '%{type}' defined for a cloud_init config with guest '%{machine}'
2319
+ is not a valid type. Currently, Vagrant only supports type: '%{default_type}'.
2320
+ path_and_inline_set: |-
2321
+ Guest '%{machine}' defines both a 'path' and 'inline' for its cloud_init config,
2322
+ however only one config option should be defined for cloud_init.
2323
+ path_invalid: |-
2324
+ The path '%{path}' defined for guest '%{machine}' cloud_init config was
2325
+ not found on the system.
2224
2326
  actions:
2225
2327
  runner:
2226
2328
  waiting_cleanup: "Waiting for cleanup before exiting..."
@@ -2293,6 +2395,8 @@ en:
2293
2395
  create_master:
2294
2396
  failure: |-
2295
2397
  Failed to create lock-file for master VM creation for box %{box}.
2398
+ cloud_init_user_data_setup: |-
2399
+ Preparing user data for cloud-init...
2296
2400
  customize:
2297
2401
  failure: |-
2298
2402
  A customization command failed:
@@ -2609,7 +2713,7 @@ en:
2609
2713
  missing_provisioner_name: |-
2610
2714
  Could not find provisioner name `%{name}` defined for machine `%{machine_name}` to run provisioner "%{provisioner_name}" `%{action}`.
2611
2715
  wrong_type: |-
2612
- Provisioner option `%{opt}` is not set as a valid type. Must be a string.
2716
+ Provisioner option `%{opt}` is not set as a valid type. Must be a %{type}.
2613
2717
  chef:
2614
2718
  chef_not_detected: |-
2615
2719
  The chef binary (either `chef-solo` or `chef-client`) was not found on
@@ -2673,7 +2777,7 @@ en:
2673
2777
  server_url_required: |-
2674
2778
  Chef server provisioning requires that the `config.chef.chef_server_url` be set to the
2675
2779
  URL of your chef server. Examples include "http://12.12.12.12:4000" and
2676
- "http://myserver.com:4000" (the port of course can be different, but 4000 is the default)
2780
+ "http://example.com:4000" (the port of course can be different, but 4000 is the default)
2677
2781
  server_validation_key_required: |-
2678
2782
  Chef server provisioning requires that the `config.chef.validation_key_path` configuration
2679
2783
  be set to a path on your local machine of the validation key used to register the
@@ -2894,3 +2998,9 @@ en:
2894
2998
  pushes:
2895
2999
  file:
2896
3000
  no_destination: "File destination must be specified."
3001
+
3002
+ autocomplete:
3003
+ installed: |-
3004
+ Autocomplete installed at paths:
3005
+ - %{paths}
3006
+ not_installed: "Autocomplete not installed"