Sha256: e86714af55ba82caea66c1d801a715989607da3f239a4f0ec8be6862bf58800e

Contents?: true

Size: 1.03 KB

Versions: 19

Compression:

Stored size: 1.03 KB

Contents

Puppet::Type.type(:zfs).provide(:solaris) do
  desc "Provider for Solaris zfs."

  commands :zfs => "/usr/sbin/zfs"
  defaultfor :operatingsystem => :solaris

  def add_properties
    properties = []
    Puppet::Type.type(:zfs).validproperties.each do |property|
      next if property == :ensure
      if value = @resource[property] and value != ""
        properties << "-o" << "#{property}=#{value}"
      end
    end
    properties
  end

  def create
    zfs *([:create] + add_properties + [@resource[:name]])
  end

  def destroy
    zfs(:destroy, @resource[:name])
  end

  def exists?
    if zfs(:list).split("\n").detect { |line| line.split("\s")[0] == @resource[:name] }
      true
    else
      false
    end
  end

  [:mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir].each do |field|
    define_method(field) do
      zfs(:get, "-H", "-o", "value", field, @resource[:name]).strip
    end

    define_method(field.to_s + "=") do |should|
      zfs(:set, "#{field}=#{should}", @resource[:name])
    end
  end

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
puppet-2.6.18 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.17 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.16 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.15 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.14 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.13 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.12 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.11 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.10 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.9 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.8 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.7 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.6 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.5 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.4 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.3 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.2 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.1 lib/puppet/provider/zfs/solaris.rb
puppet-2.6.0 lib/puppet/provider/zfs/solaris.rb