Newer
Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
Check that the skyreach server is reachable.
'''
import os
import re
import requests
import sys
# SkyReach APT file test
apt_source = '/etc/apt/sources.list.d/skyreach.list'
if not os.path.exists(apt_source):
print('The file "%s" does not exists.' % apt_source)
sys.exit(1)
with open(apt_source, 'r') as fo:
content = fo.read()
# content hould be something like:
# # skyreach repo
# deb https://panel.ubicast.eu packaging/apt/s0000000000000000000000000000000/
expected = r'^deb (http[s]{0,1}://[A-Za-z0-9\.\-\_]+) packaging/apt/([A-Za-z0-9]+)/$'
url = None
api_key = None
if content:
for line in content.split('\n'):
m = re.match(expected, line)
if m:
url, api_key = m.groups()
if not url or not api_key:
print('The file "%s" is not correct: skyreach url not found.' % apt_source)
sys.exit(1)
print('SkyReach url is %s and API key is %s[...].' % (url, api_key[:8]))
# Test SkyReach responses
req = requests.get(url)
if not req.ok:
print('Request to %s failed (%s):' % (url, req.status_code))
print(req.text)
else:
print('Request to %s: OK.' % url)
apt_url = '%s/packaging/apt/%s/Packages' % (url, api_key)
req = requests.get(apt_url)
apt_url = apt_url.replace(api_key, api_key[:8] + '[...]')
if not req.ok:
print('Request to %s failed (%s):' % (apt_url, req.status_code))
print(req.text)
else:
print('Request to %s: OK.' % apt_url)