Class: OsCtld::Commands::Group::DeviceDel
- Includes:
- OsCtl::Lib::Utils::Log, Utils::Devices
- Defined in:
- lib/osctld/commands/group/device_delete.rb
Instance Attribute Summary
Attributes inherited from Base
#client, #client_handler, #id, #opts
Instance Method Summary collapse
Methods included from Utils::Devices
#add, #check_mode!, #chmod, #inherit, #list, #promote, #replace, #set_inherit, #unset_inherit
Methods inherited from Logged
Methods inherited from Base
#base_execute, #call_cmd, #call_cmd!, #error, #error!, handle, #handled, #indirect?, #initialize, #manipulate, #manipulation_holder, #ok, #progress, #request_stop, run, run!
Constructor Details
This class inherits a constructor from OsCtld::Commands::Base
Instance Method Details
#execute(grp) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/osctld/commands/group/device_delete.rb', line 15 def execute(grp) manipulate(grp) do dev = grp.devices.find(opts[:type].to_sym, opts[:major], opts[:minor]) error!('device not found') unless dev if dev.inherited? error!('inherited devices cannot be removed, use chmod to restrict access') elsif !opts[:recursive] && grp.devices.used_by_descendants?(dev) error!('device is used by child groups/containers, use recursive mode') end grp.devices.remove(dev) ok end end |