Class: OsCtld::ContainerControl::Commands::Exec::Frontend
- Includes:
- Utils::Runscript::Frontend
- Defined in:
- lib/osctld/container_control/commands/exec.rb
Constant Summary
Constants included from Utils::Runscript::Frontend
Utils::Runscript::Frontend::TRANSIENT_CLEANUP_TIMEOUT
Constants inherited from Frontend
Instance Attribute Summary
Attributes inherited from Frontend
Instance Method Summary collapse
-
#execute(opts) ⇒ Integer
Exit status.
Methods included from Utils::Runscript::Frontend
#add_network_opts, #cleanup_init_script, #init_script, #runscript_mode, #sync_state_after_transient_run, #unlink_file
Methods inherited from Frontend
#cleanup_runner_cgroup, #exec_runner, #fork_runner, #initialize, #reap_failed_runner, #runner_result, #write_runner_failure
Constructor Details
This class inherits a constructor from OsCtld::ContainerControl::Frontend
Instance Method Details
#execute(opts) ⇒ Integer
Returns exit status.
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 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/osctld/container_control/commands/exec.rb', line 26 def execute(opts) runner_opts = { cmd: opts[:cmd] } mode = runscript_mode(run: opts[:run], network: opts[:network]) if opts[:network] add_network_opts(runner_opts) end if %i[run run_network].include?(mode) ct.ensure_run_conf # Remove any left-over temporary mounts ct.mounts.prune # Pre-start distconfig hook DistConfig.run(ct.run_conf, :pre_start) end ret = exec_runner( args: [mode, runner_opts], stdin: opts[:stdin], stdout: opts[:stdout], stderr: opts[:stderr], switch_extra_namespaces: mode != :running, transient_network: mode == :run_network, reset_subtree_control: mode != :running ) ret.ok? ? ret.data : ret ensure begin sync_state_after_transient_run(mode) if mode ensure cleanup_init_script end end |