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 ⇒ 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, settings) ⇒ Object
- #delete_application(app) ⇒ 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, settings) ⇒ Object
Constructor Details
#initialize(client = AWS::ElasticBeanstalk.new.client) ⇒ Beanstalk
Returns a new instance of Beanstalk.
4 5 6 |
# File 'lib/eb_deployer/beanstalk.rb', line 4 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
16 17 18 |
# File 'lib/eb_deployer/beanstalk.rb', line 16 def application_exists?(app) @client.describe_applications(:application_names => [app])[:applications].any? end |
#application_version_labels ⇒ Object
55 56 57 |
# File 'lib/eb_deployer/beanstalk.rb', line 55 def application_version_labels @client.describe_application_versions[:application_versions].map { |apv| apv[:version_label] } end |
#create_application(app) ⇒ Object
8 9 10 |
# File 'lib/eb_deployer/beanstalk.rb', line 8 def create_application(app) @client.create_application(:application_name => app) end |
#create_application_version(app_name, version_label, source_bundle) ⇒ Object
49 50 51 52 53 |
# File 'lib/eb_deployer/beanstalk.rb', line 49 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, settings) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/eb_deployer/beanstalk.rb', line 35 def create_environment(app_name, env_name, stack_name, cname_prefix, version, settings) request = {:application_name => app_name, :environment_name => env_name, :solution_stack_name => stack_name, :version_label => version, :option_settings => settings } request[:cname_prefix] = cname_prefix if cname_prefix @client.create_environment(request) end |
#delete_application(app) ⇒ Object
12 13 14 |
# File 'lib/eb_deployer/beanstalk.rb', line 12 def delete_application(app) @client.delete_application(:application_name => app) end |
#delete_environment(app_name, env_name) ⇒ Object
45 46 47 |
# File 'lib/eb_deployer/beanstalk.rb', line 45 def delete_environment(app_name, env_name) @client.terminate_environment(:environment_name => env_name) end |
#environment_cname(app_name, env_name) ⇒ Object
72 73 74 75 |
# File 'lib/eb_deployer/beanstalk.rb', line 72 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
65 66 67 68 69 70 |
# File 'lib/eb_deployer/beanstalk.rb', line 65 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
27 28 29 |
# File 'lib/eb_deployer/beanstalk.rb', line 27 def environment_exists?(app_name, env_name) alive_envs(app_name, [env_name]).any? end |
#environment_health_state(app_name, env_name) ⇒ Object
77 78 79 80 |
# File 'lib/eb_deployer/beanstalk.rb', line 77 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
31 32 33 |
# File 'lib/eb_deployer/beanstalk.rb', line 31 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
82 83 84 85 86 |
# File 'lib/eb_deployer/beanstalk.rb', line 82 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
59 60 61 62 63 |
# File 'lib/eb_deployer/beanstalk.rb', line 59 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, settings) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/eb_deployer/beanstalk.rb', line 20 def update_environment(app_name, env_name, version, settings) env_id = convert_env_name_to_id(app_name, [env_name]).first @client.update_environment(:environment_id => env_id, :version_label => version, :option_settings => settings) end |