/** * Copyright 2007-2008 University Of Southern California * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package edu.isi.pegasus.planner.code.gridstart; import edu.isi.pegasus.common.logging.LogManagerFactory; import edu.isi.pegasus.planner.classes.Job; import edu.isi.pegasus.planner.common.PegasusProperties; import edu.isi.pegasus.common.logging.LogManager; import edu.isi.pegasus.planner.namespace.Dagman; import edu.isi.pegasus.planner.code.POSTScript; import java.io.File; /** * This class refers to having no postscript associated with the job. * In addition, it removes from the job postscript specific arguments, * and other profiles. * * The postscript is only constructed if the job already contains the * Dagman profile key passed. * * @author Karan Vahi vahi@isi.edu * @version $Revision$ */ public class NoPOSTScript implements POSTScript { /** * The SHORTNAME for this implementation. */ public static final String SHORT_NAME = "none"; /** * The LogManager object which is used to log all the messages. */ protected LogManager mLogger; /** * The object holding all the properties pertaining to Pegasus. */ protected PegasusProperties mProps; /** * The default constructor. */ public NoPOSTScript(){ //mLogger = LogManager.getInstance(); } /** * Initialize the POSTScript implementation. * * @param properties the <code>PegasusProperties</code> object containing all * the properties required by Pegasus. * @param path the path to the POSTScript on the submit host. * @param submitDir the submit directory where the submit file for the job * has to be generated. * @param globalLog a global log file to use for logging */ public void initialize( PegasusProperties properties, String path, String submitDir , String globalLog ){ mProps = properties; mLogger = LogManagerFactory.loadSingletonInstance( properties ); } /** * Returns a short textual description of the implementing class. * * @return short textual description. */ public String shortDescribe(){ return this.SHORT_NAME; } /** * Constructs the postscript that has to be invoked on the submit host * after the job has executed on the remote end. The postscript works on the * stdout of the remote job, that has been transferred back to the submit * host by Condor. * <p> * The postscript is constructed and populated as a profile * in the DAGMAN namespace. * * * @param job the <code>Job</code> object containing the job description * of the job that has to be enabled on the grid. * @param key the <code>DAGMan</code> profile key that has to be inserted. * * @return false as postscript is never created for the job. */ public boolean construct(Job job, String key) { //mode is none , make sure to remove post key and the arguments //Karan Nov 15,2005 VDS BUG FIX 128 //Always remove POST_SCRIPT_ARGUMENTS job.dagmanVariables.removeKey( key ); job.dagmanVariables.removeKey( Dagman.POST_SCRIPT_ARGUMENTS_KEY ); return false; } }