示例#1
0
文件: MDB_CLI.py 项目: monarin/lcls2
    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()
示例#2
0
def scan_calib_for_experiment(exp='cxix25615', **kwargs):

    host = kwargs.get('host', None)
    port = kwargs.get('port', None)
    user = kwargs.get('user', None)
    upwd = kwargs.get('upwd', None)
    verbose = kwargs.get('verbose', False)

    client = dbu.connect_to_server(host, port, user, upwd)
    dbname = dbu.db_prefixed_name(exp)
    if dbu.database_exists(client, dbname):
        msg = 'Experiment %s already has a database. Consider to delete it from the list:\n%s'%\
              (exp, str(dbu.database_names(client)))+\
              '\nBefore adding consider to delete existing DB using command: cdb deldb --dbname %s -C -u <username> -p <password>' % dbname
        logger.warning(msg)
        return

    dircalib = nm.dir_calib(exp)
    #if verbose :
    logger.info('Scan: %s' % dircalib)

    for dir0 in gu.get_list_of_files_in_dir_for_part_fname(dircalib,
                                                           pattern='::'):
        if not os.path.isdir(dir0): continue
        calibvers = os.path.basename(dir0)
        logger.debug('  %s ' % calibvers)

        for dir1 in gu.get_list_of_files_in_dir_for_part_fname(dir0,
                                                               pattern=':'):
            if not os.path.isdir(dir1): continue
            detname = os.path.basename(dir1)
            detname_m = detname_conversion(detname)
            logger.debug('    %s' % detname_m)

            for cftype in gu.get_list_of_files_in_dir(dir1):
                if not (cftype in cc.list_calib_names): continue
                dir2 = '%s/%s' % (dir1, cftype)
                if not os.path.isdir(dir2): continue
                logger.debug('      %s' % cftype)

                cfdir = '%s/%s/%s/%s' % (dircalib, calibvers, detname, cftype)
                listdicts = history_list_of_dicts('%s/HISTORY' % cfdir,
                                                  verbose)
                #logger.debug('XXX listdicts %s' % listdicts)
                count = 0
                for fname in gu.get_list_of_files_in_dir(dir2):
                    logger.debug('        %s' % fname)
                    if fname == 'HISTORY': continue
                    if os.path.splitext(fname)[1] != '.data': continue
                    logger.debug('  XXX begin adding: %s %s %s %s' %
                                 (dircalib, detname_m, cftype, fname))
                    add_calib_file_to_cdb(exp, dircalib, calibvers, detname_m,
                                          cftype, fname, cfdir, listdicts,
                                          **kwargs)
                    count += 1

                logger.info('  converted %3d files from: %s' % (count, cfdir))
示例#3
0
文件: MDB_CLI.py 项目: monarin/lcls2
    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()
示例#4
0
def database_names(client=None):
    """
    """
    if client is None:
        client = connect_client()
    return dbu.database_names(client)
示例#5
0
文件: MDB_CLI.py 项目: monarin/lcls2
 def test(self):
     host, port, dbname, fname = self.host_port_dbname_fname()
     dbnames = dbu.database_names(self.client())
     logger.info('XXX : dbnames:' % dbnames)
示例#6
0
 def test(self):
     host, port, dbname, fname = self.host_port_dbname_fname()
     dbnames = dbu.database_names(self.client())
     logger.info('dbnames: %s' % ', '.join(dbnames))