class Chef::Knife::SceLocationList

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/sce_location_list.rb, line 46
def run
  $stdout.sync = true

  validate!
  
  location_list = [
    ui.color('Location ID', :bold),
    ui.color("Name", :bold),
    ui.color('Location', :bold),
    if config[:description]
      ui.color('Description', :bold)
    end,
    if config[:capabilities]
      ui.color('Capabilities', :bold)
    end
  ].flatten.compact
  
  output_column_count = location_list.length
  
  locations = run!
  
  locations.each do |location|
    location_list << location.id.to_s
    location_list << location.name.to_s
    location_list << location.location.to_s
    if config[:description]
      location_list << location.description.to_s
    end
    if config[:capabilities]
      if location.capabilities.length > 0
        tabs = "\t"
        tabs = "#{tabs}\t" if location.capabilities[0]["id"].to_s.length < 25
        location_list << "#{location.capabilities[0]["id"].to_s}:#{tabs}#{location.capabilities[0]["entries"].to_s}"
      else
        location_list << " "
      end
    end
    
    if config[:capabilities]
      (1...location.capabilities.length).each do |index|
        location_list << " "
        location_list << " "
        location_list << " "
        if config[:description]
          location_list << " "
        end
        tabs = "\t"
        tabs = "#{tabs}\t" if location.capabilities[index]["id"].to_s.length < 25
        location_list << "#{location.capabilities[index]["id"].to_s}:#{tabs}#{location.capabilities[index]["entries"].to_s}"
      end
    end
    
  end
  
  puts ui.list(location_list, :uneven_columns_across, output_column_count)

end
run!() click to toggle source
# File lib/chef/knife/sce_location_list.rb, line 42
def run!
  connection.locations.all
end