class Bosh::AwsCloud::VolumeProperties
Attributes
az[R]
encrypted[R]
iops[R]
size[R]
type[R]
Public Class Methods
new(options)
click to toggle source
# File lib/cloud/aws/volume_properties.rb, line 8 def initialize(options) @size = options[:size] || 0 @type = options[:type] || 'standard' @iops = options[:iops] @az = options[:az] @encrypted = options[:encrypted] || false end
Public Instance Methods
validate!()
click to toggle source
# File lib/cloud/aws/volume_properties.rb, line 16 def validate! case @type when 'standard' cloud_error('AWS CPI minimum disk size is 1 GiB') if @size < 1024 cloud_error('AWS CPI maximum disk size is 1 TiB') if @size > 1024 * 1000 cloud_error("Cannot specify an 'iops' value when disk type is '#{@type}'. 'iops' is only allowed for 'io1' volume types.") unless @iops.nil? when 'gp2' cloud_error('AWS CPI minimum disk size is 1 GiB') if @size < 1024 cloud_error('AWS CPI maximum disk size is 16 TiB') if @size > 1024 * 16000 cloud_error("Cannot specify an 'iops' value when disk type is '#{@type}'. 'iops' is only allowed for 'io1' volume types.") unless @iops.nil? when 'io1' validate_iops else cloud_error("AWS CPI supports only gp2, io1, or standard disk type, received: #{@type}") end end
Private Instance Methods
validate_iops()
click to toggle source
# File lib/cloud/aws/volume_properties.rb, line 35 def validate_iops cloud_error("Must specify an 'iops' value when the volume type is 'io1'") if @iops.nil? cloud_error('AWS CPI minimum disk size is 4 GiB') if @size < 1024 * 4 cloud_error('AWS CPI maximum disk size is 16 TiB') if @size > 1024 * 16000 cloud_error('AWS CPI maximum iops is 20000') if @iops >= 20000 cloud_error('AWS CPI maximum ratio iops/size is 30') if (@iops / (@size / 1024)).floor >= 30 end