Ignore:
Timestamp:
21/01/10 14:33:53 (10 years ago)
Author:
sdonegan
Message:

Updated to take configuration file location as a mandatory arguement. Example usage:../../bin/python2.5.1 oai_document_ingester.py -vd BODC individualFile=/disks/glue1/sdonegan/NDG3_workspace/buildouts/oai_document_ingester/ingestData/bodc/1048100_DIF.xml ingestConfigFile=/disks/glue1/sdonegan/NDG3_workspace/buildouts/oai_document_ingester_NDG3/ingestAutomation-upgrade/OAIBatch/oai_document_ingester.config

Location:
TI01-discovery-Ingest/trunk/v3n_NDG3/ingestAutomation-upgrade/OAIBatch
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v3n_NDG3/ingestAutomation-upgrade/OAIBatch/abstractdocumentingester.py

    r6204 r6361  
    4242                 
    4343                # check for verbose option 
    44                  
    4544                try: 
    4645                        opts, args = getopt.getopt(sys.argv[1:], "vd") 
     
    6564                # set up any keywords on the object 
    6665                # NB, be careful to keep the instance variables the same name as the keywords! (not also feed keywords also in here) 
     66                checkConfInArgs = False 
    6767                for arg in args: 
    6868                         
    69                         keywordArgs=['ingestFromDate','interval','individualFile','interval','ingestFromDate','eXistDBHostname','eXistPortNo','dataCentrePoll'] 
    70                          
    71                          
     69                        keywordArgs=['ingestFromDate','interval','individualFile','interval','ingestFromDate','eXistDBHostname','eXistPortNo','dataCentrePoll','ingestConfigFile']                                               
    7270                         
    7371                        bits = arg.split('=') 
     
    7775                                elif bits[0] == keywordArgs[1]: 
    7876                                        self.setPollInterval(bits[1]) 
     77                                elif bits[0] == keywordArgs[8]: 
     78                                        print " - Running with specified config file!" 
     79                                        self.setOaiConfigFile(bits[1]) 
     80                                        checkConfInArgs = True 
    7981                                elif bits[0] == keywordArgs[2]: 
    8082                                        print " - Running in single file ingestion mode!" 
     
    8688                                        setattr(self, bits[0], bits[1]) 
    8789                         
     90                if checkConfInArgs is False: 
     91                        print "\nWARNING: You must now include the ingestConfigFile arguement for successful operation" 
     92                        sys.exit(2) 
     93                 
    8894                print self.lineSeparator 
    8995                 
     
    104110                # add ch to logger 
    105111#               self.logger.addHandler(ch) 
     112                 
    106113                return args 
    107114 
     
    280287                #file = pkg_resources.resource_string('OAIBatch', datacentre_config_filename) 
    281288                 
     289                 
    282290                self._datacentre_config_filename = self._code_dir + 'datacentre_config/' + datacentre + "_config.properties" 
    283291                logging.info("Retrieving data from datacentre config file, " + self._datacentre_config_filename) 
     
    454462                logging.debug("Setting up connection to postgres DB") 
    455463                #self.pgc = pgc(configFile = '/usr/local/ndg-oai-info-editor/ingest.config')  
     464                 
    456465                self.pgc = pgc(configFile = self._databaseConfigurationFile) 
    457466                logging.info("Postgres DB connection now set up") 
     
    481490                ''' 
    482491                logging.info("Setting up ingest directories for data centre, '%s'" %self.dataCentre) 
     492                 
     493                 
    483494                data_dir = self._base_dir + "data/" + self.dataCentre  # dir relating to the specified dataCentre docs 
    484495                 
     
    513524                filePresentListArr = self.pgc.runSQLCommand(sqlCmd) 
    514525                filesPresentList=[] 
     526         
     527                 
    515528                if filePresentListArr: 
    516529                        for fileArr in filePresentListArr: 
     
    522535                self.updateFailList = [] 
    523536                self.deletedFailList = [] 
     537                 
    524538                 
    525539                 
  • TI01-discovery-Ingest/trunk/v3n_NDG3/ingestAutomation-upgrade/OAIBatch/feeddocumentingester.py

    r6206 r6361  
    6565                else: 
    6666                        raise ValueError(self.INTERVAL_ERROR %str(interval)) 
    67  
     67                 
     68        def setOaiConfigFile(self, configFilePath): 
     69                ''' 
     70                Set the path to the OAI configuration file - directories etc used for data & reporting etc etc 
     71                ''' 
     72                print "**********************************************************************" 
     73                if configFilePath: 
     74                        self.oaiEditorConfig = configFilePath 
     75                        logging.info("Using configuration file at: " + configFilePath) 
     76                 
    6877         
    6978        def setIngestFromDate(self, ingestFromDate): 
     
    125134                                      targetCollection=dc.DIF_COLLECTION_PATH + no.repository)                   
    126135                         
    127                         FileUtilities.createFile(difFilename, doc)                               
     136                        FileUtilities.createFile(difFilename, doc) 
     137                        print "*****************************************************************************   1"                        
    128138                        numfilesproc, processingReport = self._convertAndIngestFiles(self.originals_dir, self.discovery_dir, self.dataCentre, False)                             
    129                          
     139                        print "*****************************************************************************   2" 
    130140                        if numfilesproc != 0: 
    131141                                reportLine = " Successfully obtained " + no.localID + "from feed and ingested document into database\n" 
     
    261271                                 eXistPortNo = '8080', 
    262272                                 configFileName = 'passwords.txt',  
    263                                  dataCentrePoll = None): 
     273                                 dataCentrePoll = None, 
     274                                 oaiConfigFileName = 'oai_document_ingester.config'): 
    264275                ''' 
    265276                Set up object 
     
    304315                 
    305316                #now use config info 
     317                ''' 
    306318                self.processingDict = self.getProcessingConfig('oai_document_ingester.config') 
    307319                 
     
    314326                self._databaseConfigurationFile = self.processingDict['ingestConfig'] 
    315327                self._ndgRedirectURL = self.processingDict['NDG_redirect_URL'] 
    316                  
    317                  
     328                                 
     329                ''' 
     330                #initialise these for now. 
     331                self._code_dir = None 
     332                self._base_dir = None 
     333                 
     334                self._databaseConfigurationFile = None 
     335                self._ndgRedirectURL = None 
    318336                 
    319337        def runPoll(self, feedURL): 
     
    335353                # doing this via document retrieve xmlrpc interface 
    336354                #self.__setupFeedClient() 
     355                #set up the configuration needed for running everything else 
     356                self.processingDict = self.getProcessingConfig(self.oaiEditorConfig) 
     357                 
     358                self._code_dir = self.processingDict['code_directory'] 
     359                self._base_dir = self.processingDict['base_directory'] 
     360                 
     361                self._databaseConfigurationFile = self.processingDict['ingestConfig'] 
     362                self._ndgRedirectURL = self.processingDict['NDG_redirect_URL'] 
     363                 
    337364                self._getPostgresDBConnection() 
    338365                self.__getDBConnection(self.eXistDBHostname, self.configFileName) 
    339366                self._setupXQueries() 
     367                 
     368                 
     369                 
    340370         
    341371if __name__=="__main__": 
    342372        print "=================================" 
    343373        print "RUNNING: FeedDocumentIngester.py" 
    344         ingester = FeedDocumentIngester() 
     374        ingester = FeedDocumentIngester()        
    345375        args = ingester._setupCmdLineOptions() 
    346376        ingester.runPoll(args[0]) 
  • TI01-discovery-Ingest/trunk/v3n_NDG3/ingestAutomation-upgrade/OAIBatch/oai_document_ingester.py

    r6204 r6361  
    2525        indFileToIngest="" 
    2626 
    27         def processDataCentre(self, dataCentre, harvestDir = None, dataFormat = None): 
     27        def processDataCentre(self, dataCentre, harvestDir = None, dataFormat = None, configFileName = None): 
    2828                ''' 
    2929                indFileToIngest=None 
     
    4848                #extract relevant directories etc from processing config gile 
    4949                self.processingDict = self.getProcessingConfig('oai_document_ingester.config') 
     50                 
     51                         
    5052                #self._code_dir = "/home/badc/buildouts/oai_document_ingester/ingestAutomation-upgrade/OAIBatch/" # this is the base dir that the script is ran from 
    5153                #self._base_dir = "/home/badc/discovery_docs/ingestDocs/" 
     
    7577 
    7678                 
    77                 # check harvest dir exists and that there are any records to harvest? 
     79                # check harvest dir exists and that there are any records to harvest?            
    7880                if self.indFileToIngest == "": 
    7981                        if not os.path.exists(self._harvest_home): 
     
    9294                        #must be looking for an individual file to upload 
    9395                        if not os.path.exists(self.indFileToIngest): 
     96                                print "HHHHHHH " + self.indFileToIngest 
    9497                                logging .warn("Specified file does not exist") 
    9598                                return 
     
    150153                ''' 
    151154                self.indFileToIngest = indFileToIngest 
     155                 
     156                 
     157        def setOaiConfigFile(self, configFilePath): 
     158                ''' 
     159                Set the path to the OAI configuration file - directories etc used for data & reporting etc etc 
     160                ''' 
     161                print "**********************************************************************" 
     162                if configFilePath: 
     163                        self.oaiEditorConfig = configFilePath 
     164                        logging.info("Using configuration file at: " + configFilePath) 
     165                 
    152166 
    153167         
Note: See TracChangeset for help on using the changeset viewer.