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_version_labels ⇒ Object
- #create_application_version(app_name, version_label, source_bundle) ⇒ Object
- #create_environment(app_name, env_name, stack_name, cname_prefix, version, settings) ⇒ 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_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_version_labels ⇒ Object
35 36 37 |
# File 'lib/eb_deployer/beanstalk.rb', line 35 def application_version_labels @client.describe_application_versions[:application_versions].map { |apv| apv[:version_label] } end |
#create_application_version(app_name, version_label, source_bundle) ⇒ Object
29 30 31 32 33 |
# File 'lib/eb_deployer/beanstalk.rb', line 29 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
19 20 21 22 23 24 25 26 27 |
# File 'lib/eb_deployer/beanstalk.rb', line 19 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 |
#environment_cname(app_name, env_name) ⇒ Object
52 53 54 55 |
# File 'lib/eb_deployer/beanstalk.rb', line 52 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
45 46 47 48 49 50 |
# File 'lib/eb_deployer/beanstalk.rb', line 45 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
15 16 17 |
# File 'lib/eb_deployer/beanstalk.rb', line 15 def environment_exists?(app_name, env_name) alive_envs(app_name, [env_name]).any? end |
#environment_health_state(app_name, env_name) ⇒ Object
57 58 59 60 |
# File 'lib/eb_deployer/beanstalk.rb', line 57 def environment_health_state(app_name, env_name) env = alive_envs(app_name, [env_name]).first env && env[:health] end |
#environment_swap_cname(app_name, env1, env2) ⇒ Object
62 63 64 65 66 |
# File 'lib/eb_deployer/beanstalk.rb', line 62 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
39 40 41 42 43 |
# File 'lib/eb_deployer/beanstalk.rb', line 39 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
8 9 10 11 12 13 |
# File 'lib/eb_deployer/beanstalk.rb', line 8 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 |