Class: DeisInteractive::Rails::Exec
- Inherits:
-
Base
- Object
- Base
- DeisInteractive::Rails::Exec
show all
- Defined in:
- lib/deis-interactive/rails/exec.rb
Instance Attribute Summary collapse
Attributes inherited from Base
#app, #process
Instance Method Summary
collapse
Methods inherited from Base
#pod_ids, #processes_pattern
Constructor Details
#initialize(app, cmd, params) ⇒ Exec
Returns a new instance of Exec.
10
11
12
13
14
|
# File 'lib/deis-interactive/rails/exec.rb', line 10
def initialize(app, cmd, params)
super(app, ENV['DEIS_CONSOLE_PROCESS'] || "web")
@cmd = cmd
@params = params
end
|
Instance Attribute Details
#cmd ⇒ Object
Returns the value of attribute cmd.
7
8
9
|
# File 'lib/deis-interactive/rails/exec.rb', line 7
def cmd
@cmd
end
|
#params ⇒ Object
Returns the value of attribute params.
8
9
10
|
# File 'lib/deis-interactive/rails/exec.rb', line 8
def params
@params
end
|
Instance Method Details
#args ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/deis-interactive/rails/exec.rb', line 16
def args
result = [cmd]
if params
result += params
end
result
end
|
#escaped_args ⇒ Object
24
25
26
27
28
|
# File 'lib/deis-interactive/rails/exec.rb', line 24
def escaped_args
args.map do |arg|
Shellwords.escape(arg)
end.join(" ")
end
|
30
31
32
33
|
# File 'lib/deis-interactive/rails/exec.rb', line 30
def perform
puts "Execute #{args} on #{pod_id}"
exec "kubectl exec -it --namespace #{app} #{pod_id} -- bash -c #{escaped_args}"
end
|
#pod_id ⇒ Object
35
36
37
38
39
40
41
42
43
|
# File 'lib/deis-interactive/rails/exec.rb', line 35
def pod_id
@pod_id ||= (
sample_pod_id = pod_ids.sample
if (sample_pod_id.nil?)
raise "Error. No pod of #{process} is found. kubectl won't be able to attach to run a console session"
end
sample_pod_id
)
end
|