class Inprovise::ExecutionContext
Attributes
config[R]
node[R]
script[RW]
Public Class Methods
new(node, log, index, config=nil)
click to toggle source
# File lib/inprovise/execution_context.rb, line 101 def initialize(node, log, index, config=nil) @node = node @log = log @node.log_to(@log) @config = Inprovise::Config.new(config || @node.config) @index = index @script = nil end
Public Instance Methods
as(user, &blk)
click to toggle source
# File lib/inprovise/execution_context.rb, line 118 def as(user, &blk) for_user(user).exec(blk) end
binary_exists?(binary)
click to toggle source
# File lib/inprovise/execution_context.rb, line 235 def binary_exists?(binary) @node.binary_exists?(binary) end
copy(from, to)
click to toggle source
# File lib/inprovise/execution_context.rb, line 186 def copy(from, to) @node.copy(from, to) end
download(from, to)
click to toggle source
# File lib/inprovise/execution_context.rb, line 174 def download(from, to) @node.download(from, to) end
env(var)
click to toggle source
# File lib/inprovise/execution_context.rb, line 161 def env(var) @node.env(var) end
exec(blk, *args)
click to toggle source
# File lib/inprovise/execution_context.rb, line 114 def exec(blk, *args) DSL.new(self).instance_exec(*args, &blk) end
exec_config(blk)
click to toggle source
# File lib/inprovise/execution_context.rb, line 110 def exec_config(blk) ConfigDSL.new(self).instance_eval(&blk) end
for_user(user)
click to toggle source
# File lib/inprovise/execution_context.rb, line 133 def for_user(user) return self if user.nil? || user == node.user new_node = @node.for_user(user) new_log = @log.clone_for_node(new_node) self.dup.setup_for_node!(new_node, new_log) end
in_dir(path, &blk)
click to toggle source
# File lib/inprovise/execution_context.rb, line 122 def in_dir(path, &blk) rc = nil old_cwd = @node.helper.set_cwd(path) begin rc = exec(blk) ensure @node.helper.set_cwd(old_cwd) end rc end
local(path)
click to toggle source
# File lib/inprovise/execution_context.rb, line 194 def local(path) Inprovise::LocalFile.new(self, path) end
log(msg=nil, color=nil)
click to toggle source
# File lib/inprovise/execution_context.rb, line 165 def log(msg=nil, color=nil) @log.log(msg, color) if msg @log end
mkdir(path)
click to toggle source
# File lib/inprovise/execution_context.rb, line 178 def mkdir(path) @node.mkdir(path) end
move(from, to)
click to toggle source
# File lib/inprovise/execution_context.rb, line 190 def move(from, to) @node.move(from, to) end
remote(path)
click to toggle source
# File lib/inprovise/execution_context.rb, line 198 def remote(path) Inprovise::RemoteFile.new(self, path) end
remove(path)
click to toggle source
# File lib/inprovise/execution_context.rb, line 182 def remove(path) @node.delete(path) end
resolve_action_ref(action_ref)
click to toggle source
# File lib/inprovise/execution_context.rb, line 214 def resolve_action_ref(action_ref) action_name, scr_name = *action_ref.split(':', 2).reverse scr = scr_name ? @index.get(scr_name) : nil [scr, action_name] end
run(cmd, opts={})
click to toggle source
# File lib/inprovise/execution_context.rb, line 153 def run(cmd, opts={}) @node.run(cmd, opts) end
run_local(cmd)
click to toggle source
# File lib/inprovise/execution_context.rb, line 146 def run_local(cmd) @log.local(cmd) stdout, stderr, status = Open3.capture3(cmd) @log.stdout(stdout) @log.stderr(stderr) end
set_owner(path, user, group=nil)
click to toggle source
# File lib/inprovise/execution_context.rb, line 206 def set_owner(path, user, group=nil) @node.set_owner(path, user, group) end
set_permissions(path, mask)
click to toggle source
# File lib/inprovise/execution_context.rb, line 202 def set_permissions(path, mask) @node.set_permissions(path, mask) end
setup_for_node!(node, log)
click to toggle source
# File lib/inprovise/execution_context.rb, line 140 def setup_for_node!(node, log) @node = node @log = log self end
sudo(cmd, opts={})
click to toggle source
# File lib/inprovise/execution_context.rb, line 157 def sudo(cmd, opts={}) @node.sudo(cmd, opts) end
template(path)
click to toggle source
# File lib/inprovise/execution_context.rb, line 210 def template(path) Inprovise::Template.new(path, self) end
trigger(scr, action_name, *args)
click to toggle source
# File lib/inprovise/execution_context.rb, line 220 def trigger(scr, action_name, *args) scr ||= @script action = scr ? scr.actions[action_name] : nil raise Inprovise::MissingActionError.new("#{scr ? scr.name+':' : ''}#{action_name}") unless action curtask = @node.log.set_task("#{scr.name}:#{action_name}") curscript = @script @script = scr begin exec(action, *args) ensure @script = curscript @node.log.set_task(curtask) end end
upload(from, to)
click to toggle source
# File lib/inprovise/execution_context.rb, line 170 def upload(from, to) @node.upload(from, to) end