Skip to content
Snippets Groups Projects
Commit ceac16a7 authored by Stéphane Diemer's avatar Stéphane Diemer
Browse files

Test vhost IP in Nginx test (refs #20060).

parent f43ce37c
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
Check the response status code of all enabled vhosts.
Allowed status code are: 403 and 200.
Also check Wowza response for all mediaserver vhosts.
This script checks for all enabled vhosts in Nginx conf that:
* The response status code is 200 or 403.
* The host is resolved as 127.0.0.1.
* The Wowza response is correct on /streaming/ (only for mediaserver vhosts).
'''
import os
import re
import requests
import socket
import sys
......@@ -48,34 +50,39 @@ for name in os.listdir(nginx_dir):
found = True
url = '%s://%s' % ('https' if https else 'http', domain)
sys.stdout.write('Testing url "%s": ' % url)
try:
req = requests.get(url, verify=False, proxies={'http': '', 'https': ''}, timeout=10)
except Exception as e:
code = str(e)
else:
code = req.status_code
if code not in (200, 403):
sys.stdout.write('\033[91mKO (%s)\033[0m' % code)
ip = socket.gethostbyname(domain)
if ip != '127.0.0.1':
sys.stdout.write('\033[91mKO (domain is not resolved with 127.0.0.1)\033[0m')
errors += 1
else:
sys.stdout.write('\033[92mOK (%s)\033[0m' % code)
if 'mediaserver' in name and wowza_dir:
# test /streaming url
sys.stdout.write(', streaming: ')
try:
req = requests.get(url + '/streaming/', verify=False, proxies={'http': '', 'https': ''}, timeout=10)
except Exception as e:
code = str(e)
else:
code = req.status_code
if code != 200:
sys.stdout.write('\033[91mKO (%s)\033[0m' % code)
errors += 1
elif 'Wowza Streaming Engine' not in req.text:
sys.stdout.write('\033[91mKO (%s, %s)\033[0m' % (code, req.text.replace('\n', ' ')[:200]))
errors += 1
else:
sys.stdout.write('\033[92mOK (%s)\033[0m' % code)
try:
req = requests.get(url, verify=False, proxies={'http': '', 'https': ''}, timeout=10)
except Exception as e:
code = str(e)
else:
code = req.status_code
if code not in (200, 403):
sys.stdout.write('\033[91mKO (%s)\033[0m' % code)
errors += 1
else:
sys.stdout.write('\033[92mOK (%s)\033[0m' % code)
if 'mediaserver' in name and wowza_dir:
# test /streaming url
sys.stdout.write(', streaming: ')
try:
req = requests.get(url + '/streaming/', verify=False, proxies={'http': '', 'https': ''}, timeout=10)
except Exception as e:
code = str(e)
else:
code = req.status_code
if code != 200:
sys.stdout.write('\033[91mKO (%s)\033[0m' % code)
errors += 1
elif 'Wowza Streaming Engine' not in req.text:
sys.stdout.write('\033[91mKO (%s, %s)\033[0m' % (code, req.text.replace('\n', ' ')[:200]))
errors += 1
else:
sys.stdout.write('\033[92mOK (%s)\033[0m' % code)
sys.stdout.write('.\n')
if errors:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment