Sha256: 6890fad2d62fe3da5d7d8307204cd5e9cc8d2f080425c193e92dba2c8e0e0767

Contents?: true

Size: 1.36 KB

Versions: 9

Compression:

Stored size: 1.36 KB

Contents

require 'chef/provider/lwrp_base'
require 'openssl'
require 'chef/provisioning/chef_provider_action_handler'
require 'chef/provisioning/chef_managed_entry_store'

class Chef
class Provider
class ScalewayVolume < Chef::Provider::LWRPBase
  provides :scaleway_volume

  def action_handler
    @action_handler ||= Chef::Provisioning::ChefProviderActionHandler.new(self)
  end

  def load_current_resource
  end

  def whyrun_supported?
    true
  end

  def volume_spec
    @volume_spec ||= chef_managed_entry_store.get_or_new(:volume, new_resource.name)
  end

  # Get the driver specified in the resource
  def new_driver
    @new_driver ||= run_context.chef_provisioning.driver_for(new_resource.driver)
  end

  def chef_managed_entry_store
    @chef_managed_entry_store ||= Provisioning.chef_managed_entry_store(new_resource.chef_server)
  end


  action :create do
    unless volume_spec.reference && new_driver.volume_for(volume_spec)
      new_driver.create_volume(action_handler, volume_spec,
                               new_resource.volume_options)
    end
    new_resource.id = volume_spec.reference['id']
  end

  action :destroy do
    if volume_spec.reference && volume_spec.reference['id']
      new_driver.destroy_volume(action_handler, volume_spec,
                                new_resource.volume_options)
      volume_spec.delete(action_handler)
    end
  end
end
end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
chef-provisioning-fog-0.26.1 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.26.0 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.25.1 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.25.0 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.24.1 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.24.0 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.23.0 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.22.0 lib/chef/provider/scaleway_volume.rb
chef-provisioning-fog-0.21.0 lib/chef/provider/scaleway_volume.rb