class Chef::Knife::LparList

Public Instance Methods

run() click to toggle source

Run the plugin

# File lib/chef/knife/lpar_list.rb, line 41
def run
  read_and_validate_params
  @password = get_password
  list_lpars
end

Private Instance Methods

list_lpars() click to toggle source
# File lib/chef/knife/lpar_list.rb, line 65
def list_lpars
  lpar_list = [
      ui.color("LPAR ID", :bold),
      ui.color("Type", :bold),
      ui.color("Name", :bold),
      ui.color("OS Version", :bold),
  ].flatten.compact

  output_column_count = lpar_list.length

  Net::SSH.start(@name_args[0], "hscroot", :password => @password) do |ssh|

    command = "lssyscfg -m #{config[:virtual_server]} -F lpar_id,lpar_env,name,os_version -r lpar"
    output = run_remote_command(ssh, command)
    output.each_line do |lpar|
      lpar.split(",").each do |field|
        lpar_list << field.chomp
      end
    end
    puts "\n"
    puts ui.list(lpar_list, :uneven_columns_across, output_column_count)
  end
end
read_and_validate_params() click to toggle source

Reads the input parameters and validates them. Will exit if it encounters an error

# File lib/chef/knife/lpar_list.rb, line 53
def read_and_validate_params
  if @name_args.length < 1
    show_usage
    exit 1
  end

  if config[:virtual_server].nil?
    show_usage
    exit 1
  end
end