def buildSipReportFile(self): if self.debug!=0: print " build sip report" # self.info() # #reportFolderName=os.path.split(self.sourceBrowsesPath[0])[0] #reportFolderName=self.folder # sipReportBuilder=SIPInfo.SIPInfo() self.sipReport=self.formatXml(sipReportBuilder.buildMessage(self.metadata, "SIPInfo"), self.folder, 'sip_report') if self.debug!=0: print " sip report content:\n%s" % self.sipReport ext=definitions_EoSip.getDefinition("SI_EXT") sipName="%s.%s" % (self.productShortName, ext) if self.debug!=0: print " sip report name:%s" % (sipName) # self.sipReport=self.sanitizeXml(self.sipReport) # write it self.sipFullPath="%s/%s" % (self.folder, sipName) fd=open(self.sipFullPath, "w") fd.write(self.sipReport) fd.close() if self.debug!=0: print " sip report written at path:%s" % self.sipFullPath return self.sipFullPath
def writeToFolder(self, p=None): if self.packageName==None: raise Exception("Eo-Sip product has no package name") if self.debug==0: print "\n will write EoSip product at folder path:%s" % p if p[-1]!='/': p=p+'/' self.path="%s%s" % (p, self.packageName) if self.debug==0: print " full eoSip path:%s" % self.path # create folder neeedd if not os.path.exists(p): os.makedirs(p) # remove precedent zip if any if os.path.exists(self.path): os.remove(self.path) # create zip zipf = zipfile.ZipFile(self.path, 'w') # write product itself # # two case: # - source is already a zip file ==> just rename it # - source is not a zip file ==> compress into a zip if self.debug!=0: print " write EoSip content[0]; product itself:%s as:%s" % (self.sourceProductPath, self.productName) if self.sourceProductPath.lower()[-4:]==".zip": zipf.write(self.sourceProductPath, self.productName, zipfile.ZIP_STORED) else: # zip source product #zipf.write(self.sourceProductPath, self.productName, zipfile.ZIP_STORED) tmpProductZippedPath="%s/productZipped.zip" % (self.folder) zipTmpProduct = zipfile.ZipFile(tmpProductZippedPath, 'w') zipTmpProduct.write(self.sourceProductPath, os.path.split(self.sourceProductPath)[1], zipfile.ZIP_STORED) zipTmpProduct.close() zipf.write(tmpProductZippedPath, self.productName, zipfile.ZIP_STORED) # write browses images + reports for browsePath in self.sourceBrowsesPath: folder=os.path.split(browsePath)[0] bmet=self.browse_metadata_dict[browsePath] name= "%s.%s" % (self.productShortName, definitions_EoSip.getDefinition('BROWSE_JPEG_EXT')) if self.debug==0: print " write EoSip content[1]; product browse:%s as:%s" % (browsePath, name) zipf.write(browsePath, name) # name=bmet.getMetadataValue(browse_metadata.BROWSE_METADATA_REPORT_NAME) path = "%s/%s" % (folder, name) zipf.write(path, name) # # write product reports zipf.write(self.reportFullPath, os.path.split(self.reportFullPath)[1]) # write sip report zipf.write(self.sipFullPath, os.path.split(self.sipFullPath)[1]) zipf.close()
def buildProductReportFile(self): if self.debug==0: print "\n build product metadata report" print " Eo-Sip metadata dump:\n%s" % self.metadata.toString() # make the report xml data productReportBuilder=rep_metadataReport.rep_metadataReport() self.metadata.debug=1 #typologyUsed = self.metadata.getOtherInfo("TYPOLOGY_SUFFIX") #if typologyUsed=='': xmldata=productReportBuilder.buildMessage(self.metadata, "rep:metadataReport") # add the local attributes attr=self.metadata.getLocalAttribute() print " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ length localattributes:%s" % len(attr) if len(attr) > 0: n=0 res="<eop:vendorSpecific>" for adict in attr: key=adict.keys()[0] value=adict[key] print " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ localattributes[%d]: %s=%s" % (n, key, value) res = "%s<eop:SpecificInformation><eop:localAttribute>%s</eop:localAttribute><eop:localValue>%s</eop:localValue></eop:SpecificInformation>" % (res, key, value) n=n+1 res="%s</eop:vendorSpecific>" % res print " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ localattributes block:%s" % res pos = xmldata.find("<LOCAL_ATTR></LOCAL_ATTR>") if pos >= 0: xmldata=xmldata.replace("<LOCAL_ATTR></LOCAL_ATTR>", res) else: print " @@@@@@@@@@@@@@@@@@@@@@@@@ !!!!!!!!!!!!!!!!!!! no <LOCAL_ATTR></LOCAL_ATTR> block found" # verify xml, build file name self.productReport=self.formatXml(xmldata, self.folder, 'product_report') if self.debug!=0: print " product report content:\n%s" % self.productReport ext=definitions_EoSip.getDefinition("XML_EXT") reportName="%s.%s" % (self.productShortName, ext) if self.debug!=0: print " product report name:%s" % (reportName) # sanitize test self.productReport=self.sanitizeXml(self.productReport) # write it self.reportFullPath="%s/%s" % (self.folder,reportName) fd=open(self.reportFullPath, "w") fd.write(self.productReport) fd.close() if self.debug!=0: print " product report written at path:%s" % self.reportFullPath return self.reportFullPath
def buildProductReportFile(self): if self.debug==0: print "\n build product metadata report" print " Eo-Sip metadata dump:\n%s" % self.metadata.toString() # reportFolderName=os.path.split(self.sourceBrowsesPath[0])[0] # productReportBuilder=rep_metadataReport.rep_metadataReport() self.productReport=self.formatXml(productReportBuilder.buildMessage(self.metadata, "rep:metadataReport"), reportFolderName, 'product_report') if self.debug!=0: print " product report content:\n%s" % self.productReport ext=definitions_EoSip.getDefinition("XML_EXT") reportName="%s.%s" % (self.productShortName, ext) if self.debug!=0: print " product report name:%s" % (reportName) # write it self.reportFullPath="%s/%s" % (reportFolderName,reportName) fd=open(self.reportFullPath, "w") fd.write(self.productReport) fd.close() if self.debug!=0: print " product report written at path:%s" % self.reportFullPath return self.reportFullPath
def buildackageName(self): self.packageName=self.productName.replace(".%s"% self.extension, ".%s" % definitions_EoSip.getDefinition('PACKAGE_EXT')) self.metadata.setMetadataPair(metadata.METADATA_PACKAGENAME, self.packageName)
def buildBrowsesReportFile(self): #if self.debug!=0: if self.debug!=0: print " build browse metadata reports" # n=0 browseReport=None browseReportName=None allBrowseReportNames=[] i=0 for browsePath in self.sourceBrowsesPath: bmet=self.browse_metadata_dict[browsePath] if self.debug!=0: print " build browse metadata report[%d]:%s\n%s" % (n, browsePath, bmet.toString()) # browseReportName="%s.%s" % (bmet.getMetadataValue(browse_metadata.BROWSE_METADATA_NAME), definitions_EoSip.getDefinition('XML_EXT')) bmet.setMetadataPair(browse_metadata.BROWSE_METADATA_REPORT_NAME, browseReportName) allBrowseReportNames.append(browseReportName) if self.debug!=0: print " browse metadata report[%d] name:%s" % (n, browseReportName) browseReportBuilder=rep_browseReport.rep_browseReport() #browseReportBuilder.debug=1 browseReport=self.formatXml(browseReportBuilder.buildMessage(bmet, "rep:browseReport"), self.folder, 'browse_report_%d' % i) # add BROWSE_CHOICE block browseReport=browseReport.replace('<BROWSE_CHOICE></BROWSE_CHOICE>', bmet.getMetadataValue(browse_metadata.METADATA_BROWSE_CHOICE)) if self.debug!=0: print " browse report content:\n%s" % browseReport # browseReport=self.sanitizeXml(browseReport) # # write it browseFullPath="%s/%s" % (self.folder, browseReportName) self.browseFullPath.append(browseFullPath) #print " browse report content:\n%s" % browseReport fd=open(browseFullPath, "w") fd.write(browseReport) fd.close() if self.debug!=0: print " browse report written at path:%s" % self.browseFullPath i=i+1 return allBrowseReportNames