Class: Chef::Provider::Machine
- Inherits:
-
LWRPBase
- Object
- LWRPBase
- Chef::Provider::Machine
- Defined in:
- lib/chef/provider/machine.rb
Instance Attribute Summary collapse
-
#machine_spec ⇒ Object
readonly
Returns the value of attribute machine_spec.
Class Method Summary collapse
Instance Method Summary collapse
- #action_handler ⇒ Object
- #current_driver ⇒ Object
- #current_machine_options ⇒ Object
- #from_image_spec ⇒ Object
- #load_current_resource ⇒ Object
- #machine_options(driver) ⇒ Object
- #new_driver ⇒ Object
- #new_machine_options ⇒ Object
- #whyrun_supported? ⇒ Boolean
Instance Attribute Details
#machine_spec ⇒ Object (readonly)
Returns the value of attribute machine_spec.
85 86 87 |
# File 'lib/chef/provider/machine.rb', line 85 def machine_spec @machine_spec end |
Class Method Details
.upload_files(action_handler, machine, files) ⇒ Object
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/chef/provider/machine.rb', line 149 def self.upload_files(action_handler, machine, files) if files files.each_pair do |remote_file, local| if local.is_a?(Hash) if local[:local_path] machine.upload_file(action_handler, local[:local_path], remote_file) else machine.write_file(action_handler, remote_file, local[:content]) end else machine.upload_file(action_handler, local, remote_file) end end end end |
Instance Method Details
#action_handler ⇒ Object
9 10 11 |
# File 'lib/chef/provider/machine.rb', line 9 def action_handler @action_handler ||= ChefMetal::ChefProviderActionHandler.new(self) end |
#current_driver ⇒ Object
91 92 93 94 95 |
# File 'lib/chef/provider/machine.rb', line 91 def current_driver if machine_spec.driver_url run_context..driver_for(machine_spec.driver_url) end end |
#current_machine_options ⇒ Object
111 112 113 |
# File 'lib/chef/provider/machine.rb', line 111 def (current_driver) end |
#from_image_spec ⇒ Object
97 98 99 100 101 102 103 104 105 |
# File 'lib/chef/provider/machine.rb', line 97 def from_image_spec @from_image_spec ||= begin if new_resource.from_image ChefMetal::ChefImageSpec.get(new_resource.from_image, new_resource.chef_server) else nil end end end |
#load_current_resource ⇒ Object
141 142 143 144 145 146 147 |
# File 'lib/chef/provider/machine.rb', line 141 def load_current_resource node_driver = Chef::Provider::ChefNode.new(new_resource, run_context) node_driver.load_current_resource json = node_driver.new_json json['normal']['metal'] = node_driver.current_json['normal']['metal'] @machine_spec = ChefMetal::ChefMachineSpec.new(json, new_resource.chef_server) end |
#machine_options(driver) ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/chef/provider/machine.rb', line 115 def (driver) configs = [] if from_image_spec && from_image_spec. configs << from_image_spec. end configs << { :convergence_options => [ :chef_server, :allow_overwrite_keys, :source_key, :source_key_path, :source_key_pass_phrase, :private_key_options, :ohai_hints, :public_key_path, :public_key_format, :admin, :validator ].inject({}) do |result, key| result[key] = new_resource.send(key) result end } configs << new_resource. if new_resource. configs << driver.config[:machine_options] if driver.config[:machine_options] Cheffish::MergedConfig.new(*configs) end |
#new_driver ⇒ Object
87 88 89 |
# File 'lib/chef/provider/machine.rb', line 87 def new_driver run_context..driver_for(new_resource.driver) end |
#new_machine_options ⇒ Object
107 108 109 |
# File 'lib/chef/provider/machine.rb', line 107 def (new_driver) end |
#whyrun_supported? ⇒ Boolean
15 16 17 |
# File 'lib/chef/provider/machine.rb', line 15 def whyrun_supported? true end |