Davidcor89-lip6 / b4mesh

Développment du projet b4mesh sur le materiel de GreenCom.
2 stars 0 forks source link

Blockgraph live visualization : integration #31

Closed GuillaumeDuaForSquad closed 3 years ago

GuillaumeDuaForSquad commented 3 years ago

Integration de #29 blockgraph live visualizer

Puisque les nodes sont serialises en temps reel (a confirmer) dans un fichier unique,
Deux strategies d'integration sont possibles.

Informations :

  • Configuration NGinx : @alexguer42 A developper un systeme de patch de la configuration Nginx via le Makefile.

L'integration, quelque soit la strategie, consiste en l'ajout de deux endpoint dans la configuration NGinx.

1 : Le fichier html

location /blockgraph_live_visualizer {
    default_type "text/html";
    alias /path/to/live_visualizer.html;
}

2 : Le endpoint a partir duquel seront pollees les donnees

Option 1

Servir le fichier de serialisation, /tmp/blockgraph, directement depuis un endpoint Nginx.

Configuration Nginx

Ajouter un forward vers le endpoint de polling des informations des nodes

location /poll_nodes_informations{
    alias /tmp/blockgraph;
}

Configuration/JS

   configuration.blockgraph_as_dot_API_accesspoint = "<protocol>://<ip>:<port>/poll_nodes_informations";

⚠️ Cette IP ne doit pas etre locale, puisque transmise au poller cote client.

Option 2

Deleguer la responsabilite de transmettre les bonnes informations au node b4mesh

Configuration/JS

Comme mentionne dans la documentation du visualizer, editer le fichier de configuration pour faire correspond l'IP de polling des nodes avec celle du endpoint definit dans la section ci-apres.

⚠️ Cette IP ne doit pas etre locale, puisque transmise au poller cote client.

   configuration.blockgraph_as_dot_API_accesspoint = "<protocol>://<ip>:<port>/<path/to/endpoint>";

Configuration Nginx

Ajouter un forward vers le endpoint de polling des informations des nodes

location /poll_nodes_informations{
    proxy_pass http://127.0.0.1:4242/poll_nodes_informations;
}

C++

{
    "0.0.0.0:4242/poll_nodes_informations",
    { method::get },
    [&s](b4mesh::http::request_data_type && request_datas)
        -> b4mesh::http::response_data_type
    {
        std::cout << "poll_nodes_informations: [GET] received : [" << request_datas.body << "]\n";
            const auto nodes_informations_as_string = /* ... */ ; // read `/tmp/blockgraph` here
        return {
            "application/json",
                        nodes_informations_as_string
        };
    }
}

Limitations :

GuillaumeDuaForSquad commented 3 years ago

@Davidcor89-lip6 Jusqu'a l'heure que tu voudras, il faut que l'on avance :)

Davidcor89-lip6 commented 3 years ago

Je t'écris quand j'arrive à me rendre disponible.

GuillaumeDuaForSquad commented 3 years ago

@Davidcor89-lip6 Je viens de push les modifications a tester Lundi : 00a2cf0
Ps : J'ai retranscris tes modifications locales de memoire, a voir si c'est OK avec ce que tu as.

GuillaumeDuaForSquad commented 3 years ago

@David : Lundi etant un jour ferier, je te propose de decaller la session de travail a Mardi

Davidcor89-lip6 commented 3 years ago

Très bonne idée, à mardi alors

GuillaumeDuaForSquad commented 3 years ago

@Davidcor89-lip6 Quelle heure te convient le mieux avancer sur l'integration aujourd'hui ?

Davidcor89-lip6 commented 3 years ago

@GuillaumeDuaForSquad l'après midi, je te propose 14:30

GuillaumeDuaForSquad commented 3 years ago

@Davidcor89-lip6 Oui parfait.

GuillaumeDuaForSquad commented 3 years ago

Succes du deploiment sur tout les routeurs ce jour.

Cette issue sera closed apres le merge