module Chef::Knife::RackspaceLoadBalancerNodes

Public Instance Methods

resolve_node_ips_from_config(options) click to toggle source
# File lib/chef/knife/rackspace_load_balancer_nodes.rb, line 13
def resolve_node_ips_from_config(options)
  node_ips = []

  if options[:by_search]
    nodes_from_chef = nodes_by_search(options[:by_search])
    node_ips = find_internal_ip_from_node(nodes_from_chef)

  elsif options[:by_name]
    node_names = options[:by_name].split(",")
    nodes_from_chef = nodes_by_search(
      node_names.map {|n| "name:#{n}"}.join(" OR ")
    )

    node_ips = find_internal_ip_from_node(nodes_from_chef)

  elsif options[:by_private_ip]
    node_ips = config[:by_private_ip].split(",")
  end

  node_ips
end

Private Instance Methods

find_internal_ip_from_node(nodes) click to toggle source
# File lib/chef/knife/rackspace_load_balancer_nodes.rb, line 37
def find_internal_ip_from_node(nodes)
  nodes.map do |node|
    node.network["interfaces"]["eth1"]["addresses"].keys.detect do |ip|
      ip =~ /10\./
    end
  end
end