/** * 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; import edu.isi.pegasus.planner.classes.Job; import edu.isi.pegasus.planner.common.PegasusProperties; /** * The interface that defines the creation of a POSTSCRIPT for a job. * The POSTSCRIPT created is dependant on the GridStart being used to enable * the job. * * @author Karan Vahi vahi@isi.edu * @version $Revision$ */ public interface POSTScript { /** * The version number associated with this API of GridStart. */ public static final String VERSION = "1.1"; /** * 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 ); /** * Constructs the postscript that has to be invoked on the submit host * after the job has executed on the remote end. The postscript usually * works on the output generated by the executable that is used to grid * enable a job, and has been piped back by Condor. * <p> * The postscript should be 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 boolean true if postscript was generated,else false. */ public boolean construct( Job job, String key ) ; /** * Returns a short textual description of the implementing class. * * @return short textual description. */ public String shortDescribe(); }