Class: Chef::Provider::ChefNode

Inherits:
Cheffish::ChefProviderBase show all
Defined in:
lib/chef/provider/chef_node.rb

Instance Method Summary collapse

Methods inherited from Cheffish::ChefProviderBase

#apply_modifiers, #apply_run_list_modifiers, #augment_current_json, #current_json, #current_resource_exists?, #json_differences, #json_differences_internal, #json_to_resource, #new_json, #normalize, #normalize_for_post, #normalize_for_put, #not_found_resource, #resource_to_json, #rest, #same_run_list_item

Instance Method Details

#augment_new_json(json) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/chef/provider/chef_node.rb', line 52

def augment_new_json(json)
  # Preserve tags even if "attributes" was overwritten directly

  json['normal']['tags'] = current_json['normal']['tags'] unless json['normal']['tags']
  # Apply modifiers

  json['run_list'] = apply_run_list_modifiers(new_resource.run_list_modifiers, new_resource.run_list_removers, json['run_list'])
  json['normal'] = apply_modifiers(new_resource.attribute_modifiers, json['normal'])
  # Preserve default/override/automatic even when "complete true"

  json['default'] = current_json['default']
  json['override'] = current_json['override']
  json['automatic'] = current_json['automatic']
  json
end

#data_handlerObject



73
74
75
# File 'lib/chef/provider/chef_node.rb', line 73

def data_handler
  Chef::ChefFS::DataHandler::NodeDataHandler.new
end

#keysObject



77
78
79
80
81
82
83
84
# File 'lib/chef/provider/chef_node.rb', line 77

def keys
  {
    'name' => :name,
    'chef_environment' => :chef_environment,
    'run_list' => :run_list,
    'normal' => :attributes
  }
end

#load_current_resourceObject



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/chef/provider/chef_node.rb', line 40

def load_current_resource
  begin
    @current_resource = json_to_resource(rest.get("nodes/#{new_resource.name}"))
  rescue Net::HTTPServerException => e
    if e.response.code == "404"
      @current_resource = not_found_resource
    else
      raise
    end
  end
end

#resource_classObject

Helpers



69
70
71
# File 'lib/chef/provider/chef_node.rb', line 69

def resource_class
  Chef::Resource::ChefNode
end

#whyrun_supported?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/chef/provider/chef_node.rb', line 10

def whyrun_supported?
  true
end