Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
 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
Exemple #4
0
 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
Exemple #5
0
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
Exemple #6
0
# 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
Exemple #7
0
# 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
Exemple #8
0
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