Ajout du support API v2 (package de diagnostic) et du log fichier

- AuditLogCLI.ps1 : detection auto V1/V2 avec fallback sur erreur HTTP
- Téléchargement/extraction du zip de diagnostic
- Extraction des événements connexion/déconnexion (logs eclypse_*.log et karaf.log)
- Nettoyage automatique des fichiers temporaires
- Écriture d'un fichier .log horodate en complement de la console
- README.md : documentation FR/EN de la détection V1/V2
This commit is contained in:
2026-07-15 10:00:09 +02:00
parent 3025e97263
commit b156b1647f
3 changed files with 150 additions and 10 deletions
+26
View File
@@ -29,6 +29,15 @@ Se connecte à chaque automate listé dans un CSV, récupère son journal d'audi
Un filtrage optionnel par période (`-StartDate`/`-EndDate`) peut être appliqué à la requête.
### Détection automatique API v1 / v2
Le script détecte automatiquement la version d'API supportée par chaque automate, sans configuration :
1. **API v2** (package de diagnostic) est essayée en premier : `GET /api/rest/v2/services/packages/diagnostic`. La réponse est un fichier `.zip` de diagnostic complet, que le script télécharge, extrait, puis analyse pour en extraire les événements de connexion/déconnexion (`connected`/`disconnected`) présents dans `logs/eclypse_*.log` et `logs/karaf.log`. Le fichier zip et les fichiers extraits sont supprimés automatiquement après traitement ; seul le CSV final est conservé.
2. En cas d'erreur HTTP sur l'appel v2 (404, 401, 500...), le script bascule automatiquement sur **l'API v1** (`GET /api/rest/v1/system/audit-logs`), qui retourne directement un CSV.
Le CSV obtenu (v1 ou v2) suit ensuite le même traitement de sortie (`PerAutomate` ou `Consolidated`).
---
## Utilisation avec cadMasterCLI
@@ -216,6 +225,10 @@ Vérifier que les colonnes `HttpPort` et `HttpsPort` du CSV contiennent des vale
Les noms des paramètres de requête (`startDate`/`endDate`) utilisés par ce script sont une hypothèse non validée contre la documentation officielle de l'API `audit-logs`. Si le filtrage ne fonctionne pas, vérifier la documentation de l'API Eclypse de l'automate concerné.
#### "V2 indisponible, bascule V1" dans les logs
Message normal (niveau `WARN`) : l'automate ne supporte pas l'API v2 (package de diagnostic), le script utilise donc l'API v1 (`audit-logs`) à la place. Aucune action requise.
<!-- EN -->
# AuditLogCLI
@@ -247,6 +260,15 @@ Connects to each controller listed in a CSV, retrieves its audit log via the RES
An optional date-range filter (`-StartDate`/`-EndDate`) can be applied to the request.
### Automatic API v1 / v2 detection
The script automatically detects which API version each controller supports, with no configuration needed:
1. **API v2** (diagnostic package) is tried first: `GET /api/rest/v2/services/packages/diagnostic`. The response is a full diagnostic `.zip` file, which the script downloads, extracts, then parses to pull out connection/disconnection events (`connected`/`disconnected`) found in `logs/eclypse_*.log` and `logs/karaf.log`. The zip file and extracted files are automatically deleted after processing; only the final CSV is kept.
2. On any HTTP error from the v2 call (404, 401, 500...), the script automatically falls back to **API v1** (`GET /api/rest/v1/system/audit-logs`), which returns a CSV directly.
The resulting CSV (v1 or v2) then goes through the same output handling (`PerAutomate` or `Consolidated`).
---
## Using with cadMasterCLI
@@ -435,3 +457,7 @@ Check that the CSV's `HttpPort` and `HttpsPort` columns contain valid values. A
#### The `-StartDate`/`-EndDate` filter seems to have no effect
The query parameter names (`startDate`/`endDate`) used by this script are an unverified assumption against the official `audit-logs` API documentation. If filtering does not work, check the Eclypse API documentation for the specific controller.
#### "V2 indisponible, bascule V1" in the logs
Normal message (`WARN` level): the controller does not support the v2 API (diagnostic package), so the script uses the v1 API (`audit-logs`) instead. No action needed.