Class: OsCtld::Commands::Container::DeviceDelete
- Includes:
- OsCtl::Lib::Utils::Log, Utils::Devices
- Defined in:
- lib/osctld/commands/container/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(ct) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/osctld/commands/container/device_delete.rb', line 15 def execute(ct) manipulate(ct) do dev = ct.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') end ct.devices.remove(dev) ok end end |
#find ⇒ Object
10 11 12 13 |
# File 'lib/osctld/commands/container/device_delete.rb', line 10 def find ct = DB::Containers.find(opts[:id], opts[:pool]) ct || error!('container not found') end |