1
0
Fork 0
mirror of https://gitlab.wikimedia.org/ladsgroup/Phabricator-maintenance-bot synced 2024-11-08 13:12:38 +01:00

new_wikis_handler: Simplify DNS checkbox's logic

Instead of determining where the change should be made,
let's try to resolve. This will catch "extremely special"
wikis like T256545, but also (rare) cases "patch merged, but DNS
fails for whatever reason".
This commit is contained in:
Martin Urbanec 2020-07-10 20:44:29 +00:00
parent 26eb484799
commit 8fb88d5eda

View file

@ -1,6 +1,7 @@
import base64
import json
import re
import socket
import requests
@ -22,18 +23,12 @@ def get_file_from_gerrit(path):
return base64.b64decode(requests.get(url).text).decode('utf-8')
def handle_non_special_wikis(parts, language_code):
if language_code != parts[0]:
return
dns_file = get_file_from_gerrit('operations/dns/+/master/templates/helpers/langlist.tmpl')
return f"'{language_code}'" in dns_file
def handle_special_wiki_dns(parts):
dns_file = get_file_from_gerrit('operations/dns/+/master/templates/wikimedia.org')
name = parts[0]
return f"\n{name}" in dns_file
def hostname_resolves(hostname):
try:
socket.gethostbyname(hostname)
except socket.error:
return False
return True
def handle_special_wiki_apache(parts):
apache_file = get_file_from_gerrit('operations/puppet/+/production/modules/mediawiki/manifests/web/prod_sites.pp')
@ -84,15 +79,10 @@ def hande_task(phid):
if len(parts) != 3 or parts[2] != 'org':
return
if parts[1] == 'wikimedia':
dns = handle_special_wiki_dns(parts)
special = True
dns_url = gerrit_path + 'operations/dns/+/master/templates/wikimedia.org'
special = parts[1] == 'wikimedia'
dns_url = gerrit_path + 'operations/dns/+/master/templates/wikimedia.org' if special else gerrit_path + 'operations/dns/+/master/templates/helpers/langlist.tmpl'
else:
dns = handle_non_special_wikis(parts, language_code)
dns_url = gerrit_path + 'operations/dns/+/master/templates/helpers/langlist.tmpl'
special = False
dns = hostname_resolves(url)
if not dns:
add_text(' [] [[{}|DNS]]'.format(dns_url))
if special: