Add virtualbox capability for validating disk extension types
This commit is contained in:
parent
2174f4c219
commit
c5f4534487
@ -11,7 +11,6 @@ module VagrantPlugins
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
DEFAULT_DISK_TYPES = [:disk, :dvd, :floppy].freeze
|
||||
DEFAULT_DISK_EXT = ["vdi", "vmdk", "vhd", "vhdx"].freeze
|
||||
|
||||
# Note: This value is for internal use only
|
||||
#
|
||||
@ -136,13 +135,18 @@ module VagrantPlugins
|
||||
types: DEFAULT_DISK_TYPES.join(', '))
|
||||
end
|
||||
|
||||
if !DEFAULT_DISK_EXT.include?(@disk_ext)
|
||||
errors << I18n.t("vagrant.config.disk.invalid_ext", ext: @disk_ext,
|
||||
name: @name, exts: DEFAULT_DISK_EXT.join(', ') )
|
||||
end
|
||||
|
||||
if @disk_ext
|
||||
@disk_ext = @disk_ext.downcase
|
||||
|
||||
if machine.provider.capability?(:validate_disk_ext)
|
||||
if !machine.provider.capability(:validate_disk_ext, @disk_ext)
|
||||
errors << I18n.t("vagrant.config.disk.invalid_ext", ext: @disk_ext,
|
||||
name: @name,
|
||||
exts: machine.provider.capability(:get_default_disk_ext).join(', '))
|
||||
end
|
||||
else
|
||||
@logger.warn("No provider capability defined to validate 'disk_ext' type")
|
||||
end
|
||||
end
|
||||
|
||||
if @size && !@size.is_a?(Integer)
|
||||
|
||||
27
plugins/providers/virtualbox/cap/validate_disk_ext.rb
Normal file
27
plugins/providers/virtualbox/cap/validate_disk_ext.rb
Normal file
@ -0,0 +1,27 @@
|
||||
require "log4r"
|
||||
|
||||
module VagrantPlugins
|
||||
module ProviderVirtualBox
|
||||
module Cap
|
||||
module ValidateDiskExt
|
||||
LOGGER = Log4r::Logger.new("vagrant::plugins::virtualbox::validate_disk_ext")
|
||||
|
||||
# The default set of disk formats that VirtualBox supports
|
||||
DEFAULT_DISK_EXT = ["vdi", "vmdk", "vhd"].freeze
|
||||
|
||||
# @param [Vagrant::Machine] machine
|
||||
# @param [String] disk_ext
|
||||
# @return [Bool]
|
||||
def self.validate_disk_ext(machine, disk_ext)
|
||||
DEFAULT_DISK_EXT.include?(disk_ext)
|
||||
end
|
||||
|
||||
# @param [Vagrant::Machine] machine
|
||||
# @return [Array]
|
||||
def self.get_default_disk_ext(machine)
|
||||
DEFAULT_DISK_EXT
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -49,6 +49,16 @@ module VagrantPlugins
|
||||
Cap::CleanupDisks
|
||||
end
|
||||
|
||||
provider_capability(:virtualbox, :validate_disk_ext) do
|
||||
require_relative "cap/validate_disk_ext"
|
||||
Cap::ValidateDiskExt
|
||||
end
|
||||
|
||||
provider_capability(:virtualbox, :get_default_disk_ext) do
|
||||
require_relative "cap/validate_disk_ext"
|
||||
Cap::ValidateDiskExt
|
||||
end
|
||||
|
||||
provider_capability(:virtualbox, :snapshot_list) do
|
||||
require_relative "cap"
|
||||
Cap
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user