Class: Shef::DoppelGangerClient
- Inherits:
-
Chef::Client
- Object
- Chef::Client
- Shef::DoppelGangerClient
- Defined in:
- lib/chef/shef/shef_session.rb
Instance Attribute Summary collapse
-
#node_name ⇒ Object
readonly
Returns the value of attribute node_name.
Attributes inherited from Chef::Client
#json_attribs, #node, #ohai, #rest, #run_status, #runner
Instance Method Summary collapse
-
#build_node ⇒ Object
DoppelGanger implementation of build_node.
-
#initialize(node_name) ⇒ DoppelGangerClient
constructor
A new instance of DoppelGangerClient.
- #register ⇒ Object
-
#run_ohai ⇒ Object
Run the very smallest amount of ohai we can get away with and still hope to have things work.
Methods inherited from Chef::Client
clear_notifications, #converge, #run, #run_completed_successfully, run_completed_successfully_notifications, #run_failed, run_failed_notifications, run_start_notifications, #run_started, #sync_cookbooks, when_run_completes_successfully, when_run_fails, when_run_starts
Constructor Details
#initialize(node_name) ⇒ DoppelGangerClient
Returns a new instance of DoppelGangerClient.
202 203 204 205 |
# File 'lib/chef/shef/shef_session.rb', line 202 def initialize(node_name) @node_name = node_name @ohai = Ohai::System.new end |
Instance Attribute Details
#node_name ⇒ Object (readonly)
Returns the value of attribute node_name.
200 201 202 |
# File 'lib/chef/shef/shef_session.rb', line 200 def node_name @node_name end |
Instance Method Details
#build_node ⇒ Object
DoppelGanger implementation of build_node. preserves as many of the node’s attributes, and does not save updates to the server
215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/chef/shef/shef_session.rb', line 215 def build_node Chef::Log.debug("Building node object for #{@node_name}") @node = Chef::Node.find_or_create(node_name) ohai_data = @ohai.data.merge(@node.automatic_attrs) @node.consume_external_attrs(ohai_data,nil) @node.reset_defaults_and_overrides @node end |
#register ⇒ Object
228 229 230 |
# File 'lib/chef/shef/shef_session.rb', line 228 def register @rest = Chef::REST.new(Chef::Config[:chef_server_url], Chef::Config[:node_name], Chef::Config[:client_key]) end |
#run_ohai ⇒ Object
Run the very smallest amount of ohai we can get away with and still hope to have things work. Otherwise we’re not very good doppelgangers
209 210 211 |
# File 'lib/chef/shef/shef_session.rb', line 209 def run_ohai @ohai.require_plugin('os') end |