Class: OsCtld::ContainerControl::Commands::Runscript::Runner

Inherits:
Runner
  • Object
show all
Includes:
Utils::Runscript::Runner
Defined in:
lib/osctld/container_control/commands/runscript.rb

Constant Summary

Constants included from Utils::Runscript::Runner

Utils::Runscript::Runner::TRANSIENT_EXIT_TIMEOUT, Utils::Runscript::Runner::TRANSIENT_READY_TIMEOUT

Constants inherited from Runner

Runner::LXC_ATTACH_FLAGS

Instance Attribute Summary

Attributes inherited from Runner

#ctid, #log_file, #lxc_home, #network_socket, #pool, #stderr, #stdin, #stdout, #user_home

Instance Method Summary collapse

Methods included from Utils::Runscript::Runner

#osctld_wrapper_callback, #runscript_run, #setup_network, #stop_transient_runner, #wait_transient_ready, #with_configured_network

Methods inherited from Runner

#error, #exitstatus, #initialize, #lxc_attach_command, #lxc_attach_wait, #lxc_attach_wait_for_exit, #lxc_ct, #ok, #reap_interrupted_lxc_attach, #setup_exec_env, #setup_exec_run_env, #system_path, #wait_for_lxc_attachable, #wait_for_lxc_stopped, #wait_for_path, #wait_for_process, #wait_status_exitstatus

Constructor Details

This class inherits a constructor from OsCtld::ContainerControl::Runner

Instance Method Details

#execute(mode, opts) ⇒ Integer

Returns exit status.

Parameters:

  • mode ('running', 'run_network', 'run')
  • opts (Hash)

Options Hash (opts):

  • :script (String) —

    path to the script relative to the rootfs

  • :args (Array<String>) —

    script arguments

  • :run (Boolean) —

    run the container if it is stopped?

  • :network (Boolean) —

    setup network if the container is run?

  • :init_script (String) —

    path to the script used to control the container

  • :close_fds (Array<IO>)
  • :wait (Boolean)

Returns:

  • (Integer) —

    exit status



105
106
107
# File 'lib/osctld/container_control/commands/runscript.rb', line 105

def execute(mode, opts)
  send(:"runscript_#{mode}", opts)
end

#runscript_run_network(opts) ⇒ Object (protected)



122
123
124
125
126
# File 'lib/osctld/container_control/commands/runscript.rb', line 122

def runscript_run_network(opts)
  with_configured_network(
    init_script: opts[:init_script]
  ) { runscript_running(opts) }
end

#runscript_running(opts) ⇒ Object (protected)



111
112
113
114
115
116
117
118
119
120
# File 'lib/osctld/container_control/commands/runscript.rb', line 111

def runscript_running(opts)
  exit_status = lxc_attach_command(
    [opts[:script]] + Array(opts[:args]),
    stdin:,
    stdout:,
    stderr:
  )

  ok(exit_status)
end