Sha256: 8c25c1e22a63313e7c4500c8cc82ed549d258a6643a6be96e14c55b544e29997
Contents?: true
Size: 1.72 KB
Versions: 3
Compression:
Stored size: 1.72 KB
Contents
class Capacity < CloudstackCli::Base CAPACITY_TYPES = { 0 => {name: "Memory", unit: "GB", divider: 1024.0**3}, 1 => {name: "CPU", unit: "GHz", divider: 1000.0}, 2 => {name: "Storage", unit: "TB", divider: 1024.0**4}, 3 => {name: "Primary Storage", unit: "TB", divider: 1024.0**4}, 4 => {name: "Public IP's"}, 5 => {name: "Private IP's"}, 6 => {name: "Secondary Storage", unit: "TB", divider: 1024.0**4}, 7 => {name: "VLAN"}, 8 => {name: "Direct Attached Public IP's"}, 9 => {name: "Local Storage", unit: "TB", divider: 1024.0**4} } desc "capacity list", "list system capacity" option :zone option :type, desc: "specify type, see types for a list of types" def list capacities = client.list_capacity(options) table = [] header = ["Zone", "Type", "Capacity Used", "Capacity Total", "Used"] capacities.each do |c| table << [ c['zonename'], CAPACITY_TYPES[c['type']][:name], capacity_to_s(c, 'capacityused'), capacity_to_s(c, 'capacitytotal'), "#{c['percentused']}%" ] end table = table.sort {|a, b| [a[0], a[1]] <=> [b[0], b[1]]}.insert(0, header) print_table table end desc "capacity types", "show capacity types" def types table = [['type', 'name']] CAPACITY_TYPES.each_pair do |type, data| table << [type, data[:name]] end print_table table end no_commands do def capacity_to_s(capacity, entity) value = CAPACITY_TYPES[capacity['type']][:divider] ? (capacity[entity] / CAPACITY_TYPES[capacity['type']][:divider]).round(1) : capacity[entity] CAPACITY_TYPES[capacity['type']][:unit] ? "#{value} #{CAPACITY_TYPES[capacity['type']][:unit]}" : value.to_s end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cloudstack-cli-0.4.3 | lib/cloudstack-cli/commands/capacity.rb |
cloudstack-cli-0.4.2 | lib/cloudstack-cli/commands/capacity.rb |
cloudstack-cli-0.4.1 | lib/cloudstack-cli/commands/capacity.rb |