Class: EbDeployer::Beanstalk
- Inherits:
-
Object
- Object
- EbDeployer::Beanstalk
- Defined in:
- lib/eb_deployer/beanstalk.rb
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, settings) ⇒ 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_swap_cname(app_name, env1, env2) ⇒ Object
- #fetch_events(app_name, env_name, params, &block) ⇒ Object
-
#initialize(client = AWS::ElasticBeanstalk.new.client) ⇒ Beanstalk
constructor
A new instance of Beanstalk.
- #update_environment(app_name, env_name, version, tier, settings) ⇒ Object
Constructor Details
#initialize(client = AWS::ElasticBeanstalk.new.client) ⇒ Beanstalk
Returns a new instance of Beanstalk.
5 6 7 |
# File 'lib/eb_deployer/beanstalk.rb', line 5 def initialize(client=AWS::ElasticBeanstalk.new.client) @client = client end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
3 4 5 |
# File 'lib/eb_deployer/beanstalk.rb', line 3 def client @client end |
Instance Method Details
#application_exists?(app) ⇒ Boolean
17 18 19 |
# File 'lib/eb_deployer/beanstalk.rb', line 17 def application_exists?(app) @client.describe_applications(:application_names => [app])[:applications].any? end |
#application_version_labels(app_name) ⇒ Object
74 75 76 |
# File 'lib/eb_deployer/beanstalk.rb', line 74 def application_version_labels(app_name) application_versions(app_name).map { |apv| apv[:version_label] } end |
#application_versions(app_name) ⇒ Object
78 79 80 81 |
# File 'lib/eb_deployer/beanstalk.rb', line 78 def application_versions(app_name) request = { :application_name => app_name } @client.describe_application_versions(request)[:application_versions] end |
#create_application(app) ⇒ Object
9 10 11 |
# File 'lib/eb_deployer/beanstalk.rb', line 9 def create_application(app) @client.create_application(:application_name => app) end |
#create_application_version(app_name, version_label, source_bundle) ⇒ Object
68 69 70 71 72 |
# File 'lib/eb_deployer/beanstalk.rb', line 68 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, settings) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/eb_deployer/beanstalk.rb', line 41 def create_environment(app_name, env_name, stack_name, cname_prefix, version, tier, settings) request = { :application_name => app_name, :environment_name => env_name, :solution_stack_name => stack_name, :version_label => version, :option_settings => settings, :tier => tier, :cname_prefix => cname_prefix } @client.create_environment(request) end |
#delete_application(app) ⇒ Object
13 14 15 |
# File 'lib/eb_deployer/beanstalk.rb', line 13 def delete_application(app) @client.delete_application(:application_name => app) end |
#delete_application_version(app_name, version, delete_source_bundle) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/eb_deployer/beanstalk.rb', line 59 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
55 56 57 |
# File 'lib/eb_deployer/beanstalk.rb', line 55 def delete_environment(app_name, env_name) @client.terminate_environment(:environment_name => env_name) end |
#environment_cname(app_name, env_name) ⇒ Object
96 97 98 99 |
# File 'lib/eb_deployer/beanstalk.rb', line 96 def environment_cname(app_name, env_name) env = alive_envs(app_name, [env_name]).first env && env[:cname] end |
#environment_cname_prefix(app_name, env_name) ⇒ Object
89 90 91 92 93 94 |
# File 'lib/eb_deployer/beanstalk.rb', line 89 def environment_cname_prefix(app_name, env_name) cname = environment_cname(app_name, env_name) if cname =~ /^(.+)\.elasticbeanstalk\.com/ $1 end end |
#environment_exists?(app_name, env_name) ⇒ Boolean
33 34 35 |
# File 'lib/eb_deployer/beanstalk.rb', line 33 def environment_exists?(app_name, env_name) alive_envs(app_name, [env_name]).any? end |
#environment_health_state(app_name, env_name) ⇒ Object
101 102 103 104 |
# File 'lib/eb_deployer/beanstalk.rb', line 101 def environment_health_state(app_name, env_name) env = alive_envs(app_name, [env_name]).first env && env[:health] end |
#environment_names_for_application(app_name) ⇒ Object
37 38 39 |
# File 'lib/eb_deployer/beanstalk.rb', line 37 def environment_names_for_application(app_name) alive_envs(app_name).collect { |env| env[:environment_name] } end |
#environment_swap_cname(app_name, env1, env2) ⇒ Object
106 107 108 109 110 |
# File 'lib/eb_deployer/beanstalk.rb', line 106 def environment_swap_cname(app_name, env1, env2) env1_id, env2_id = convert_env_name_to_id(app_name, [env1, env2]) @client.swap_environment_cnam_es(:source_environment_id => env1_id, :destination_environment_id => env2_id) end |
#fetch_events(app_name, env_name, params, &block) ⇒ Object
83 84 85 86 87 |
# File 'lib/eb_deployer/beanstalk.rb', line 83 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 |
#update_environment(app_name, env_name, version, tier, settings) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/eb_deployer/beanstalk.rb', line 21 def update_environment(app_name, env_name, version, tier, settings) env_id = convert_env_name_to_id(app_name, [env_name]).first request = { :environment_id => env_id, :version_label => version, :option_settings => settings, :tier => tier } @client.update_environment(request) end |