示例#1
0
def pg_info(cluster_name, pg_id, cluster_json=None):
    if cluster_json == None:
        cluster_json = cluster_info(cluster_name)
        if cluster_json['state'] != 'success':
            warn(red("Cluster '%s' doesn't exist." % cluster_name))
            return None

    slot_map = util.slot_rle_to_map(cluster_json['data']['cluster_info']['PN_PG_Map'])

    cm_conn.write('pg_info %s %d\r\n' % (cluster_name, pg_id))
    reply = cm_conn.read_until('\r\n', timeout)
    return pgstr_to_json(pg_id, reply, slot_map)
示例#2
0
def pg_infos(cluster_name, pg_ids):
    cluster_json = cluster_info(cluster_name)
    if cluster_json['state'] != 'success':
        warn(red("Cluster '%s' doesn't exist." % cluster_name))
        return None

    slot_map = util.slot_rle_to_map(cluster_json['data']['cluster_info']['PN_PG_Map'])

    cmd = ''
    for pg_id in pg_ids:
        cmd = cmd + 'pg_info %s %s\r\n' % (cluster_name, pg_id.encode('ascii'))

    cm_conn.write(cmd)

    pg_list = []
    for i in range(len(pg_ids)):
        reply = cm_conn.read_until('\r\n', timeout)
        pg_json = pgstr_to_json(int(pg_ids[i]), reply, slot_map)
        pg_list.append(pg_json)

    return sorted(pg_list, key=lambda x: int(x['pg_id']))