Class: EbDeployer::AWSDriver::Beanstalk
- Inherits:
-
Object
- Object
- EbDeployer::AWSDriver::Beanstalk
- Includes:
- Utils
- Defined in:
- lib/eb_deployer/aws_driver/beanstalk.rb
Constant Summary
Constants included from Utils
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
- #application_exists?(app) ⇒ Boolean
- #application_version_labels(app_name) ⇒ Object
- #application_versions(app_name) ⇒ Object
- #create_application(app) ⇒ Object
- #create_application_version(app_name, version_label, source_bundle) ⇒ Object
- #create_environment(app_name, env_name, stack_name, cname_prefix, version, tier, tags, settings, template_name) ⇒ Object
- #delete_application(app) ⇒ Object
- #delete_application_version(app_name, version, delete_source_bundle) ⇒ Object
- #delete_environment(app_name, env_name) ⇒ Object
- #environment_cname(app_name, env_name) ⇒ Object
- #environment_cname_prefix(app_name, env_name) ⇒ Object
- #environment_exists?(app_name, env_name) ⇒ Boolean
- #environment_health_state(app_name, env_name) ⇒ Object
- #environment_names_for_application(app_name) ⇒ Object
- #environment_status(app_name, env_name) ⇒ Object
- #environment_swap_cname(app_name, env1, env2) ⇒ Object
- #environment_verion_label(app_name, env_name) ⇒ Object
- #fetch_events(app_name, env_name, params, &block) ⇒ Object
-
#initialize(client = Aws::ElasticBeanstalk::Client.new) ⇒ Beanstalk
constructor
A new instance of Beanstalk.
- #list_solution_stack_names ⇒ Object
- #update_environment(app_name, env_name, version, tier, settings, template_name) ⇒ Object
- #update_environment_settings(app, env, settings) ⇒ Object
Methods included from Utils
#backoff, #reject_nil, #symbolize_keys
Constructor Details
#initialize(client = Aws::ElasticBeanstalk::Client.new) ⇒ Beanstalk
Returns a new instance of Beanstalk.
7 8 9 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 7 def initialize(client=Aws::ElasticBeanstalk::Client.new) @client = client end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
5 6 7 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 5 def client @client end |
Instance Method Details
#application_exists?(app) ⇒ Boolean
19 20 21 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 19 def application_exists?(app) @client.describe_applications(:application_names => [app])[:applications].any? end |
#application_version_labels(app_name) ⇒ Object
82 83 84 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 82 def application_version_labels(app_name) application_versions(app_name).map { |apv| apv[:version_label] } end |
#application_versions(app_name) ⇒ Object
86 87 88 89 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 86 def application_versions(app_name) request = { :application_name => app_name } @client.describe_application_versions(request)[:application_versions] end |
#create_application(app) ⇒ Object
11 12 13 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 11 def create_application(app) @client.create_application(:application_name => app) end |
#create_application_version(app_name, version_label, source_bundle) ⇒ Object
76 77 78 79 80 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 76 def create_application_version(app_name, version_label, source_bundle) @client.create_application_version(:application_name => app_name, :source_bundle => source_bundle, :version_label => version_label) end |
#create_environment(app_name, env_name, stack_name, cname_prefix, version, tier, tags, settings, template_name) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 48 def create_environment(app_name, env_name, stack_name, cname_prefix, version, tier, , settings, template_name) request = reject_nil({ :application_name => app_name, :environment_name => env_name, :solution_stack_name => stack_name, :version_label => version, :option_settings => settings, :tier => environment_tier(tier), :cname_prefix => cname_prefix, :tags => , :template_name => template_name }) @client.create_environment(request) end |
#delete_application(app) ⇒ Object
15 16 17 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 15 def delete_application(app) @client.delete_application(:application_name => app) end |
#delete_application_version(app_name, version, delete_source_bundle) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 67 def delete_application_version(app_name, version, delete_source_bundle) request = { :application_name => app_name, :version_label => version, :delete_source_bundle => delete_source_bundle } @client.delete_application_version(request) end |
#delete_environment(app_name, env_name) ⇒ Object
63 64 65 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 63 def delete_environment(app_name, env_name) @client.terminate_environment(:environment_name => env_name) end |
#environment_cname(app_name, env_name) ⇒ Object
104 105 106 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 104 def environment_cname(app_name, env_name) get_environment_attribute(app_name, env_name, :cname) end |
#environment_cname_prefix(app_name, env_name) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 97 def environment_cname_prefix(app_name, env_name) cname = environment_cname(app_name, env_name) if cname =~ /^([^\.]+)(?:\.(?:[a-z0-9\-]+))?\.elasticbeanstalk\.com/i $1 end end |
#environment_exists?(app_name, env_name) ⇒ Boolean
40 41 42 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 40 def environment_exists?(app_name, env_name) alive_envs(app_name, [env_name]).any? end |
#environment_health_state(app_name, env_name) ⇒ Object
108 109 110 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 108 def environment_health_state(app_name, env_name) get_environment_attribute(app_name, env_name, :health) end |
#environment_names_for_application(app_name) ⇒ Object
44 45 46 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 44 def environment_names_for_application(app_name) alive_envs(app_name).collect { |env| env[:environment_name] } end |
#environment_status(app_name, env_name) ⇒ Object
112 113 114 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 112 def environment_status(app_name, env_name) get_environment_attribute(app_name, env_name, :status) end |
#environment_swap_cname(app_name, env1, env2) ⇒ Object
120 121 122 123 124 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 120 def environment_swap_cname(app_name, env1, env2) env1_id, env2_id = convert_env_name_to_id(app_name, [env1, env2]) @client.swap_environment_cnames(:source_environment_id => env1_id, :destination_environment_id => env2_id) end |
#environment_verion_label(app_name, env_name) ⇒ Object
116 117 118 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 116 def environment_verion_label(app_name, env_name) get_environment_attribute(app_name, env_name, :version_label) end |
#fetch_events(app_name, env_name, params, &block) ⇒ Object
91 92 93 94 95 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 91 def fetch_events(app_name, env_name, params, &block) response = @client.describe_events(params.merge(:application_name => app_name, :environment_name => env_name)) return [response[:events], response[:next_token]] end |
#list_solution_stack_names ⇒ Object
126 127 128 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 126 def list_solution_stack_names @client.list_available_solution_stacks[:solution_stacks] end |
#update_environment(app_name, env_name, version, tier, settings, template_name) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 28 def update_environment(app_name, env_name, version, tier, settings, template_name) env_id = convert_env_name_to_id(app_name, [env_name]).first request = reject_nil({ :environment_id => env_id, :version_label => version, :option_settings => settings, :tier => environment_tier(tier), :template_name => template_name }) @client.update_environment(request) end |
#update_environment_settings(app, env, settings) ⇒ Object
23 24 25 26 |
# File 'lib/eb_deployer/aws_driver/beanstalk.rb', line 23 def update_environment_settings(app, env, settings) env_id = convert_env_name_to_id(app, [env]).first @client.update_environment(:environment_id => env_id, :option_settings => settings) end |