10 def list
11 resolve_zone
12 storage_pools = client.list_storage_pools(options)
13 if storage_pools.size < 1
14 say "No storage pools found."
15 else
16 case options[:format].to_sym
17 when :yaml
18 puts({storage_pools: storage_pools}.to_yaml)
19 when :json
20 puts JSON.pretty_generate(storage_pools: storage_pools)
21 else
22 storage_pools = filter_by(storage_pools, "state", options[:state]) if options[:state]
23 table = [%w(Name Pod State Zone)]
24 table[0] << "Size [GB]"
25 table[0] << "Used [GB]"
26 table[0] << "Used [%]"
27 table[0] << "Alocated [GB]"
28 table[0] << "Alocated [%]"
29 table[0] << "Type"
30 storage_pools.each do |storage_pool|
31 total = storage_pool['disksizetotal'] / 1024**3
32 used = (storage_pool['disksizeused'] / 1024**3) rescue 0
33 allocated = (storage_pool['disksizeallocated'] / 1024**3) rescue 0
34 table << [
35 storage_pool['name'], storage_pool['podname'],
36 storage_pool['state'], storage_pool['zonename'],
37 total, used, (100.0 / total * used).round(0),
38 allocated, (100.0 / total * allocated).round(0),
39 storage_pool['type']
40 ]
41 end
42 print_table table
43 say "Total number of storage_pools: #{storage_pools.size}"
44 end
45 end
46 end