Class: OsCtld::Commands::Container::Export
- Defined in:
- lib/osctld/commands/container/export.rb
Instance Attribute Summary
Attributes inherited from Base
#client, #client_handler, #id, #opts
Instance Method Summary collapse
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
12 13 14 15 16 17 18 19 20 |
# File 'lib/osctld/commands/container/export.rb', line 12 def execute(ct) manipulate(ct) do File.open(opts[:file], 'w') do |f| export(ct, f) end ok end end |
#export(ct, io) ⇒ Object (protected)
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/osctld/commands/container/export.rb', line 24 def export(ct, io) exporter = OsCtl::Lib::Exporter::Zfs.new( ct, io, compression: opts[:compression] && opts[:compression].to_sym ) exporter.('full') exporter.dump_configs exporter.dump_user_hook_scripts(Hook::Manager.list_all_scripts(ct)) exporter.dump_rootfs do exporter.dump_base if ct.state == :running && opts[:consistent] call_cmd(Commands::Container::Stop, id: ct.id, pool: ct.pool.name) exporter.dump_incremental call_cmd( Commands::Container::Start, id: ct.id, pool: ct.pool.name, force: true ) end end exporter.close end |
#find ⇒ Object
7 8 9 10 |
# File 'lib/osctld/commands/container/export.rb', line 7 def find ct = DB::Containers.find(opts[:id], opts[:pool]) ct || error!('container not found') end |