class Fog::AWS::ElasticBeanstalk::Environment

Public Instance Methods

destroy() click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 113
def destroy
  requires :id
  service.terminate_environment({'EnvironmentId' => id})
  true
end
events() click to toggle source

Return events related to this version

# File lib/fog/aws/models/beanstalk/environment.rb, line 55
def events
  requires :id
  service.events.all({'EnvironmentId' => id})
end
healthy?() click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 25
def healthy?
  health == 'Green'
end
live_resources() click to toggle source

Returns the current live resources for this environment

# File lib/fog/aws/models/beanstalk/environment.rb, line 38
def live_resources
  requires :id
  data = service.describe_environment_resources({'EnvironmentId' => id}).body['DescribeEnvironmentResourcesResult']['EnvironmentResources']
  data.delete('EnvironmentName') # Delete the environment name from the result, only return actual resources
  data
end
load_balancer(elb_connection = Fog::AWS[:elb]) click to toggle source

Returns the load balancer object associated with the environment.

# File lib/fog/aws/models/beanstalk/environment.rb, line 46
def load_balancer(elb_connection = Fog::AWS[:elb])
  if resources.nil?
    elb_connection.load_balancers.get(live_resources['LoadBalancers'].first['Name'])
  else
    elb_connection.load_balancers.get(resources['LoadBalancer']['LoadBalancerName'])
  end
end
ready?() click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 29
def ready?
  status == 'Ready'
end
rebuild() click to toggle source

Rebuilds the environment

# File lib/fog/aws/models/beanstalk/environment.rb, line 68
def rebuild
  requires :id
  service.rebuild_environment({'EnvironmentId' => id})
  reload
end
restart_app_server() click to toggle source

Restarts the app servers in this environment

# File lib/fog/aws/models/beanstalk/environment.rb, line 61
def restart_app_server
  requires :id
  service.restart_app_server({'EnvironmentId' => id})
  reload
end
save() click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 119
def save
  requires :name, :application_name
  requires_one :template_name, :solution_stack_name

  options = {
      'ApplicationName' => application_name,
      'CNAMEPrefix' => cname_prefix,
      'Description' => description,
      'EnvironmentName' => name,
      'OptionSettings' => option_settings,
      'OptionsToRemove' => options_to_remove,
      'SolutionStackName' => solution_stack_name,
      'TemplateName' => template_name,
      'VersionLabel' => version_label
  }
  options.delete_if {|key, value| value.nil?}

  data = service.create_environment(options).body['CreateEnvironmentResult']
  merge_attributes(data)
  true
end
swap_cnames(source) click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 74
def swap_cnames(source)
  requires :name
  service.swap_environment_cnames({
      'SourceEnvironmentName' => source.name,
      'DestinationEnvironmentName' => name
                                     })
  source.reload
  reload
end
terminated?() click to toggle source
# File lib/fog/aws/models/beanstalk/environment.rb, line 33
def terminated?
  status == 'Terminated'
end
version() click to toggle source

Return the version object for this environment

# File lib/fog/aws/models/beanstalk/environment.rb, line 85
def version
  requires :application_name, :version_label
  service.versions.get(application_name, version_label)
end
version=(new_version) click to toggle source

Update the running version of this environment

# File lib/fog/aws/models/beanstalk/environment.rb, line 91
def version=(new_version)
  requires :id
  if new_version.is_a?(String)
    new_version_label = new_version
  elsif new_version.is_a?(Fog::AWS::ElasticBeanstalk::Version)
    new_version_label = new_version.label
  else
    raise "Unknown type for new_version, must be either String or Fog::AWS::ElasticBeanstalk::Version"
  end

  if new_version.nil?
    raise "Version label not specified."
  end

  data = service.update_environment({
      'EnvironmentId' => id,
      'VersionLabel' => new_version_label
                                }).body['UpdateEnvironmentResult']

  merge_attributes(data)
end