class WorkflowManager::LocalComputer
Public Instance Methods
cluster_nodes()
click to toggle source
# File lib/workflow_manager/cluster.rb, line 90 def cluster_nodes {"Local Computer" => ""} end
copy_commands(org_dir, dest_parent_dir, now=nil)
click to toggle source
# File lib/workflow_manager/cluster.rb, line 78 def copy_commands(org_dir, dest_parent_dir, now=nil) commands = [] commands << "mkdir -p #{dest_parent_dir}" commands << "cp -r #{org_dir} #{dest_parent_dir}" commands end
delete_command(target)
click to toggle source
# File lib/workflow_manager/cluster.rb, line 87 def delete_command(target) command = "rm -rf #{target}" end
job_ends?(log_file)
click to toggle source
# File lib/workflow_manager/cluster.rb, line 73 def job_ends?(log_file) command = "tail -n 20 #{log_file}|grep '__SCRIPT END__'" result = `#{command}` result.to_s.empty? ? false : true end
job_running?(pid)
click to toggle source
# File lib/workflow_manager/cluster.rb, line 58 def job_running?(pid) command = "ps aux" result = IO.popen(command) do |io| flag = false while line=io.gets x = line.split if x[1].to_i == pid.to_i flag = true break end end flag end result end
kill_command(job_id)
click to toggle source
# File lib/workflow_manager/cluster.rb, line 84 def kill_command(job_id) command = "kill #{job_id}" end
submit_job(script_file, script_content, option='')
click to toggle source
# File lib/workflow_manager/cluster.rb, line 46 def submit_job(script_file, script_content, option='') if script_name = File.basename(script_file) and script_name =~ /\.sh$/ new_job_script = generate_new_job_script(script_name, script_content) new_job_script_base = File.basename(new_job_script) log_file = File.join(@log_dir, new_job_script_base + "_o.log") err_file = File.join(@log_dir, new_job_script_base + "_e.log") command = "bash #{new_job_script} 1> #{log_file} 2> #{err_file}" pid = spawn(command) Process.detach(pid) [pid.to_s, log_file, command] end end