Module: Nvoi::External::Cloud::Factory
- Defined in:
- lib/nvoi/external/cloud/factory.rb
Overview
Factory creates cloud providers from config
Class Method Summary collapse
Class Method Details
.for(config) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/nvoi/external/cloud/factory.rb', line 9 def for(config) case config.provider_name when "hetzner" h = config.hetzner Hetzner.new(h.api_token) when "aws" a = config.aws Aws.new(a.access_key_id, a.secret_access_key, a.region) when "scaleway" s = config.scaleway Scaleway.new(s.secret_key, s.project_id, zone: s.zone) else raise Errors::ProviderError, "unknown provider: #{config.provider_name}" end end |
.validate(config, provider) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/nvoi/external/cloud/factory.rb', line 25 def validate(config, provider) case config.provider_name when "hetzner" h = config.hetzner provider.validate_credentials provider.validate_instance_type(h.server_type) provider.validate_region(h.server_location) when "aws" a = config.aws provider.validate_credentials provider.validate_instance_type(a.instance_type) provider.validate_region(a.region) when "scaleway" s = config.scaleway provider.validate_credentials provider.validate_instance_type(s.server_type) provider.validate_region(s.zone) end end |