class Chef::Knife::Cloud::OvirtStorageList

Public Instance Methods

list(storages) click to toggle source
# File lib/chef/knife/ovirt_storage_list.rb, line 35
def list(storages)
  storage_list = [
    ui.color('ID', :bold),
    ui.color('Name', :bold),
    ui.color('Used', :bold),
    ui.color('Avail', :bold),
    ui.color('%Used', :bold),
    ui.color('Kind', :bold),
    ui.color('Role', :bold),
  ]
  begin
    storages.each do |storage|
      storage_list << storage.id
      storage_list << storage.name
      storage_list << humanize((storage.used || 0))
      storage_list << humanize(storage.available)
      storage_list << format('%02.1f ', 100 * (storage.used || 0).to_i / (storage.available || 1).to_i)
      storage_list << storage.kind
      storage_list << storage.role
      # There is a description field too, but it doesent seem to be available through fog.
    end
  rescue Excon::Errors::BadRequest => e
    response = Chef::JSONCompat.from_json(e.response.body)
    ui.fatal("Unknown server error (#{response['badRequest']['code']}): #{response['badRequest']['message']}")
    raise e
  end
  puts ui.list(storage_list, :uneven_columns_across, 7)
end
query_resource() click to toggle source
# File lib/chef/knife/ovirt_storage_list.rb, line 20
def query_resource
  @service.connection.storage_domains
rescue Excon::Errors::BadRequest => e
  response = Chef::JSONCompat.from_json(e.response.body)
  ui.fatal("Unknown server error (#{response['badRequest']['code']}): #{response['badRequest']['message']}")
  raise e
end
storage_domain_name(id) click to toggle source
# File lib/chef/knife/ovirt_storage_list.rb, line 28
def storage_domain_name(id)
  @storage_domains.select do |domain|
    puts domain
    domain.id == id
  end[0].name
end