Example #1
0
    def deldb(self):
        """Deletes specified database.
        """
        mode, kwargs = self.mode, self.kwargs
        dbname = dbu.get_dbname(**kwargs)
        client = self.client()
        if not self.check_database(client, dbname): return
        logger.info('Command mode "%s" database "%s"' % (mode, dbname))
        logger.info('Databases before:\n%s' % str(dbu.database_names(client)))

        if kwargs.get('confirm', False):
            dbu.delete_database(client, dbname)
            logger.info('Databases after:\n%s' %
                        str(dbu.database_names(client)))
        else:
            dbu.request_confirmation()
Example #2
0
    def delall(self):
        """USED FOR DEVELOPMENT: Deletes all databases with prefix in the name.
        """
        mode, kwargs = self.mode, self.kwargs
        client = self.client()
        prefix = dbu.db_prefixed_name('')
        dbnames = dbu.database_names(client)
        logger.info('Databases before "%s":\n%s' % (mode, str(dbnames)))
        #confirm = kwargs.get('confirm', False)
        confirm = True
        for dbname in dbu.database_names(client):
            if prefix in dbname:
                logger.info('delete %s' % dbname)
                if confirm:
                    dbu.delete_database(client, dbname)

        if confirm:
            logger.info('Databases after "%s" %s:\n%s' %
                        (mode, dbname, str(dbu.database_names(client))))
        else:
            dbu.request_confirmation()
Example #3
0
def test_xtcav_calib_constants(fname=
                               '/reg/d/psdm/XPP/xpptut15/calib/Xtcav::CalibV1/XrayTransportDiagnostic.0:Opal1000.0/pedestals/101-102.data',\
                               add_constants_to_db=False) :

    _, exp, _, cvers, detname, ctype, cfname = fname.rsplit('/',6) 
    resp = parse_calib_file_name(cfname)
    begin, end, ext = resp if resp is not None else (None, None, None)
    det = detname_conversion(detname)
    run = begin
    dbname_exp = dbu.db_prefixed_name(exp)
    dbname_det = dbu.db_prefixed_name(det)

    print('LCLS1 Xtcav calibration file: %s' % fname)
    print('Parameters form path: exp:%s det:%s ctype:%s run:%s dbname_exp:%s dbname_det:%s'%\
          (exp, det, ctype, run, dbname_exp, dbname_det))

    #Save(ct,fname)
    o1 = Load(fname)
    d1 = dict_from_xtcav_calib_object(o1)
    print('Xtcav calibration constants as dict:\n', d1)

    if not add_constants_to_db : return
    #==================================

    #---- Delete databases for experiment and detector

    client = dbu.connect_to_server(HOST, PORT)
    print('Open client on host:%s port:%s' % (HOST, PORT))

    print('Delete database %s'% dbname_exp)
    dbu.delete_database(client, dbname_exp)

    print('Delete database %s'% dbname_det)
    dbu.delete_database(client, dbname_det)

    #---- Add data to experiment and detector dbs
    print('Add Xtcav constants') 

    kwargs = {'host' : HOST,\
              'port' : PORT,\
              'version' : 'V01',\
              'comment' : 'test of add-retrieve xtcav constants'
             }
    #insert_calib_data(data, *kwargs)
    dbu.insert_constants(o1, exp, det, ctype, run, time_sec='1000000000', **kwargs)

    #msg = dbu.database_info(client, dbname_exp, level=10)
    #print(msg)

    print('Xtcav constants inserted, now retrieve them from db:%s collection:%s' % (dbname_exp, det))

    db, fs = dbu.db_and_fs(client, dbname_exp)
    col = dbu.collection(db, det)

    #for doc in col.find() :
    #    print(doc)

    doc = dbu.find_doc(col, query={'ctype':ctype, 'run':run})
    print('Found doc:\n', doc)

    o2 = dbu.get_data_for_doc(fs, doc)
    d2 = dict_from_xtcav_calib_object(o2)
    print('Xtcav calib object converted to dict:\n', d2)

    #print('cmp(d1,d2) :', str(d1==d2))

    print('\nCompare dictionaries for Xtcav calib objects loaded directly from calib file and passed through the CDB')
    compare_dicts(d1,d2)

    client.close()
    return