Zum Inhalt

Management Commands

Diese Seite beschreibt ausgewählte Django-Management Commands der Polycrate API für Betrieb, Wartung und gelegentliche Datenbereinigung. Ausführung typischerweise im Backend-Container:

docker compose exec backend python manage.py <command> [Optionen]

Die folgenden Abschnitte ersetzen keine vollständige --help-Ausgabe; sie fassen Zweck und typische Optionen zusammen.


Alerts

delete_old_firing_alerts

Entfernt Firing-Alerts, die älter als eine angegebene Schwelle (in Sekunden) sind. Hilfreich, um alte „hängende“ Firing-States zu bereinigen.

python manage.py delete_old_firing_alerts 86400 --dry-run
python manage.py delete_old_firing_alerts 86400
Argument / Option Bedeutung
age_seconds (positional) Alerts älter als diese Sekundenzahl werden berücksichtigt
--dry-run Nur anzeigen, nicht löschen
--batch-size Batch-Größe (Standard: 500)

fix_alert_states

Setzt Alert-Status von DEGRADED auf READY (Reparatur nach inkonsistenten Zuständen), in Batches.

python manage.py fix_alert_states --dry-run
python manage.py fix_alert_states
Option Bedeutung
--dry-run Vorschau ohne Änderung
--batch-size Batch-Größe (Standard: 500)

Artefakte

delete_repository_artifacts

Löscht alle Artefakte in einem angegebenen Artifact Repository (UUID). Zerstörerisch; mit --dry-run prüfen.

python manage.py delete_repository_artifacts <repository-uuid> --dry-run
python manage.py delete_repository_artifacts <repository-uuid> --yes
Option Bedeutung
--dry-run Nur Auflistung
--yes Bestätigungsdialog überspringen
--verbose Details pro Artefakt

Endpoints

cleanup_duplicate_endpoints

Findet doppelte Endpoints (gleiches Workspace + remote_address) und behält den ältesten Eintrag. Erfordert explizit Vorschau oder Löschung.

python manage.py cleanup_duplicate_endpoints --dry-run
python manage.py cleanup_duplicate_endpoints --delete
python manage.py cleanup_duplicate_endpoints --dry-run --workspace <Workspace-Name>
Option Bedeutung
--dry-run Nur anzeigen
--delete Duplikate wirklich löschen
--workspace Nur ein Workspace

Hinweis: analyze_endpoint_results

Für den regulären Betrieb nicht erforderlich. Das Kommando wertet gespeicherte EndpointCheckResult-Daten aus (PoP-basiertes Monitoring): Filter nach Workspace, Organisation, PoP, Zeitraum; Ausgabe als Tabelle, JSON oder CSV. Sinnvoll für Support, Kapazitätsfragen oder wenn die Web-UI für eine Auswertung nicht ausreicht. Details und alle Flags: python manage.py analyze_endpoint_results --help.


IPAM

cleanup_orphaned_ip_addresses

Räumt IPAM-IP-Adressen auf, die keine sinnvolle managed_by-Beziehung haben (u. a. leere Referenzen oder verwaiste Zuordnungen). Typischer Ablauf: zuerst --dry-run, dann --delete.

python manage.py cleanup_orphaned_ip_addresses --dry-run
python manage.py cleanup_orphaned_ip_addresses --delete

LoadBalancer-spezifische Bereinigung erfolgt bei Bedarf über die Domänenlogik am Modell (LoadbalancerInstance.cleanup_orphaned_ip_addresses), nicht über ein separates Management Command.


Benachrichtigungen

setup_notification_sink

Legt den systemweiten Standard-Notification-Sink an oder aktualisiert ihn (is_system_default). Unterstützte Arten: mattermost, slack, msteams, email.

python manage.py setup_notification_sink --kind mattermost --webhook-url https://...
python manage.py setup_notification_sink --kind email --smtp-host mail.example.com --from-email noreply@example.com --to-emails ops@example.com

Pflicht je nach --kind (z. B. --webhook-url für Chat-Integrationen, für E-Mail u. a. SMTP und Empfänger). Optionen u. a.: --organization, --test, --disable. Vollständige Parameter: --help.

test_mattermost_sink

Testet die Mattermost Native API-Integration (Listen, Testnachrichten, Notifications zu Downtime/Maintenance/Notes). Für Diagnose und Verifikation von Notification-Sinks.

python manage.py test_mattermost_sink --list
python manage.py test_mattermost_sink --sink <Name-oder-ID> --send-message

Weitere Modi siehe python manage.py test_mattermost_sink --help.


Systemkonfiguration

assign_system_owner

Setzt oder leert die System-Owner-Organisation und/oder den Host-K8s-Cluster in der SystemConfig.

python manage.py assign_system_owner --organization <Name-oder-UUID>
python manage.py assign_system_owner --cluster <Name-oder-UUID>
python manage.py assign_system_owner --clear-organization
python manage.py assign_system_owner --clear-cluster

Pricing

match_host_products

Ordnet Hosts passenden Produkten zu (kind=host): zuerst über provider_type_id, sonst über CPU/RAM-Spezifikation in der Produktkonfiguration.

python manage.py match_host_products --dry-run
python manage.py match_host_products
python manage.py match_host_products --force --reconcile
Option Bedeutung
--dry-run Vorschau ohne Speichern
--force Auch Hosts mit bereits gesetztem Produkt neu zuordnen
--reconcile Zusätzlich reconcile_organization_product auslösen

Ausführlicher Kontext: Pricing & Business Layer.


Workspaces

cleanup_offline_agents

Führt die gleiche Bereinigung aus wie der Hintergrundtask: Agents entfernen, die länger als die konfigurierte Retention offline sind (Retention u. a. über SystemConfig, Schlüssel AGENT_RETENTION_DAYS).

python manage.py cleanup_offline_agents --dry-run
python manage.py cleanup_offline_agents

run_action

Startet eine ActionRun anhand ihrer numerischen ID (erneute Ausführung der zugehörigen Action). Ohne --force wird abgebrochen, wenn der Lauf bereits running, success oder failed ist.

python manage.py run_action <action_run_id>
python manage.py run_action <action_run_id> --force

Siehe auch