From 00ea69acf23c1362f161bb0e84ebbb58f266ad1f Mon Sep 17 00:00:00 2001 From: shinedday <shinedday@gmail.com> Date: Fri, 13 May 2022 08:07:31 +0200 Subject: [PATCH] Fix exit topic typo that led to unwanted behaviour --- README.md | 135 ++-------------------------- dist/iotAmak-0.0.1-py3-none-any.whl | Bin 10930 -> 10962 bytes iotAmak/tool/schedulable.py | 2 +- iotAmak/tool/ssh_client.py | 7 +- 4 files changed, 11 insertions(+), 133 deletions(-) diff --git a/README.md b/README.md index b327709..f1ca783 100644 --- a/README.md +++ b/README.md @@ -7,20 +7,8 @@ - [Shared work](#shared-work) - [Wait function](#wait-function) - [Experience format](#experience-format) -- [Topics](#topics) - - [Agent](#agent) - - [Scheduler](#scheduler) - - [Amas](#amas) - - [Env](#env) -- [Mosquitto (Windows)](#mosquitto-windows) -- [Mosquitto (Linux) Didn't work](#mosquitto-linux-didnt-work) - -requirement : - * paho-mqtt - * pexpect - # Reseau Port : @@ -31,8 +19,6 @@ Port : * Broker : Mosquitto (Windows) * Client : python paho-mqtt -**Configuration raspberry :** -SSH activé avec hostname et mdp **Configuration windows :** WSL (pour pouvoir démarer l'amas) @@ -40,8 +26,11 @@ WSL (pour pouvoir démarer l'amas) # Random note -First procedure : - 1. etre sur que le ssh est trust (faire un premier ssh hors du programe) +ihm : + 1. Loading (check if good format) -> Warning -> can't "start" + 2. Ping (all in config) -> Warning -> can't start, can't agent + 3. Agent -> Warning -> already running -> kill ? + 4. Whatever (start) Start procédure : @@ -186,117 +175,3 @@ Pour ajouter des attributs a l'initialisation aux agents il suffit de rajouter d **A AJOUTER** un .config dans les experience avec la version du coeur -# Topics - -## Agent - -Tout les topics des agents sont du format : -> `agent/agentid/topicname` - -Par exemple le topic `log` de l'agent 2 est : -> `agent/2/log` - -Les topics présent par défaut : -`log` : -> envoie un message qui sera print par l'amas - -`cycle_done` : -> prévient le scheduler qu'une action c'est fini - -`metric` : -> a la fin de chaque cycle envoie un dico avec tout les info a potentielement partager - - -## Scheduler - -Les topics du scheduler sont dans le format : -> `scheduler/aQui/topic` - -Par exemple, pour débloquer les agents : -> `scheduler/agent/wakeup` - -Les topics présent par défaut : -`agent/wakeup` : -> envoie a tout les agents un message pour les débloquer - -`schedulable/wakeup` : -> envoie a l'amas et l'environment un message pour les débloquer - -## Amas - -Les topics présent par défaut : -`amas/agent/new` : -> Envoie un message pour prévenir qu'un nouvel agent est crée avec son ID - -`amas/action_done` : -> Envoie un message pour prévenir le scheduleur de la fin d'une action - -`amas/agent/id/neighbor` : -> Topic to communicate to agent "id" his neighborhood - -## Env - -Les topics présent par défaut : -`env/action_done` : -> Envoie un message pour prévenir le scheduleur de la fin d'une action - - -# Mosquitto (Windows) - -Stop mosquitto in service - -Start mosquitto : `mosquitto -v -c D:\data\mosquitto\mosquitto.conf` - -Config file : -``` -allow_anonymous false - -password_file D:\data\mosquitto\pwfile - -listener 1883 -``` - -Check port 1883 : `netstat -a` - -# Mosquitto (Linux) Didn't work - - -Config file : -``` -allow_anonymous false -password_file /etc/mosquitto/pwfile -listener 1883 -``` - -Restart moquitto : -``` -sudo service mosquitto stop -// check if a pid is still running -sudo lsof -i:1883 -// or -pgrep mosquitto -// and kill it -sudo kill pid - -sudo start mosquitto -v -``` - - -**firewall (didn't work):** -``` -sudo apt update -sudo apt full-upgrade -sudo apt install ufw -sudo ufw status verbose -``` - -allow : -``` -sudo ufw allow port -sudo ufw enable -``` - -``` -sudo ufw disable -sudo apt remove ufw -``` diff --git a/dist/iotAmak-0.0.1-py3-none-any.whl b/dist/iotAmak-0.0.1-py3-none-any.whl index 9d5df61d4d4c5dacd84d9a0360412ea1f3249121..4895e53f2612b1a1293548dc04d552f4eebb50e5 100644 GIT binary patch delta 2205 zcmdlKdMR{6fHd!$>NO!Yw_o49z{tR0xH(ojn6ZA*t~%kSNj0tpdy9;%_J|rx75=*M zT0~o1;=i||4`PiRo1^5sGqz3@UUs8yZ=-BLPqRW<YFNy3DZP%P|K3=(PrSW!qDt|L zo%~Pbu3z1q+NN(E;d#H1d2`6DKM4WMk0+!|pVXzc*Yu^9+eD+^0!6#3-|uj?pL}=Y zOwr?0VtyE3GG8r~`rqf@zt2zR`x-B;n)&DH>A&SS?X24GKRnxe$Ecnmz?+#xgn@y9 zgW-wUnvfOzUF}jV3=Fd;r^%|+cRw~0__uGve@BUFC$6l1D<|Tm(E7B>om)3{*KL1A ziM6`wuWn7!I(hxc{rf#B)^(nITwmFv^^N<VJ)Jo*KVNIL^do<_Rkjm*FJ7B`f63?V z=G)EhUMV;&{c~MA>)W=4);lN8vA^<(*OYmMpt~~H{l&8u7qj1Ck!{=LqouxP`Tg|z zBbDCPrQdksXFZ>~#&zCuh0NAZch!B_OIH33K74=X^<8OUCbzoxtWf3n%KlGM%)ZSu zWcOaptama$Z%oOaBUs@TIMHUh*Dsspepf=>xNf*L8wI_(6S4BotUU)6Q=H>+wT+V2 ztaxI0;y~1-C9gYL`JD_L8h9(tU#qsc@uuCllcS#ZccH<yUr(P-e{sq@mtQDPHfV<| zd&2fDMyD1nEi^f{b?vExjht_0H5`ns$vWVF@~?m5hE|U^ZXd!Hbl<*PdGz+>4Eq@k zeoD#_6_-nP#d5VvBs*{axO?`)4N>oxE?RMb?^fke=@Wr7wmGcN%TQ?fpB24q@8rM1 znciG?O=6}#h^sHi(-Pn>beg&~q^WGvjK^OlEnv)(vM*oW&Gq;ggFxvU-vbAmrY^d$ zbiwLt;ot4oUE+?~^y;kii{gV0HHYpc#H$3fEzf%|U(UVX`A&)T#t<3q#9dCQ^AEXX zeeDT8BrCYN`EjGCfVyaVm2PL4%9Cc*m#T>q{UR<!waz#E7!_PpuWxlPk$K~$#x>7p zTr+HSzPGC=TzKA@HD9J_i~l;9_9ErY*7zkRS-mShKRj&1&&;B|CFsH>4I}QQ=5xzZ zqWm}2mAdTme4(9xV8(ra{rU0plS_?qGJh8E$-0S$M1GF*@}4}uwfg%l8<YPP^WT5< zT+Lqiq<7^}XQzF$kLxKHt#7C=+G*i*)M@km1moySO#B9G&wuRT{xk3UOOdGcm%oZT zUN(t7_1|52Im7fC{j9evzUOlbWn8VEeBX1em~H3P-=Zg<mSl5xbU!cC|1%?c_0_IF zsaa>e-Tyc`Flxz1EnRoWCQGP+NiU;XDX#r%hsZlew>W;|@?Cc~PZMI|zo4?@NWI~w zkn2ab=I?D0(JQc?$M*fc$odUTT1!>dYPG(-aPvrK=2j1VsUw#Ieig)VxHR~si!$rF ze>dN9ID5vo%ll1BZrSB^Og~rZyy%cG+uEnQqTIsD-#t9H_Jr)hi(ljlI>n=pv%HDc zT2%Jg?`q}ItDSkO#}tkzv9PA!Zh5=Z-)Pd4`kj`ddn^vjXZM?_!^+>R&nI2F>2_?9 zg#>3x%)6M4sU1N&PqR1fh}s<fv8wIA|HS=5e>Itp-L?KD{F?iz@g;{FX7)CAdbK~# zC|Z2pRGszRS7U2~%RRrA>8k%`6)EKH=-ZGm<=ewU2bUy04Bd51s-x6o@xRviez946 zvgUm{F8VreFBO{ARGR<$bzD7rYi!t=GrPGx<BgthS?f&a%lfO0C^|M7texDgc!U{5 z2PsVf(=V00I5!!r4cYxhjrrtc8)cpPO|u*%+8)-fYc)G_ScyA8Ai&Xq^-ciK+B3bE zIx4<OYJJS`OPwxV@#^>g?G6!nk6vYqh~_pf&ba35GXJ>A@%rS})>kD<S7^uaESh`q zM}zV6f`SFnrgOHw^!dLdr6~WxH<q7EfAAhnzwt;s^>pRr@(r)}CI>n@t!?gF(<=So z#_amZySc+I*!LE^?|Is$BH@-|zd-F>yo{`e>VBr57Z)(xSoSfn@Yac<MCZz*tUeht zTQn`MA4{0aIc=hy%#C|p+F7%|N7^I=E|lQcdXZ|l`}M&I>Je*2jB~`d+Uqagvr^;i z&A98zjvGz>Kk3?2nb`6{<i@2tEJuGVn3%;8vFPl?+x2DUJ8m7XD0RH7`ZibkknO?Z zJwH-@nY7;wIQ*J>+pXpayH@TBeEn@#scrtAlQ)%(zk7$p+}QN8eYF?QIWrM+mgAmR zgb#CE{lET!zOL)rl^yF0&fQb<3cpsXac|$<rzfl4b5E1BD&Ko8OD66|HA8Au?5jYb zh~__^@0D-fnIN;YwEkn<qUl0M^(;4(8Q-&#yYN$MtM=2zEspHpW^B@uN=V!8t1r!R zyx{#4Q8SLi=U+VC7d7vbgDuaO7>{ie)#jWz#h=tQNpoxcoSjb_%hevQ&<}2!_M-et z`D}}o54kPZInT}IvZ_4Lczx$P3)3p$In2Au3dNL9H7)I1#605-uj53f`p?sEKA#^x z>0G5YyVJ>X+paRF#VUushCQ2oQaHv&UyaZ0teN-C0w?=0uJaEX=1ersnkH(?=34C( zZ~n?J?u7ME&fq5dUf(FGX<}i=m(?cB7wes9>Cf$Ed|V~XA}`}{K@o@7gnuu8?OL_& z|AKEv*O~~m-3faCn|D`M>fARy+?w7Ow)?#|nP(%}cjo%MlIflO)9Z{3UoDclmtcFi z{Lk@y{7xKQT|2$aDnlI9Q_Jk0omlPTy47LJ@|?*g%eJoFqNMn5a@p0LZ}m7Hoi5*O zsJ4!Y7p1zN{6@ou7qt#G)wEUsWr0#r``}In28PWH3=9ek2(Ybjq2lC3C8^1)G)2I9 z=AfoDQ-;#yL?!vje>Hi)LOfd1O#eYbQj?vvB*Dgka}*N;!!;HL204Uj3|km|l)=Wu QE3-|Wqb0x=s0NY+0Hs71zW@LL delta 2164 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 au`n>mAq-;J!l<bX*1JthjLlFDBm)5dD-2@* diff --git a/iotAmak/tool/schedulable.py b/iotAmak/tool/schedulable.py index e1e1e71..3ba5e34 100644 --- a/iotAmak/tool/schedulable.py +++ b/iotAmak/tool/schedulable.py @@ -20,7 +20,7 @@ class Schedulable(MqttClient): MqttClient.__init__(self, broker_ip, client_id) self.exit_bool: bool = False - self.subscribe("ping/exit", self.exit_procedure) + self.subscribe("ihm/exit", self.exit_procedure) self.nbr_cycle: int = 0 self.wait_delay: float = 0.01 diff --git a/iotAmak/tool/ssh_client.py b/iotAmak/tool/ssh_client.py index 149eaa9..366b926 100644 --- a/iotAmak/tool/ssh_client.py +++ b/iotAmak/tool/ssh_client.py @@ -26,7 +26,8 @@ class SSHClient: def __init__(self, clients: List[RemoteClient]): self.clients = clients - def run_cmd(self, client: int, cmd: list): + def run_cmd(self, client: int, cmd: list) -> list[str]: + ret = [] try: s = pxssh.pxssh() dest = self.clients[client] @@ -35,13 +36,15 @@ class SSHClient: for command in cmd: s.sendline(command.cmd) s.prompt() + ret.append(s.before.decode('utf-8')) if command.do_print: - print(command.prefix, s.before.decode('utf-8')) + print(command.prefix, ret[-1]) s.logout() except pxssh.ExceptionPxssh as e: print("pxssh failed on login.") print(e) + return ret def update(self, experiment_name): for client in self.clients: -- GitLab