def run(self, verbose=0, single_recipe=0, single_ingred=0): """Run the MAST monitor. """ if (single_ingred == 0) and ("dagman" in dirutil.get_mast_platform()): return None #Do not auto-run from __init__ method for CHTC/DAGMan curdir = os.getcwd() try: os.chdir(self.scratch) except: os.chdir(curdir) errorstr = "Could not change directories to MAST_SCRATCH at %s" % self.scratch raise MASTError(self.__class__.__name__, errorstr) #dirutil.lock_directory(self.scratch, 1) # Wait 5 seconds #Directory is now locked by mast initially, but gets #unlocked at the end of the mastmon run. if single_ingred == 0: recipe_dirs = dirutil.walkdirs(self.scratch,1,1) else: recipe_dirs = list() recipe_dirs.append(single_recipe) if verbose == 1: self.logger.info("================================") self.logger.info("Recipe directories:") for recipe_dir in recipe_dirs: self.logger.info(recipe_dir) self.logger.info("================================") for recipe_dir in recipe_dirs: self.check_recipe_dir(recipe_dir, verbose, single_ingred) dirutil.unlock_directory(self.scratch) #unlock directory os.chdir(curdir)
def run(self, verbose=0, single_recipe=0, single_ingred=0): """Run the MAST monitor. """ if (single_ingred == 0) and ("dagman" in dirutil.get_mast_platform()): return None #Do not auto-run from __init__ method for CHTC/DAGMan curdir = os.getcwd() try: os.chdir(self.scratch) except: os.chdir(curdir) errorstr = "Could not change directories to MAST_SCRATCH at %s" % self.scratch raise MASTError(self.__class__.__name__, errorstr) #dirutil.lock_directory(self.scratch, 1) # Wait 5 seconds #Directory is now locked by mast initially, but gets #unlocked at the end of the mastmon run. if single_ingred == 0: recipe_dirs = dirutil.walkdirs(self.scratch, 1, 1) else: recipe_dirs = list() recipe_dirs.append(single_recipe) if verbose == 1: self.logger.info("================================") self.logger.info("Recipe directories:") for recipe_dir in recipe_dirs: self.logger.info(recipe_dir) self.logger.info("================================") for recipe_dir in recipe_dirs: self.check_recipe_dir(recipe_dir, verbose, single_ingred) dirutil.unlock_directory(self.scratch) #unlock directory os.chdir(curdir)
def run(self, mode='serial', curdir=os.getcwd()): if "dagman" in dirutil.get_mast_platform(): return from MAST.submit import queue_commands if mode.lower() == 'noqsub': curdir = os.getcwd() os.chdir(self.keywords['name']) programpath = queue_commands.direct_shell_command() p = subprocess.Popen(programpath, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p.wait() os.chdir(curdir) self.metafile.write_data('run', time.asctime()) elif mode.lower() == 'serial': queuesub = queue_commands.write_to_submit_list(self.keywords['name']) #runme = subprocess.Popen(queuesub, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) #runme.wait() # for scheduling other jobs #runme.wait() self.metafile.write_data('queued', time.asctime()) return
def run(self, mode='serial', curdir=os.getcwd()): if "dagman" in dirutil.get_mast_platform(): return from MAST.submit import queue_commands if mode.lower() == 'noqsub': curdir = os.getcwd() os.chdir(self.keywords['name']) programpath = queue_commands.direct_shell_command() p = subprocess.Popen(programpath, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p.wait() os.chdir(curdir) self.metafile.write_data('run', time.asctime()) elif mode.lower() == 'serial': queuesub = queue_commands.write_to_submit_list( self.keywords['name']) #runme = subprocess.Popen(queuesub, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) #runme.wait() # for scheduling other jobs #runme.wait() self.metafile.write_data('queued', time.asctime()) return
import os import sys import math #TA to calc num_nodes import time import importlib import subprocess import shutil import logging from MAST.utility.mastfile import MASTFile from MAST.utility import MASTError from MAST.utility import dirutil from MAST.utility import loggerutils mast_control = dirutil.get_mast_control_path() myqc = "MAST.submit.platforms.%s.queue_commands" % dirutil.get_mast_platform() my_queue_commands = importlib.import_module(myqc) def direct_shell_command(scriptname="submit.sh"): myds = my_queue_commands.direct_shell_command() return "%s %s" % (myds, scriptname) def queue_submission_command(scriptname="submit.sh"): myqs = my_queue_commands.queue_submission_command() return "%s %s" % (myqs, scriptname) def write_to_submit_list(mydir): """Write an entry to the submission list in $MAST_CONTROL/submitlist Args: mydir <str>: Directory which includes submission
# Last updated: 2014-04-25 ############################################################## # Purpose: Modify and get information out of submission scripts. # 11/9/12 created import os import sys import math #TA to calc num_nodes import importlib from MAST.utility.mastfile import MASTFile from MAST.utility import MASTError from MAST.utility import dirutil mast_control = dirutil.get_mast_control_path() mast_install = dirutil.get_mast_install_path() mast_platform = dirutil.get_mast_platform() #mysc = "submit.platforms.script_commands_%s" % mast_platform #my_script_commands = importlib.import_module(mysc) """ Script commands """ def write_submit_script(keywords): """This script example is built on the following ingredient keywords, and may require significant customization. mast_processors mast_ppn mast_queue mast_nodes
# Last updated: 2014-04-25 ############################################################## # Purpose: Modify and get information out of submission scripts. # 11/9/12 created import os import sys import math #TA to calc num_nodes import importlib from MAST.utility.mastfile import MASTFile from MAST.utility import MASTError from MAST.utility import dirutil mast_control = dirutil.get_mast_control_path() mast_install = dirutil.get_mast_install_path() mast_platform = dirutil.get_mast_platform() #mysc = "submit.platforms.script_commands_%s" % mast_platform #my_script_commands = importlib.import_module(mysc) """ Script commands """ def write_submit_script(keywords): """This script example is built on the following ingredient keywords, and may require significant customization. mast_processors mast_ppn
import os import sys import math #TA to calc num_nodes import time import importlib import subprocess import shutil import logging from MAST.utility.mastfile import MASTFile from MAST.utility import MASTError from MAST.utility import dirutil from MAST.utility import loggerutils mast_control = dirutil.get_mast_control_path() myqc = "MAST.submit.platforms.%s.queue_commands" % dirutil.get_mast_platform() my_queue_commands = importlib.import_module(myqc) def direct_shell_command(scriptname="submit.sh"): myds = my_queue_commands.direct_shell_command() return "%s %s" % (myds, scriptname) def queue_submission_command(scriptname="submit.sh"): myqs = my_queue_commands.queue_submission_command() return "%s %s" % (myqs, scriptname) def write_to_submit_list(mydir): """Write an entry to the submission list in