blob: e2aba8076b55b86ea51e85ba1bfdad2be5cc12ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
require 'puppet'
# A module just to store the mount/unmount methods. Individual providers
# still need to add the mount commands manually.
module Puppet::Provider::Mount
# This only works when the mount point is synced to the fstab.
def mount
# Manually pass the mount options in, since some OSes *cough*OS X*cough* don't
# read from /etc/fstab but still want to use this type.
args = []
args << "-o" << self.options if self.options and self.options != :absent
args << resource[:name]
mountcmd(*args)
case get(:ensure)
when :absent; set(:ensure => :ghost)
when :unmounted; set(:ensure => :mounted)
end
end
def remount
info "Remounting"
if resource[:remounts] == :true
mountcmd "-o", "remount", resource[:name]
else
unmount
mount
end
end
# This only works when the mount point is synced to the fstab.
def unmount
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?
[:mounted, :ghost].include?(get(:ensure))
end
end
|