Class: Chef::Provider::MachineImage
- Inherits:
-
LWRPBase
- Object
- LWRPBase
- Chef::Provider::MachineImage
- Defined in:
- lib/chef/provider/machine_image.rb
Instance Method Summary collapse
- #action_handler ⇒ Object
- #chef_managed_entry_store ⇒ Object
- #create_image(image_spec, machine_options) ⇒ Object
- #load_current_resource ⇒ Object
-
#new_driver ⇒ Object
Get the driver specified in the resource.
- #new_image_options ⇒ Object
- #new_machine_options ⇒ Object
Instance Method Details
#action_handler ⇒ Object
10 11 12 |
# File 'lib/chef/provider/machine_image.rb', line 10 def action_handler @action_handler ||= Chef::Provisioning::ChefProviderActionHandler.new(self) end |
#chef_managed_entry_store ⇒ Object
22 23 24 |
# File 'lib/chef/provider/machine_image.rb', line 22 def chef_managed_entry_store @chef_managed_entry_store ||= Provisioning.chef_managed_entry_store(new_resource.chef_server) end |
#create_image(image_spec, machine_options) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/chef/provider/machine_image.rb', line 55 def create_image(image_spec, ) # 1. Create the exemplar machine machine_provider = Chef::Provider::Machine.new(new_resource, run_context) machine_provider.action_handler = action_handler machine_provider.load_current_resource machine_provider.action_converge # 2. Create the image = begin new_driver.allocate_image(action_handler, image_spec, , machine_provider.machine_spec, ) rescue ArgumentError # Backcompat kludge - remove in later version. Chef::Log.warn("Driver #{new_driver.driver_url} does not accept machine_options. This will be deprecated before Provisioning 1.0.") machine_provider.machine_spec.instance_eval { @machine_options = } new_driver.allocate_image(action_handler, image_spec, , machine_provider.machine_spec) end image_spec.driver_url ||= new_driver.driver_url image_spec.from_image ||= new_resource.from_image if new_resource.from_image image_spec.run_list ||= machine_provider.machine_spec.node['run_list'] # 3. Save the linkage from name -> image id image_spec.save(action_handler) # 4. Wait for image to be ready new_driver.ready_image(action_handler, image_spec, ) machine_provider.action_destroy end |
#load_current_resource ⇒ Object
14 15 |
# File 'lib/chef/provider/machine_image.rb', line 14 def load_current_resource end |
#new_driver ⇒ Object
Get the driver specified in the resource
18 19 20 |
# File 'lib/chef/provider/machine_image.rb', line 18 def new_driver @new_driver ||= run_context.chef_provisioning.driver_for(new_resource.driver) end |
#new_image_options ⇒ Object
87 88 89 |
# File 'lib/chef/provider/machine_image.rb', line 87 def @new_image_options ||= (new_resource. || {}).to_hash.dup end |
#new_machine_options ⇒ Object
91 92 93 |
# File 'lib/chef/provider/machine_image.rb', line 91 def @new_machine_options ||= (new_resource. || {}).to_hash.dup end |