def get_histo(self, dbName='', acc='', tag='', since=''):
        self.check_dbName_acc(dbName, acc, since)
        '''Returns histo. 
        All arguments in get_histo method have default value equal to '' just
        for avoiding exception if some parameter is missing.

        For testing:
        http://HOSTNAME:PORT/get_histo?dbName=oracle://cms_orcoff_prod/CMS_COND_31X_ECAL&tag=EcalIntercalibConstants_EBg50_EEnoB&since=1
        '''

        try:
            tmpdb = self.masker.unmask_dbname(dbName)
            db = av.get_validated_dbname(value=tmpdb,
                                         acc=self.masker.unmask_schema(
                                             tmpdb, acc))
            vtag = av.get_validated_tag(dbName=db, value=tag)
            vsince = av.get_validated_since(value=since.strip(),
                                            db=db,
                                            tag=vtag,
                                            onlyone=True)
            directory = self.__histodir
            histo = SubdetectorFactory.getHistoInstance(dbName=db,
                                                        tag=vtag,
                                                        since=vsince,
                                                        fileType='png',
                                                        directory=directory)
            histoData = histo.get()
        except:
            return 'Tag doesn\'t exist'
        else:
            cherrypy.response.headers['Content-Type'] = 'image/png'
            return histoData
 def get_plot_cmp(self, dbName1 = '', acc1='',tag1 = '', since1 = '1', fileType1 = 'png', png1 = '',
                 dbName2 = '', acc2='',tag2 = '', since2 = '1', fileType2 = 'png', png2 = '', type='3', istkmap = '1'):
     self.check_dbName_acc(dbName1, acc1, since1);
     self.check_dbName_acc(dbName2, acc2, since2);
     if fileType1 != "png" and fileType2 != "png":
         cherrypy.HTTPError(405, "Bad file type !!!!!")
     tmpdb = self.masker.unmask_dbname(dbName1)
     db = av.get_validated_dbname(value = tmpdb, acc = self.masker.unmask_schema(tmpdb, acc1))
     vtag = av.get_validated_tag(dbName = db, value = tag1)
     vsince = av.get_validated_since(value = since1.strip(), db = db, tag = vtag, onlyone = True)
     plot = SubdetectorFactory.getPlotInstance(dbName = db, tag = vtag, since = vsince, 
                                             fileType = fileType1, directory = self.__plotsdir, image = png1)
     img1 = plot.get(get_fname = True)
     tmpdb = self.masker.unmask_dbname(dbName2)
     db = av.get_validated_dbname(value = tmpdb, acc = self.masker.unmask_schema(tmpdb, acc2))
     vtag = av.get_validated_tag(dbName = db, value = tag2)
     vsince = av.get_validated_since(value = since2.strip(), db = db, tag = vtag, onlyone = True)
     plot = SubdetectorFactory.getPlotInstance(dbName = db, tag = vtag, since = vsince, 
                                             fileType = fileType2, directory = self.__plotsdir, image = png2)
     img2 = plot.get(get_fname = True)
     #raise Exception('asdasd'+img2)
     '''if type == '1':
         img3 = ImageChops.subtract(img1, img2, scale=1, offset=128)
     elif type == '2':
         img3 = ImageChops.subtract(img2, img1, scale=1, offset=128)
     elif type == '3':
         img3 =  ImageChops.difference(img1, img2)
     elif type == '4':
         img3 = ImageChops.subtract(img1, img2, scale=1, offset=0)
     else:
         img3 = ImageChops.subtract(img2, img1, scale=1, offset=0)
     '''
     if not os.path.isdir(self.__tmpdir):
         os.makedirs(self.__tmpdir)
     temp = tempfile.TemporaryFile(dir = self.__tmpdir)
     plotTxt = ""
     if re.search('strip', vtag.lower()):
         plotTxt = 'ABSOLUTE DIFFERENCE  (The more lighter colors, the higher the difference.)'
     cmpPNG.CmpTrackerDiff(fileName1 = img1, fileName2 = img2, result = temp,
                txt = plotTxt,
                debug = False)
     #img3.save(temp, 'png')
     temp.seek(0)
     cherrypy.response.headers['Content-Type'] = 'image/' + fileType1
     data = temp.read()
     temp.close()
     return data
    def get_histo(self, dbName='', acc='',tag='', since=''):
        self.check_dbName_acc(dbName, acc, since);
        '''Returns histo. 
        All arguments in get_histo method have default value equal to '' just
        for avoiding exception if some parameter is missing.

        For testing:
        http://HOSTNAME:PORT/get_histo?dbName=oracle://cms_orcoff_prod/CMS_COND_31X_ECAL&tag=EcalIntercalibConstants_EBg50_EEnoB&since=1
        '''
        
        try:
            tmpdb = self.masker.unmask_dbname(dbName)
            db = av.get_validated_dbname(value = tmpdb, acc = self.masker.unmask_schema(tmpdb, acc))
            vtag = av.get_validated_tag(dbName = db, value = tag)
            vsince = av.get_validated_since(value = since.strip(), db = db, tag = vtag, onlyone = True)
            directory = self.__histodir
            histo = SubdetectorFactory.getHistoInstance(dbName = db, tag = vtag, 
                                                    since = vsince, fileType = 'png', directory = directory)
            histoData = histo.get()
        except:
            return 'Tag doesn\'t exist'
        else:
            cherrypy.response.headers['Content-Type'] = 'image/png'
            return histoData
 def get_plot_cmp(self,
                  dbName1='',
                  acc1='',
                  tag1='',
                  since1='1',
                  fileType1='png',
                  png1='',
                  dbName2='',
                  acc2='',
                  tag2='',
                  since2='1',
                  fileType2='png',
                  png2='',
                  type='3',
                  istkmap='1'):
     self.check_dbName_acc(dbName1, acc1, since1)
     self.check_dbName_acc(dbName2, acc2, since2)
     if fileType1 != "png" and fileType2 != "png":
         cherrypy.HTTPError(405, "Bad file type !!!!!")
     tmpdb = self.masker.unmask_dbname(dbName1)
     db = av.get_validated_dbname(value=tmpdb,
                                  acc=self.masker.unmask_schema(
                                      tmpdb, acc1))
     vtag = av.get_validated_tag(dbName=db, value=tag1)
     vsince = av.get_validated_since(value=since1.strip(),
                                     db=db,
                                     tag=vtag,
                                     onlyone=True)
     plot = SubdetectorFactory.getPlotInstance(dbName=db,
                                               tag=vtag,
                                               since=vsince,
                                               fileType=fileType1,
                                               directory=self.__plotsdir,
                                               image=png1)
     img1 = plot.get(get_fname=True)
     tmpdb = self.masker.unmask_dbname(dbName2)
     db = av.get_validated_dbname(value=tmpdb,
                                  acc=self.masker.unmask_schema(
                                      tmpdb, acc2))
     vtag = av.get_validated_tag(dbName=db, value=tag2)
     vsince = av.get_validated_since(value=since2.strip(),
                                     db=db,
                                     tag=vtag,
                                     onlyone=True)
     plot = SubdetectorFactory.getPlotInstance(dbName=db,
                                               tag=vtag,
                                               since=vsince,
                                               fileType=fileType2,
                                               directory=self.__plotsdir,
                                               image=png2)
     img2 = plot.get(get_fname=True)
     #raise Exception('asdasd'+img2)
     '''if type == '1':
         img3 = ImageChops.subtract(img1, img2, scale=1, offset=128)
     elif type == '2':
         img3 = ImageChops.subtract(img2, img1, scale=1, offset=128)
     elif type == '3':
         img3 =  ImageChops.difference(img1, img2)
     elif type == '4':
         img3 = ImageChops.subtract(img1, img2, scale=1, offset=0)
     else:
         img3 = ImageChops.subtract(img2, img1, scale=1, offset=0)
     '''
     if not os.path.isdir(self.__tmpdir):
         os.makedirs(self.__tmpdir)
     temp = tempfile.TemporaryFile(dir=self.__tmpdir)
     plotTxt = ""
     if re.search('strip', vtag.lower()):
         plotTxt = 'ABSOLUTE DIFFERENCE  (The more lighter colors, the higher the difference.)'
     cmpPNG.CmpTrackerDiff(fileName1=img1,
                           fileName2=img2,
                           result=temp,
                           txt=plotTxt,
                           debug=False)
     #img3.save(temp, 'png')
     temp.seek(0)
     cherrypy.response.headers['Content-Type'] = 'image/' + fileType1
     data = temp.read()
     temp.close()
     return data