class RBCM::Core
Attributes
actions[R]
group_additions[RW]
groups[R]
nodes[R]
project[R]
Public Class Methods
new(project_path)
click to toggle source
# File app/rbcm.rb, line 28 def initialize project_path # initialize project @project = RBCM::Project.new project_path # create nodes @group_additions = RBCM::ArrayHash.new @nodes = {} @project.definitions(:node).each do |node_definition| @nodes[node_definition.name] ||= RBCM::Node.new( self, node_definition.name, node_definition.project_file.path ) @nodes[node_definition.name] << node_definition # apply pattern definitions to node @nodes[node_definition.name] << @project.definitions(:pattern).collect do |pattern_definition| pattern_definition if node_definition.name =~ /#{pattern_definition.name}/ end end # create groups @groups = RBCM::ArrayHash.new @project.definitions(:group).each do |group_definition| @groups[group_definition.name] << group_definition end end
Public Instance Methods
check!(&block)
click to toggle source
# File app/rbcm.rb, line 77 def check! &block Net::SSH::Multi.start do |session| session.via 'gateway', 'gateway-user' @nodes.each do |name, node| session.group name.to_sym do session.use "#{name}" end end actions.checkable.each do |action| actions.check.each do |check| session.with(action.job.node.name.to_sym).exec check &block end end session.loop end end
jobs()
click to toggle source
# File app/rbcm.rb, line 60 def jobs nodes.values.each.jobs.flatten(1) end
parse()
click to toggle source
# File app/rbcm.rb, line 64 def parse # parsing nodes nodes.values.each.parse # parsing additions nodes.values.each do |node| node.sandbox.evaluate node.additions end # parsing 'cap!' nodes.values.each do |node| node.capabilities.each{|capability| node.sandbox.send "#{capability.name}!"} end end