Class: EY::Serverside::Callbacks::Executor::Ruby::Context
- Inherits:
-
Object
- Object
- EY::Serverside::Callbacks::Executor::Ruby::Context
show all
- Includes:
- Shell::Helpers
- Defined in:
- lib/engineyard-serverside/callbacks/executor/ruby/context.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
#debug, #info, #logged_system, #verbose?, #warning
Constructor Details
#initialize(config, shell, hook) ⇒ Context
Returns a new instance of Context.
14
15
16
17
18
19
20
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 14
def initialize(config, shell, hook)
@configuration = config
@configuration.set_framework_envs
@shell = shell
@node = config.node
@hook = hook
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &blk) ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 30
def method_missing(meth, *args, &blk)
if config.respond_to?(meth)
shell.warning "Use of `#{meth}` (via method_missing) is deprecated in favor of `config.#{meth}` for improved error messages and compatibility.\n\tin #{hook.path}"
config.send(meth, *args, &blk)
else
super
end
end
|
Instance Attribute Details
#configuration ⇒ Object
Returns the value of attribute configuration.
12
13
14
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 12
def configuration
@configuration
end
|
#hook ⇒ Object
Returns the value of attribute hook.
12
13
14
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 12
def hook
@hook
end
|
#shell ⇒ Object
Returns the value of attribute shell.
12
13
14
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 12
def shell
@shell
end
|
Instance Method Details
#config ⇒ Object
22
23
24
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 22
def config
@configuration
end
|
#inspect ⇒ Object
26
27
28
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 26
def inspect
"#<Callbacks::Executor::Ruby::Context #{hook.path.inspect}>"
end
|
#on_app_master(&blk) ⇒ Object
convenience functions for running on certain instance types
60
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 60
def on_app_master(&blk) on_roles(%w[solo app_master], &blk) end
|
#on_app_servers(&blk) ⇒ Object
61
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 61
def on_app_servers(&blk) on_roles(%w[solo app_master app], &blk) end
|
#on_app_servers_and_utilities(&blk) ⇒ Object
62
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 62
def on_app_servers_and_utilities(&blk) on_roles(%w[solo app_master app util], &blk) end
|
#on_utilities(*names, &blk) ⇒ Object
64
65
66
67
68
69
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 64
def on_utilities(*names, &blk)
names.flatten!
on_roles(%w[util]) do
blk.call if names.empty? || names.include?(config.current_name)
end
end
|
#respond_to?(*a) ⇒ Boolean
39
40
41
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 39
def respond_to?(*a)
config.respond_to?(*a) || super
end
|
#run(cmd) ⇒ Object
43
44
45
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 43
def run(cmd)
shell.logged_system(Escape.shell_command(["sh", "-l", "-c", cmd])).success?
end
|
#run!(cmd) ⇒ Object
47
48
49
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 47
def run!(cmd)
run(cmd) or raise("run!: Command failed. #{cmd}")
end
|
#sudo(cmd) ⇒ Object
51
52
53
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 51
def sudo(cmd)
shell.logged_system(Escape.shell_command(["sudo", "sh", "-l", "-c", cmd])).success?
end
|
#sudo!(cmd) ⇒ Object
55
56
57
|
# File 'lib/engineyard-serverside/callbacks/executor/ruby/context.rb', line 55
def sudo!(cmd)
sudo(cmd) or raise("sudo!: Command failed. #{cmd}")
end
|