Files

45 lines
1.4 KiB
Python

#!/usr/bin/env python3
"""Verify URLs return valid HTTP responses."""
import sys
import urllib.request
import urllib.error
from datetime import datetime
def check_url(url, timeout=10):
"""Check if URL is accessible, return (status_code, error_msg)."""
try:
req = urllib.request.Request(url, method='HEAD')
with urllib.request.urlopen(req, timeout=timeout) as resp:
return resp.status, None
except urllib.error.HTTPError as e:
return e.code, str(e)
except urllib.error.URLError as e:
return None, str(e.reason)
except Exception as e:
return None, str(e)
def main():
urls = sys.argv[1:] if len(sys.argv) > 1 else [
'https://httpbin.org/status/200',
'https://httpbin.org/status/404',
'https://httpbin.org/status/500',
]
results = []
for url in urls:
status, error = check_url(url)
timestamp = datetime.utcnow().isoformat()
result = {'url': url, 'status': status, 'error': error, 'timestamp': timestamp}
results.append(result)
print(f"{status or 'FAIL'}: {url}")
# Export results
output_path = '/root/.hermes/wizard-outputs/spark/url_results.json'
import json
with open(output_path, 'w') as f:
json.dump(results, f, indent=2)
print(f"\nResults written to: {output_path}")
return 0 if results[0]['status'] == 200 else 1
if __name__ == '__main__':
sys.exit(main())