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)
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']))