Class/Module Index [+]

Quicksearch

Ironfan::Provider::ChefServer::Client

Public Class Methods

create!(computer) click to toggle source

Manipulation

# File lib/ironfan/provider/chef/client.rb, line 59
def self.create!(computer)
  return if computer.client?
  client = Client.new
  client.name         computer.server.full_name
  client.admin        false

  params = {:name => client.name, :admin => client.admin, :private_key => true }
  result = ChefServer.post_rest("clients", params)
  client.private_key(result["private_key"])

  computer[:client] =  client
  remember             client
end
destroy!(computer) click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 73
def self.destroy!(computer)
  return unless computer.client?
  forget computer.client.name
  computer.client.destroy
  File.delete(computer.client.key_filename)
  computer.delete(:client)
end
expected_ids(computer) click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 29
def self.expected_ids(computer) [computer.server.full_name];     end
key_dir() click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 31
def self.key_dir
  Chef::Config.client_key_dir || "/tmp/#{ENV['USER']}-client_keys"
end
load!(cluster=nil) click to toggle source

Discovery

# File lib/ironfan/provider/chef/client.rb, line 47
def self.load!(cluster=nil)
  query = cluster && "name:#{cluster.name}-* OR clientname:#{cluster.name}-*"
  ChefServer.search(:client, query) do |raw|
    next unless raw.present?
    client = register(raw)
    Chef::Log.debug("Loaded #{client}")
  end
end
multiple?() click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 27
def self.multiple?()            false;  end
new(*args) click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 16
def initialize(*args)
  super
  self.adaptee ||= Chef::ApiClient.new
end
resource_type() click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 28
def self.resource_type()        :client;                        end
shared?() click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 26
def self.shared?()              false;  end

Public Instance Methods

private_key(body=nil) click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 35
def private_key(body=nil)
  if body.nil?
    body = File.open(key_filename, "rb").read
  else
    File.open(key_filename, "w", 0600){|f| f.print( body ) }
  end
  adaptee.private_key(body)
end
to_s() click to toggle source
# File lib/ironfan/provider/chef/client.rb, line 21
def to_s
  "<%-15s %-23s %s>" % [
    self.class.handle, name, key_filename]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.