Method: Chef::Node#save

Defined in:
lib/chef/node.rb

#saveObject

Save this node via the REST API



662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
# File 'lib/chef/node.rb', line 662

def save
  # Try PUT. If the node doesn't yet exist, PUT will return 404,
  # so then POST to create.
  begin
    if Chef::Config[:why_run]
      logger.warn("In why-run mode, so NOT performing node save.")
    else
      chef_server_rest.put("nodes/#{name}", data_for_save)
    end
  rescue Net::HTTPClientException => e
    if e.response.code == "404"
      chef_server_rest.post("nodes", data_for_save)
    else
      raise
    end
  end
  self
end