Class: OsCtld::Commands::Container::RecoverCleanup
- Includes:
- OsCtl::Lib::Utils::Log, OsCtl::Lib::Utils::System
- Defined in:
- lib/osctld/commands/container/recover_cleanup.rb
Instance Attribute Summary
Attributes inherited from Base
#client, #client_handler, #id, #opts
Instance Method Summary collapse
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 ⇒ Object
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 |
# File 'lib/osctld/commands/container/recover_cleanup.rb', line 11 def execute ct = DB::Containers.find(opts[:id], opts[:pool]) return error('container not found') unless ct manipulate(ct) do if ct.state != :stopped && !opts[:force] error!('the container has to be stopped') end recovery = Container::Recovery.new(ct) if opts[:cleanup] == 'all' || opts[:cleanup].include?('cgroups') recovery.cleanup_cgroups end if opts[:cleanup] == 'all' || opts[:cleanup].include?('netifs') progress('Searching for stray network interfaces') recovery.cleanup_netifs do |veth, routes| progress( "#{veth}: " + routes.map { |v| v.addr.to_string }.join(' ') ) end end ok end end |