summaryrefslogtreecommitdiff
path: root/rubyfy.rb
diff options
context:
space:
mode:
authorPaul Buetow (uranus) <paul@buetow.org>2015-10-18 11:27:18 +0100
committerPaul Buetow (uranus) <paul@buetow.org>2015-10-18 11:27:18 +0100
commit3b105ce6d00260229eefdadfc94db94bddc9eb99 (patch)
tree34c4269ce927e87f01380404c55ab36a97f7f990 /rubyfy.rb
parent5c5739d9e669dfcecd9a4d8eada7ace356d3f6be (diff)
add precondition file check
Diffstat (limited to 'rubyfy.rb')
-rwxr-xr-xrubyfy.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/rubyfy.rb b/rubyfy.rb
index 129368b..939cd84 100755
--- a/rubyfy.rb
+++ b/rubyfy.rb
@@ -59,11 +59,12 @@ class Rubyfy
work_q = Queue.new
servers.each do |server|
job = {
- :SERVER => server,
:COMMAND => @conf["command"],
+ :PRECONDITION => @conf["precondition"],
:ROOT => @conf["root"],
- :USER => @conf["user"],
+ :SERVER => server,
:STATUS => :NONE,
+ :USER => @conf["user"],
}
jobs << job
work_q.push(job)
@@ -99,7 +100,7 @@ class Rubyfy
private
- def run_command(server, command="uptime", root=false, user=ENV["USER"])
+ def run_command(server, command="id", root=false, user=ENV["USER"])
log(:VERBOSE,"#{server}::Connecting")
sudo = root ? "sudo " : ""
Net::SSH.start(server, user) do |session|
@@ -113,13 +114,19 @@ private
def run_job(job)
server = job[:SERVER]
command = job[:COMMAND]
- root = job[:ROOT]
- user = job[:USER]
+ pcond = job[:PRECONDITION]
+
+ # Exit the job if pcond file exists on the server
+ if pcond
+ add = "test -f #{pcond} && echo Precondition #{pcond} exists && exit 1"
+ command = "#{add}; #{command}"
+ end
+
log(:VERBOSE, "#{server}::Running job #{job}")
if File.exists?("#{server}.ignore")
log(:INFO, "#{server}::Ignoring this server")
else
- run_command server, command, root, user
+ run_command server, command, job[:ROOT], job[:USER]
end
job[:STATUS] = :OK
end