Sha256: a56c488a232d643b23228808716e5d93075c384204391614ab48dfd670f3f308
Contents?: true
Size: 1.17 KB
Versions: 4
Compression:
Stored size: 1.17 KB
Contents
module Bosh::Stemcell module Infrastructure def self.for(name) case name when 'openstack' OpenStack.new when 'aws' Aws.new when 'vsphere' Vsphere.new else raise ArgumentError.new("invalid infrastructure: #{name}") end end class Base attr_reader :name, :hypervisor, :default_disk_size def initialize(options = {}) @name = options.fetch(:name) @supports_light_stemcell = options.fetch(:supports_light_stemcell, false) @hypervisor = options.fetch(:hypervisor) @default_disk_size = options.fetch(:default_disk_size) end def light? @supports_light_stemcell end end class OpenStack < Base def initialize super(name: 'openstack', hypervisor: 'kvm', default_disk_size: 10240) end end class Vsphere < Base def initialize super(name: 'vsphere', hypervisor: 'esxi', default_disk_size: 2048) end end class Aws < Base def initialize super(name: 'aws', hypervisor: 'xen', supports_light_stemcell: true, default_disk_size: 2048) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems