Class: Fog::AWS::ElasticBeanstalk::Templates
- Inherits:
-
Collection
- Object
- Collection
- Fog::AWS::ElasticBeanstalk::Templates
- Defined in:
- lib/fog/aws/models/beanstalk/templates.rb
Instance Method Summary collapse
-
#all(options = {}) ⇒ Object
Describes all configuration templates, may optionally pass an ApplicationName filter.
- #get(application_name, template_name) ⇒ Object
Instance Method Details
#all(options = {}) ⇒ Object
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.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/aws/models/beanstalk/templates.rb', line 13 def all(={}) application_filter = [] if .key?('ApplicationName') application_filter << ['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 = { 'ApplicationName' => application['ApplicationName'], 'TemplateName' => template_name } settings = service.describe_configuration_settings().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) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/fog/aws/models/beanstalk/templates.rb', line 45 def get(application_name, template_name) = { '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().body['DescribeConfigurationSettingsResult']['ConfigurationSettings'] if data.length == 1 result = new(data.first) end rescue Fog::AWS::ElasticBeanstalk::InvalidParameterError end result end |