Sha256: e0255e077f9d47a800c28b398b514cc5b51a10b31570fdb322ce308915d24b7c
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
require 'ruby_terraform' require 'fileutils' module Cloudspin module Stack class InstanceConfiguration attr_reader :stack_definition attr_reader :stack_name attr_reader :instance_values attr_reader :parameter_values attr_reader :resource_values def initialize(stack_definition) @stack_definition = stack_definition @stack_name = stack_definition.name @instance_values = {} @parameter_values = {} @resource_values = {} end def self.from_files(stack_definition, *configuration_files) config = self.new(stack_definition) configuration_files.flatten.each { |config_file| config.add_values(load_file(config_file)) } config end def self.load_file(yaml_file) if File.exists?(yaml_file) YAML.load_file(yaml_file) || {} else {} end end def add_values(values) @instance_values.merge!(values['instance']) if values['instance'] @parameter_values.merge!(values['parameters']) if values['parameters'] @resource_values.merge!(values['resources']) if values['resources'] self end def instance_identifier if instance_values['identifier'] instance_values['identifier'] elsif instance_values['group'] stack_name + '-' + instance_values['group'] else stack_name end end def to_s { 'instance' => instance_values, 'parameters' => parameter_values, 'resources' => resource_values }.to_s end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cloudspin-stack-0.1.19 | lib/cloudspin/stack/instance_configuration.rb |