Changeset 8522


Ignore:
Timestamp:
16/08/12 13:23:10 (7 years ago)
Author:
mnagni
Message:

Incomplete - # 22528: Migration of FAtCat Open Search link for HPFeld
 http://team.ceda.ac.uk/trac/ceda/ticket/22528
Incomplete - # 22534: Add versiojn number to the gui page
 http://team.ceda.ac.uk/trac/ceda/ticket/22534

Location:
mauRepo/MolesManager/trunk
Files:
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/moles3epb.py

    r8514 r8522  
    151151        EPB.refresh(instance, self._session)  
    152152 
    153     def deleteInstance(self, instance): 
    154         """ 
    155         Deletes a new migration object. 
    156         **Parameters** 
    157             * instance: the object to delete  
    158         """ 
    159         EPB.deleteInstance(instance, self._session)  
     153    def deleteInstance(self, instance, commit = False): 
     154        """ 
     155            Deletes an object. 
     156             
     157            **Parameters** 
     158            * `object` **instance** 
     159                the object to delete                            
     160            * `bool` **commit** 
     161                Defines if the delete operation has to be immediately committed.  
     162                    Default is `False` 
     163        """  
     164        EPB.deleteInstance(instance, self._session, commit)  
    160165 
    161166    def expunge(self, instance): 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/epb.py

    r8493 r8522  
    202202 
    203203    @classmethod 
    204     def deleteInstance(cls, instance, session): 
    205         """ 
    206             Deletes a new object. 
    207             @param instance: the migration object to be deleted 
    208             @param session: an sqlalchemy Session object. If None (default) the method creates  
     204    def deleteInstance(cls, instance, session, commit = False): 
     205        """ 
     206            Deletes an object. 
     207             
     208            **Parameters** 
     209            * `object` **instance** 
     210                the object to delete            
     211            * `SQLAlchemy.Session` **session** 
     212                the session associated with the object to delete                 
     213            * `bool` **commit** 
     214                Defines if the delete operation has to be immediately committed.  
     215                    Default is `False` 
    209216        """         
    210217        session.delete(instance) 
    211         session.commit() 
     218        if commit: 
     219            session.commit() 
    212220 
    213221    @classmethod 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/commons.py

    r8517 r8522  
    126126 
    127127LINK_MARKERS = ['Deployment', 'DOWNLOAD', 'DOCUMENTATION', 'ACCESS', 'LOGO', 'ACTIVITY', \ 
    128                'DPT', 'OBS'] 
     128               'DPT', 'OBS', 'TOOLS'] 
    129129 
    130130#MD_Identifier codes 
     
    137137    """ 
    138138        Returns an md5 hexadecimal representation of the given text 
    139         @param text: the string to encode 
     139        @param text: a string or an array of strings to encode 
    140140        @return: the hexadecimal md5 value of the given text  
    141141    """ 
    142142    encoder = md5() 
    143     encoder.update(text) 
     143    messages = [] 
     144    if not isinstance(text, list): 
     145        messages.append(text) 
     146    else: 
     147        messages = text 
     148         
     149    for item in messages: 
     150        encoder.update(item) 
     151 
    144152    return encoder.hexdigest() 
    145153 
     
    395403    return links_dict 
    396404 
    397 def find_links_in_migration_document(data_entity_migration): 
     405def find_links_in_migration_document(data_entity_migration, key = None): 
    398406    data_ent_XML = _get_atom_document_by_mo(data_entity_migration) 
    399407    links_dict = _extract_links(data_ent_XML, LINK_MARKERS) 
    400     return links_dict 
    401  
    402  
     408    if key is None: 
     409        return links_dict 
     410     
     411    if links_dict.has_key(key): 
     412        return links_dict[key]     
     413    return {}        
     414     
    403415 
    404416def find_download_links_in_migration_document(migration_object): 
     
    409421        @return: a list of dictionaries 
    410422    """ 
    411     links_dict = find_links_in_migration_document(migration_object) 
    412     if links_dict.has_key('DOWNLOAD'): 
    413         return links_dict['DOWNLOAD']     
    414     return {}        
     423    return find_links_in_migration_document(migration_object, 'DOWNLOAD') 
     424 
     425def find_tools_links_in_migration_document(migration_object): 
     426    """ 
     427        Return a list of dictionaries describing a <link rel="...TOOLS..."> tag type 
     428        Each dictionary has two keys: 'href' and 'title' 
     429        @param migrationObject: the migration instance to retrieve and parse 
     430        @return: a list of dictionaries 
     431    """ 
     432    return find_links_in_migration_document(migration_object, 'TOOLS') 
    415433 
    416434def find_access_links_in_migration_document(migration_object): 
     
    421439        @return: a list of dictionaries 
    422440    """ 
    423     links_dict = find_links_in_migration_document(migration_object) 
    424     if links_dict.has_key('ACCESS'): 
    425         return links_dict['ACCESS']      
    426     return {}     
     441    return find_links_in_migration_document(migration_object, 'ACCESS') 
     442 
    427443 
    428444def find_documentation_in_migration_document(migration_object): 
     
    434450        @return: a list of dictionaries 
    435451    """ 
    436     links_dict = find_links_in_migration_document(migration_object) 
    437     if links_dict.has_key('DOCUMENTATION'): 
    438         return links_dict['DOCUMENTATION']      
    439     return {} 
     452    return find_links_in_migration_document(migration_object, 'DOCUMENTATION') 
    440453 
    441454def find_doi_in_migration_document(migration_object): 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/dataEntity.py

    r8517 r8522  
    3232''' 
    3333from cedaMoles.libs.migration.exception.exceptions import MigrationObjectException, NoAssociatedAuthor,\ 
    34     migrationObjectDescription, NoAssociatedDeployments,\ 
     34    migrationObjectDescription, NoAssociatedDeployments, \ 
    3535    NoGeographicalExtensionException, NoCitationException 
    36 from cedaMoles.libs.migration.processor.commons import find_deployments_in_de,\ 
     36from cedaMoles.libs.migration.processor.commons import find_deployments_in_de, \ 
    3737    create_md_identifier, extract_content,\ 
    38     has_mo_same_hash, create_ci_citation, create_ci_date, find_published_date,\ 
    39     isoDateTimeStringToTimeDate, find_updated_date, create_date,\ 
    40     calculate_hash, find_doi_in_migration_document,\ 
    41     has_mo_been_processed, get_atom_document_hash_by_mo, extract_title, extract_summary,\ 
    42     create_ex_geographic_boundingbox, from_date_string_to_pt,\ 
     38    has_mo_same_hash, create_ci_citation, create_ci_date, find_published_date, \ 
     39    isoDateTimeStringToTimeDate, find_updated_date, create_date, \ 
     40    calculate_hash, find_doi_in_migration_document, \ 
     41    has_mo_been_processed, get_atom_document_hash_by_mo, extract_title, extract_summary, \ 
     42    create_ex_geographic_boundingbox, from_date_string_to_pt, \ 
    4343    compare_phenomenon_times, compareGeographicBoundingBoxes 
    4444from cedaMoles.libs.migration.processor.deployment import DeploymentProcessor 
    4545from logging import StreamHandler 
    4646import logging 
    47 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_datetypecode import CI_DateTypeCode 
     47from ea_model.iso_19115_2006_metadata_corrigendum.\ 
     48citation_and_responsible_party_information.ci_datetypecode import CI_DateTypeCode 
    4849from cedaMoles.MolesManager.ceda_guid import CedaGUID 
    49 from cedaMoles.MolesManager.codelist import MM_ObservationPublicationStateValue,\ 
     50from cedaMoles.MolesManager.codelist import MM_ObservationPublicationStateValue, \ 
    5051    getCLValue 
    51 from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection import CEDA_ObservationCollection  
     52from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection \ 
     53    import CEDA_ObservationCollection  
    5254from cedaMoles.MolesManager.moles3epb import unify_observation_collection_phenomenon_time 
    5355CEDA_TITLE = 'ceda_title' 
     
    5860    log.setLevel(logging.INFO)   
    5961    ''' 
    60         Processes a DataEntityMigration item. Note that each DataEntity is associated to a "dataent_xxxx" file in Moles2 
     62        Processes a DataEntityMigration item. Note that each DataEntity is associated  
     63        to a "dataent_xxxx" file in Moles2 
    6164    '''         
    6265    def __init__(self, dataEntityMigration, epbRepo): 
     
    6669            @param epbRepo: an instance of EPBRepo 
    6770        ''' 
    68         #if dataEntityMigration is None: 
    69         #    raise MigrationObjectException("DataEntityProcessor cannot process an None item") 
    7071        self._dataEntityMigration = dataEntityMigration         
    71         self._dataEntityHasSameHash = has_mo_same_hash(self._dataEntityMigration)     
    72         self._dataEntityHasBeenProcessed = has_mo_been_processed(self._dataEntityMigration)    
     72        self._dataEntityHasSameHash = \ 
     73            has_mo_same_hash(self._dataEntityMigration)     
     74        self._dataEntityHasBeenProcessed = \ 
     75            has_mo_been_processed(self._dataEntityMigration)    
    7376        self.epbRepo = epbRepo 
    7477        self._report = [] 
     
    8083            east, north = upperCornerData.split() 
    8184            west, south = lowerCornerData.split() 
    82             geographicExtent = create_ex_geographic_boundingbox(float(east), float(north), \ 
    83                                                               float(west), float(south)) 
     85            geographicExtent = create_ex_geographic_boundingbox(float(east), \ 
     86                                                                float(north), \ 
     87                                                                float(west), \ 
     88                                                                float(south)) 
    8489             
    8590            if len(ceda_observationCollection.geographicExtent) == 0 or \ 
     
    8893                                                  ceda_observationCollection.geographicExtent[0])): 
    8994                self.epbRepo.moles3EPB.updateCedaObject(ceda_observationCollection, \ 
    90                                                         {'geographicExtent': geographicExtent})                         
     95                                                {'geographicExtent': geographicExtent})                         
    9196        else: 
    9297            self._report.append(NoGeographicalExtensionException(self._dataEntityMigration))           
     
    99104        pt = from_date_string_to_pt(dateString) 
    100105         
    101         if pt is not None and ceda_observationCollection.phenomenonTime is not None \ 
     106        if pt is not None \ 
     107            and ceda_observationCollection.phenomenonTime is not None \ 
    102108            and (len(ceda_observationCollection.phenomenonTime) == 0 \ 
    103                  or (len(ceda_observationCollection.phenomenonTime) == 1 and \ 
    104                      not compare_phenomenon_times(ceda_observationCollection.phenomenonTime[0], pt))): 
     109                 or (len(ceda_observationCollection.phenomenonTime) == 1 \ 
     110                     and not compare_phenomenon_times(ceda_observationCollection.phenomenonTime[0], pt))): 
    105111            self.epbRepo.moles3EPB.updateCedaObject(ceda_observationCollection, {'phenomenonTime': pt})         
    106112 
     
    148154        if doc_date: 
    149155            i_date = create_date(isoDateTimeStringToTimeDate(doc_date))            
    150             ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_publication), date = i_date)) 
     156            ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_publication), \ 
     157                                           date = i_date)) 
    151158 
    152159        doc_date = find_updated_date(self._dataEntityMigration)             
    153160        if doc_date: 
    154161            i_date = create_date(isoDateTimeStringToTimeDate(doc_date))                 
    155             ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_revision), date = i_date)) 
     162            ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_revision), \ 
     163                                           date = i_date)) 
    156164             
    157165        i_citation = create_ci_citation(title = 'ceda_moles2_citation', date=ci_dates) 
    158         newIdentifier = create_md_identifier(code = contentDict['citation'], authority=i_citation) 
     166        newIdentifier = create_md_identifier(code = contentDict['citation'], \ 
     167                                             authority=i_citation) 
    159168 
    160169        if self._dataEntityHasBeenProcessed: 
    161             DataEntityProcessor.log.warn('The _assignGeographicExtent update is skipped because not implemented') 
     170            DataEntityProcessor.log.warn('The _assignGeographicExtent update is skipped \ 
     171                because not implemented') 
    162172            return 
    163173         
     
    167177    def _execute(self, ceda_observationCollection):  
    168178        """ 
    169             Creates a new CEDA_ObservationCollection instance in the Moles3DB using the self._dataEntityMigration object. 
    170             If successful adds the new instance ID to the related DataEntityMigration object 
     179            Creates a new CEDA_ObservationCollection instance in the Moles3DB  
     180            using the self._dataEntityMigration object. 
     181            If successful adds the new instance ID to the related  
     182            DataEntityMigration object 
    171183            @return: the persisted CEDA_ObservationCollection element  
    172184        """ 
     
    180192        if not has_mo_been_processed(self._dataEntityMigration): 
    181193            docHash = get_atom_document_hash_by_mo(self._dataEntityMigration) 
    182             ceda_observationCollection.publicationState = getCLValue(MM_ObservationPublicationStateValue.cl_working) 
     194            ceda_observationCollection.publicationState \ 
     195                = getCLValue(MM_ObservationPublicationStateValue.cl_working) 
    183196            self.epbRepo.moles3EPB.persistInstance(ceda_observationCollection) 
    184197            self.epbRepo.migrationEPB.updateMigrationObject(self._dataEntityMigration, \ 
     
    193206         
    194207        #Has a proper CEDAGUID? 
    195         if self.epbRepo.moles3EPB.retrieveGUIDFromInstance(ceda_observationCollection) is None: 
     208        if self.epbRepo.moles3EPB.retrieveGUIDFromInstance(ceda_observationCollection) \ 
     209                is None: 
    196210            #Adds the CedaGUID 
    197211            ceda_guid = CedaGUID() 
    198212            ceda_guid.id = calculate_hash(self._dataEntityMigration.data_ent_id) 
    199             setattr(ceda_guid, 'ceda_observationcollection', ceda_observationCollection.id) 
     213            setattr(ceda_guid, \ 
     214                    'ceda_observationcollection', \ 
     215                    ceda_observationCollection.id) 
    200216            self.epbRepo.moles3EPB.persistInstance(ceda_guid) 
    201             DataEntityProcessor.log.info("GUID for this ObservationCollection: %s" % (ceda_guid.id)) 
    202  
    203     def _processDOI(self, deploymentMigration, ceda_observation, deProcessor, single_deployment):         
     217            DataEntityProcessor.log.info("GUID for this ObservationCollection: %s" \ 
     218                                         % (ceda_guid.id)) 
     219 
     220    def _processDOI(self, deploymentMigration, ceda_observation, \ 
     221                    deProcessor, single_deployment):         
    204222        doi = find_doi_in_migration_document(deploymentMigration)                                                               
    205223        if single_deployment: 
     
    222240 
    223241    def _processDeploymentMigration(self, deploymentMigration, single_deployment):                                       
    224         deProcessor = DeploymentProcessor(self._dataEntityMigration, deploymentMigration, self.epbRepo) 
     242        deProcessor = DeploymentProcessor(self._dataEntityMigration, \ 
     243                                          deploymentMigration, self.epbRepo) 
    225244        try: 
    226             DataEntityProcessor.log.info("Processing deployment: %s" % (migrationObjectDescription(deploymentMigration))) 
     245            DataEntityProcessor.log.info("Processing deployment: %s" \ 
     246                                    % (migrationObjectDescription(deploymentMigration))) 
    227247            obs_ex_report, ceda_observation = deProcessor.process() 
    228248            self._report.extend(obs_ex_report) 
    229249            try:                             
    230                 self._processDOI(deploymentMigration, ceda_observation, deProcessor, single_deployment) 
     250                self._processDOI(deploymentMigration, ceda_observation, \ 
     251                                 deProcessor, single_deployment) 
    231252            except Exception as ex: 
    232253                pass                                 
     
    240261    def process(self): 
    241262        obsColl = None 
    242         DataEntityProcessor.log.info("Processing dataEntity: %s" % (migrationObjectDescription(self._dataEntityMigration))) 
     263        DataEntityProcessor.log.info("Processing dataEntity: %s" \ 
     264                                % (migrationObjectDescription(self._dataEntityMigration))) 
    243265        try : 
    244266            if self._dataEntityMigration.ceda_observation_coll_id: 
     
    266288        for deploymentMigration in deploymentMigrations: 
    267289            try: 
    268                 ceda_observation = self._processDeploymentMigration(deploymentMigration, howManydm == 1)                 
     290                ceda_observation = self._processDeploymentMigration(deploymentMigration, \ 
     291                                                                    howManydm == 1)                 
    269292                #Is a first time process? 
    270293                if not self.epbRepo.moles3EPB.observationCollectionHasObservation(getattr(obsColl, 'id'), getattr(ceda_observation, 'id')): 
    271                     self.epbRepo.moles3EPB.updateCedaObject(obsColl, {'member': ceda_observation}) 
     294                    self.epbRepo.moles3EPB.updateCedaObject(obsColl, \ 
     295                                                            {'member': ceda_observation}) 
    272296                 
    273297                self._assignObservationCollectionToProject(obsColl, ceda_observation)                     
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/deployment.py

    r8517 r8522  
    9292MET_GEO_FEATURE = 'Meteorological geographical features' 
    9393ORTHOIMAGERY = 'Orthoimagery' 
     94 
     95def get_fatcat_online_resource(online_resources = None): 
     96    """ 
     97        Extracts from a list of MO_OnlineResource the instance 
     98        representing a Fatcat reference 
     99         
     100        **RETURN** 
     101        The required instance, `None` otherwise  
     102    """ 
     103    function = getCLValue(CI_OnLineFunctionCode.cl_search) 
     104    if online_resources is None: 
     105        return None  
     106    for online_res in online_resources: 
     107        if online_res.function == function: 
     108            return online_res 
    94109             
    95110class DeploymentProcessor(object): 
     
    150165            if tmp_auth['author'] == 'unknown': 
    151166                DeploymentProcessor.log.debug("%s %s %s has unknown author" \ 
    152                                              % (whereAreAuthors.doc_status, whereAreAuthors.doc_owner, whereAreAuthors.doc_name))         
     167                                             % (whereAreAuthors.doc_status, \ 
     168                                                whereAreAuthors.doc_owner, \ 
     169                                                whereAreAuthors.doc_name))         
    153170 
    154171            for item in tmp_auth['co_author_type']:            
    155                 if (tmp_auth['co_author'][tmp_auth['co_author_type'].index(item)] == 'unknown'): 
     172                if (tmp_auth['co_author'][tmp_auth['co_author_type'].index(item)] \ 
     173                        == 'unknown'): 
    156174                    doc_authors = find_authors_in_resource(self._data_entity_migration) 
    157175                    tmp_auth = authors[doc_authors['contributors']] 
     
    167185                if (tmp_auth['co_author'][index] == 'unknown'): 
    168186                    DeploymentProcessor.log.info("%s %s %s has unknown author" \ 
    169                                                  % (whereAreAuthors.doc_status, whereAreAuthors.doc_owner, whereAreAuthors.doc_name)) 
     187                                                 % (whereAreAuthors.doc_status, \ 
     188                                                    whereAreAuthors.doc_owner, \ 
     189                                                    whereAreAuthors.doc_name)) 
    170190        except Exception as e: 
    171191            print e 
     
    189209             
    190210            py_date = None 
    191             cited_responsible = create_ci_responsible_party(role=getCLValue(CI_RoleCode.cl_publisher), \ 
    192                                                               organizationName='NERC - British Atmospheric Data Centre') 
     211            cited_responsible = \ 
     212                create_ci_responsible_party(role=getCLValue(CI_RoleCode.cl_publisher), \ 
     213                           organizationName='NERC - British Atmospheric Data Centre') 
    193214            if doi.upper() == '10.5285/E8F43A51-0198-4323-A926-FE69225D57DD': 
    194215                py_date = date(2011, 4, 1) 
     
    202223            if py_date:    
    203224                dt = create_date(py_date) 
    204                 ci_date = create_ci_date(getCLValue(CI_DateTypeCode.cl_publication), date = dt) 
     225                ci_date = create_ci_date(getCLValue(CI_DateTypeCode.cl_publication), \ 
     226                                         date = dt) 
    205227                i_authority = create_ci_citation("DOI", date = ci_date) 
    206228                identifier = create_md_identifier(code = doi, authority=i_authority) 
    207                 self.epbRepo.moles3EPB.updateCedaObject(observation, {'identifier': identifier}) 
     229                self.epbRepo.moles3EPB.updateCedaObject(observation, \ 
     230                                                        {'identifier': identifier}) 
    208231                DeploymentProcessor.log.info("DOI: %s" % (doi))                                   
    209232 
     
    236259            observation.dataLineage = data_lineage   
    237260 
    238     def _assignResult(self, observation): 
    239         if self._deploymentHasSameHash and self._dataEntityHasSameHash: 
    240             return 
    241  
    242         i_sources = []                 
     261    def _fatcat_online_resource(self): 
     262        function = getCLValue(CI_OnLineFunctionCode.cl_search)                 
     263        tools = find_links_in_migration_document(self._deployment_migration, 'TOOLS') 
     264        for tool in tools: 
     265            if 'FAtCatID' not in tool['href']: 
     266                continue 
     267             
     268            addr, opt = tool['href'].split('?')             
     269            return create_mo_online_resource(linkage = tool['href'], \ 
     270                            name = tool['title'], \ 
     271                            function = function, \ 
     272                            description = opt.split(':')[1], \ 
     273                            applicationProfile = None)        
     274 
     275    def _download_online_resource(self, i_sources): 
    243276        download = find_download_links_in_migration_document(self._deployment_migration) 
    244277        content = None 
     
    254287                #int_applicationProfile = content['formats'] 
    255288                pass 
    256             if dwn['href'].startswith('http://badc.nerc.ac.uk/browse') or dwn['href'].startswith('http://neodc.nerc.ac.uk/browse'): 
    257                 int_description = "download directly from archive"     
    258             i_sources.append(create_mo_online_resource(linkage = dwn['href'], name = dwn['title'], \ 
    259                                                    function = getCLValue(CI_OnLineFunctionCode.cl_download), \ 
    260                                                    description = int_description, applicationProfile = int_applicationProfile)) 
    261              
    262         dataentity_id = '%s__ATOM__%s' % (self._data_entity_migration.doc_owner, self._data_entity_migration.doc_name) 
     289            if dwn['href'].startswith('http://badc.nerc.ac.uk/browse') \ 
     290                    or dwn['href'].startswith('http://neodc.nerc.ac.uk/browse'): 
     291                int_description = "download directly from archive" 
     292                  
     293            i_sources.append(create_mo_online_resource(linkage = dwn['href'], \ 
     294                            name = dwn['title'], \ 
     295                            function = getCLValue(CI_OnLineFunctionCode.cl_download), \ 
     296                            description = int_description, \ 
     297                            applicationProfile = int_applicationProfile)) 
     298 
     299    def _assignResult(self, observation): 
     300        # If both the deployment and the dataentity are unchanged skip the execution 
     301        if self._deploymentHasSameHash and self._dataEntityHasSameHash: 
     302            return 
     303 
     304        #Delete all the old result without committing 
     305        if hasattr(observation, 'id') and observation.id is not None \ 
     306                and hasattr(observation, 'result'): 
     307                    self.epbRepo.moles3EPB.deleteInstance(observation.result) 
     308 
     309        i_sources = [] 
     310                 
     311        fatcat_online_resource = self._fatcat_online_resource() 
     312        if fatcat_online_resource is not None: 
     313            i_sources.append(fatcat_online_resource) 
     314 
     315        self._download_online_resource(i_sources)        
     316             
     317        dataentity_id = '%s__ATOM__%s' % (self._data_entity_migration.doc_owner, \ 
     318                                          self._data_entity_migration.doc_name) 
    263319        dataentity_id = dataentity_id.replace('.atom', '')            
    264320        infodb_de = self.epbRepo.infodbEPB.getCedaInfoApp_dataentityByDE_ID(dataentity_id) 
    265321        i_logical_path = '/dummy' 
    266322        if infodb_de is None: 
    267             i_logical_path = dwn['href'][dwn['href'].index('/browse/') + 7:] 
     323            i_logical_path = 'mailto:support@ceda.ac.uk?subject=Link to archive required \ 
     324                %s' %  dataentity_id 
    268325         
    269326        if infodb_de and infodb_de.has_key('logical_path'): 
     
    272329        i_category = getCLValue(CEDA_CurationValue.cl_a)                                   
    273330        if infodb_de and infodb_de.has_key('category') and infodb_de['category']: 
    274             i_category = getCLValue(CEDA_CurationValue.from_string(infodb_de['category'].lower()))       
    275  
    276         if not self._deploymentHasBeenProcessed:                      
    277             observation.result = create_ceda_result(i_category, i_logical_path, source = i_sources) 
    278             return  
    279          
    280         if observation.result.internalPath != i_logical_path: 
    281             observation.result.internalPath = i_logical_path 
    282              
    283         if observation.result.curationCategory != i_category: 
    284             observation.result.curationCategory = i_category 
    285                          
    286         #Still have to update observation.result.source 
     331            i_category = getCLValue(CEDA_CurationValue.\ 
     332                                    from_string(infodb_de['category'].lower()))       
     333 
     334                      
     335        observation.result = create_ceda_result(i_category, \ 
     336                                                i_logical_path, \ 
     337                                                source = i_sources)                         
    287338 
    288339    def _assignPublisherCurator(self, observation): 
     
    294345        if provider_id == DO_BADC: 
    295346            i_linkage = 'http://badc.rl.ac.uk' 
    296             i_onlineResources = create_ci_onlineresource(linkage = i_linkage, name = 'British Atmospheric Data Centre Website') 
     347            i_onlineResources = create_ci_onlineresource(linkage = i_linkage, \ 
     348                                        name = 'British Atmospheric Data Centre Website') 
    297349            i_address = create_ci_address(deliveryPoint = ['British Atmospheric Data Centre, STFC Rutherford Appleton Laboratory'], \ 
    298                                          electronicMailAddress=['badc@rl.ac.uk'], postalCode='OX11 0QX', country='UK', city='Harwell Oxford')                                    
     350                                         electronicMailAddress=['badc@rl.ac.uk'], \ 
     351                                         postalCode='OX11 0QX', \ 
     352                                         country='UK', \ 
     353                                         city='Harwell Oxford')                                    
    299354            i_phone = create_ci_telephone(voice=['+44(0)1235 446432'])                                   
    300             contact = create_ci_contact(phone=i_phone, address=i_address, onlineResource=i_onlineResources)                        
    301             party = create_mo_organization(name = "NERC - British Atmospheric Data Centre", contactInfo = [contact]) 
     355            contact = create_ci_contact(phone=i_phone, \ 
     356                                        address=i_address, \ 
     357                                        onlineResource=i_onlineResources)                        
     358            party = create_mo_organization(name = "NERC - British Atmospheric Data Centre", \ 
     359                                           contactInfo = [contact]) 
    302360        elif provider_id == DO_NEODC: 
    303361            i_linkage = 'http://www.neodc.rl.ac.uk' 
    304             i_onlineResources = create_ci_onlineresource(linkage = i_linkage, name = 'NERC Earth Observation Data Centre website') 
     362            i_onlineResources = create_ci_onlineresource(linkage = i_linkage, \ 
     363                                    name = 'NERC Earth Observation Data Centre website') 
    305364            i_address = create_ci_address(deliveryPoint = ['NERC - Earth Observation Data Centre, STFC Rutherford Appleton Laboratory'], \ 
    306                                          electronicMailAddress=['neodc@rl.ac.uk'], postalCode='OX11 0QX', country='UK', city='Harwell Oxford')                                    
     365                                         electronicMailAddress=['neodc@rl.ac.uk'], \ 
     366                                         postalCode='OX11 0QX', \ 
     367                                         country='UK', \ 
     368                                         city='Harwell Oxford')                                    
    307369            i_phone = create_ci_telephone(voice=['+44(0)1235 446432'])                                  
    308             contact = create_ci_contact(phone=i_phone, address=i_address, onlineResource=i_onlineResources)                        
    309             party = create_mo_organization(name = 'NERC - Earth Observation Data Centre', contactInfo = [contact]) 
     370            contact = create_ci_contact(phone=i_phone, \ 
     371                                        address=i_address, \ 
     372                                        onlineResource=i_onlineResources)                        
     373            party = create_mo_organization(name = 'NERC - Earth Observation Data Centre', \ 
     374                                           contactInfo = [contact]) 
    310375        elif provider_id == DO_UKSSDC: 
    311376            i_linkage = 'http://www.ukssdc.rl.ac.uk' 
    312             i_onlineResources = create_ci_onlineresource(linkage = i_linkage, name = 'UK Solar System Data Centre website') 
     377            i_onlineResources = create_ci_onlineresource(linkage = i_linkage, \ 
     378                                            name = 'UK Solar System Data Centre website') 
    313379            i_address = create_ci_address(deliveryPoint = ['UK Solar System Data Centre, STFC Rutherford Appleton Laboratory'], \ 
    314                                          electronicMailAddress=['support@rl.ac.uk'], postalCode='OX11 0QX', country='UK', city='Harwell Oxford')                                    
     380                                         electronicMailAddress=['support@rl.ac.uk'], \ 
     381                                         postalCode='OX11 0QX', \ 
     382                                         country='UK', \ 
     383                                         city='Harwell Oxford')                                    
    315384            i_phone = create_ci_telephone(voice=['+44(0)1235 445173'])                                  
    316             contact = create_ci_contact(phone=i_phone, address=i_address, onlineResource=i_onlineResources)                        
    317             party = create_mo_organization(name = 'NERC - UK Solar System Data Centre', contactInfo = [contact]) 
     385            contact = create_ci_contact(phone=i_phone, \ 
     386                                        address=i_address, \ 
     387                                        onlineResource=i_onlineResources)                        
     388            party = create_mo_organization(name = 'NERC - UK Solar System Data Centre', \ 
     389                                           contactInfo = [contact]) 
    318390         
    319391        if party and not self._deploymentHasBeenProcessed: 
     
    338410        if doc_date: 
    339411            i_date = create_date(isoDateTimeStringToTimeDate(doc_date))                 
    340             ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_revision), date = i_date))             
     412            ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_revision), \ 
     413                                           date = i_date))             
    341414        else: 
    342415            i_date = create_date(isoDateTimeStringToTimeDate(datetime.datetime.now())) 
    343             ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_creation), date = i_date)) 
    344  
    345         i_specification = create_ci_citation(title = "CEDA Data Quality Statement", date=ci_dates) 
     416            ci_dates.append(create_ci_date(getCLValue(CI_DateTypeCode.cl_creation), \ 
     417                                           date = i_date)) 
     418 
     419        i_specification = create_ci_citation(title = "CEDA Data Quality Statement", \ 
     420                                             date=ci_dates) 
    346421        i_dq_result = create_dq_conformance_result(doc_quality, True, i_specification) 
    347422        i_quality_element = create_dq_element(i_dq_result) 
     
    433508            self._report.append(NoGeographicalExtensionException(self._data_entity_migration)) 
    434509         
    435         geographicExtent = create_ex_geographic_boundingbox(ge['east'], ge['north'], ge['west'], ge['south']) 
     510        geographicExtent = create_ex_geographic_boundingbox(ge['east'], \ 
     511                                                            ge['north'], \ 
     512                                                            ge['west'], \ 
     513                                                            ge['south']) 
    436514 
    437515        if len(observation.geographicExtent) == 0 or \ 
     
    439517             not compareGeographicBoundingBoxes(geographicExtent, \ 
    440518                observation.geographicExtent[0])): 
    441             self.epbRepo.moles3EPB.updateCedaObject(observation, {'geographicExtent': geographicExtent})              
     519            self.epbRepo.moles3EPB.updateCedaObject(observation, \ 
     520                                                {'geographicExtent': geographicExtent})              
    442521             
    443522    def _assignCreationDate(self, observation): 
  • mauRepo/MolesManager/trunk/cedaMoles/tests/cedamoles/mo/responsiblePartyInfo.py

    r8496 r8522  
    8383        #----------------------------- 
    8484        rpid = getattr(rp, 'id') 
    85         self.epbRepo.moles3EPB.deleteInstance(rp) 
     85        self.epbRepo.moles3EPB.deleteInstance(rp, commit = True) 
    8686        self.assertEqual(self.epbRepo.moles3EPB.search(MO_ResponsiblePartyInfo, rpid), None, "Error") 
    8787        #----------------------------- 
     
    151151         
    152152        #------------ Test 5 --------------- 
    153         self.epbRepo.moles3EPB.deleteInstance(res) 
     153        self.epbRepo.moles3EPB.deleteInstance(res, commit = True) 
    154154        pi = self.epbRepo.moles3EPB.search(PartyIndexes, resId) 
    155155        self.assertTrue(pi is None, "PartyIndexes is not deleted after MO_ResponsiblePartyInfo is deleted - Error") 
  • mauRepo/MolesManager/trunk/cedaMoles/tests/migration/migrationprocess.py

    r8517 r8522  
    9797        #self.processDataEntity(DO_NEODC, DS_pUBLISHED, 'dataent_11750994700119761.atom') 
    9898        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_ECMWF-TRJ.atom') 
    99         self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_UGAMPO3.atom') 
     99        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_UGAMPO3.atom') 
    100100        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_12282368470627062.atom')    
     101        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_11744364633818458.atom')         
    101102        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_11744364633818458.atom') 
     103         
     104        #Infrared Atmospheric Sounding Interferometer (IASI) 
     105        self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_12417810458627666.atom') 
     106         
    102107                              
    103          
     108                                      
    104109        #self.processDataEntity()               
    105110 
  • mauRepo/MolesManager/trunk/setup.py

    r8489 r8522  
    1717    author=u'Maurizio Nagni', 
    1818    author_email='maurizio.nagni@stfc.ac.uk', 
    19     package_dir = {'cedaMoles':'cedaMoles'}, # tell distutils packages are under cedaMoles     
     19    package_dir = {'cedaMoles':'cedaMoles'}, # tell distutils packages are under cedaMoles 
     20    package_data={'cedaMoles': ['MolesManager/static/*']},     
    2021    packages=find_packages(), # include all packages under this directory     
    2122    url='http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/MolesManager',   
     
    2425    long_description=open('README').read(), 
    2526    zip_safe=False, 
     27 
    2628 
    2729    # Adds dependencies 
Note: See TracChangeset for help on using the changeset viewer.