Changeset 4187


Ignore:
Timestamp:
09/09/08 16:09:10 (11 years ago)
Author:
cbyrom
Message:

Move module level constants to become class level constants; NB, the former
seem to only be visible to other modules in the same package.

Location:
exist/trunk/python/ndgUtils
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • exist/trunk/python/ndgUtils/ndgObject.py

    r4183 r4187  
    11import ndgRetrieve, xmlHandler2, logging 
    2  
    3 # The various different document types: 
    4 MOLES_DOC_TYPE = 'NDG-B0' 
    5 DIF_DOC_TYPE = 'DIF' 
    6 DC_DOC_TYPE = 'DC' 
    7 ISO_DOC_TYPE = 'ISO19139' 
    8 NDGB1_DOC_TYPE = 'NDG-B1' 
    9 NDGB0_DOC_TYPE = 'NDG-B0' 
    10 MDIP_DOC_TYPE = 'MDIP' 
    11 NDGA0_DOC_TYPE = 'NDG-A0' 
    12 NUMSIM_DOC_TYPE = 'NumSim' 
    13 ATOM_DOC_TYPE = 'ATOM' 
    14 ATOM_BACKUP_DOC_TYPE = 'ATOM-BACKUP' 
    15      
    16 # Group the doc types according to the source they should be retrieved from 
    17 DISCOVERY_SCHEMES = ['DIF','DC','MDIP','ISO19139', 'ISO'] 
    18 BROWSE_SCHEMES = ['NDG-B0','NDG-B1','NumSim', 'ATOM', 'ATOM-BACKUP'] 
    192 
    203class ndgObject: 
     
    247                (2) a printable xml representation ''' 
    258     
     9    # The various different document types: 
     10    MOLES_DOC_TYPE = 'NDG-B0' 
     11    DIF_DOC_TYPE = 'DIF' 
     12    DC_DOC_TYPE = 'DC' 
     13    ISO_DOC_TYPE = 'ISO19139' 
     14    NDGB1_DOC_TYPE = 'NDG-B1' 
     15    NDGB0_DOC_TYPE = 'NDG-B0' 
     16    MDIP_DOC_TYPE = 'MDIP' 
     17    NDGA0_DOC_TYPE = 'NDG-A0' 
     18    NUMSIM_DOC_TYPE = 'NumSim' 
     19    ATOM_DOC_TYPE = 'ATOM' 
     20    ATOM_BACKUP_DOC_TYPE = 'ATOM-BACKUP' 
     21         
     22    # Group the doc types according to the source they should be retrieved from 
     23    DISCOVERY_SCHEMES = [DIF_DOC_TYPE, DC_DOC_TYPE, \ 
     24                         MDIP_DOC_TYPE, ISO_DOC_TYPE, 'ISO'] 
     25    BROWSE_SCHEMES = [MOLES_DOC_TYPE, NDGB1_DOC_TYPE, \ 
     26                      NUMSIM_DOC_TYPE, ATOM_DOC_TYPE, \ 
     27                      ATOM_BACKUP_DOC_TYPE] 
     28 
    2629    def __init__(self,uri,config=None): 
    2730        ''' Parse the uri and prepare for obtaining the actual content''' 
     
    115118             
    116119        # If this record is itself a discovery record, then we don't have much more to do 
    117         if self.schema in DISCOVERY_SCHEMES: 
     120        if self.schema in self.DISCOVERY_SCHEMES: 
    118121            self.xmlURL=self.__buildURL( 
    119122                discoveryBASE.replace('/view/','/retrieve/'),[qs,('format','raw')]) 
     
    121124            self.URL=self.discoveryURL 
    122125            if servicehost!='unknown':self.gettable=1 
    123         elif self.schema in BROWSE_SCHEMES: 
     126        elif self.schema in self.BROWSE_SCHEMES: 
    124127            # One day we'll use a service binding to get this 
    125128            # This is a mapping from the ndg repository id to an actual repository id 
     
    143146        if self.schema!='NumSim' and self.gettable<>-1: 
    144147            self.BURL=discoveryBASE.replace(self.schema,'NDG-B1') 
    145             self.BURL=self.BURL.replace(server,servicehost) 
     148            if server: 
     149                self.BURL=self.BURL.replace(server,servicehost) 
    146150            logging.debug("Set up stub-B url: '%s'" %self.BURL) 
    147151 
  • exist/trunk/python/ndgUtils/ndgRetrieve.py

    r4167 r4187  
    1717 
    1818 
    19 def ndgRetrieve(uri,config,logger=0,output='',remote=0,discovery=1): 
     19def ndgRetrieve(uri, config, output='',remote=0, discovery=1): 
    2020     
    2121    ''' Given an uri (an instance of ndgObject), retrieve it, with security in place. 
    22             If logger is non-zero it should be a python log class 
    2322            If output is not '' it should be desired output schema! 
    2423            If remote is non zero, then attempt to get the document 
     
    4241        if discovery: 
    4342            logging.debug("Using Discovery service") 
    44             if uri.schema in no.DISCOVERY_SCHEMES: 
     43            if uri.schema in no.ndgObject.DISCOVERY_SCHEMES: 
    4544                ws=ndgSearch() 
    4645            else: 
     
    4847                    option in ndgRetrieve' %uri.schema) 
    4948        else: 
     49            logging.debug("Using Browse service") 
    5050            try: 
    5151                r=config.get('NDG_B_SERVICE',uri.repository) 
     
    6262                    try: 
    6363                        ps=config.get('DEFAULT','proxyServer') 
    64                         logging.debug("Retrieving data from remote proxy server, '%s'" %ps) 
    65                         ws = DocumentRetrieve.ndgHTTP(r,proxyServer=ps) 
    6664                    except: 
    6765                        raise NDGRetrieveError('Config file not available \ 
    68                             or has no [proxyServer]') 
     66                            or has no [proxyServer] setting') 
     67                logging.debug("Retrieving data from remote proxy server, '%s'" %ps) 
     68                ws = DocumentRetrieve.ndgHTTP(r,proxyServer=ps) 
    6969            else: 
    7070                try: 
     71                    logging.info("Lookup up repository:-%s-" %uri.repository) 
    7172                    er=config.get('NDG_EXIST',uri.repository) 
    7273                    pwf=config.get('NDG_EXIST','passwordFile') 
    73                     ws=DocumentRetrieve.DocumentRetrieve(er,pwfile=pwf) 
    7474                except: 
    7575                    raise NDGRetrieveError('Config file not available or has \ 
    76                         no Exist repository') 
     76                        no [NDG_EXIST] setting') 
     77 
     78                logging.debug("Retrieving data from repository, '%s'" %er) 
     79                ws=DocumentRetrieve.DocumentRetrieve(er,pwfile=pwf) 
    7780        return 1,ws 
    7881     
     
    8184    if not status: return status,ws 
    8285            
    83     if uri.schema==no.NDGA0_DOC_TYPE: 
     86    if uri.schema==no.ndgObject.NDGA0_DOC_TYPE: 
    8487        target = NDGA0_COLLECTION 
    85     elif uri.schema == no.NUMSIM_DOC_TYPE: 
     88    elif uri.schema == no.ndgObject.NUMSIM_DOC_TYPE: 
    8689        target = NUMSIM_COLLECTION 
    87     elif uri.schema == no.ATOM_DOC_TYPE: 
     90    elif uri.schema == no.ndgObject.ATOM_DOC_TYPE: 
    8891        target = ATOM_COLLECTION  
    89     elif uri.schema == no.ATOM_BACKUP_DOC_TYPE: 
     92    elif uri.schema == no.ndgObject.ATOM_BACKUP_DOC_TYPE: 
    9093        target = ATOM_BACKUP_COLLECTION  
    9194    else: 
     
    98101        r=ws.get(uri.repository,uri.schema,uri.localID,targetCollection=target) 
    99102        time2=time.time()-time1 
    100         logString='Document retrieve [%s] took [%s]'%(uri,time2) 
     103        logging.info('Document retrieve [%s] took [%s]'%(uri,time2)) 
    101104    except Exception,e: 
    102105        e=str(e) 
    103106        r=e 
    104         logString='Document retrieve [%s] failed [%s]'%(uri,e) 
     107        logging.error('Document retrieve [%s] failed [%s]'%(uri,e)) 
    105108     
    106     if logger: logger.info(logString) 
    107109 
    108110    # did we get a sensible answer? 
  • exist/trunk/python/ndgUtils/ndgSearch.py

    r4175 r4187  
    3434# 
    3535 
    36 default_HostAndPort="http://glue.badc.rl.ac.uk:8080/axis2/services/DiscoveryService" 
     36default_HostAndPort="http://localhost:8080/axis2/services/DiscoveryService" 
    3737 
    3838class ndgSearch: 
  • exist/trunk/python/ndgUtils/test_DocumentRetrieve.py

    r4167 r4187  
    4949                                       proxyServer="http://wwwcache3.rl.ac.uk:8080/") 
    5050        doc = dr.get(tc.VALID_PROVIDER_ID, \ 
    51                      no.MOLES_DOC_TYPE, tc.VALID_MOLES_DOC_ID) 
     51                     no.ndgObject.MOLES_DOC_TYPE, tc.VALID_MOLES_DOC_ID) 
    5252        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
    5353         
    5454    def testGetDIF(self): 
    5555        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    56         doc = dr.get(tc.VALID_PROVIDER_ID, no.DIF_DOC_TYPE, \ 
     56        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.DIF_DOC_TYPE, \ 
    5757                     tc.VALID_MOLES_DOC_ID, targetCollection = nr.MOLES_COLLECTION) 
    5858        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
     
    6161        # TODO: switch back on once the MDIP tranform has been fixed 
    6262        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    63         doc = dr.get(tc.VALID_PROVIDER_ID, no.MDIP_DOC_TYPE, \ 
     63        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.MDIP_DOC_TYPE, \ 
    6464                     tc.VALID_MOLES_DOC_ID, targetCollection = nr.MOLES_COLLECTION) 
    6565        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
     
    6767    def testGetISO(self): 
    6868        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    69         doc = dr.get(tc.VALID_PROVIDER_ID, no.ISO_DOC_TYPE, \ 
     69        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.ISO_DOC_TYPE, \ 
    7070                     tc.VALID_MOLES_DOC_ID, targetCollection = nr.MOLES_COLLECTION) 
    7171        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
     
    7373    def testGetISO(self): 
    7474        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    75         doc = dr.get(tc.VALID_PROVIDER_ID, no.ISO_DOC_TYPE, \ 
     75        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.ISO_DOC_TYPE, \ 
    7676                     tc.VALID_MOLES_DOC_ID, targetCollection = nr.MOLES_COLLECTION) 
    7777        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
     
    7979    def testGetDC(self): 
    8080        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    81         doc = dr.get(tc.VALID_PROVIDER_ID, no.DC_DOC_TYPE, \ 
     81        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.DC_DOC_TYPE, \ 
    8282                     tc.VALID_MOLES_DOC_ID, targetCollection = nr.MOLES_COLLECTION) 
    8383        self.assertNotEquals(doc.find(tc.VALID_MOLES_DOC_ID), -1) 
     
    8585    def testGetNumSim(self): 
    8686        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    87         doc = dr.get(tc.VALID_PROVIDER_ID, no.NUMSIM_DOC_TYPE, \ 
     87        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.NUMSIM_DOC_TYPE, \ 
    8888                     tc.VALID_NUMSIM_DOC_ID, targetCollection = nr.NUMSIM_COLLECTION) 
    8989        self.assertNotEquals(doc.find(tc.VALID_NUMSIM_DOC_ID), -1) 
     
    9191    def testGetAtom(self): 
    9292        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    93         doc = dr.get(tc.VALID_PROVIDER_ID, no.ATOM_DOC_TYPE, \ 
     93        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.ATOM_DOC_TYPE, \ 
    9494                     tc.VALID_ATOM_DOC_ID, targetCollection = nr.ATOM_COLLECTION) 
    9595        self.assertNotEquals(doc.find(tc.VALID_ATOM_DOC_ID), -1) 
     
    9797    def testGetInvalidAtom(self): 
    9898        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    99         self.assertRaises(ValueError, dr.get, tc.VALID_PROVIDER_ID, no.ATOM_DOC_TYPE, \ 
     99        self.assertRaises(ValueError, dr.get, tc.VALID_PROVIDER_ID, no.ndgObject.ATOM_DOC_TYPE, \ 
    100100                     tc.VALID_ATOM_DOC_ID + "blah", targetCollection = nr.ATOM_COLLECTION) 
    101101                         
    102102    def testGetAtomBackup(self): 
    103103        dr = DocumentRetrieve.DocumentRetrieve(tc.VALID_REPOSITORY) 
    104         doc = dr.get(tc.VALID_PROVIDER_ID, no.ATOM_BACKUP_DOC_TYPE, \ 
     104        doc = dr.get(tc.VALID_PROVIDER_ID, no.ndgObject.ATOM_BACKUP_DOC_TYPE, \ 
    105105                     tc.VALID_ATOM_DOC_ID, targetCollection = nr.ATOM_BACKUP_COLLECTION) 
    106106        self.assertNotEquals(doc.find(tc.VALID_ATOM_DOC_ID), -1) 
  • exist/trunk/python/ndgUtils/test_ndgObject.py

    r4168 r4187  
    3535    def __assertions(self,uri): 
    3636        self.assertEqual(tc.VALID_PROVIDER_ID,uri.repository) 
    37         self.assertEqual(no.NDGB0_DOC_TYPE,uri.schema) 
     37        self.assertEqual(no.ndgObject.NDGB0_DOC_TYPE,uri.schema) 
    3838        self.assertEqual(tc.VALID_MOLES_DOC_ID,uri.localID) 
    3939     
    4040    def testURI1(self): 
    4141        ''' Testing the underscore ID type ''' 
    42         uri= tc.VALID_PROVIDER_ID + '__' + no.NDGB0_DOC_TYPE + '__' + \ 
     42        uri= tc.VALID_PROVIDER_ID + '__' + no.ndgObject.NDGB0_DOC_TYPE + '__' + \ 
    4343            tc.VALID_MOLES_DOC_ID 
    4444        n=ndgObject(uri) 
     
    4747    def testURI2(self): 
    4848        ''' Testing the colon form of ID ''' 
    49         uri=tc.VALID_PROVIDER_ID + ':' + no.NDGB0_DOC_TYPE + ':' + \ 
     49        uri=tc.VALID_PROVIDER_ID + ':' + no.ndgObject.NDGB0_DOC_TYPE + ':' + \ 
    5050            tc.VALID_MOLES_DOC_ID 
    5151        n=ndgObject(uri) 
     
    6060    def testMakeURL(self): 
    6161        ''' Tests making a url via a configuration file ''' 
    62         uri=tc.VALID_PROVIDER_ID + '__' + no.NDGB0_DOC_TYPE + '__' + \ 
     62        uri=tc.VALID_PROVIDER_ID + '__' + no.ndgObject.NDGB0_DOC_TYPE + '__' + \ 
    6363            tc.VALID_MOLES_DOC_ID 
    6464        n=ndgObject(uri) 
     
    7070    def testStubB(self): 
    7171        ''' Test the url components of a stub-b ''' 
    72         uri=tc.VALID_PROVIDER_ID + '__' + no.NDGB1_DOC_TYPE + '__' + \ 
     72        uri=tc.VALID_PROVIDER_ID + '__' + no.ndgObject.NDGB1_DOC_TYPE + '__' + \ 
    7373            tc.VALID_MOLES_DOC_ID 
    7474        n=ndgObject(uri,self.config) 
     
    8080    def testAtom(self): 
    8181        ''' Test the url components of an atom ''' 
    82         uri=tc.VALID_PROVIDER_ID + '__' + no.ATOM_DOC_TYPE + '__' + \ 
     82        uri=tc.VALID_PROVIDER_ID + '__' + no.ndgObject.ATOM_DOC_TYPE + '__' + \ 
    8383            tc.VALID_ATOM_DOC_ID 
    8484        n=ndgObject(uri,self.config) 
     
    9090    def testGetAtom(self): 
    9191        ''' Get an atom doc ''' 
    92         uri=tc.VALID_PROVIDER_ID + '__' + no.ATOM_DOC_TYPE + '__' + \ 
     92        uri=tc.VALID_PROVIDER_ID + '__' + no.ndgObject.ATOM_DOC_TYPE + '__' + \ 
    9393            tc.VALID_ATOM_DOC_ID 
    9494        n=ndgObject(uri,self.config) 
     
    9999    def testGetInvalidAtom(self): 
    100100        ''' Get an atom doc ''' 
    101         uri=tc.VALID_PROVIDER_ID + '__' + no.ATOM_DOC_TYPE + '__' + \ 
     101        uri=tc.VALID_PROVIDER_ID + '__' + no.ndgObject.ATOM_DOC_TYPE + '__' + \ 
    102102            tc.VALID_ATOM_DOC_ID + 'blah' 
    103103        n=ndgObject(uri,self.config) 
  • exist/trunk/python/ndgUtils/test_ndgRetrieve.py

    r4175 r4187  
    5555    def testRetrieveXMLdif(self): 
    5656        ''' Make sure we can recall at least one DIF properly ''' 
    57         doc= tc.VALID_PROVIDER_ID + "__" + no.DIF_DOC_TYPE + \ 
     57        doc= tc.VALID_PROVIDER_ID + "__" + no.ndgObject.DIF_DOC_TYPE + \ 
    5858            "__" + tc.VALID_MOLES_DOC_ID 
    5959        uri=ndgObject(doc) 
     
    7373    def testRetrieveNumSim(self): 
    7474        '''Get a NumSim document ''' 
    75         doc= tc.VALID_PROVIDER_ID + "__" + no.NUMSIM_DOC_TYPE + \ 
     75        doc= tc.VALID_PROVIDER_ID + "__" + no.ndgObject.NUMSIM_DOC_TYPE + \ 
    7676            "__" + tc.VALID_NUMSIM_DOC_ID 
    7777        uri=ndgObject(doc) 
     
    8282    def testRetrieveAtom(self): 
    8383        '''Get an atom document ''' 
    84         doc= tc.VALID_PROVIDER_ID + "__" + no.ATOM_DOC_TYPE + \ 
     84        doc= tc.VALID_PROVIDER_ID + "__" + no.ndgObject.ATOM_DOC_TYPE + \ 
    8585            "__" + tc.VALID_ATOM_DOC_ID 
    8686        uri=ndgObject(doc) 
     
    9191    def testRetrieveInvalidAtom(self): 
    9292        '''Get an invalid atom document ''' 
    93         doc= tc.VALID_PROVIDER_ID + "__" + no.ATOM_DOC_TYPE + \ 
     93        doc= tc.VALID_PROVIDER_ID + "__" + no.ndgObject.ATOM_DOC_TYPE + \ 
    9494            "__" + tc.VALID_ATOM_DOC_ID + "blah" 
    9595        uri=ndgObject(doc) 
     
    9999    def testRetrieveAtomBackup(self): 
    100100        '''Get a backed up atom document ''' 
    101         doc= tc.VALID_PROVIDER_ID + "__" + no.ATOM_BACKUP_DOC_TYPE + \ 
     101        doc= tc.VALID_PROVIDER_ID + "__" + no.ndgObject.ATOM_BACKUP_DOC_TYPE + \ 
    102102            "__" + tc.VALID_ATOM_DOC_ID 
    103103        uri=ndgObject(doc) 
  • exist/trunk/python/ndgUtils/test_ndgSearch.py

    r4175 r4187  
    3434    def testGetDoc(self): 
    3535        ''' Test obtaining a specific document which had better exist ''' 
    36         doc= tc.VALID_DISCOVERY_PROVIDER_ID + "__" + no.DIF_DOC_TYPE + \ 
     36        doc= tc.VALID_DISCOVERY_PROVIDER_ID + "__" + no.ndgObject.DIF_DOC_TYPE + \ 
    3737            "__" + tc.VALID_DISCOVERY_DOC_ID + ".xml" 
    3838        s=ndgSearch() 
     
    5959         
    6060        (r,s,l)=tc.VALID_DISCOVERY_PROVIDER_ID, \ 
    61             no.DIF_DOC_TYPE, tc.VALID_DISCOVERY_DOC_ID 
     61            no.ndgObject.DIF_DOC_TYPE, tc.VALID_DISCOVERY_DOC_ID 
    6262        ss=ndgSearch() 
    6363        x=ss.get(r,s,l,format='DC') 
Note: See TracChangeset for help on using the changeset viewer.