Class: Infopark::AwsUtils::Env

Inherits:
Object
  • Object
show all
Defined in:
lib/infopark/aws_utils/env.rb

Instance Method Summary collapse

Constructor Details

#initialize(profile_name = nil) ⇒ Env

Returns a new instance of Env.



9
10
11
12
13
14
# File 'lib/infopark/aws_utils/env.rb', line 9

def initialize(profile_name = nil)
  @credentials = Aws::SharedCredentials.new(profile_name: profile_name)
  @clients = Hash.new do |clients, mod|
    mod.const_get(:Client).new(credentials: @credentials, region: 'eu-west-1')
  end
end

Instance Method Details

#aasObject



40
41
42
# File 'lib/infopark/aws_utils/env.rb', line 40

def aas
  @clients[Aws::ApplicationAutoScaling]
end

#account_typeObject



57
58
59
60
61
# File 'lib/infopark/aws_utils/env.rb', line 57

def 
  return "dev" if dev_account?
  return "prod" if account?()
  raise "Could not determine account type."
end

#albObject



36
37
38
# File 'lib/infopark/aws_utils/env.rb', line 36

def alb
  @clients[Aws::ElasticLoadBalancingV2]
end

#asObject



32
33
34
# File 'lib/infopark/aws_utils/env.rb', line 32

def as
  @clients[Aws::AutoScaling]
end

#cwObject



44
45
46
# File 'lib/infopark/aws_utils/env.rb', line 44

def cw
  @clients[Aws::CloudWatch]
end

#cwlObject



48
49
50
# File 'lib/infopark/aws_utils/env.rb', line 48

def cwl
  @clients[Aws::CloudWatchLogs]
end

#dev_account?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/infopark/aws_utils/env.rb', line 63

def dev_account?
  account?()
end

#ec2Object



28
29
30
# File 'lib/infopark/aws_utils/env.rb', line 28

def ec2
  @clients[Aws::EC2]
end

#ecrObject



24
25
26
# File 'lib/infopark/aws_utils/env.rb', line 24

def ecr
  @clients[Aws::ECR]
end

#ecsObject



20
21
22
# File 'lib/infopark/aws_utils/env.rb', line 20

def ecs
  @clients[Aws::ECS]
end

#find_image_by_id(id) ⇒ Object



78
79
80
# File 'lib/infopark/aws_utils/env.rb', line 78

def find_image_by_id(id)
  AwsUtils.gather_all(ec2, :describe_images, image_ids: [id]).first
end

#find_image_by_name(name) ⇒ Object



82
83
84
85
# File 'lib/infopark/aws_utils/env.rb', line 82

def find_image_by_name(name)
  AwsUtils.gather_all(ec2, :describe_images, owners: [],
      filters: [{name: "name", values: [name]}]).first
end

#latest_base_imageObject



67
68
69
70
71
72
73
74
75
76
# File 'lib/infopark/aws_utils/env.rb', line 67

def latest_base_image
  available_images = AwsUtils.gather_all(ec2, :describe_images,
      owners: [AWS_AMI_OWNER],
      filters: [
        {name: "root-device-type", values: ["instance-store"]},
        {name: "image-type", values: ["machine"]},
        {name: "virtualization-type", values: ["hvm"]},
      ]).reject {|image| image.name.include?(".rc-") || image.name.include?("-minimal-") }
  available_images.sort_by(&:creation_date).last
end

#profile_nameObject



16
17
18
# File 'lib/infopark/aws_utils/env.rb', line 16

def profile_name
  @credentials.profile_name
end

#stsObject



52
53
54
# File 'lib/infopark/aws_utils/env.rb', line 52

def sts
  @clients[Aws::STS]
end