Class: Cyoi::Cli::Providers::ProviderCliAws

Inherits:
ProviderCli
  • Object
show all
Defined in:
lib/cyoi/cli/providers/provider_cli_aws.rb

Instance Attribute Summary

Attributes inherited from ProviderCli

#attributes, #hl

Instance Method Summary collapse

Methods inherited from ProviderCli

#export_attributes, #initialize, #say

Constructor Details

This class inherits a constructor from Cyoi::Cli::Providers::ProviderCli

Instance Method Details

#choose_regionObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cyoi/cli/providers/provider_cli_aws.rb', line 21

def choose_region
  puts "\n"
  hl.choose do |menu|
    menu.prompt = "Choose AWS region: "
    default_menu_item = nil
    region_labels.each do |region_info|
      label, code = region_info[:label], region_info[:code]
      menu_item = "#{label} (#{code})"
      if code == default_region_code
        menu_item = "*#{menu_item}"
        default_menu_item = menu_item
      end
      menu.choice(menu_item) do
        attributes["region"] = code.to_s
      end
    end
    menu.default = default_menu_item if default_menu_item
  end
end

#display_confirmationObject



47
48
49
50
51
# File 'lib/cyoi/cli/providers/provider_cli_aws.rb', line 47

def display_confirmation
  puts "\n"
  type = attributes.exists?("vpc") ? "VPC" : "EC2"
  puts "Confirming: Using AWS #{type}/#{attributes.region}"
end

#perform_and_return_attributesObject



4
5
6
7
8
9
10
11
# File 'lib/cyoi/cli/providers/provider_cli_aws.rb', line 4

def perform_and_return_attributes
  unless valid_infrastructure?
    puts "\nUsing provider AWS\n"
    setup_credentials
    choose_region
  end
  export_attributes
end

#setup_credentialsObject



13
14
15
16
17
18
19
# File 'lib/cyoi/cli/providers/provider_cli_aws.rb', line 13

def setup_credentials
  puts "\n"
  attributes.set_default("credentials", {})
  credentials = attributes.credentials
  credentials["aws_access_key_id"] = hl.ask("Access key: ").to_s unless credentials.exists?("aws_access_key_id")
  credentials["aws_secret_access_key"] = hl.ask("Secret key: ").to_s unless credentials.exists?("aws_secret_access_key")
end

#valid_infrastructure?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
# File 'lib/cyoi/cli/providers/provider_cli_aws.rb', line 41

def valid_infrastructure?
  attributes.exists?("credentials.aws_access_key_id") &&
  attributes.exists?("credentials.aws_secret_access_key") &&
  attributes.exists?("region")
end