Class: Chef::Provider::Mount
- Inherits:
-
Chef::Provider
- Object
- Chef::Provider
- Chef::Provider::Mount
- Includes:
- Mixin::Command
- Defined in:
- lib/chef/provider/mount.rb,
lib/chef/provider/mount/aix.rb,
lib/chef/provider/mount/mount.rb,
lib/chef/provider/mount/solaris.rb,
lib/chef/provider/mount/windows.rb
Defined Under Namespace
Classes: Aix, Mount, Solaris, Windows
Constant Summary
Constants included from Mixin::ShellOut
Mixin::ShellOut::DEPRECATED_OPTIONS
Instance Attribute Summary collapse
-
#unmount_retries ⇒ Object
Returns the value of attribute unmount_retries.
Attributes inherited from Chef::Provider
#action, #cookbook_name, #current_resource, #new_resource, #recipe_name, #run_context
Instance Method Summary collapse
- #action_disable ⇒ Object
- #action_enable ⇒ Object
- #action_mount ⇒ Object
- #action_remount ⇒ Object
- #action_umount ⇒ Object
-
#disable_fs ⇒ Object
should implement disabling of the filesystem (e.g. in /etc/fstab), raises if action does not succeed.
-
#enable_fs ⇒ Object
should implement enabling of the filesystem (e.g. in /etc/fstab), raises if action does not succeed.
-
#initialize(new_resource, run_context) ⇒ Mount
constructor
A new instance of Mount.
- #load_current_resource ⇒ Object
-
#mount_fs ⇒ Object
should implement mounting of the filesystem, raises if action does not succeed.
-
#mount_options_unchanged? ⇒ Boolean
should check new_resource against current_resource to see if mount options need updating, returns true/false.
-
#mounted? ⇒ Boolean
should actually check if the filesystem is mounted (not just return current_resource) and return true/false.
-
#remount_fs ⇒ Object
should implement remounting of the filesystem (via a -o remount or some other atomic-ish action that isn’t simply a umount/mount style remount), raises if action does not succeed.
-
#umount_fs ⇒ Object
should implement unmounting of the filesystem, raises if action does not succeed.
- #whyrun_supported? ⇒ Boolean
Methods included from Mixin::Command
#chdir_or_tmpdir, #handle_command_failures, #output_of_command, #run_command, #run_command_and_return_stdout_stderr, #run_command_with_systems_locale
Methods included from Mixin::Command::Windows
Methods included from Mixin::Command::Unix
Methods inherited from Chef::Provider
#action_nothing, #cleanup_after_converge, #converge_by, #define_resource_requirements, #events, #node, node_map, #process_resource_requirements, provides, provides?, #requirements, #resource_collection, #resource_updated?, #run_action, #set_updated_status, supports?, #whyrun_mode?
Methods included from Mixin::DescendantsTracker
#descendants, descendants, direct_descendants, #direct_descendants, find_descendants_by_name, #find_descendants_by_name, #inherited, store_inherited
Methods included from Mixin::ShellOut
#run_command_compatible_options, #shell_out, #shell_out!, #shell_out_with_systems_locale, #shell_out_with_systems_locale!
Constructor Details
#initialize(new_resource, run_context) ⇒ Mount
Returns a new instance of Mount.
40 41 42 43 |
# File 'lib/chef/provider/mount.rb', line 40 def initialize(new_resource, run_context) super self.unmount_retries = 20 end |
Instance Attribute Details
#unmount_retries ⇒ Object
Returns the value of attribute unmount_retries.
30 31 32 |
# File 'lib/chef/provider/mount.rb', line 30 def unmount_retries @unmount_retries end |
Instance Method Details
#action_disable ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/chef/provider/mount.rb', line 101 def action_disable if current_resource.enabled converge_by("disable #{current_resource.device}") do disable_fs Chef::Log.info("#{new_resource} disabled") end else Chef::Log.debug("#{new_resource} already disabled") end end |
#action_enable ⇒ Object
90 91 92 93 94 95 96 97 98 99 |
# File 'lib/chef/provider/mount.rb', line 90 def action_enable unless current_resource.enabled && converge_by("enable #{current_resource.device}") do enable_fs Chef::Log.info("#{new_resource} enabled") end else Chef::Log.debug("#{new_resource} already enabled") end end |
#action_mount ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/chef/provider/mount.rb', line 45 def action_mount unless current_resource.mounted converge_by("mount #{current_resource.device} to #{current_resource.mount_point}") do mount_fs Chef::Log.info("#{new_resource} mounted") end else Chef::Log.debug("#{new_resource} is already mounted") end end |
#action_remount ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/chef/provider/mount.rb', line 67 def action_remount if current_resource.mounted if new_resource.supports[:remount] converge_by("remount #{current_resource.device}") do remount_fs Chef::Log.info("#{new_resource} remounted") end else converge_by("unmount #{current_resource.device}") do umount_fs Chef::Log.info("#{new_resource} unmounted") end wait_until_unmounted(unmount_retries) converge_by("mount #{current_resource.device}") do mount_fs Chef::Log.info("#{new_resource} mounted") end end else Chef::Log.debug("#{new_resource} not mounted, nothing to remount") end end |
#action_umount ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/chef/provider/mount.rb', line 56 def action_umount if current_resource.mounted converge_by("unmount #{current_resource.device}") do umount_fs Chef::Log.info("#{new_resource} unmounted") end else Chef::Log.debug("#{new_resource} is already unmounted") end end |
#disable_fs ⇒ Object
should implement disabling of the filesystem (e.g. in /etc/fstab), raises if action does not succeed
154 155 156 |
# File 'lib/chef/provider/mount.rb', line 154 def disable_fs raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :disable" end |
#enable_fs ⇒ Object
should implement enabling of the filesystem (e.g. in /etc/fstab), raises if action does not succeed
149 150 151 |
# File 'lib/chef/provider/mount.rb', line 149 def enable_fs raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :enable" end |
#load_current_resource ⇒ Object
36 37 38 |
# File 'lib/chef/provider/mount.rb', line 36 def load_current_resource true end |
#mount_fs ⇒ Object
should implement mounting of the filesystem, raises if action does not succeed
133 134 135 |
# File 'lib/chef/provider/mount.rb', line 133 def mount_fs raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :mount" end |
#mount_options_unchanged? ⇒ Boolean
should check new_resource against current_resource to see if mount options need updating, returns true/false
122 123 124 |
# File 'lib/chef/provider/mount.rb', line 122 def raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not implement #mount_options_unchanged?" end |
#mounted? ⇒ Boolean
should actually check if the filesystem is mounted (not just return current_resource) and return true/false
117 118 119 |
# File 'lib/chef/provider/mount.rb', line 117 def mounted? raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not implement #mounted?" end |
#remount_fs ⇒ Object
should implement remounting of the filesystem (via a -o remount or some other atomic-ish action that isn’t simply a umount/mount style remount), raises if action does not succeed
144 145 146 |
# File 'lib/chef/provider/mount.rb', line 144 def remount_fs raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :remount" end |
#umount_fs ⇒ Object
should implement unmounting of the filesystem, raises if action does not succeed
138 139 140 |
# File 'lib/chef/provider/mount.rb', line 138 def umount_fs raise Chef::Exceptions::UnsupportedAction, "#{self.to_s} does not support :umount" end |
#whyrun_supported? ⇒ Boolean
32 33 34 |
# File 'lib/chef/provider/mount.rb', line 32 def whyrun_supported? true end |