
Untitled
By:
fatmcgav on
Nov 13th, 2012 | syntax:
Ruby | size: 1.88 KB | hits: 56 | expires: Never
-- Provider
require 'puppet/provider/netapp'
Puppet::Type.type(:netapp_volume_options).provide(:netapp_volume_options, :parent => Puppet::Provider::Netapp) do
@doc = "Manage Netapp Volume option modification and deletion for existing volumes."
confine :feature => :posix
defaultfor :feature => :posix
def create
Puppet.debug("Puppet::Provider::netapp_volume_options: setting Netapp Volume options against volume #{@resource[:name]}.")
Puppet.debug("Puppet::Provider::netapp_volume_options: Options: #{@resource[:options]}")
options = @resource[:options]
options.each do |option|
Puppet.debug("Puppet::Provider::netapp_volume_options: Option: #{option}")
value = split(option, '=')
value.each do |val|
Puppet.debug("Puppet::Provider::netapp_volume_options: Val = #{val}")
end
end
def destroy
Puppet.debug("Puppet::Provider::netapp_volume_options: destroying Netapp Volume #{@resource[:name]}")
end
def exists?
Puppet.debug("Puppet::Provider::netapp_volume_options: checking value of Netapp Volume option on Volume #{@resource[:name]}")
return false
end
end
-- Type
Puppet::Type.newtype(:netapp_volume_options) do
@doc = "Manage Netapp Volume Option modification."
apply_to_device
ensurable do
desc "Netapp Volume resource state. Valid values are: present, absent."
defaultto(:present)
newvalue(:present) do
provider.create
end
newvalue(:absent) do
provider.destroy
end
end
newparam(:name) do
desc "The volume name to set options against."
isnamevar
end
newparam(:options, :array_matching => :all) do
desc "Array of options to be applied to this volume."
end
end
-- Node config
netapp_volume_options { 'v_puppet_test12111508':
options => ['x=a', 'y=b']
}