Class: StackMaster::StackDefinition

Inherits:
Object
  • Object
show all
Includes:
Utils::Initializable
Defined in:
lib/stack_master/stack_definition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils::Initializable

#attributes=

Constructor Details

#initialize(attributes = {}) ⇒ StackDefinition

Returns a new instance of StackDefinition.



20
21
22
23
24
25
26
27
28
# File 'lib/stack_master/stack_definition.rb', line 20

def initialize(attributes = {})
  @additional_parameter_lookup_dirs = []
  @compiler_options = {}
  @notification_arns = []
  @s3 = {}
  @files = []
  super
  @template_dir ||= File.join(@base_dir, 'templates')
end

Instance Attribute Details

#additional_parameter_lookup_dirsObject

Returns the value of attribute additional_parameter_lookup_dirs.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def additional_parameter_lookup_dirs
  @additional_parameter_lookup_dirs
end

#base_dirObject

Returns the value of attribute base_dir.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def base_dir
  @base_dir
end

#compiler_optionsObject

Returns the value of attribute compiler_options.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def compiler_options
  @compiler_options
end

#filesObject

Returns the value of attribute files.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def files
  @files
end

#notification_arnsObject

Returns the value of attribute notification_arns.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def notification_arns
  @notification_arns
end

#regionObject

Returns the value of attribute region.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def region
  @region
end

#role_arnObject

Returns the value of attribute role_arn.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def role_arn
  @role_arn
end

#s3Object

Returns the value of attribute s3.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def s3
  @s3
end

#secret_fileObject

Returns the value of attribute secret_file.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def secret_file
  @secret_file
end

#stack_nameObject

Returns the value of attribute stack_name.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def stack_name
  @stack_name
end

#stack_policy_fileObject

Returns the value of attribute stack_policy_file.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def stack_policy_file
  @stack_policy_file
end

#tagsObject

Returns the value of attribute tags.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def tags
  @tags
end

#templateObject

Returns the value of attribute template.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def template
  @template
end

#template_dirObject

Returns the value of attribute template_dir.



3
4
5
# File 'lib/stack_master/stack_definition.rb', line 3

def template_dir
  @template_dir
end

Instance Method Details

#==(other) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/stack_master/stack_definition.rb', line 30

def ==(other)
  self.class === other &&
    @region == other.region &&
    @stack_name == other.stack_name &&
    @template == other.template &&
    @tags == other.tags &&
    @role_arn == other.role_arn &&
    @notification_arns == other.notification_arns &&
    @base_dir == other.base_dir &&
    @secret_file == other.secret_file &&
    @stack_policy_file == other.stack_policy_file &&
    @additional_parameter_lookup_dirs == other.additional_parameter_lookup_dirs &&
    @s3 == other.s3 &&
    @compiler_options == other.compiler_options
end

#files_dirObject



50
51
52
# File 'lib/stack_master/stack_definition.rb', line 50

def files_dir
  File.join(base_dir, 'files')
end

#parameter_filesObject



70
71
72
# File 'lib/stack_master/stack_definition.rb', line 70

def parameter_files
  [ default_parameter_file_path, region_parameter_file_path, additional_parameter_lookup_file_paths ].flatten.compact
end

#s3_configured?Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/stack_master/stack_definition.rb', line 78

def s3_configured?
  !s3.nil?
end

#s3_filesObject



54
55
56
57
58
59
60
61
62
63
# File 'lib/stack_master/stack_definition.rb', line 54

def s3_files
  files.inject({}) do |hash, file|
    path = File.join(files_dir, file)
    hash[file] = {
      path: path,
      body: File.read(path)
    }
    hash
  end
end

#s3_template_file_nameObject



65
66
67
68
# File 'lib/stack_master/stack_definition.rb', line 65

def s3_template_file_name
  return template if ['.json', '.yaml', '.yml'].include?(File.extname(template))
  Utils.change_extension(template, 'json')
end

#stack_policy_file_pathObject



74
75
76
# File 'lib/stack_master/stack_definition.rb', line 74

def stack_policy_file_path
  File.join(base_dir, 'policies', stack_policy_file) if stack_policy_file
end

#template_file_pathObject



46
47
48
# File 'lib/stack_master/stack_definition.rb', line 46

def template_file_path
  File.expand_path(File.join(template_dir, template))
end