Page MenuHomePhabricator
Paste P22832

(An Untitled Masterwork)
ActivePublic

Authored by Ladsgroup on Mar 18 2022, 4:10 PM.
Tags
None
Referenced Files
F35011216: raw-paste-data.txt
Mar 18 2022, 4:37 PM
F35011193: raw-paste-data.txt
Mar 18 2022, 4:16 PM
F35011185: raw-paste-data.txt
Mar 18 2022, 4:10 PM
Subscribers
None
import json
import requests
import sys
data_ = requests.get('https://orchestrator.wikimedia.org/api/cluster/alias/' + sys.argv[1]).json()
db_data = []
for db in data_:
analyzed_db = {}
if db['Key']['Hostname'].startswith('dbstore'):
# let's not promote dbstore to master
continue
if db['MasterKey']['Hostname'] + ':' + str(db['MasterKey']['Port']) != db['ClusterName']:
# not a direct replica
continue
if db['Replicas']:
analyzed_db['has replicas'] = True
name = db['Key']['Hostname'] + ':' + str(db['Key']['Port'])
analyzed_db['name'] = name
if db['Problems']:
analyzed_db['problems'] = db['Problems']
if db['Key']['Port'] != 3306:
analyzed_db['multiinstace'] = True
analyzed_db['binlog format'] = db['Binlog_format']
analyzed_db['position'] = '{}:{}'.format(db['ExecBinlogCoordinates']['LogFile'], db['ExecBinlogCoordinates']['LogPos'])
db_data.append(analyzed_db)
db_data = sorted(db_data, key=lambda i: i['position'], reverse=True)
print('\n'.join([json.dumps(i) for i in db_data]))