class Fog::AWS::ElasticBeanstalk::Templates

Public Instance Methods

all(options={}) click to toggle source

Describes all configuration templates, may optionally pass an ApplicationName filter

Note: This is currently an expensive operation requiring multiple API calls due to a lack of a describe configuration templates call in the AWS API.

# File lib/fog/aws/models/beanstalk/templates.rb, line 13
def all(options={})
  application_filter = []
  if options.key?('ApplicationName')
    application_filter << options['ApplicationName']
  end

  # Initialize with empty array
  data = []

  applications = service.describe_applications(application_filter).body['DescribeApplicationsResult']['Applications']
  applications.each { |application|
    application['ConfigurationTemplates'].each { |template_name|
      begin
        options = {
            'ApplicationName' => application['ApplicationName'],
            'TemplateName' => template_name
        }
        settings = service.describe_configuration_settings(options).body['DescribeConfigurationSettingsResult']['ConfigurationSettings']
        if settings.length == 1
          # Add to data
          data << settings.first
        end
      rescue Fog::AWS::ElasticBeanstalk::InvalidParameterError
        # Ignore
      end

    }
  }

  load(data) # data is an array of attribute hashes
end
get(application_name, template_name) click to toggle source
# File lib/fog/aws/models/beanstalk/templates.rb, line 45
def get(application_name, template_name)
  options = {
      'ApplicationName' => application_name,
      'TemplateName' => template_name
  }

  result = nil
  # There is no describe call for templates, so we must use describe_configuration_settings.  Unfortunately,
  # it throws an exception if template name doesn't exist, which is inconsistent, catch and return nil
  begin
    data = service.describe_configuration_settings(options).body['DescribeConfigurationSettingsResult']['ConfigurationSettings']
    if data.length == 1
      result = new(data.first)
    end
  rescue Fog::AWS::ElasticBeanstalk::InvalidParameterError

  end
    result
end