import requests from requests.auth import HTTPBasicAuth import time from urllib.parse import quote import os TARGET_IPS = [ "192.168.122.97", "192.168.122.219", "192.168.122.244", ] # Bei einem Neuausetzen der Testumgebung mit Terraform müssen diese an die neuen Adressen angepasst werden PORT = os.getenv("PORT") USER = os.getenv("USER") PASSWORD = os.getenv("PASSWORD") BASE_PATH = os.getenv("BASE_PATH") def cleanup_jobs(): auth = HTTPBasicAuth(USER, PASSWORD) for ip in TARGET_IPS: url = f"http://{ip}:{PORT}{BASE_PATH}" print(f"\n--- Starte Bereinigung für Ziel: {ip} ---") while True: try: response = requests.get(url, auth=auth) response.raise_for_status() data = response.json() job_list = data.get("jobs", []) total_remaining = data.get("total", 0) if not job_list: print( f"Keine weiteren Jobs auf {ip} gefunden (Total laut API: {total_remaining})." ) break print( f"Verarbeite Seite {data.get('page')} von {data.get('pages')}. " f"Noch insgesamt {total_remaining} Jobs vorhanden." ) for job in job_list: if isinstance(job, dict): job_id = job.get("job_id") else: job_id = str(job) if not job_id: continue encoded_id = quote(job_id) delete_url = f"{url}/{encoded_id}" del_response = requests.delete(delete_url, auth=auth) if del_response.status_code in [200, 202, 204]: print(f" [OK] Gelöscht: {job_id}") else: print(f" [FEHLER] {job_id}: Status {del_response.status_code}") time.sleep(0.5) except Exception as e: print(f"Ein Fehler ist aufgetreten bei {ip}: {e}") break if __name__ == "__main__": cleanup_jobs() print("\nFertig. Alle Systeme wurden bereinigt.")