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()
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()
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