Class: Aruba::Processes::BasicProcess

Inherits:
Object
  • Object
show all
Defined in:
lib/aruba/processes/basic_process.rb

Overview

Basic Process

‘BasicProcess` is not meant for direct use - `BasicProcess.new` - by users.

Direct Known Subclasses

DebugProcess, InProcess, SpawnProcess

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cmd, exit_timeout, io_wait_timeout, working_directory, environment = Aruba.platform.environment_variables.hash_from_env, main_class = nil, stop_signal = nil, startup_wait_time = 0) ⇒ BasicProcess

rubocop:disable Metrics/ParameterLists



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/aruba/processes/basic_process.rb', line 19

def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
               environment = Aruba.platform.environment_variables.hash_from_env,
               main_class = nil, stop_signal = nil, startup_wait_time = 0)
  @cmd               = cmd
  @working_directory = working_directory
  @environment       = environment
  @main_class        = main_class
  @exit_status       = nil
  @stop_signal       = stop_signal
  @startup_wait_time = startup_wait_time

  @exit_timeout    = exit_timeout
  @io_wait_timeout = io_wait_timeout

  @started         = false
  @timed_out       = false
end

Instance Attribute Details

#environmentObject (readonly)

Returns the value of attribute environment.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def environment
  @environment
end

#exit_statusObject (readonly)

Returns the value of attribute exit_status.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def exit_status
  @exit_status
end

#exit_timeoutObject (readonly)

Returns the value of attribute exit_timeout.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def exit_timeout
  @exit_timeout
end

#io_wait_timeoutObject (readonly)

Returns the value of attribute io_wait_timeout.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def io_wait_timeout
  @io_wait_timeout
end

#main_classObject (readonly)

Returns the value of attribute main_class.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def main_class
  @main_class
end

#startup_wait_timeObject (readonly)

Returns the value of attribute startup_wait_time.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def startup_wait_time
  @startup_wait_time
end

#stop_signalObject (readonly)

Returns the value of attribute stop_signal.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def stop_signal
  @stop_signal
end

#working_directoryObject (readonly)

Returns the value of attribute working_directory.



16
17
18
# File 'lib/aruba/processes/basic_process.rb', line 16

def working_directory
  @working_directory
end

Instance Method Details

#after_runObject

Hook which is run after command is run



113
# File 'lib/aruba/processes/basic_process.rb', line 113

def after_run; end

#argumentsObject



129
130
131
132
133
# File 'lib/aruba/processes/basic_process.rb', line 129

def arguments
  return Shellwords.split(commandline)[1..] if Shellwords.split(commandline).size > 1

  []
end

#before_runObject

Hook which is run before command is run



110
# File 'lib/aruba/processes/basic_process.rb', line 110

def before_run; end

#close_ioObject

Raises:

  • (NotImplementedError)


68
69
70
# File 'lib/aruba/processes/basic_process.rb', line 68

def close_io(*)
  raise NotImplementedError
end

#commandObject



125
126
127
# File 'lib/aruba/processes/basic_process.rb', line 125

def command
  Shellwords.split(commandline).first
end

#commandlineObject

Return command line



38
39
40
# File 'lib/aruba/processes/basic_process.rb', line 38

def commandline
  @cmd
end

#contentObject

Raises:

  • (NotImplementedError)


80
81
82
# File 'lib/aruba/processes/basic_process.rb', line 80

def content
  raise NotImplementedError
end

#empty?Boolean

Returns:

  • (Boolean)


135
136
137
# File 'lib/aruba/processes/basic_process.rb', line 135

def empty?
  false
end

#filesystem_statusObject

Raises:

  • (NotImplementedError)


76
77
78
# File 'lib/aruba/processes/basic_process.rb', line 76

def filesystem_status
  raise NotImplementedError
end

#inspectObject Also known as: to_s



115
116
117
118
119
120
121
# File 'lib/aruba/processes/basic_process.rb', line 115

def inspect
  out = truncate(stdout(wait_for_io: 0).inspect, 35)
  err = truncate(stderr(wait_for_io: 0).inspect, 35)

  fmt = '#<%s:%s commandline="%s": stdout=%s stderr=%s>'
  format fmt, self.class, object_id, commandline, out, err
end

#output(opts = {}) ⇒ Object

Output stderr and stdout



48
49
50
# File 'lib/aruba/processes/basic_process.rb', line 48

def output(opts = {})
  stdout(opts) + stderr(opts)
end

#pidObject

Output pid of process

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/aruba/processes/basic_process.rb', line 43

def pid
  raise NotImplementedError
end

#restartObject

Restart a command



89
90
91
92
# File 'lib/aruba/processes/basic_process.rb', line 89

def restart
  stop
  start
end

#send_signalObject

Raises:

  • (NotImplementedError)


72
73
74
# File 'lib/aruba/processes/basic_process.rb', line 72

def send_signal(*)
  raise NotImplementedError
end

#started?Boolean

Was process already started

Returns:

  • (Boolean)


100
101
102
# File 'lib/aruba/processes/basic_process.rb', line 100

def started?
  @started == true
end

#stderrObject

Raises:

  • (NotImplementedError)


64
65
66
# File 'lib/aruba/processes/basic_process.rb', line 64

def stderr(*)
  raise NotImplementedError
end

#stdinObject

Raises:

  • (NotImplementedError)


56
57
58
# File 'lib/aruba/processes/basic_process.rb', line 56

def stdin(*)
  raise NotImplementedError
end

#stdoutObject

Raises:

  • (NotImplementedError)


60
61
62
# File 'lib/aruba/processes/basic_process.rb', line 60

def stdout(*)
  raise NotImplementedError
end

#stopped?Boolean

Was process already stopped

Returns:

  • (Boolean)


95
96
97
# File 'lib/aruba/processes/basic_process.rb', line 95

def stopped?
  @started == false
end

#timed_out?Boolean

Does the process failed to stop in time

Returns:

  • (Boolean)


105
106
107
# File 'lib/aruba/processes/basic_process.rb', line 105

def timed_out?
  @timed_out == true
end

#waitObject

Raises:

  • (NotImplementedError)


84
85
86
# File 'lib/aruba/processes/basic_process.rb', line 84

def wait
  raise NotImplementedError
end

#writeObject

Raises:

  • (NotImplementedError)


52
53
54
# File 'lib/aruba/processes/basic_process.rb', line 52

def write(*)
  raise NotImplementedError
end