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