Closed darcosion closed 2 years ago
Ok, j'ai un plan : on va renommer toutes les fonctions d'ajouter d'éléments dans le graph pour qu'il n'y en ai aucune de générique. A partir de là, on ajoute les éléments dans le graph en fonction de plusieurs modèles : (traceroute, VLAN, Service, etc...) et on s'en sert pour construire la topologie en oubliant l'approche "gateway unique" au profit d'un placement et de liaison des éléments dans le graphe "opportuniste".
Le placement a été fait dans l'issue 5515e2cc4918f2e728ebdfa290944f79d3ffebde !
Il a été nécessaire de reconstruire dans le backend certaines données émises (IP/CIDR VLAN) : https://github.com/darcosion/Echosounder/blob/5515e2cc4918f2e728ebdfa290944f79d3ffebde/webchosounder.py#L37
En plus de ça, la fonction de création de graph cytoscape a été réecrite pour ajouter une notion de parentalité : https://github.com/darcosion/Echosounder/blob/5515e2cc4918f2e728ebdfa290944f79d3ffebde/static/main.js#L328-L400
IMPORTANT : IL FAUT OUBLIER FCOSE DANS LA NOTION D'ENGLOBEMENT.
fCOSE ne sert pas à gérer l'englobement, cytoscape a l'élégance de le faire nativement dès que l'on définit un nœud comme parent d'un autre nœud. fCOSE, dérivé de la fonction de layout COSE permet de définir des layout différents en fonction des englobement généraux (un layout différent par type de node englobant par exemple).
Finalement, la résolution de cette issue nous permet désormais de scanner plusieurs VLAN sans risque de casser la mécanique de gestion de l'affichage graph. Par contre, les relier entre eux sera nécessairement quelque chose à ajouter dans le code.
Il est possible de placer un ensemble de noeud dans un groupe, je l'ai fait pour Epic stamina.
Je propose d'effectuer la même chose, mais pour les noeuds que nous arrivons à lier à une gateway.