class BashManager

Public Class Methods

available?(options) click to toggle source
# File lib/autoflow/queue_managers/bash_manager.rb, line 44
def self.available?(options)
        return true
end
new(exec_folder, options, commands, persist_variables) click to toggle source
Calls superclass method QueueManager::new
# File lib/autoflow/queue_managers/bash_manager.rb, line 4
def initialize(exec_folder, options, commands, persist_variables)
        super
        @queued = []
        @count = 0
        @pids = {}
        @path2execution_script = File.join(@exec_folder, 'execution.sh') 
        create_file('execution.sh', @exec_folder)
        write_file('execution.sh', '#! /usr/bin/env bash')
end
priority() click to toggle source
# File lib/autoflow/queue_managers/bash_manager.rb, line 48
def self.priority
        return 0 
end

Public Instance Methods

get_queue_system_id(shell_output) click to toggle source
# File lib/autoflow/queue_managers/bash_manager.rb, line 40
def get_queue_system_id(shell_output)
        return nil
end
launch_all_jobs() click to toggle source
Calls superclass method QueueManager#launch_all_jobs
# File lib/autoflow/queue_managers/bash_manager.rb, line 14
def launch_all_jobs
        super
        close_file('execution.sh', 0755)
        system_call("#{@path2execution_script} > #{File.join(File.dirname(@path2execution_script),'output')} & ", @exec_folder)
end
submit_job(job, ar_dependencies) click to toggle source
# File lib/autoflow/queue_managers/bash_manager.rb, line 24
def submit_job(job, ar_dependencies)
        write_file('execution.sh','')
        if !ar_dependencies.empty? 
                ar_dependencies.each do |dep|
                        cmd = "wait \"$pid#{@pids[dep]}\"\nif [ $? -ne 0 ]\nthen \n\techo \"#{job.name} failed\"\n\texit\nfi"
                        write_file('execution.sh', cmd) 
                end
        end
        write_file('execution.sh', "cd #{job.attrib[:exec_folder]}")
        write_file('execution.sh', "./#{job.name}.sh &> task_log & pid#{@count}=$!")
        @pids[job.name] = @count
        @count += 1
        @queued << job.name # For dependencies purposes
        return nil
end
write_header(id, node, sh) click to toggle source
# File lib/autoflow/queue_managers/bash_manager.rb, line 20
def write_header(id, node, sh)
        #@queued << id # For dependencies purposes
end