Manipulation
# File lib/ironfan/provider/chef/node.rb, line 113 def self.create!(computer) return if computer.node? node = Node.new node.name computer.server.full_name node.create! computer computer.node = node remember node end
# File lib/ironfan/provider/chef/node.rb, line 122 def self.destroy!(computer) return unless computer.node? forget computer.node.name computer.node.destroy computer.delete(:node) end
# File lib/ironfan/provider/chef/node.rb, line 42 def self.expected_ids(computer) [computer.server.full_name]; end
Discovery
# File lib/ironfan/provider/chef/node.rb, line 89 def self.load!(cluster=nil) query = cluster && "name:#{cluster.name}-*" ChefServer.search(:node, query) do |raw| next unless raw.present? node = register(raw) Chef::Log.debug("Loaded #{node}") end end
# File lib/ironfan/provider/chef/node.rb, line 39 def self.multiple?() false; end
# File lib/ironfan/provider/chef/node.rb, line 28 def initialize(*args) super self.adaptee ||= Chef::Node.new end
def self.resource_type() self; end
# File lib/ironfan/provider/chef/node.rb, line 41 def self.resource_type() :node; end
# File lib/ironfan/provider/chef/node.rb, line 77 def announce_state state set[:state] = state save end
# File lib/ironfan/provider/chef/node.rb, line 82 def conterminous_with_machine? true end
# File lib/ironfan/provider/chef/node.rb, line 54 def create!(computer) prepare_from computer client = computer[:client] unless File.exists?(client.key_filename) raise("Cannot create chef node #{name} -- client #{@chef_client} exists but no client key found in #{client.key_filename}.") end ChefServer.post_rest("nodes", adaptee, :client => client) end
# File lib/ironfan/provider/chef/node.rb, line 98 def on_correlate(computer) return unless self['volumes'] self['volumes'].each do |name,volume| computer.drive(name).node.merge! volume end end
# File lib/ironfan/provider/chef/node.rb, line 64 def prepare_from(computer) organization = Chef::Config.organization normal[:organization] = organization unless organization.nil? server = computer.server chef_environment(server.environment.to_s) run_list.instance_eval { @run_list_items = server.run_list } normal[:cluster_name] = server.cluster_name normal[:facet_name] = server.facet_name normal[:permanent] = computer.permanent? normal[:volumes] = {} computer.drives.each {|d| normal[:volumes][d.name] = d.node} end
# File lib/ironfan/provider/chef/node.rb, line 49 def save!(computer) prepare_from computer save end
Generated with the Darkfish Rdoc Generator 2.