示例#1
0
    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
示例#2
0
    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()
示例#3
0
    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
示例#5
0
 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)
示例#6
0
    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