Exemple #1
0
    def identify(self, database="node"):
        ret = None
        ident = {}
        try:
            db2 = self.server[database]
            description = db2["node_description"]

            ident["repositoryName"] = description["node_description"]
            ident["adminEmail"] = description["node_admin_identity"]
            # TODO: This should map to the deleted_data_policy from the node_policy from the
            #       network node description
            ident["deletedRecord"] = "transient"
            ident["granularity"] = h.getDatetimePrecision()
            opts = {"group": True, "limit": 1}

            view_data = self.db.view('oai-pmh/identify-timestamp', **opts)
            if len(view_data) > 0:
                ident["earliestDatestamp"] = iso8601.parse_date(
                    list(view_data)[0].key)
            else:
                ident["earliestDatestamp"] = datetime.utcnow()

            ret = ident
        except Exception as e:
            log.exception("Problem determining OAI Identity")

        return ret
Exemple #2
0
 def identify(self, database="node"):
     ret = None
     ident = {}
     try:
         db2 = self.server[database]
         description = db2["node_description"]
         
         ident["repositoryName"] = description["node_description"]
         ident["adminEmail"] = description["node_admin_identity"]
         # TODO: This should map to the deleted_data_policy from the node_policy from the
         #       network node description
         ident["deletedRecord"] = "transient"
         ident["granularity"] = h.getDatetimePrecision(self.service_doc)
         opts = {
                 "group": True,
                 "limit": 1,
                 "stale": appConfig['couchdb.stale.flag']
                 }
         
         view_data = self.db.view('oai-pmh-identify-timestamp/docs', **opts)
         if len(view_data) > 0:
             ident["earliestDatestamp"] = iso8601.parse_date(list(view_data)[0].key)
         else:
             from datetime import datetime
             ident["earliestDatestamp"] = datetime.utcnow()
         
         ret = ident
     except Exception as e:
         log.exception("Problem determining OAI Identity")
     
     return ret
Exemple #3
0
 def identify():
     data = self.get_base_response(verb, body)
     serviceDoc = helpers.getServiceDocument(BASIC_HARVEST_SERVICE_DOC)
     data['identify'] = {
         "node_id":
         sourceLRNode.nodeDescription.node_name,
         "repositoryName":
         sourceLRNode.communityDescription.community_name,
         "baseURL":
         serviceDoc['service_endpoint'],
         "protocolVersion":
         "2.0",
         "service_version":
         serviceDoc['service_version'],
         "earliestDatestamp":
         h.earliestDate(),
         "deletedRecord":
         sourceLRNode.nodeDescription.
         node_policy['deleted_data_policy'],
         "granularity":
         helpers.getDatetimePrecision(serviceDoc),
         "adminEmail":
         sourceLRNode.nodeDescription.node_admin_identity
     }
     return json.dumps(data)
 def identify():
     data = self.get_base_response(verb,body)
     serviceDoc = helpers.getServiceDocument(BASIC_HARVEST_SERVICE_DOC)
     data['identify']={
         "node_id":sourceLRNode.nodeDescription.node_name,
         "repositoryName":sourceLRNode.communityDescription.community_name,
         "baseURL":serviceDoc['service_endpoint'],
         "protocolVersion":"2.0",
         "service_version":serviceDoc['service_version'],
         "earliestDatestamp":h.earliestDate(),
         "deletedRecord":sourceLRNode.nodeDescription.node_policy['deleted_data_policy'],
         "granularity":helpers.getDatetimePrecision(serviceDoc),
         "adminEmail":sourceLRNode.nodeDescription.node_admin_identity
     }
     return json.dumps(data)