Class: Gaptool::RunScriptCommand

Inherits:
Clamp::Command
  • Object
show all
Defined in:
lib/gaptool_client/commands.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/gaptool_client/commands.rb', line 112

def execute
  params = exclude_hidden? ? {} : { hidden: true }
  nodes = Gaptool::API.query_nodes(params.merge(instance: instance,
                                                role: role, environment: environment))
  log_level = if debug?
                Logger::DEBUG
              elsif verbose?
                Logger::INFO
              end
  command = "echo 'done'" unless log_level
  sc = File.read(script)
  nodes = nodes.map { |x| x.merge(script: sc, file: script, verbose: log_level.nil?) }
  hook = proc do |node|
    node.handler.on_data('', :stdout, "Executing #{node[:file]}", '') if node[:verbose]
    eval(node[:script])
  end
  res = Gaptool::SSH.exec(nodes, [command],
                          pre_hooks: [hook], serial: serial?,
                          continue_on_errors: continue_on_errors?,
                          log_level: log_level, batch_size: batch_size)
  exit res
end