The instance method now behaves like the prefetch method: After parsing
/etc/(v)fstab run mount to update the ensure state from either
:unmounted to :mounted and from :absent to :ghost

Signed-off-by: Stefan Schulte <[email protected]>
---
Local-branch: ticket/2.7.x/7300
 lib/puppet/provider/mount/parsed.rb |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/lib/puppet/provider/mount/parsed.rb 
b/lib/puppet/provider/mount/parsed.rb
index 11c5e21..13613a9 100755
--- a/lib/puppet/provider/mount/parsed.rb
+++ b/lib/puppet/provider/mount/parsed.rb
@@ -47,6 +47,24 @@ Puppet::Type.type(:mount).provide(
     end
   end
 
+  def self.instances
+    providers = super
+    mounts = mountinstances.dup
+
+    # Update fstab entries that are mounted
+    providers.each do |prov|
+      if mounts.delete({:name => prov.get(:name), :mounted => :yes}) then
+        prov.set(:ensure => :mounted)
+      end
+    end
+
+    # Add mounts that are not in fstab but mounted
+    mounts.each do |mount|
+      providers << new(:ensure => :ghost, :name => mount[:name])
+    end
+    providers
+  end
+
   def self.prefetch(resources = nil)
     # Get providers for all resources the user defined and that match
     # a record in /etc/fstab.
-- 
1.7.5.rc3

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to