示例#1
0
def get_active_schedule(min_time=None, max_time=None, cur=None):
    sql = ("select * from xxx")
    result = session.execute(sql)
    session.commit()
    items = []
    for item in result:
        next_run_time = item[9]
        if not next_run_time:
            items.append(item)
        elif next_run_time <= cur:
            items.append(item)
    return items
示例#2
0
def get_host(instance_name, db_type, db_role=None):
    if db_type == 'DBT:MG':
        sql = ("select host from ccm_host where instance_name = {}".format(
            instance_name))
    elif db_type == 'DBT:P' or db_type == 'DBT:MY':
        sql = ("select host from ccm_host where"
               " instance_name = {} and db_role = {}".format(instance_name,
                                                             db_role))
    else:
        raise ParamError('error')
    result = session.execute(sql).fetchall()
    session.commit()
    host = ''
    if result:
        host = result[0][0]
    return host
示例#3
0
def get_one_schedule(entity_name):
    sql = ("select * from xxx where entity_name = {}".format(entity_name))
    result = session.execute(sql).fetchall()
    session.commit()
    items = []
    for item in result:
        if item[5]:
            last_bkfile_mtime = datetime_to_datetime_str(item[5])
        if item[6]:
            next_run_time = datetime_to_datetime_str(item[6])
        schedule = dict(id_st_bk_dblog_schedule=item[0],
                        id_st_backup_policy=item[1],
                        entity_name=item[2], logbk_interval_min=item[3],
                        schedule_status=item[4],
                        last_bkfile_mtime=last_bkfile_mtime,
                        next_run_time=next_run_time
                        )
        items.append(schedule)
    return items
示例#4
0
def filter_schedule_and_host(items):
    new_items = []
    tmp_instance_name = set()
    for item in items:
        db_type, entity_name = item[2], item[3]
        instance_name, instance_id = item[4], item[0]
        db_role = item[6]

        if instance_name in tmp_instance_name:
            continue

        if db_type == 'DBT:P':
            sql = (
                "select * in xxx1 where entity like '%{}%'".format(entity_name))
        elif db_type == 'DBT:MY':
            sql = (
                "select * in xxx2 where entity like '%{}%'".format(entity_name))
        elif db_type == 'DBT:MG':
            sql = (
                "select * in xxx3 where entity like '%{}%'".format(entity_name))
        else:
            continue

        result = session.execute(sql).fetchall()
        session.commit()

        if not result:
            continue

        try:
            host = get_host(instance_name, db_type, db_role)
        except Exception:
            continue

        if len(result[0]) >= 2:
            if result[0][1] == instance_id:
                new_items.append(list(item) + [host])
                tmp_instance_name.add(instance_name)
        else:
            if instance_name == result[0][0]:
                new_items.append(list(item) + [host])
    return new_items
示例#5
0
def get_all_schedule():
    sql = ("select * from xxx")
    result = session.execute(sql)
    session.commit()
    return result
示例#6
0
def update_interval(id_db_backup_policy, logbk_interval_min):
    sql = ("update xxx set logbk_interval_min = "
           "{0} where id_db_backup_policy = {1}".format(logbk_interval_min,
                                                        id_db_backup_policy))
    session.execute(sql)
    session.commit()