mirror of
https://github.com/puppetlabs/vmfloaty.git
synced 2026-01-26 05:28:40 -05:00
Merge pull request #38 from nicklewis/improved-status-command
Show the status of pools with `floaty status`
This commit is contained in:
commit
5cfac377ee
2 changed files with 31 additions and 1 deletions
1
Gemfile
1
Gemfile
|
|
@ -2,6 +2,7 @@ source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'commander'
|
gem 'commander'
|
||||||
gem 'faraday', '0.9.2'
|
gem 'faraday', '0.9.2'
|
||||||
|
gem 'colorize', '~> 0.8'
|
||||||
|
|
||||||
gem 'rspec'
|
gem 'rspec'
|
||||||
gem 'webmock', '1.21.0'
|
gem 'webmock', '1.21.0'
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
require 'commander'
|
require 'commander'
|
||||||
|
require 'colorize'
|
||||||
|
require 'json'
|
||||||
require 'pp'
|
require 'pp'
|
||||||
require 'vmfloaty/auth'
|
require 'vmfloaty/auth'
|
||||||
require 'vmfloaty/pooler'
|
require 'vmfloaty/pooler'
|
||||||
|
|
@ -413,12 +415,39 @@ class Vmfloaty
|
||||||
c.example 'Gets the current vmpooler status', 'floaty status --url http://vmpooler.example.com'
|
c.example 'Gets the current vmpooler status', 'floaty status --url http://vmpooler.example.com'
|
||||||
c.option '--verbose', 'Enables verbose output'
|
c.option '--verbose', 'Enables verbose output'
|
||||||
c.option '--url STRING', String, 'URL of vmpooler'
|
c.option '--url STRING', String, 'URL of vmpooler'
|
||||||
|
c.option '--json', 'Prints status in JSON format'
|
||||||
c.action do |args, options|
|
c.action do |args, options|
|
||||||
verbose = options.verbose || config['verbose']
|
verbose = options.verbose || config['verbose']
|
||||||
url = options.url ||= config['url']
|
url = options.url ||= config['url']
|
||||||
|
|
||||||
status = Pooler.status(verbose, url)
|
status = Pooler.status(verbose, url)
|
||||||
|
message = status['status']['message']
|
||||||
|
pools = status['pools']
|
||||||
|
|
||||||
|
if options.json
|
||||||
pp status
|
pp status
|
||||||
|
else
|
||||||
|
pools.select! {|name,pool| pool['ready'] < pool['max']} if ! verbose
|
||||||
|
|
||||||
|
width = pools.keys.map(&:length).max
|
||||||
|
pools.each do |name,pool|
|
||||||
|
begin
|
||||||
|
max = pool['max']
|
||||||
|
ready = pool['ready']
|
||||||
|
pending = pool['pending']
|
||||||
|
missing = max - ready - pending
|
||||||
|
char = 'o'
|
||||||
|
puts "#{name.ljust(width)} #{(char*ready).green}#{(char*pending).yellow}#{(char*missing).red}"
|
||||||
|
rescue => e
|
||||||
|
puts "#{name.ljust(width)} #{e.red}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
puts
|
||||||
|
puts message.colorize(status['status']['ok'] ? :default : :red)
|
||||||
|
end
|
||||||
|
|
||||||
|
exit status['status']['ok']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue