#!/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)) # 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) 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)