|
5 | 5 | class Auth |
6 | 6 |
|
7 | 7 | def self.get_mfa_code |
8 | | - print "Enter MFA: " |
| 8 | + print Rainbow("Enter MFA: ").yellow |
9 | 9 | STDOUT.flush |
10 | 10 | STDIN.gets(7).chomp |
11 | 11 | end |
12 | 12 |
|
13 | 13 | def self.get_creds(username, defaults) |
14 | 14 | region = defaults.fetch(:region) |
15 | | - master = defaults.fetch(:master) |
16 | | - master_account_number = master.fetch(:account_number) |
17 | | - master_role_prefix = master.fetch(:role_prefix) |
18 | | - master_role_name = master.fetch(:role_name) |
| 15 | + ctrl = defaults.fetch(:ctrl) |
| 16 | + ctrl_account_number = ctrl.fetch(:account_number) |
| 17 | + ctrl_role_prefix = ctrl.fetch(:role_prefix) |
| 18 | + ctrl_role_name = ctrl.fetch(:role_name) |
19 | 19 |
|
20 | 20 | target = defaults.fetch(:target) |
21 | 21 | target_account_number = target.fetch(:account_number) |
22 | 22 | target_role_prefix = target.fetch(:role_prefix) |
23 | 23 | target_role_name = target.fetch(:role_name) |
24 | | - |
25 | | - serial_number = "arn:aws:iam::#{master_account_number}:mfa/#{username}" |
26 | | - puts "Logging into #{target.fetch(:label).upcase} using MFA: #{serial_number} (#{region})" |
27 | | - role_arn = "arn:aws:iam::#{master_account_number}:role#{master_role_prefix}#{master_role_name}" |
| 24 | + target_label = target.fetch(:label) |
| 25 | + serial_number = "arn:aws:iam::#{ctrl_account_number}:mfa/#{username}" |
| 26 | + puts "Logging into #{Rainbow(target_label.upcase).yellow} using MFA: #{serial_number} (#{region})" |
| 27 | + role_arn = "arn:aws:iam::#{ctrl_account_number}:role#{ctrl_role_prefix}#{ctrl_role_name}" |
28 | 28 | session_name = username[0..31] |
29 | 29 |
|
30 | 30 | sts_client = Aws::STS::Client.new(region: region) |
@@ -53,7 +53,12 @@ def self.login(options, defaults, plane) |
53 | 53 | Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: profile_name) |
54 | 54 | creds = get_creds(options.fetch(:username), defaults) |
55 | 55 | rescue KeyError => e |
56 | | - raise "Error parsing #{CONFIG_FILE}, (#{e.message}), please ensure it is properly formatted" |
| 56 | + error = Rainbow("Error parsing #{CONFIG_FILE}, (#{e.message}), please ensure it is properly formatted").red |
| 57 | + raise error |
| 58 | + rescue => err |
| 59 | + error = Rainbow(err.message).red |
| 60 | + raise error |
| 61 | + exit |
57 | 62 | end |
58 | 63 | # now save to yaml |
59 | 64 | File.open(auth_file, 'w') do |f| |
|
0 commit comments