Show duplicate values in error messages

This also prevents nil showing up as a duplicate value for disk configs
when `file` is undefined.
This commit is contained in:
Jeff Bonhag 2020-06-30 16:17:22 -04:00
parent ff9f9c40e8
commit 52c1267b2c
No known key found for this signature in database
GPG Key ID: 32966F3FB5AC1129
2 changed files with 15 additions and 9 deletions

View File

@ -908,17 +908,17 @@ module VagrantPlugins
end
disk_names = @disks.map { |d| d.name }
duplicate_names = disk_names.detect{ |d| disk_names.count(d) > 1 }
if duplicate_names && duplicate_names.size
duplicate_names = disk_names.find_all { |d| disk_names.count(d) > 1 }
if duplicate_names.any?
errors << I18n.t("vagrant.config.vm.multiple_disk_names_error",
name: duplicate_names)
names: duplicate_names.uniq.join("\n"))
end
disk_files = @disks.map { |d| d.file }
duplicate_files = disk_files.detect { |d| disk_files.count(d) > 1 }
if duplicate_files && duplicate_files.size
duplicate_files = disk_files.find_all { |d| d && disk_files.count(d) > 1 }
if duplicate_files.any?
errors << I18n.t("vagrant.config.vm.multiple_disk_files_error",
file: duplicate_files)
files: duplicate_files.uniq.join("\n"))
end
@disks.each do |d|

View File

@ -1995,13 +1995,19 @@ en:
multiple_primary_disks_error: |-
There are more than one primary disks defined for guest '%{name}'. Please ensure that only one disk has been defined as a primary disk.
multiple_disk_files_error: |-
The following disk file is used multiple times in the disk configuration:
The following disk files are used multiple times in the disk
configuration:
%{file}
%{files}
Each disk file may only be attached to a VM once.
multiple_disk_names_error: |-
Duplicate disk names defined: '%{name}'. Disk names must be unique.
The following disks names are defined multiple times in the disk
configuration:
%{names}
Disk names must be unique.
multiple_networks_set_hostname: "Multiple networks have set `:hostname`"
name_invalid: |-
The sub-VM name '%{name}' is invalid. Please don't use special characters.