class RenderCFN::NestedStack

Public Class Methods

new( arguments) click to toggle source
# File lib/renderCFN/nestedStack.rb, line 6
def initialize( arguments)
  
  @serviceTitle = arguments[:serviceTitle] or nil
  @serviceName = arguments[:serviceName] or nil
  @nestedStackName = "#{@serviceName}NestedStack"
  
  unless @serviceTitle and @serviceName then
    print "Please set serviceTitle and serviceName\n"
  end
  
  @stackID = String.new()
  @templateName = "#{@serviceName}.yml"
  @templateURL = "https://s3.amazonaws.com/#{@@bucket}/stacks/#{@@stackName}/#{@templateName}"
  
  @awsObject = { 
    'AWSTemplateFormatVersion' => '2010-09-09',
    'Description' => arguments[:description] ? "#{arguments[:description]} [renderCFN]" : 'Made with renderCFN',
    'Resources' => {} ,
    'Parameters' => {}
  }
  
  @nestedStackObject = {
    @nestedStackName => {
      'Type' => 'AWS::CloudFormation::Stack',
      'Properties' => {
        'TemplateURL' => @templateURL,
        'Parameters' => {}
      }
    }
  }
  
end

Public Instance Methods

addParameter( dependentObject, type) click to toggle source
# File lib/renderCFN/nestedStack.rb, line 39
def addParameter( dependentObject, type)
  @awsObject['Parameters'].merge!( dependentObject => { 'Type' => type }  )
  @nestedStackObject[@nestedStackName]['Properties']['Parameters'].merge!( dependentObject => { 'Ref' => dependentObject } )
end
getNestedStack() click to toggle source
# File lib/renderCFN/nestedStack.rb, line 44
def getNestedStack()
  uploadTemplate()
  @nestedStackObject
end