[Schema] Remove redundant Device.router_id + add BGP distance attributes #48

Closed
opened 2026-02-09 18:09:49 +00:00 by Damien · 1 comment
Owner

🟠 Lacune fonctionnelle — Redondance + attributs BGP manquants

Problème 1 : router_id redondant

InfraDevice.router_id et InfraBGPRouterConfig.router_id coexistent. Le router-id est une propriété BGP, pas du device. Garder uniquement celui de BGPRouterConfig pour éviter les incohérences.

Problème 2 : distance BGP manquante

La topologie configure distance bgp 20 200 200 sur chaque device. Aucun attribut pour modéliser cela.

Correction

1. Supprimer router_id de InfraDevice (base.yml)

2. Ajouter sur InfraBGPRouterConfig (bgp.yml) :

attributes:
  - name: ebgp_distance
    kind: Number
    default_value: 20
    description: eBGP administrative distance
  - name: ibgp_distance
    kind: Number
    default_value: 200
    description: iBGP administrative distance
  - name: local_distance
    kind: Number
    default_value: 200
    description: Local route administrative distance

Fichiers

  • schemas/base.yml — supprimer router_id de InfraDevice
  • schemas/bgp.yml — ajouter distances sur BGPRouterConfig

Validation

  • infrahubctl schema check schemas/
  • Vérifier qu'aucune référence à InfraDevice.router_id n'existe ailleurs
## 🟠 Lacune fonctionnelle — Redondance + attributs BGP manquants ### Problème 1 : router_id redondant `InfraDevice.router_id` et `InfraBGPRouterConfig.router_id` coexistent. Le router-id est une propriété BGP, pas du device. Garder uniquement celui de `BGPRouterConfig` pour éviter les incohérences. ### Problème 2 : distance BGP manquante La topologie configure `distance bgp 20 200 200` sur chaque device. Aucun attribut pour modéliser cela. ### Correction **1. Supprimer `router_id` de `InfraDevice`** (base.yml) **2. Ajouter sur `InfraBGPRouterConfig`** (bgp.yml) : ```yaml attributes: - name: ebgp_distance kind: Number default_value: 20 description: eBGP administrative distance - name: ibgp_distance kind: Number default_value: 200 description: iBGP administrative distance - name: local_distance kind: Number default_value: 200 description: Local route administrative distance ``` ### Fichiers - `schemas/base.yml` — supprimer `router_id` de InfraDevice - `schemas/bgp.yml` — ajouter distances sur BGPRouterConfig ### Validation - `infrahubctl schema check schemas/` - Vérifier qu'aucune référence à `InfraDevice.router_id` n'existe ailleurs ## Related - Sub-task of: #41 - **⚡ Ordre d'exécution : 6/7** (parallélisable avec #46, #47, #49) - Depends on: #43 (BGP schema doit être corrigé d'abord) - Utile pour : #31 (BGP transforms)
Damien added the phase-2-minimal-reconciler label 2026-02-09 18:10:58 +00:00
Damien added this to the Fabric Orchestrator project 2026-02-09 19:03:29 +00:00
Damien moved this to In Progress in Fabric Orchestrator on 2026-02-09 19:03:57 +00:00
Damien added reference feature/41-infrahub-schema 2026-02-13 10:49:14 +00:00
Author
Owner

Implémenté

Commit: f623d12

Changements

schemas/base.yml — InfraDevice:

  • Supprimé l'attribut router_id (redondant avec BGPRouterConfig.router_id)

schemas/bgp.yml — BGPRouterConfig:

  • Ajout ebgp_distance (Number, default: 20)
  • Ajout ibgp_distance (Number, default: 200)
  • Ajout local_distance (Number, default: 200)

Correspond au distance bgp 20 200 200 de la topologie de référence.

Validation

Schema check passé.

## Implémenté ✅ **Commit:** [`f623d12`](https://gitea.arnodo.fr/Damien/fabric-orchestrator/commit/f623d12b8c85e8f3d7ad9b37f1faa973019fd47a) ### Changements **`schemas/base.yml` — InfraDevice:** - Supprimé l'attribut `router_id` (redondant avec `BGPRouterConfig.router_id`) **`schemas/bgp.yml` — BGPRouterConfig:** - Ajout `ebgp_distance` (Number, default: 20) - Ajout `ibgp_distance` (Number, default: 200) - Ajout `local_distance` (Number, default: 200) Correspond au `distance bgp 20 200 200` de la topologie de référence. ### Validation Schema check passé.
Damien moved this to Done in Fabric Orchestrator on 2026-02-25 13:59:10 +00:00
Sign in to join this conversation.