From 4c05c40dc2ea831b55e9d8b397886dca9539ba64 Mon Sep 17 00:00:00 2001
From: Kiady Arintsoa <kiady.arintsoa@etu.hesge.ch>
Date: Wed, 27 Oct 2021 16:04:02 +0200
Subject: [PATCH] final cmmit

---
 README.md                    |   4 ++++
 go/README.md                 |  30 ++++++++++--------------------
 go/Serveur/neighbour-10.yaml |   6 ++++++
 go/Serveur/neighbour-7.yaml  |   9 +++++++++
 go/Serveur/neighbour-8.yaml  |   9 +++++++++
 go/Serveur/neighbour-9.yaml  |   9 +++++++++
 go/reseau.png                | Bin 0 -> 15039 bytes
 go/topologie.png             | Bin 0 -> 4550 bytes
 8 files changed, 47 insertions(+), 20 deletions(-)
 create mode 100644 README.md
 create mode 100644 go/Serveur/neighbour-10.yaml
 create mode 100644 go/Serveur/neighbour-7.yaml
 create mode 100644 go/Serveur/neighbour-8.yaml
 create mode 100644 go/Serveur/neighbour-9.yaml
 create mode 100644 go/reseau.png
 create mode 100644 go/topologie.png

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e33177a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+# Groupe 16
+
+Adresse du GIT :https://gitedu.hesge.ch/simon.cirilli/sysdistribbroadcast
+
diff --git a/go/README.md b/go/README.md
index 7c1df00..40bcb02 100755
--- a/go/README.md
+++ b/go/README.md
@@ -1,27 +1,17 @@
-# Version online sur des instances AWS
+# Version GOLANG
 ## Client
-Le client se lance en faisant `go run client.go [--local-debug]`
+Le client se lance en faisant `go run client.go [--local-debug]`, l’argument est optionnel, il permet d’utiliser le projet sur la même machine. Le client demande à chaque itération le nœud auquel se connecter ainsi que la commande à effectuer sur ce nœud.
 ## Serveurs
-Il faut modifier les fichiers YAML pour mettre les IP correctes des instances AWS dans les voisins et pour sa propore addresse il fautr mettre 0.0.0.0 pour accéder à toute les demandes, il faut autoriser les connections sur différents ports pour les instances.
-Suite à une connection sur le serveur, le serveur traite la demande effectue différents appels et au final affiche le résultat dans son terminal pour le verify et le create donc dans le terminal du serveur choisi de base. Tandis que pour le fake et le list il renvoie au client les informations.
+Le serveur se lance en faisant `go run server.go [n] [--local-debug]`, l’argument local est aussi optionnel, il sert le même but que le client. `[n]` correspond au numéro du nœud, Le fichier `neighbour-[n].yaml` doit exister au même endroit. Le serveur ne fait que traiter les commandes entrantes.
 
-## Topologie
-![Screenshot](topologie.png)
-
-## Dépendances
-- PyYAML
+## Déploiement
 
-## Lancer le programme
-Il faut bien sûr commencer par clôner le repot puis :
+Pour déployer le projet, il faut modifier les fichiers YAML pour mettre les IP correctes des instances AWS dans les voisins et pour sa propre adresse il faut mettre 0.0.0.0 pour accéder à toute les demandes, il faut autoriser les connections sur différents ports pour les instances.
 
-Client :
-- cd client/client
-- python3 client.py
+## Topologie
 
-Serveur :
-Pour les serveurs il faut donc lancer un à un les différents serveurs donc ce qui vaut pour s1 vaut également pour les autres serveurs mais avant de lancer le serveur bien penser à modifier les ficher YAML.
-- cd s1
-- python3 serveur.py
+Déployé :
+![Screenshot](topologie.png)
 
-## Tests
-Pour tester la manière est de lancer le client sans le mode autoTest et de rentrer l'adresse du serveur pour la communication et d'enchaîner les demandes.
\ No newline at end of file
+Local:
+![Topologie](reseau.png)
diff --git a/go/Serveur/neighbour-10.yaml b/go/Serveur/neighbour-10.yaml
new file mode 100644
index 0000000..e34cf2f
--- /dev/null
+++ b/go/Serveur/neighbour-10.yaml
@@ -0,0 +1,6 @@
+id: 10
+address: "127.0.0.10"
+neighbours: 
+  - id: 9
+    address: "127.0.0.9"
+    edge_weight: 1
diff --git a/go/Serveur/neighbour-7.yaml b/go/Serveur/neighbour-7.yaml
new file mode 100644
index 0000000..3d9a50e
--- /dev/null
+++ b/go/Serveur/neighbour-7.yaml
@@ -0,0 +1,9 @@
+id: 7
+address: "127.0.0.7"
+neighbours: 
+  - id: 6
+    address: "127.0.0.6"
+    edge_weight: 1
+  - id: 8
+    address: "127.0.0.8"
+    edge_weight: 1
diff --git a/go/Serveur/neighbour-8.yaml b/go/Serveur/neighbour-8.yaml
new file mode 100644
index 0000000..5ed614c
--- /dev/null
+++ b/go/Serveur/neighbour-8.yaml
@@ -0,0 +1,9 @@
+id: 8
+address: "127.0.0.8"
+neighbours: 
+  - id: 7
+    address: "127.0.0.7"
+    edge_weight: 1
+  - id: 9
+    address: "127.0.0.9"
+    edge_weight: 1
diff --git a/go/Serveur/neighbour-9.yaml b/go/Serveur/neighbour-9.yaml
new file mode 100644
index 0000000..2cb7a13
--- /dev/null
+++ b/go/Serveur/neighbour-9.yaml
@@ -0,0 +1,9 @@
+id: 9
+address: "127.0.0.9"
+neighbours: 
+  - id: 8
+    address: "127.0.0.8"
+    edge_weight: 1
+  - id: 10
+    address: "127.0.0.10"
+    edge_weight: 1
diff --git a/go/reseau.png b/go/reseau.png
new file mode 100644
index 0000000000000000000000000000000000000000..b3e6c29c352f7fe8ab77a5690f6462f42c990021
GIT binary patch
literal 15039
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

literal 0
HcmV?d00001

diff --git a/go/topologie.png b/go/topologie.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ca8d6b1bf57de7748dd6ba9bb39f4ab630e8376
GIT binary patch
literal 4550
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
YbrT9>#q(Mj7#J8lUHx3vIVCg!07dJ;@&Et;

literal 0
HcmV?d00001

-- 
GitLab