class Morpheus::Cli::LoadBalancerPools

Protected Instance Methods

find_load_balancer_pool_by_id(load_balancer_pool_id, id) click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 101
def find_load_balancer_pool_by_id(load_balancer_pool_id, id)
  begin
    json_response = @load_balancer_pools_secondary_interface.get(load_balancer_pool_id, id.to_i)
    return json_response[load_balancer_pool_object_key]
  rescue RestClient::Exception => e
    if e.response && e.response.code == 404
      print_red_alert "Load Balancer Pool not found by id #{id}"
    else
      raise e
    end
  end
end
find_load_balancer_pool_by_name(load_balancer_pool_id, name) click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 114
def find_load_balancer_pool_by_name(load_balancer_pool_id, name)
  lbs = @load_balancer_pools_secondary_interface.list(load_balancer_pool_id, {name: name.to_s})[load_balancer_pool_list_key]
  if lbs.empty?
    print_red_alert "Load Balancer Pool not found by name #{name}"
    return nil
  elsif lbs.size > 1
    print_red_alert "#{lbs.size} load balancer pools found by name #{name}"
    #print_lbs_table(lbs, {color: red})
    print reset,"\n\n"
    return nil
  else
    return lbs[0]
  end
end
find_load_balancer_pool_by_name_or_id(load_balancer_pool_id, val) click to toggle source

using CliCommand’s generic find_by methods

# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 93
def find_load_balancer_pool_by_name_or_id(load_balancer_pool_id, val)
  if val.to_s =~ /\A\d{1,}\Z/
    return find_load_balancer_pool_by_id(load_balancer_pool_id, val)
  else
    return find_load_balancer_pool_by_name(load_balancer_pool_id, val)
  end
end
format_load_balancer_pool_status(record, return_color=cyan) click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 69
def format_load_balancer_pool_status(record, return_color=cyan)
  out = ""
  status_string = record['status']
  if status_string.nil? || status_string.empty? || status_string == "unknown"
    out << "#{white}UNKNOWN#{return_color}"
  elsif status_string == 'online' || status_string == 'ok'
    out << "#{green}#{status_string.upcase}#{return_color}"
  elsif status_string == 'syncing'
    out << "#{yellow}#{status_string.upcase}#{return_color}"
  else
    out << "#{red}#{status_string ? status_string.upcase : 'N/A'}#{record['statusMessage'] ? "#{return_color} - #{record['statusMessage']}" : ''}#{return_color}"
  end
  out
end
load_balancer_pool_column_definitions(options) click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 39
def load_balancer_pool_column_definitions(options)
  {
    "ID" => 'id',
    "Name" => 'name',
    "Load Balancer" => lambda {|it| it['loadBalancer'] ? it['loadBalancer']['name'] : '' },
    "Description" => 'description',
    "Balancer Mode" => lambda {|it| it['vipBalance'] },
    # todo: more properties to show here
    "Status" => lambda {|it| format_load_balancer_pool_status(it) },
    "Created" => lambda {|it| format_local_dt(it['dateCreated']) },
    "Updated" => lambda {|it| format_local_dt(it['lastUpdated']) }
  }
end
load_balancer_pool_label() click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 61
def load_balancer_pool_label
  'Load Balancer Pool'
end
load_balancer_pool_label_plural() click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 65
def load_balancer_pool_label_plural
  'Load Balancer Pools'
end
load_balancer_pool_list_column_definitions(options) click to toggle source

todo: a configurable way to load the optionTypes option_types = loadBalancer set_rest_has_type true set_rest_type :load_balancer_virtual_server_types

# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 29
def load_balancer_pool_list_column_definitions(options)
  {
    "ID" => 'id',
    "Name" => 'name',
    #"Load Balancer" => lambda {|it| it['loadBalancer'] ? it['loadBalancer']['name'] : '' },
    "Balancer Mode" => lambda {|it| it['vipBalance'] },
    "Status" => lambda {|it| format_load_balancer_pool_status(it) }
  }
end
load_balancer_pool_list_key() click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 57
def load_balancer_pool_list_key
  'loadBalancerPools'
end
load_balancer_pool_object_key() click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 53
def load_balancer_pool_object_key
  'loadBalancerPool'
end
load_option_types_for_load_balancer_pool(type_record, parent_record) click to toggle source
# File lib/morpheus/cli/commands/load_balancer_pools.rb, line 84
def load_option_types_for_load_balancer_pool(type_record, parent_record)
  load_balancer = parent_record
  load_balancer_type_id = load_balancer['type']['id']
  load_balancer_type = find_by_id(:load_balancer_type, load_balancer_type_id)
  load_balancer_type['poolOptionTypes']
end