[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 2.6.5-303-gfcfa26a

Stefan Schulte stefan.schulte at taunusstein.net
Thu Mar 17 10:46:07 UTC 2011


The following commit has been merged in the upstream branch:
commit fd111f26f17b3dbdd0de310d0a4b43877eef7e14
Author: Stefan Schulte <stefan.schulte at taunusstein.net>
Date:   Sun Jan 23 13:10:17 2011 +0100

    (#4914) Query property_hash for mountstate
    
    Change mounted? to query the property_hash so we don't have to run the
    mountcommand for every specified mount but rely on the prefetched state
    
    Also update the prefetched property_hash[:ensure] after mount or umount.
    This is important if we query mounted? later (most obvious when refresh
    is called. We dont want to remount a resource that was umounted before)

diff --git a/lib/puppet/provider/mount.rb b/lib/puppet/provider/mount.rb
index 8c7b24b..65296ee 100644
--- a/lib/puppet/provider/mount.rb
+++ b/lib/puppet/provider/mount.rb
@@ -14,8 +14,11 @@ module Puppet::Provider::Mount
     args << "-o" << self.options if self.options and self.options != :absent
     args << resource[:name]
 
-    flush if respond_to?(:flush)
     mountcmd(*args)
+    case get(:ensure)
+    when :absent; set(:ensure => :ghost)
+    when :unmounted; set(:ensure => :mounted)
+    end
   end
 
   def remount
@@ -30,22 +33,17 @@ module Puppet::Provider::Mount
 
   # This only works when the mount point is synced to the fstab.
   def unmount
-    umount resource[:name]
+    umount(resource[:name])
+
+    # Update property hash for future queries (e.g. refresh is called)
+    case get(:ensure)
+    when :mounted; set(:ensure => :unmounted)
+    when :ghost; set(:ensure => :absent)
+    end
   end
 
   # Is the mount currently mounted?
   def mounted?
-    platform = Facter.value("operatingsystem")
-    name = resource[:name]
-    mounts = mountcmd.split("\n").find do |line|
-      case platform
-      when "Darwin"
-        line =~ / on #{name} / or line =~ %r{ on /private/var/automount#{name}}
-      when "Solaris", "HP-UX"
-        line =~ /^#{name} on /
-      else
-        line =~ / on #{name} /
-      end
-    end
+    [:mounted, :ghost].include?(get(:ensure))
   end
 end

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list