73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
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.")
|