Changeset 8221


Ignore:
Timestamp:
12/04/12 11:33:53 (8 years ago)
Author:
mnagni
Message:

Incomplete - # 22385: CEDA Observation - result
 http://team.ceda.ac.uk/trac/ceda/ticket/22385

Location:
mauRepo/MolesManager/trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/src/MolesManager/djencoder.py

    r8200 r8221  
    77from MolesManager.forms.date import methodsWithDecorator 
    88import re 
     9import logging 
    910 
    1011class DJEncoder(JSONEncoder): 
    1112 
     13    log = logging.getLogger('DJEncoder') 
    1214     
    1315    def __init__(self): 
     
    3941        getters = list(methodsWithDecorator(type(obj), "property")) 
    4042        for name in getters: 
    41             d.update({name: getattr(obj, name)}) 
     43            try: 
     44                d.update({name: getattr(obj, name)}) 
     45            except Exception as e: 
     46                DJEncoder.log.error(e) 
    4247         
    4348        for key, value in d.items(): 
  • mauRepo/MolesManager/trunk/src/libs/migration/processor/commons.py

    r8218 r8221  
    333333    """ 
    334334    linksDict = findLinksInMigrationDocument(migrationObject) 
    335     return linksDict['DOWNLOAD'] 
     335    if linksDict.has_key('DOWNLOAD'): 
     336        return linksDict['DOWNLOAD']     
     337    return {}        
    336338 
    337339def findAccessLinksInMigrationDocument(migrationObject): 
     
    343345    """ 
    344346    linksDict = findLinksInMigrationDocument(migrationObject) 
    345     return linksDict['ACCESS'] 
     347    if linksDict.has_key('ACCESS'): 
     348        return linksDict['ACCESS']      
     349    return {}     
    346350 
    347351def findDocumentationInMigrationDocument(migrationObject): 
     
    353357    """ 
    354358    linksDict = findLinksInMigrationDocument(migrationObject) 
    355     return linksDict['DOCUMENT'] 
     359    if linksDict.has_key('DOCUMENT'): 
     360        return linksDict['DOCUMENT']      
     361    return {} 
    356362 
    357363def findDOIInMigrationDocument(migrationObject): 
     
    652658    mo_responsableInfo = MO_ResponsiblePartyInfo() 
    653659    mo_responsableInfo.role = role 
    654     mo_responsableInfo.party = i_party 
     660    mo_responsableInfo.party.extend(i_party) 
    655661    return mo_responsableInfo 
    656662 
     
    770776        @param applicationProfile: the MO_OnlineResource.applicationProfile field 
    771777    """ 
    772     on_line_resource = MO_OnlineResource() 
    773     url = URL() 
    774     #url.???? = linkage     
    775     on_line_resource.linkage = url 
     778    on_line_resource = MO_OnlineResource()     
     779    on_line_resource.linkage = linkage 
    776780    if name:  
    777781        on_line_resource.name = name 
     
    784788    return on_line_resource         
    785789 
    786 def createCEDA_Result(linkage, name = None, function = None, description = None, applicationProfile = None): 
     790def createCEDA_Result(curation_category, internal_path, source = None): 
    787791    """ 
    788792        Creates a new CEDA_Result 
    789         @param linkage: the CEDA_Result.source.linkage.url.??? field 
    790         @param name: the CEDA_Result.source.linkage.name field 
    791         @param function: the CEDA_Result.source.function field  
     793        @param curation_category: a CEDA_CurationValue instance 
     794        @param internal_path: a String  
     795        @param source: an array of MO_OnlineResource instances 
    792796    """ 
    793797    ceda_result = CEDA_Result() 
    794     on_line_resource = createMO_OnlineResource(linkage, name, function, description, applicationProfile)         
    795     ceda_result.source.append(on_line_resource) 
     798    ceda_result.curationCategory = curation_category 
     799    ceda_result.internalPath = internal_path            
     800    if source:  
     801        ceda_result.source = source 
    796802    return ceda_result 
    797803 
  • mauRepo/MolesManager/trunk/src/libs/migration/processor/deployment.py

    r8207 r8221  
    2020    findLinksInDeployment, createMD_LegalConstraints, extractMolesQuality,\ 
    2121    createDQ_Element, createDQ_ConformanceResult, findUpdatedDate,\ 
    22     createMD_Metadata 
     22    createMD_Metadata, createMO_OnlineResource 
    2323from ea_model.moles3_4.utilities.mo_rolevalue import MO_RoleValue 
    2424from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation 
     
    4040from copy import deepcopy 
    4141import datetime 
     42from libs.migration.InfodbEPB import InfodbEPB 
     43from ea_model.ceda_metadatamodel.ceda_result import ceda_curationvalue 
    4244 
    4345class DeploymentProcessor(object): 
     
    213215        return ceda_observation 
    214216 
     217    def _getcurationcategory(self, curationcategory): 
     218        """ 
     219            Returns a CEDA_CurationValue code if the parameter match any CEDA_CurationValue code 
     220            @param curationcategory: a String  
     221        """ 
     222        if curationcategory is None: 
     223            return None 
     224         
     225        for code in ceda_curationvalue.CEDA_CurationValue.__dict__: 
     226            if code.startswith('cl_'): 
     227                if code.lower() == curationcategory.lower(): 
     228                    return code 
     229        return None 
     230         
    215231 
    216232    def _assignResult(self, observation): 
     
    227243            int_applicationProfile = None 
    228244            if content.has_key('formats'): 
    229                 int_applicationProfile = content['formats'] 
     245                #int_applicationProfile = content['formats'] 
     246                pass 
    230247            if dwn['href'].startswith('http://badc.nerc.ac.uk/browse') or dwn['href'].startswith('http://neodc.nerc.ac.uk/browse'): 
    231                 int_description = "download directly from archive"                 
    232             observation.result = createCEDA_Result(linkage = dwn['href'], name = dwn['title'], \ 
     248                int_description = "download directly from archive"    
     249            i_source = createMO_OnlineResource(linkage = dwn['href'], name = dwn['title'], \ 
    233250                                                   function = CI_OnLineFunctionCode.cl_download, \ 
    234                                                    description = int_description, applicationProfile = int_applicationProfile)                                 
     251                                                   description = int_description, applicationProfile = int_applicationProfile) 
     252            dataentity_id = '%s__ATOM__%s' % (self._dataEntityMigration.doc_owner, self._dataEntityMigration.doc_name) 
     253            dataentity_id = dataentity_id.replace('.atom', '')            
     254            infodb_de = InfodbEPB.getCedaInfoApp_dataentityByDE_ID(dataentity_id) 
     255            i_logical_path = '/dummy' 
     256            if infodb_de['logical_path']: 
     257                i_logical_path = infodb_de['logical_path'] 
     258             
     259            i_category = ceda_curationvalue.CEDA_CurationValue.cl_a                             
     260            if infodb_de['category']: 
     261                i_category = self._getcurationcategory(infodb_de['category']) 
     262                 
     263            observation.result = createCEDA_Result(i_category, i_logical_path, source = [i_source])                                 
    235264 
    236265 
     
    378407        self._assignName(ceda_observation) 
    379408        self._assignTitle(ceda_observation) 
    380         #self._assignResult(ceda_observation)     
     409        self._assignResult(ceda_observation)     
    381410        self._assignGeographicExtent(ceda_observation)     
    382411        self._assignDOI(ceda_observation)         
  • mauRepo/MolesManager/trunk/src/libs/migration/tests/migrationprocess.py

    r8198 r8221  
    1313from libs.migration.processor.migrationProcess import MigrationProcess 
    1414from testconfig import MIGRATION_DB_CONNECTION,\ 
    15     MIGRATION_DB_SCRIPT, MOLES3_DB_SCRIPT, MOLES3_DB_CONNECTION 
     15    MIGRATION_DB_SCRIPT, MOLES3_DB_SCRIPT, MOLES3_DB_CONNECTION, INFO_DB_CONNECTION  
     16from libs.migration.InfodbEPB import InfodbEPB 
    1617 
    1718class LoadResourceTest(TestCase): 
     
    2829        molesDB = DbManager(MOLES3_DB_CONNECTION, MOLES3_DB_SCRIPT) 
    2930        Moles3EPB.overrrideDBManager(molesDB) 
     31         
     32        infoDB = DbManager(INFO_DB_CONNECTION) 
     33        InfodbEPB.overrrideDBManager(infoDB) 
    3034         
    3135        lr = LoadResources() 
     
    4650         
    4751        ex = mp.process(dataEntity) 
    48         #ex = mp.process() 
     52        ex = mp.process() 
    4953        for e in ex: 
    5054            print e 
Note: See TracChangeset for help on using the changeset viewer.