pele 0.1.2.pre.pre → 0.1.4.pre.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cfef9bbbf9bd74a9ae924d894d68abf670937b8e
4
- data.tar.gz: 6a46cdff04c47886593a853d6615bcb9a7ee865f
3
+ metadata.gz: 1f5082085364927e55779413b4d6c8d7b9525db1
4
+ data.tar.gz: 91cf7d70ba8882e64f910766fc8c1ec15a402178
5
5
  SHA512:
6
- metadata.gz: a09855dc59c89de62fb5498cb09185d79efc9467fbb259d8635a9fcbabd3449b44539b609fe4f19587f0997d74ec906329945e6fcdaadb2ea4e155124de27101
7
- data.tar.gz: 45c3bb11794e3ea332cc2d8c7a07a7519e5cc02bc556c442e26e21a4e2ec85432278af4402fb44fe410077cf340c05cf15960a22a0e6352121db4e417df92adc
6
+ metadata.gz: 370a665eb0c5f916e951dc08c0c8471408cc7f62fab3812b0247048af04bc0d8562b01d18a702a84cf0b9e26185cb9fe8255aa409fca5f49fe24158d51213b6b
7
+ data.tar.gz: f08d6527d4ec2be7e2704489e85edc0f5c0f659a1d10a840672b252988a6d187a4a8215bdfb6148ce16ea50aa0cbe085285886c5871d7ad4c47e045878c5322a
data/lib/pele/cli.rb CHANGED
@@ -3,41 +3,34 @@ module Pele
3
3
  include Thor::Actions
4
4
 
5
5
  desc 'pele init', 'Initializes the AWS credentials on your Machine'
6
+
6
7
  def init
7
- os = OS.windows? || OS.mac? || OS.linux?
8
- unless os
9
- puts ''
10
- say("Looks like we could not identify your OS.\n\nPlease setup your ENV values as follows:\n\nAWS_ACCESS_KEY_ID=[YOUR ACCES KEY ID]\nAWS_SECRET_ACCESS_KEY=[YOUR SECRET KEY ID]", :red)
8
+ os = Pele::Utils.get_os_path
9
+ prompt = TTY::Prompt.new active_color: :green
10
+ Pele::Utils.check_existing_file(os)
11
+ Pele.utils.post_identification
12
+ aws_access_key_id = prompt.ask('AWS Access Key ID: '.colorize(:blue), required: true)
13
+ aws_secret_access_key = prompt.ask('AWS Secret Access Key: '.colorize(:blue), required: true)
14
+ aws_region = prompt.select('Choose a AWS region: '.colorize(:blue), Pele::Regions::ALL)
15
+ if aws_access_key_id.empty? || aws_secret_access_key.empty? || aws_region.empty?
16
+ say('You need to provide all three credentials. Please try again', :red)
11
17
  abort
12
18
  end
13
- prompt = TTY::Prompt.new active_color: :green
14
- if File.exist? File.expand_path '~/.aws/credentials'
15
- overwrite = prompt.select("This is going to overwrite your existing #{'~/.aws/credentials'.colorize(:green)}. ok?", %w[OK EXIT])
16
- abort unless overwrite == 'OK'
17
- puts ' '
19
+ create_file os do
20
+ "[default]\naws_access_key_id = #{aws_access_key_id}\naws_secret_access_key = #{aws_secret_access_key}\nregion = #{aws_region}"
18
21
  end
19
- puts "\e[H\e[2J"
20
- say('Your OS identified: ', :yellow)
21
- puts ''
22
- puts OS.report
22
+ say('Now lets generate AWS key-pair. This is needed to access EC2 Instances', :green)
23
23
  puts ''
24
- say('Provide your aws credentials below', :yellow)
25
- puts ''
26
- _aws_access_key_id = prompt.ask('AWS Access Key ID: '.colorize(:blue), required: true)
27
- _aws_secret_access_key = prompt.ask('AWS Secret Access Key: '.colorize(:blue), required: true)
28
- _aws_region = prompt.select('Choose a AWS region: '.colorize(:blue), Pele::Regions::ALL)
29
- if _aws_access_key_id.empty? || _aws_secret_access_key.empty? || _aws_region.empty?
30
- say('You need to provide all three credentials. Please try again', :red)
31
- abort
24
+ if File.exist? File.expand_path "#{os}key"
25
+ overwrite = prompt.select('Looks like you already have a key generated. Would you like to generate new one?', %w[Yes No])
26
+ abort if overwrite == 'Yes'
32
27
  end
33
- if OS.windows?
34
- create_file '%USERPROFILE%.awscredentials' do
35
- "[default]\naws_access_key_id = #{_aws_access_key_id}\naws_secret_access_key = #{_aws_secret_access_key}\naws_region = #{_aws_region}"
36
- end
37
- else
38
- create_file '~/.aws/credentials' do
39
- "[default]\naws_access_key_id = #{_aws_access_key_id}\naws_secret_access_key = #{_aws_secret_access_key}\naws_region = #{_aws_region}"
40
- end
28
+ puts ''
29
+ key_pair_name = prompt.ask('Name your key-pair. For example: mykeypair.colorize(:green)')
30
+ begin
31
+ Pele::Utils.create_key_pair(os, key_pair_name)
32
+ rescue
33
+ say('Something went wrong while trying to create key-pair. Please try again', :red)
41
34
  end
42
35
  end
43
36
  end
data/lib/pele/utils.rb ADDED
@@ -0,0 +1,44 @@
1
+ module Pele
2
+ module Utils
3
+ def get_os_path
4
+ if OS.windows?
5
+ '%USERPROFILE%.awscredentials'
6
+ elsif OS.mac? || OS.linux?
7
+ '~/.aws/credentials'
8
+ else
9
+ puts ''
10
+ say("Looks like we could not identify your OS.\n\nPlease setup your ENV values as follows:\n\nAWS_ACCESS_KEY_ID=[YOUR ACCES KEY ID]\nAWS_SECRET_ACCESS_KEY=[YOUR SECRET KEY ID]", :red)
11
+ abort
12
+ end
13
+ end
14
+
15
+ def check_existing_file(os)
16
+ if File.exist? File.expand_path os
17
+ overwrite = prompt.select("This is going to overwrite your existing #{'~/.aws/credentials'.colorize(:green)}. ok?", %w[OK EXIT])
18
+ abort unless overwrite == 'OK'
19
+ end
20
+ end
21
+
22
+ def post_identification
23
+ puts "\e[H\e[2J"
24
+ say('Your OS identified: ', :yellow)
25
+ puts ''
26
+ puts OS.report
27
+ puts ''
28
+ say('Provide your aws credentials below', :yellow)
29
+ puts ''
30
+ end
31
+
32
+ def create_key_pair(os, key_pair_name)
33
+ current_dirname = File.basename(Dir.getwd)
34
+ ec2 = Aws::EC2::Client.new
35
+ Dir.chdir File.dirname(os)
36
+ ec2.create_key_pair(key_name: key_pair_name)
37
+ Dir.chdir current_dirname
38
+ create_file "#{File.dirname(os)}key" do
39
+ key_pair_name.to_s
40
+ end
41
+ say('Key-pair successfully generated', :green)
42
+ end
43
+ end
44
+ end
data/lib/pele/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pele
2
- VERSION = "0.1.2-pre"
2
+ VERSION = "0.1.4-pre"
3
3
  end
data/lib/pele.rb CHANGED
@@ -4,6 +4,8 @@ require 'os'
4
4
  require 'tty-prompt'
5
5
  require 'pele/aws_regions'
6
6
  require 'colorize'
7
+ require 'aws-sdk'
8
+ require 'pele/utils'
7
9
  require 'pele/cli'
8
10
 
9
11
  module Pele
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pele
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.pre
4
+ version: 0.1.4.pre.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Suyesh Bhandari
@@ -126,6 +126,7 @@ files:
126
126
  - lib/pele.rb
127
127
  - lib/pele/aws_regions.rb
128
128
  - lib/pele/cli.rb
129
+ - lib/pele/utils.rb
129
130
  - lib/pele/version.rb
130
131
  - pele.gemspec
131
132
  homepage: https://github.com/suyesh/pele