def getAMDSec(fileUUID, filePath, use, type, sip_uuid, transferUUID, itemdirectoryPath, typeOfTransfer, baseDirectoryPath): """ Creates an amdSec. techMD contains a PREMIS:OBJECT, see createTechMD rightsMD contain PREMIS:RIGHTS, see archivematicaGetRights, archivematicaCreateMETSRightsDspaceMDRef or getTrimFileAmdSec digiprovMD contain PREMIS:EVENT and PREMIS:AGENT, see createDigiprovMD and createDigiprovMDAgents :param fileUUID: UUID of the file :param filePath: For archivematicaCreateMETSRightsDspaceMDRef :param use: If "original", look for rights metadata. :param type: Unused :param sip_uuid: UUID of the SIP this file is in, to check for original file rights metadata. :param transferUUID: UUID of the Transfer this file was in, to check for original file rights metadata. :param itemdirectoryPath: For archivematicaCreateMETSRightsDspaceMDRef :param typeOfTransfer: Transfer type, used for checking for DSpace or TRIM rights metadata. :param baseDirectoryPath: For getTrimFileAmdSec """ global globalAmdSecCounter global globalRightsMDCounter global globalDigiprovMDCounter globalAmdSecCounter += 1 AMDID = "amdSec_%s" % (globalAmdSecCounter.__str__()) AMD = etree.Element(ns.metsBNS + "amdSec", ID=AMDID) ret = (AMD, AMDID) #tech MD AMD.append(createTechMD(fileUUID)) if use == "original": metadataAppliesToList = [(fileUUID, FileMetadataAppliesToType), (sip_uuid, SIPMetadataAppliesToType), (transferUUID, TransferMetadataAppliesToType)] for a in archivematicaGetRights(metadataAppliesToList, fileUUID): globalRightsMDCounter +=1 rightsMD = etree.SubElement(AMD, ns.metsBNS + "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) mdWrap = newChild(rightsMD, ns.metsBNS + "mdWrap") mdWrap.set("MDTYPE", "PREMIS:RIGHTS") xmlData = newChild(mdWrap, ns.metsBNS + "xmlData") xmlData.append(a) if typeOfTransfer == "Dspace": for a in archivematicaCreateMETSRightsDspaceMDRef(fileUUID, filePath, transferUUID, itemdirectoryPath): globalRightsMDCounter +=1 rightsMD = etree.SubElement(AMD, ns.metsBNS + "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) rightsMD.append(a) elif typeOfTransfer == "TRIM": digiprovMD = getTrimFileAmdSec(baseDirectoryPath, sip_uuid, fileUUID) globalDigiprovMDCounter += 1 digiprovMD.set("ID", "digiprovMD_"+ globalDigiprovMDCounter.__str__()) AMD.append(digiprovMD) for a in createDigiprovMD(fileUUID): AMD.append(a) return ret
def getAMDSec(fileUUID, filePath, use, type, id, transferUUID, itemdirectoryPath, typeOfTransfer): global globalAmdSecCounter global globalRightsMDCounter global globalDigiprovMDCounter globalAmdSecCounter += 1 AMDID = "amdSec_%s" % (globalAmdSecCounter.__str__()) AMD = etree.Element("amdSec") AMD.set("ID", AMDID) ret = (AMD, AMDID) #tech MD #digiprob MD AMD.append(createTechMD(fileUUID)) if use == "original": metadataAppliesToList = [ (fileUUID, FileMetadataAppliesToType), (fileGroupIdentifier, SIPMetadataAppliesToType), (transferUUID.__str__(), TransferMetadataAppliesToType) ] for a in archivematicaGetRights(metadataAppliesToList, fileUUID): globalRightsMDCounter += 1 rightsMD = etree.SubElement(AMD, "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) mdWrap = newChild(rightsMD, "mdWrap") mdWrap.set("MDTYPE", "PREMIS:RIGHTS") xmlData = newChild(mdWrap, "xmlData") xmlData.append(a) if typeOfTransfer == "Dspace": for a in archivematicaCreateMETSRightsDspaceMDRef( fileUUID, filePath, transferUUID, itemdirectoryPath): globalRightsMDCounter += 1 rightsMD = etree.SubElement(AMD, "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) rightsMD.append(a) elif typeOfTransfer == "TRIM": digiprovMD = getTrimFileAmdSec(baseDirectoryPath, fileGroupIdentifier, fileUUID) globalDigiprovMDCounter += 1 digiprovMD.set("ID", "digiprovMD_" + globalDigiprovMDCounter.__str__()) AMD.append(digiprovMD) for a in createDigiprovMD(fileUUID): AMD.append(a) for a in createDigiprovMDAgents(): AMD.append(a) return ret
def getAMDSec(fileUUID, filePath, use, type, id, transferUUID, itemdirectoryPath, typeOfTransfer, baseDirectoryPath): global globalAmdSecCounter global globalRightsMDCounter global globalDigiprovMDCounter globalAmdSecCounter += 1 AMDID = "amdSec_%s" % (globalAmdSecCounter.__str__()) AMD = etree.Element(ns.metsBNS + "amdSec") AMD.set("ID", AMDID) ret = (AMD, AMDID) #tech MD #digiprob MD AMD.append(createTechMD(fileUUID)) if use == "original": metadataAppliesToList = [(fileUUID, FileMetadataAppliesToType), (id, SIPMetadataAppliesToType), (transferUUID, TransferMetadataAppliesToType)] for a in archivematicaGetRights(metadataAppliesToList, fileUUID): globalRightsMDCounter +=1 rightsMD = etree.SubElement(AMD, ns.metsBNS + "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) mdWrap = newChild(rightsMD, ns.metsBNS + "mdWrap") mdWrap.set("MDTYPE", "PREMIS:RIGHTS") xmlData = newChild(mdWrap, ns.metsBNS + "xmlData") xmlData.append(a) if typeOfTransfer == "Dspace": for a in archivematicaCreateMETSRightsDspaceMDRef(fileUUID, filePath, transferUUID, itemdirectoryPath): globalRightsMDCounter +=1 rightsMD = etree.SubElement(AMD, ns.metsBNS + "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) rightsMD.append(a) elif typeOfTransfer == "TRIM": digiprovMD = getTrimFileAmdSec(baseDirectoryPath, id, fileUUID) globalDigiprovMDCounter += 1 digiprovMD.set("ID", "digiprovMD_"+ globalDigiprovMDCounter.__str__()) AMD.append(digiprovMD) for a in createDigiprovMD(fileUUID): AMD.append(a) for a in createDigiprovMDAgents(id): AMD.append(a) return ret
def getAMDSec(fileUUID, filePath, use, type, id, transferUUID, itemdirectoryPath): global globalAmdSecCounter global globalRightsMDCounter globalAmdSecCounter += 1 AMDID = "amdSec_%s" % (globalAmdSecCounter.__str__()) AMD = etree.Element("amdSec") AMD.set("ID", AMDID) ret = (AMD, AMDID) # tech MD # digiprob MD AMD.append(createTechMD(fileUUID)) if use == "original": metadataAppliesToList = [ (fileUUID, FileMetadataAppliesToType), (fileGroupIdentifier, SIPMetadataAppliesToType), (transferUUID.__str__(), TransferMetadataAppliesToType), ] for a in archivematicaGetRights(metadataAppliesToList, fileUUID): globalRightsMDCounter += 1 rightsMD = etree.SubElement(AMD, "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) mdWrap = newChild(rightsMD, "mdWrap") mdWrap.set("MDTYPE", "PREMIS:RIGHTS") xmlData = newChild(mdWrap, "xmlData") xmlData.append(a) if transferUUID: sql = "SELECT type FROM Transfers WHERE transferUUID = '%s';" % (transferUUID) rows = databaseInterface.queryAllSQL(sql) if rows[0][0] == "Dspace": for a in archivematicaCreateMETSRightsDspaceMDRef(fileUUID, filePath, transferUUID, itemdirectoryPath): globalRightsMDCounter += 1 rightsMD = etree.SubElement(AMD, "rightsMD") rightsMD.set("ID", "rightsMD_" + globalRightsMDCounter.__str__()) rightsMD.append(a) for a in createDigiprovMD(fileUUID): AMD.append(a) for a in createDigiprovMDAgents(): AMD.append(a) return ret