class Object
Constants
- DEFAULT_DUMP_FILE
- DEFAULT_LOG_FILE
- DEFAULT_LOG_GLOB
- LAB_ACTIONS
- LAB_ACTION_ORDER
Public Instance Methods
build_header(message)
click to toggle source
# File lib/commands/testlab.rb, line 226 def build_header(message) char = '#' header = "#{char * 30} #{message} #{char * 30}" content = Array.new content << (char * header.uncolor.length) content << header content << (char * header.uncolor.length) content end
build_lab_commands(component, klass, &block)
click to toggle source
# File lib/commands/support.rb, line 42 def build_lab_commands(component, klass, &block) desc %(Manage lab #{component}s) command component do |c| c.desc %(Optional #{component} ID or comma separated list of #{component} IDs) c.arg_name %(#{component}[,#{component},...]) c.flag [:n, :name] c.desc %(Force the actions verbatium, do not attempt to infer shortcuts; this has no effect for most operations) c.switch [:f, :force] LAB_ACTION_ORDER.each do |lab_action| action_desc = LAB_ACTIONS[lab_action] c.desc(action_desc.first % "#{component}s") c.long_desc(ZTK::Template.string(action_desc.last, {:component => "#{component}s"})) c.command lab_action do |la| la.action do |global_options, options, args| objects = iterate_objects_by_name(options[:name], klass) @testlab.do_parallel_actions(klass, objects, lab_action) do |object, action, klass| send_lab_action(object, options, action) end end end end !block.nil? and block.call(c) end end
iterate_objects_by_name(name, klass, &block)
click to toggle source
# File lib/commands/support.rb, line 82 def iterate_objects_by_name(name, klass, &block) objects = Array.new klass_name = klass.to_s.split('::').last.downcase objects = klass.all.select{ |o| (!o.template rescue true) } if !name.nil? names = name.split(',') not_names = names.collect { |n| ((n[0] == '!') and n[1..-1]) }.delete_if {|n| n == false }.compact names.delete_if { |n| n[0] == '!' } if names.size > 0 objects = klass.find(names).select{ |o| (!o.template rescue true) } end objects.delete_if{ |o| not_names.include?(o.id.to_s.downcase) } end (objects.nil? || (objects.count == 0)) and raise TestLab::TestLabError, "We could not find any of the #{klass_name}s you supplied!" objects.each do |object| !block.nil? and block.call(object) end objects end
osx_network(net)
click to toggle source
Route show helper method because OSX sucks
# File lib/commands/network.rb, line 76 def osx_network(net) net.network.split('.').delete_if{ |o| o == '0' }.join('.') end
send_lab_action(object, options, lab_action)
click to toggle source
# File lib/commands/support.rb, line 74 def send_lab_action(object, options, lab_action) if %w( build recycle ).map(&:to_sym).include?(lab_action) object.send(lab_action, options[:force]) else object.send(lab_action) end end