module Puppet::Provider::Mount

A module just to store the mount/unmount methods. Individual providers still need to add the mount commands manually.

Public Instance Methods

mount() click to toggle source

This only works when the mount point is synced to the fstab.

# File lib/puppet/provider/mount.rb, line 7
def mount
  args = []

  # In general we do not have to pass mountoptions because we always
  # flush /etc/fstab before attempting to mount. But old code suggests
  # that MacOS always needs the mount options to be explicitly passed to
  # the mount command
  if Facter.value(:kernel) == 'Darwin'
    args << "-o" << self.options if self.options and self.options != :absent
  end
  args << resource[:name]

  mountcmd(*args)
  case get(:ensure)
  when :absent; set(:ensure => :ghost)
  when :unmounted; set(:ensure => :mounted)
  end
end
mounted?() click to toggle source

Is the mount currently mounted?

# File lib/puppet/provider/mount.rb, line 55
def mounted?
  [:mounted, :ghost].include?(get(:ensure))
end
remount() click to toggle source
# File lib/puppet/provider/mount.rb, line 26
def remount
  info "Remounting"
  if resource[:remounts] == :true
    mountcmd "-o", "remount", resource[:name]
  elsif ["FreeBSD", "DragonFly", "OpenBSD"].include?(Facter.value(:operatingsystem))
    if self.options && !self.options.empty?
      options = self.options + ",update"
    else
      options = "update"
    end
    mountcmd "-o", options, resource[:name]
  else
    unmount
    mount
  end
end
unmount() click to toggle source

This only works when the mount point is synced to the fstab.

# File lib/puppet/provider/mount.rb, line 44
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