class Chef::Knife

Public Instance Methods

get_networks(names, rackconnect3 = false) click to toggle source
# File lib/chef/knife/rackspace_server_create.rb, line 649
def get_networks(names, rackconnect3 = false)
  names = Array(names)

  if locate_config_value(:rackspace_version) == "v2"
    nets = if rackconnect3
             [locate_config_value(:rackconnect_v3_network_id)]
           elsif locate_config_value(:default_networks)
             %w{
               00000000-0000-0000-0000-000000000000
               11111111-1111-1111-1111-111111111111
             }
           else
             []
           end

    available_networks = connection.networks.all

    names.each do |name|
      net = available_networks.detect { |n| n.label == name || n.id == name }
      if net
        nets << net.id
      else
        ui.error("Failed to locate network: #{name}")
        exit 1
      end
    end
    nets
  elsif names && !names.empty?
    ui.error("Custom networks are only available in v2 API")
    exit 1
  end
end
get_node_name(chef_node_name) click to toggle source

v2 servers require a name, random if chef_node_name is empty, empty if v1

# File lib/chef/knife/rackspace_server_create.rb, line 642
def get_node_name(chef_node_name)
  return chef_node_name unless chef_node_name.nil?

  # lazy uuids
  chef_node_name = "rs-" + rand.to_s.split(".")[1] unless version_one?
end