Module: AwsConfiguration

Extended by:
ActiveSupport::Concern
Defined in:
lib/app/models/concerns/aws_configuration.rb

Overview

AWS Configuration

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/app/models/concerns/aws_configuration.rb', line 9

def self.included(base)
  base.class_eval do
    #
    # Fields
    #
    field :aws_region, type: String
    field :aws_access_key_id, type: String
    field :aws_secret_access_key, type: String
    field :aws_bucket_name, type: String
    field :aws_ecs_cluster_worker_name, type: String
    field :aws_ecs_service_worker_name, type: String
  end
end

Instance Method Details

#aws_auto_scale_clientAws::AutoScaling::Client

This method is abstract.

AutoScaling Client

Returns:

  • (Aws::AutoScaling::Client)


76
77
78
79
80
81
82
# File 'lib/app/models/concerns/aws_configuration.rb', line 76

def aws_auto_scale_client
  return nil unless aws_configured?

  @auto_scale_client ||= Aws::AutoScaling::Client.new(access_key_id: aws_access_key_id,
                                                      secret_access_key: aws_secret_access_key,
                                                      region: aws_region)
end

#aws_auto_scaling_configured?Boolean

Determine if auto scaling group is configured

Returns:

  • (Boolean)


40
41
42
# File 'lib/app/models/concerns/aws_configuration.rb', line 40

def aws_auto_scaling_configured?
  aws_configured? && aws_ecs_cluster_worker_name.present? && aws_ecs_service_worker_name.present?
end

#aws_configured?Boolean

Determine if AWS is configured

Returns:

  • (Boolean)


33
34
35
# File 'lib/app/models/concerns/aws_configuration.rb', line 33

def aws_configured?
  [aws_region.present?, aws_access_key_id.present?, aws_secret_access_key.present?].all?
end

#aws_ec2_clientAws::EC2::Client

This method is abstract.

EC2 Client

Returns:

  • (Aws::EC2::Client)


46
47
48
49
50
51
52
# File 'lib/app/models/concerns/aws_configuration.rb', line 46

def aws_ec2_client
  return nil unless aws_configured?

  @aws_ec2_client ||= Aws::EC2::Client.new(region: aws_region,
                                           credentials: Aws::Credentials.new(aws_access_key_id,
                                                                             aws_secret_access_key))
end

#aws_ecs_clientAws::ECS::Client

This method is abstract.

ECS Client

Returns:

  • (Aws::ECS::Client)


66
67
68
69
70
71
72
# File 'lib/app/models/concerns/aws_configuration.rb', line 66

def aws_ecs_client
  return nil unless aws_configured?

  @aws_s3_client ||= Aws::ECS::Client.new(region: aws_region,
                                          access_key_id: aws_access_key_id,
                                          secret_access_key: aws_secret_access_key)
end

#aws_s3_clientAws::S3::Client

This method is abstract.

S3 Client

Returns:

  • (Aws::S3::Client)


56
57
58
59
60
61
62
# File 'lib/app/models/concerns/aws_configuration.rb', line 56

def aws_s3_client
  return nil unless aws_configured?

  @aws_s3_client ||= Aws::S3::Client.new(region: aws_region,
                                         access_key_id: aws_access_key_id,
                                         secret_access_key: aws_secret_access_key)
end

#secure_fieldsObject

Make sure the password doesn't get blanked out on an update



26
27
28
# File 'lib/app/models/concerns/aws_configuration.rb', line 26

def secure_fields
  super + %i[aws_secret_access_key]
end