awslist 2.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/awslist.gemspec +1 -0
 - data/bin/awslist +0 -0
 - data/lib/awslist.rb +32 -6
 - data/lib/awslist/version.rb +1 -1
 - metadata +16 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0ff627b621cf8728e13045bb277355a50e055ea8
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 456d37bbe7c8cecf1ab5530e5c67fc11605a187e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5d891158546fd516a838a81460ed73adb252255a2a769242179b2370498a8cdd2852052ce3852308c695246a1359f65ec126e724a64b4a68675cc94611978849
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 8eb3f546a33b9842d1fc63d70dbdeb2cf247c76443213f81d54d5262df3478e091dd7d2497ef0a6578dbd8a12ca9ade5a3e33024f53721b07384a5218a4b8aa3
         
     | 
    
        data/awslist.gemspec
    CHANGED
    
    | 
         @@ -33,6 +33,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       33 
33 
     | 
    
         
             
              spec.add_dependency 'rest-client'
         
     | 
| 
       34 
34 
     | 
    
         
             
              spec.add_dependency 'nokogiri'
         
     | 
| 
       35 
35 
     | 
    
         
             
              spec.add_dependency 'json'
         
     | 
| 
      
 36 
     | 
    
         
            +
              spec.add_dependency 'terminal-table'
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
       37 
38 
     | 
    
         
             
              spec.add_development_dependency "bundler", "~> 1.15"
         
     | 
| 
       38 
39 
     | 
    
         
             
              spec.add_development_dependency "rake", "~> 10.0"
         
     | 
    
        data/bin/awslist
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        data/lib/awslist.rb
    CHANGED
    
    | 
         @@ -3,14 +3,16 @@ require 'rest-client' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'nokogiri'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'json'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'optparse'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'terminal-table'
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
            module Awslist
         
     | 
| 
       8 
     | 
    
         
            -
              class AwsToolCli
         
     | 
| 
      
 9 
     | 
    
         
            +
              class AwsToolCli < StandardError
         
     | 
| 
       9 
10 
     | 
    
         
             
                attr_accessor :parser , :hash , :output
         
     | 
| 
       10 
11 
     | 
    
         
             
                def initialize
         
     | 
| 
       11 
12 
     | 
    
         
             
                  @hash = {}
         
     | 
| 
       12 
13 
     | 
    
         
             
                  @set = 'n'
         
     | 
| 
       13 
     | 
    
         
            -
                  @ 
     | 
| 
      
 14 
     | 
    
         
            +
                  @instance_list = {}
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @options = {:os => 'linux' , :region => 'us-east-1' , :cpu_req => 0 , :mem_req => 0 , :reload => 'n' , :instance => 'nil'}
         
     | 
| 
       14 
16 
     | 
    
         
             
                  @os_list = {
         
     | 
| 
       15 
17 
     | 
    
         
             
                      'linux' => 0,
         
     | 
| 
       16 
18 
     | 
    
         
             
                      'rhel' => 0,
         
     | 
| 
         @@ -40,6 +42,9 @@ module Awslist 
     | 
|
| 
       40 
42 
     | 
    
         | 
| 
       41 
43 
     | 
    
         
             
                  @parser = OptionParser.new do |opts|
         
     | 
| 
       42 
44 
     | 
    
         
             
                    opts.banner = 'Usage: awslist [options]'
         
     | 
| 
      
 45 
     | 
    
         
            +
                    opts.on('-t' , '--type INSTANCE_TYPE') do |instance|
         
     | 
| 
      
 46 
     | 
    
         
            +
                      @options[:instance] = instance.strip
         
     | 
| 
      
 47 
     | 
    
         
            +
                    end
         
     | 
| 
       43 
48 
     | 
    
         
             
                    opts.on('-os OPERATING_SYSTEM', 'OS list :  linux , rhel , sles , mswin , mswinSQL , mswinSQLWeb , mswinSQLEnterprise' ) do |os|
         
     | 
| 
       44 
49 
     | 
    
         
             
                      @options[:os] = os.strip.downcase;
         
     | 
| 
       45 
50 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -100,15 +105,19 @@ module Awslist 
     | 
|
| 
       100 
105 
     | 
    
         
             
                          @hash[x][str]['vCPU'][cpu] << instance_hash
         
     | 
| 
       101 
106 
     | 
    
         
             
                          @hash[x][str]['memoryGiB'][mem] = @hash[x][str]['memoryGiB'].fetch(mem,[])
         
     | 
| 
       102 
107 
     | 
    
         
             
                          @hash[x][str]['memoryGiB'][mem] << instance_hash
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                          @instance_list[instance_hash['size']] = 1
         
     | 
| 
       103 
110 
     | 
    
         
             
                        end
         
     | 
| 
       104 
111 
     | 
    
         
             
                      end
         
     | 
| 
       105 
112 
     | 
    
         
             
                    end
         
     | 
| 
       106 
113 
     | 
    
         
             
                  end
         
     | 
| 
       107 
114 
     | 
    
         
             
                  File.open('Complete_Data','w'){ |file| file.write(@hash.to_json) }
         
     | 
| 
      
 115 
     | 
    
         
            +
                  File.open('Instance_list','w'){ |file| file.write(@instance_list.to_json)}
         
     | 
| 
       108 
116 
     | 
    
         
             
                end
         
     | 
| 
       109 
117 
     | 
    
         | 
| 
       110 
118 
     | 
    
         
             
                def reloaded_hash
         
     | 
| 
       111 
119 
     | 
    
         
             
                  @hash = JSON.parse(File.read('Complete_Data'))
         
     | 
| 
      
 120 
     | 
    
         
            +
                  @instance_list = JSON.parse(File.read('Instance_list'))
         
     | 
| 
       112 
121 
     | 
    
         
             
                end
         
     | 
| 
       113 
122 
     | 
    
         | 
| 
       114 
123 
     | 
    
         
             
                def refine_output
         
     | 
| 
         @@ -117,7 +126,9 @@ module Awslist 
     | 
|
| 
       117 
126 
     | 
    
         
             
                  @hash[@options[:os]][@options[:region]]['vCPU'].each do |k,v|
         
     | 
| 
       118 
127 
     | 
    
         
             
                    if k.to_f >= @options[:cpu_req].to_s.strip.to_f
         
     | 
| 
       119 
128 
     | 
    
         
             
                      v.each do |c|
         
     | 
| 
       120 
     | 
    
         
            -
                         
     | 
| 
      
 129 
     | 
    
         
            +
                        if (@options[:instance] != 'nil' && c['size'] == @options[:instance]) || @options[:instance] == 'nil'
         
     | 
| 
      
 130 
     | 
    
         
            +
                          a << c
         
     | 
| 
      
 131 
     | 
    
         
            +
                        end
         
     | 
| 
       121 
132 
     | 
    
         
             
                      end
         
     | 
| 
       122 
133 
     | 
    
         
             
                    end
         
     | 
| 
       123 
134 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -125,7 +136,9 @@ module Awslist 
     | 
|
| 
       125 
136 
     | 
    
         
             
                  @hash[@options[:os]][@options[:region]]['memoryGiB'].each do |k,v|
         
     | 
| 
       126 
137 
     | 
    
         
             
                    if k.to_f >= @options[:mem_req].to_s.strip.to_f
         
     | 
| 
       127 
138 
     | 
    
         
             
                      v.each do |c|
         
     | 
| 
       128 
     | 
    
         
            -
                         
     | 
| 
      
 139 
     | 
    
         
            +
                        if (@options[:instance] != 'nil' && c['size'] == @options[:instance]) || @options[:instance] == 'nil'
         
     | 
| 
      
 140 
     | 
    
         
            +
                          b << c
         
     | 
| 
      
 141 
     | 
    
         
            +
                        end
         
     | 
| 
       129 
142 
     | 
    
         
             
                      end
         
     | 
| 
       130 
143 
     | 
    
         
             
                    end
         
     | 
| 
       131 
144 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -133,14 +146,17 @@ module Awslist 
     | 
|
| 
       133 
146 
     | 
    
         
             
                end
         
     | 
| 
       134 
147 
     | 
    
         | 
| 
       135 
148 
     | 
    
         
             
                def prints
         
     | 
| 
      
 149 
     | 
    
         
            +
                  yo = []
         
     | 
| 
       136 
150 
     | 
    
         
             
                  @output.each do |hashes_everywhere|
         
     | 
| 
       137 
151 
     | 
    
         
             
                    value = hashes_everywhere['price'].to_f
         
     | 
| 
       138 
     | 
    
         
            -
                     
     | 
| 
      
 152 
     | 
    
         
            +
                    yo << [hashes_everywhere['size'],hashes_everywhere['vCPU'],hashes_everywhere['memoryGiB'],value.round(3),(value*24*30).round(3)]
         
     | 
| 
       139 
153 
     | 
    
         
             
                  end
         
     | 
| 
      
 154 
     | 
    
         
            +
                  table = Terminal::Table.new :headings => ['Instance Type' , 'vCPU' , 'memoryGiB' , 'Price per hr(in USD $)' , 'Price per month(in USD $)'], :rows => yo
         
     | 
| 
      
 155 
     | 
    
         
            +
                  puts table
         
     | 
| 
       140 
156 
     | 
    
         
             
                end
         
     | 
| 
       141 
157 
     | 
    
         | 
| 
       142 
158 
     | 
    
         
             
                def what_to_call
         
     | 
| 
       143 
     | 
    
         
            -
                  if @options[:reload] == 'y' || !File.exist?('Complete_Data')
         
     | 
| 
      
 159 
     | 
    
         
            +
                  if @options[:reload] == 'y' || !File.exist?('Complete_Data') || !File.exist?('Instance_list')
         
     | 
| 
       144 
160 
     | 
    
         
             
                    reload_files
         
     | 
| 
       145 
161 
     | 
    
         
             
                    reload_hash
         
     | 
| 
       146 
162 
     | 
    
         
             
                  elsif @set == 'y' && @options[:reload] != 'n'
         
     | 
| 
         @@ -154,6 +170,16 @@ module Awslist 
     | 
|
| 
       154 
170 
     | 
    
         
             
                    raise  if !Integer(@options[:mem_req])
         
     | 
| 
       155 
171 
     | 
    
         
             
                    raise  if !@os_list.key?(@options[:os])
         
     | 
| 
       156 
172 
     | 
    
         
             
                    raise  if !@region_list.key?(@options[:region])
         
     | 
| 
      
 173 
     | 
    
         
            +
                    raise  AwsToolCli if @options[:instance] != 'nil' && !@instance_list.key?(@options[:instance])
         
     | 
| 
      
 174 
     | 
    
         
            +
                  rescue AwsToolCli
         
     | 
| 
      
 175 
     | 
    
         
            +
                    puts sprintf('Wrong instance name. Please try :')
         
     | 
| 
      
 176 
     | 
    
         
            +
                    yo = []
         
     | 
| 
      
 177 
     | 
    
         
            +
                    @instance_list.each do |k,v|
         
     | 
| 
      
 178 
     | 
    
         
            +
                      yo << [k]
         
     | 
| 
      
 179 
     | 
    
         
            +
                    end
         
     | 
| 
      
 180 
     | 
    
         
            +
                    table = Terminal::Table.new :headings => ['Instance Type'], :rows => yo
         
     | 
| 
      
 181 
     | 
    
         
            +
                    puts table
         
     | 
| 
      
 182 
     | 
    
         
            +
                    exit
         
     | 
| 
       157 
183 
     | 
    
         
             
                  rescue
         
     | 
| 
       158 
184 
     | 
    
         
             
                    puts @parser
         
     | 
| 
       159 
185 
     | 
    
         
             
                    exit
         
     | 
    
        data/lib/awslist/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: awslist
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Akkks
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-07-05 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rest-client
         
     | 
| 
         @@ -52,6 +52,20 @@ dependencies: 
     | 
|
| 
       52 
52 
     | 
    
         
             
                - - ">="
         
     | 
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
54 
     | 
    
         
             
                    version: '0'
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              name: terminal-table
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       55 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
70 
     | 
    
         
             
              name: bundler
         
     | 
| 
       57 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |