Class: Cloudcost::CLI
- Inherits:
-
Thor
- Object
- Thor
- Cloudcost::CLI
- Defined in:
- lib/cloudcost/cli.rb
Overview
Implementaion of CLI functionality
Constant Summary collapse
- Error =
Error raised by this runner
Class.new(StandardError)
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.exit_on_failure? ⇒ Boolean
12 13 14 |
# File 'lib/cloudcost/cli.rb', line 12 def self.exit_on_failure? true end |
Instance Method Details
#server_tags ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/cloudcost/cli.rb', line 65 def servers = load_servers() servers.size.positive? ? puts(Cloudcost::ServerList.new(servers, ).) : exit if ([:set_tags] || [:remove_tags]) && ask( "Do you want to #{tag_option_to_s()}?", default: "n" ) == "y" spinners = TTY::Spinner::Multi.new("[:spinner] Settings server tags") servers.each do |server| spinners.register("[:spinner] #{server.name}") do |spinner| = server..merge([:set_tags] ? ([:set_tags]) : {}) ([:remove_tags] || []).each do |tag| .reject! { |k| k == tag.to_sym } end begin api_connection().(server.uuid, ) spinner.success rescue Excon::Error => e spinner.error "ERROR: #{e.}" end end end spinners.auto_spin end rescue Cloudcost::TokenError, Cloudcost::ProfileError => e puts "ERROR: #{e.}" end |
#servers ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/cloudcost/cli.rb', line 36 def servers servers = load_servers() if [:output] == "table" spinner = TTY::Spinner.new("[:spinner] Calculating costs...", clear: [:csv]) spinner.auto_spin end output_servers(servers, ) do |result| spinner&.success("(done)") puts result end rescue Excon::Error, TokenError, ProfileError, PricingError => e = "ERROR: #{e.}" spinner ? spinner.error() : puts() end |
#version ⇒ Object
25 26 27 |
# File 'lib/cloudcost/cli.rb', line 25 def version puts "cloudcost v#{Cloudcost::VERSION}" end |
#volumes ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/cloudcost/cli.rb', line 100 def volumes volumes = load_volumes() if [:output] == "table" spinner = TTY::Spinner.new("[:spinner] Calculating costs...", clear: [:csv]) spinner.auto_spin end output_volumes(volumes, ) do |result| spinner&.success("(done)") puts result end rescue Excon::Error, Cloudcost::TokenError, Cloudcost::ProfileError, Cloudcost::PricingError => e = "ERROR: #{e.}" spinner ? spinner.error() : puts() end |