Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Node.js and Python build artifacts
node_modules/
__pycache__/
*.pyc

# Local .terraform directories
.terraform/

Expand Down Expand Up @@ -43,4 +48,4 @@ terraform.rc
# Uncomment the line below if you want to ignore planout files.
# planout

.DS_Store
.DS_Store
4 changes: 2 additions & 2 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"promotion": "DevSecOps Azure — Simplon",
"apprenants": [],
"api": {
"port": 50001,
"port": 5000,
"host": "localhost",
"route": "/api/logs",
"log_file": "server.log"
}
}
}
75 changes: 36 additions & 39 deletions email-template.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
# Template — Rapport de débogage par email

> Complétez chaque section entre crochets [ ]. Supprimez les instructions en italique avant d'envoyer.
# Rapport de débogage par email

---

**À :** responsable.technique@azuretech.fr
**De :** [votre.prenom.nom@azuretech.fr]
**Objet :** [À compléter — soyez précis et professionnel, ex: "Rapport de correction — scripts d'analyse de logs Azure"]
**Date :** [date du jour]
**De :** [saidi.mohamed.nom@azuretech.fr]
**Objet :** Rapport de correction — scripts d'analyse de logs Azure
**Date :** 21 mai 2026

---

Bonjour [Prénom du responsable],
Bonjour,

**1. Contexte**

[Décrivez en 2-3 phrases : quel projet, quels scripts étaient en erreur, dans quel environnement vous avez travaillé]
Dans le cadre du projet NexaCloud, deux scripts critiques avaient des erreurs suite à une mise à jour en production : `python-api/app.py` et `node-client/app.js`.
J'ai travaillé en local sur Windows avec Python 3.12 et Node.js 24, sur la branche `fix/mohamed-debug-python-node`.

---

Expand All @@ -25,66 +24,64 @@ Bonjour [Prénom du responsable],

| # | Fichier | Ligne | Type d'erreur | Description du problème |
|---|---------|-------|---------------|--------------------------|
| 1 | | | | |
| 2 | | | | |
| 3 | | | | |
| 4 | | | | |
| 5 | | | | |
| 1 | `requirements.txt` | 2 | Nom de paquet incorrect | `flaskk` n'existe pas sur PyPI |
| 2 | `app.py` | 18 | SyntaxError | `:` manquant à la fin de `def parse_logs(filepath)` |
| 3 | `app.py` | ~30 | NameError | Variable `errors` utilisée à la place de `erreurs` dans `parse_logs` |
| 4 | `app.py` | 50 | NameError | Variable `log_file` non définie utilisée à la place de `"server.log"` |
| 5 | `config.json` | — | Mauvaise configuration | Port `50001` au lieu de `5000` |

*Projet Node.js — `node-client/` :*

| # | Fichier | Ligne | Type d'erreur | Description du problème |
|---|---------|-------|---------------|--------------------------|
| 1 | | | | |
| 2 | | | | |
| 3 | | | | |
| 1 | `package.json` | — | Nom de paquet incorrect | `axioss` n'existe pas sur npm |
| 2 | `app.js` | 12 | MODULE_NOT_FOUND | `require('axioss')` — même faute de frappe que dans package.json |
| 3 | `app.js` | 21 | Mauvaise propriété axios | `response.body` n'existe pas dans axios, la bonne propriété est `response.data` |

---

**3. Corrections apportées**

[Pour chaque bug, expliquez en une phrase ce que vous avez changé ET pourquoi c'est correct.]

- Bug 1 :
- Bug 2 :
- Bug 3 :
- Bug 4 :
- Bug 5 :
- Bug 6 :
- Bug 7 :
- Bug 8 :
- Bug 1 : `requirements.txt` — corrigé `flaskk==3.0.0` en `flask==3.0.0` car le nom officiel du paquet sur PyPI est `flask`.
- Bug 2 : `app.py` ligne 18 — ajouté `:` en fin de `def parse_logs(filepath):` car toute définition de fonction Python requiert ça.
- Bug 3 : `app.py` — corrigé `errors` en `erreurs` pour correspondre au nom de variable déclaré en début de fonction.
- Bug 4 : `app.py` ligne 50 — remplacé la variable indéfinie `log_file` par la chaîne `"server.log"`, nom réel du fichier de logs dans le dossier.
- Bug 5 : `config.json` — corrigé le port `50001` en `5000`, valeur attendue par l'architecture du projet et par le client Node.
- Bug 6 : `package.json` — corrigé `"axioss"` en `"axios"` car c'est le nom exact du paquet HTTP sur npm.
- Bug 7 : `app.js` ligne 12 — corrigé `require('axioss')` en `require('axios')` pour correspondre au paquet installé.
- Bug 8 : `app.js` ligne 21 — remplacé `response.body` par `response.data` car dans axios, les données de la réponse serveur sont accessibles via `.data` (cf. documentation officielle axios-http.com/docs/res_schema).

---

**4. Tests de validation**

[Décrivez les commandes que vous avez exécutées pour confirmer que tout fonctionne.
Incluez le résultat attendu vs le résultat obtenu.]
- Commande testée : `curl http://localhost:5000/api/logs`
- Résultat obtenu : JSON avec `error_count: 5`, `warning_count: 4`, `info_count: 10`
- Résultat attendu : identique
- Validation : ✅

- Commande testée :
- Résultat obtenu :
- Résultat attendu :
- Validation : ✅ / ❌
- Commande testée : `node app.js`
- Résultat obtenu : rapport complet affiché dans le terminal avec les 5 erreurs et 4 avertissements détaillés
- Résultat attendu : identique
- Validation : ✅

---

**5. Lien vers la Pull Request**

[Insérez ici l'URL complète de votre PR GitHub]
[À insérer après ouverture de la PR sur GitHub — étape 6 du TP]

---

**6. Recommandations**

[Proposez 1 ou 2 bonnes pratiques à adopter pour éviter ce type de bug à l'avenir.]

-
-
- Mettre en place un pipeline CI (GitHub Actions) qui installe les dépendances et vérifie la syntaxe à chaque push — cela aurait détecté les bugs `flaskk` et `axioss` immédiatement sans avoir à lancer les scripts manuellement.
- Ne jamais hardcoder les noms de fichiers ou de variables sans les tester : utiliser des variables d'environnement ou un fichier de config versionné et validé pour éviter les incohérences de port ou de chemin.

---

Cordialement,

[Prénom Nom]
[Mohamed Saidi]
Développeur DevSecOps — Promotion Azure, Simplon
[votre.email@azuretech.fr]
[saidi.mohamed.nom@azuretech.fr]
8 changes: 4 additions & 4 deletions node-client/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ const config = require(path.join(__dirname, '..', 'config.json'));
const API_URL = `http://${config.api.host}:${config.api.port}${config.api.route}`;

// BUG 6 — Le nom du module importé ici est incorrect
const axioss = require('axioss');
const axios = require('axios');

async function getLogs() {
try {
const response = await axioss.get(API_URL);
const response = await axios.get(API_URL);

// BUG 7 — La propriété pour accéder au corps de la réponse avec axios
// ne s'appelle pas .body — cherchez dans la doc axios comment
// accéder aux données de la réponse
const data = response.body;
// accéder aux données de la réponse body -> data
const data = response.data;

console.log('\n========================================');
console.log(' RAPPORT D\'ANALYSE DES LOGS AZURE ');
Expand Down
Loading