def write_sub_file(self):
    """
    Write a submit file for this Condor job.
    """
    if not self.__log_file:
      raise CondorSubmitError, "Log file not specified."
    if not self.__err_file:
      raise CondorSubmitError, "Error file not specified."
    if not self.__out_file:
      raise CondorSubmitError, "Output file not specified."

    if not self.__sub_file_path:
      raise CondorSubmitError, 'No path for submit file.'
    try:
      subfile = open(self.__sub_file_path, 'w')
    except:
      raise CondorSubmitError, "Cannot open file " + self.__sub_file_path

    if self.__universe == 'grid':
      if self.__grid_type == None:
        raise CondorSubmitError, 'No grid type specified.'
      elif self.__grid_type == 'gt2':
        if self.__grid_server == None:
          raise CondorSubmitError, 'No server specified for grid resource.'
      elif self.__grid_type == 'gt4':
        if self.__grid_server == None:
          raise CondorSubmitError, 'No server specified for grid resource.'
        if self.__grid_scheduler == None:
          raise CondorSubmitError, 'No scheduler specified for grid resource.'
      else:
        raise CondorSubmitError, 'Unsupported grid resource.'

    subfile.write( 'universe = ' + self.__universe + '\n' )
    subfile.write( 'executable = ' + self.__executable + '\n' )

    if self.__universe == 'grid':
      if self.__grid_type == 'gt2':
        subfile.write('grid_resource = %s %s\n' % (self.__grid_type,
          self.__grid_server))
      if self.__grid_type == 'gt4':
        subfile.write('grid_resource = %s %s %s\n' % (self.__grid_type,
          self.__grid_server, self.__grid_scheduler))

    if self.__universe == 'grid':
      subfile.write('when_to_transfer_output = ON_EXIT\n')
      subfile.write('transfer_output_files = $(macrooutput)\n')
      subfile.write('transfer_input_files = $(macroinput)\n')

    if self.__options.keys() or self.__short_options.keys() or self.__arguments:
      subfile.write( 'arguments = "' )
      for c in self.__options.keys():
        if self.__options[c]:
          subfile.write( ' --' + c + ' ' + self.__options[c] )
        else:
          subfile.write( ' --' + c )
      for c in self.__short_options.keys():
        if self.__short_options[c]:
          subfile.write( ' -' + c + ' ' + self.__short_options[c] )
        else:
          subfile.write( ' -' + c )
      for c in self.__arguments:
        subfile.write( ' ' + c )
      subfile.write( ' "\n' )

    for cmd in self.__condor_cmds.keys():
      subfile.write( str(cmd) + " = " + str(self.__condor_cmds[cmd]) + '\n' )

    subfile.write( 'log = ' + self.__log_file + '\n' )
    if self.__in_file is not None:
      subfile.write( 'input = ' + self.__in_file + '\n' )
    subfile.write( 'error = ' + self.__err_file + '\n' )
    subfile.write( 'output = ' + self.__out_file + '\n' )
    if self.__notification:
      subfile.write( 'notification = ' + self.__notification + '\n' )
    subfile.write( 'queue ' + str(self.__queue) + '\n' )

    subfile.close()
def write_sub_file ( self ) : if not self . __log_file : raise CondorSubmitError , "Log file not specified." if not self . __err_file : raise CondorSubmitError , "Error file not specified." if not self . __out_file : raise CondorSubmitError , "Output file not specified." if not self . __sub_file_path : raise CondorSubmitError , 'No path for submit file.' try : subfile = open ( self . __sub_file_path , 'w' ) except : raise CondorSubmitError , "Cannot open file " + self . __sub_file_path if self . __universe == 'grid' : if self . __grid_type == None : raise CondorSubmitError , 'No grid type specified.' elif self . __grid_type == 'gt2' : if self . __grid_server == None : raise CondorSubmitError , 'No server specified for grid resource.' elif self . __grid_type == 'gt4' : if self . __grid_server == None : raise CondorSubmitError , 'No server specified for grid resource.' if self . __grid_scheduler == None : raise CondorSubmitError , 'No scheduler specified for grid resource.' else : raise CondorSubmitError , 'Unsupported grid resource.' subfile . write ( 'universe = ' + self . __universe + '\n' ) subfile . write ( 'executable = ' + self . __executable + '\n' ) if self . __universe == 'grid' : if self . __grid_type == 'gt2' : subfile . write ( 'grid_resource = %s %s\n' % ( self . __grid_type , self . __grid_server ) ) if self . __grid_type == 'gt4' : subfile . write ( 'grid_resource = %s %s %s\n' % ( self . __grid_type , self . __grid_server , self . __grid_scheduler ) ) if self . __universe == 'grid' : subfile . write ( 'when_to_transfer_output = ON_EXIT\n' ) subfile . write ( 'transfer_output_files = $(macrooutput)\n' ) subfile . write ( 'transfer_input_files = $(macroinput)\n' ) if self . __options . keys ( ) or self . __short_options . keys ( ) or self . __arguments : subfile . write ( 'arguments = "' ) for c in self . __options . keys ( ) : if self . __options [ c ] : subfile . write ( ' --' + c + ' ' + self . __options [ c ] ) else : subfile . write ( ' --' + c ) for c in self . __short_options . keys ( ) : if self . __short_options [ c ] : subfile . write ( ' -' + c + ' ' + self . __short_options [ c ] ) else : subfile . write ( ' -' + c ) for c in self . __arguments : subfile . write ( ' ' + c ) subfile . write ( ' "\n' ) for cmd in self . __condor_cmds . keys ( ) : subfile . write ( str ( cmd ) + " = " + str ( self . __condor_cmds [ cmd ] ) + '\n' ) subfile . write ( 'log = ' + self . __log_file + '\n' ) if self . __in_file is not None : subfile . write ( 'input = ' + self . __in_file + '\n' ) subfile . write ( 'error = ' + self . __err_file + '\n' ) subfile . write ( 'output = ' + self . __out_file + '\n' ) if self . __notification : subfile . write ( 'notification = ' + self . __notification + '\n' ) subfile . write ( 'queue ' + str ( self . __queue ) + '\n' ) subfile . close ( )
Write a submit file for this Condor job.