class DeisInteractive::Rails::Exec
Attributes
cmd[R]
params[R]
Public Class Methods
new(app, cmd, params)
click to toggle source
Calls superclass method
DeisInteractive::Rails::Base::new
# File lib/deis-interactive/rails/exec.rb, line 11 def initialize(app, cmd, params) super(app, ENV['DEIS_CONSOLE_PROCESS'] || "web") @cmd = cmd @params = params end
Public Instance Methods
args()
click to toggle source
# File lib/deis-interactive/rails/exec.rb, line 17 def args result = [cmd] if params result += params end result end
bash()
click to toggle source
# File lib/deis-interactive/rails/exec.rb, line 46 def bash Shellwords.escape(". /app/.profile.d/ruby.sh && PATH=/app/.heroku/node/bin:$PATH && #{escaped_args}") end
escaped_args()
click to toggle source
# File lib/deis-interactive/rails/exec.rb, line 25 def escaped_args args.map do |arg| Shellwords.escape(arg) end.join(" ") end
perform()
click to toggle source
# File lib/deis-interactive/rails/exec.rb, line 31 def perform puts "Execute #{args} on #{pod_id}" exec "kubectl exec -it --namespace #{app} #{pod_id} -- bash -c #{bash}" end
pod_id()
click to toggle source
# File lib/deis-interactive/rails/exec.rb, line 36 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