From 8d91b8d716dfe3de4dac8f2be5ecf443a3b41e6e Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Fri, 9 Oct 2026 16:40:48 -0400 Subject: [PATCH] Refined dispatcher and threading. Added lifecycle registry --- __pycache__/createthread.cpython-314.pyc | Bin 1024 -> 980 bytes __pycache__/dispatcher.cpython-314.pyc | Bin 655 -> 684 bytes __pycache__/dispatchstate.cpython-314.pyc | Bin 1189 -> 1228 bytes __pycache__/lifecyclemanager.cpython-314.pyc | Bin 838 -> 1006 bytes __pycache__/lifecycleregistry.cpython-314.pyc | Bin 457 -> 455 bytes core/__init__.py | 5 +++ core/__pycache__/__init__.cpython-314.pyc | Bin 498 -> 753 bytes .../__pycache__/createthread.cpython-314.pyc | Bin 0 -> 995 bytes .../execution/createthread.py | 13 +++--- core/execution/lifecyclemanager/__init__.py | 2 + .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 283 bytes .../lifecyclemanager.cpython-314.pyc | Bin 0 -> 1038 bytes .../lifecycleregistry.cpython-314.pyc | Bin 0 -> 487 bytes .../lifecyclemanager/lifecyclemanager.py | 25 +++++++++++ .../lifecyclemanager/lifecycleregistry.py | 0 core/server/__init__.py | 2 + .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 178 bytes .../createdispatch.cpython-314.pyc | Bin 0 -> 849 bytes .../__pycache__/dispatcher.cpython-314.pyc | Bin 0 -> 711 bytes .../__pycache__/dispatchstate.cpython-314.pyc | Bin 0 -> 1227 bytes .../server/__pycache__/server.cpython-314.pyc | Bin 0 -> 929 bytes core/server/createdispatch.py | 17 ++++++++ core/server/dispatcher.py | 22 ++++++++++ core/server/dispatchstate.py | 41 ++++++++++++++++++ core/server/server.py | 30 +++++++++++++ dispatcher.py | 14 ------ dispatchstate.py | 33 -------------- initialize.py | 3 ++ lifecyclemanager.py | 19 -------- lifecyclemonitor.py | 12 +++++ .../__pycache__/setavailable.cpython-314.pyc | Bin 556 -> 556 bytes plugins/rmass/operations/setavailable.py | 2 +- checkavailable.py => trash/checkavailable.py | 0 createdispatch.py => trash/createdispatch.py | 0 trash/createthread.py | 30 +++++++++++++ trash/dispatcher.py | 22 ++++++++++ trash/dispatchstate.py | 41 ++++++++++++++++++ trash/lifecyclemanager.py | 25 +++++++++++ trash/lifecycleregistry.py | 8 ++++ manage.py => trash/manage.py | 0 manager.py => trash/manager.py | 0 server.py => trash/server.py | 4 +- 42 files changed, 294 insertions(+), 76 deletions(-) create mode 100644 core/execution/__pycache__/createthread.cpython-314.pyc rename createthread.py => core/execution/createthread.py (64%) create mode 100644 core/execution/lifecyclemanager/__init__.py create mode 100644 core/execution/lifecyclemanager/__pycache__/__init__.cpython-314.pyc create mode 100644 core/execution/lifecyclemanager/__pycache__/lifecyclemanager.cpython-314.pyc create mode 100644 core/execution/lifecyclemanager/__pycache__/lifecycleregistry.cpython-314.pyc create mode 100644 core/execution/lifecyclemanager/lifecyclemanager.py rename lifecycleregistry.py => core/execution/lifecyclemanager/lifecycleregistry.py (100%) create mode 100644 core/server/__init__.py create mode 100644 core/server/__pycache__/__init__.cpython-314.pyc create mode 100644 core/server/__pycache__/createdispatch.cpython-314.pyc create mode 100644 core/server/__pycache__/dispatcher.cpython-314.pyc create mode 100644 core/server/__pycache__/dispatchstate.cpython-314.pyc create mode 100644 core/server/__pycache__/server.cpython-314.pyc create mode 100644 core/server/createdispatch.py create mode 100644 core/server/dispatcher.py create mode 100644 core/server/dispatchstate.py create mode 100644 core/server/server.py delete mode 100644 dispatcher.py delete mode 100644 dispatchstate.py create mode 100644 initialize.py delete mode 100644 lifecyclemanager.py create mode 100644 lifecyclemonitor.py rename checkavailable.py => trash/checkavailable.py (100%) rename createdispatch.py => trash/createdispatch.py (100%) create mode 100644 trash/createthread.py create mode 100644 trash/dispatcher.py create mode 100644 trash/dispatchstate.py create mode 100644 trash/lifecyclemanager.py create mode 100644 trash/lifecycleregistry.py rename manage.py => trash/manage.py (100%) rename manager.py => trash/manager.py (100%) rename server.py => trash/server.py (92%) diff --git a/__pycache__/createthread.cpython-314.pyc b/__pycache__/createthread.cpython-314.pyc index ba83802389b78c7c6001f690f5a518743e93b3eb..caf5b35278a49990d9219b48ab8026cfa995263c 100644 GIT binary patch delta 367 zcmZqRxWdk-&Bx2d00NvRv!*ajDmYbhanlm|)$)1G`sCDvOCTlKnAcF&li)$u7 zV$uw|z^nL$m6?yN!R-SF11opCPoqzZ-veRU2A>-uQVqUO1eF%J?cljA7}DVNgoW=q zi|9ob(Fti+SY)5DaQ0|jVG+HjPvmQ4WS%%dgwbf?QUf6Cnq@Fc7)t;rNChe|fpX;; zf*51qQalVsOa;s#%mu6=ECp;a+%So7rtmNm76`9^X>tH#uq2ZSBZM!{5W@pkryRpD zc@JZpE^lITNoHAUNk&m>VoLEXw#0&h)V!2itOZ4xc_o_cx7c#?Q%ZAEZ?P7aB$iCJ zWwK{w2b!Taxq-==O9IH^0OI2A$w!$qnL6Spe`FHzmzrZaL;HfDT7%aEVc7{aQ5h4VUf7Q!r7s9g+&yomPc}i z))vhR+}0OZtS7rLyLo|ZTFFo(38ad|fy6Bi8;HB?ie!OYkOzxFj1SC=jEuJ#1nx5E Z-(}EwARyGhdxM9!f%6NC6r&ATI{-==TM+;N diff --git a/__pycache__/dispatcher.cpython-314.pyc b/__pycache__/dispatcher.cpython-314.pyc index 3d5dcaf42a07d283ea470ff2092b304ac7f5b0b8..693a70f8d99d4f8e7f20ba0be2e068beb6e73173 100644 GIT binary patch delta 242 zcmeBYUBk+!&Bx2d00it3C$kioCh{#{%$vC0D#$R5If%g`f`K80nSnuuA&gO(A%+#C z4g|s#O_(68aux=LBG)3ZaMy4#V-{rwO~zX+#U=R#n#@H&eGEk)Ek!^z44UkdRTxz! z`!k9Qag}5gr6#82WEPhcvje5n)F#(3Is}23#hyT-f#Hd;!UFNj!kUdf4Q@}w6&I*& z;JPeseUU|^!Q}xvcSl)E-3@-p3mlSP*cdEb7!SBzwg|t-VcNktqv`_}gMj3MtPA`$ Z7dUJt|7C3Deas;6g@vEdwnz|YGyquwIuHN= delta 212 zcmZ3(+Rw_T&Bx2d00ehiPGrquoXEF;F=pa=D{IFXR*)zNgsX%xnlMAyLQ>dgC@shYep4T*5Z=HlF6}*l487x$t9U(sU;ajsfj7Y z#T-C2YHA9TI~W}t*?{a~3n0St$2Y&ak3OsEAMRvfiEl^j7mjJ2XquG+Mm>0I#6Q4!yWPq`6JN5kZ{M5wX6Bo3lLvzW;JWDl zaPJup@Rfdei*0W9WZYEX4k*l3u;`n;%3NVBwjUI(2P{tE(ees2014j@8Z@0?>`tOC zXr`r-No`)uE$0eqj%fnY7bXJ^pS@u;6-XoK2=4MefH=&8!K4vxt`(s$X%OKgJKQ{3 zWD=Y$UnikN^k^m!4Bvp)m+pqn>Q`pz#@fo zwoq0t5u%d>YxC6G_L)}JQcc>uEZK5uQ7@{ge0E98r%17wEoB!}lFDnQk+pJ*j_;7M zYzy;R0h^sd1R`Q6&1VjxsX#r@UJISr4xFfWgx7raPFBNXjcgv-jMQT1w>lLXJ}6EkAA?iY{Z*m3?HS8IJ~oo8=5%0mGN(6z1$hB(Q@LIM>3-u$kFmN;WQo z&73^N4uIo(6MZe}n}+Mnd)LdgX=fY@F$XQ+-6-tez4woXs$u{X$Vh*~J=W`C0hHM> zcj#?2OSAr?bU(%SgInvrI+^=Z6aPOoxo8O=Ie_^I4PJ>(>yjtZ{h}F_rdPrE)lQ9I>=>cHDVOMoV!|Cb$f^N{5wsyAEoJ}HJt z=Pb*zBuS*5ItzEpS|L9}RYq*F)VeR-dlEytf@1{D!yT@i5cp#Qg?Wx({Rk literal 1189 zcma)5OGq0*7@pm1UTYprjE~KuE=Yr^)_|30t>~c$wHPUDn+UZ+nyg98W4E)L6d#A& z8lg~+9_^)#Cxu=-_0)sM1tX+e4? z$35WHxd6boq>ztvkPA3B%~~Tk@``5|eS;98i%bnSW!j?I^go)TK~x#@l}eg#;*UBO zth!>(5+hnGkRj$N(HQ6Mlc>2?)hNjcnOEtgP?WR9l2DRVsvx9zm6BvZTxDhjR&P6> zV)J_E$Jp6b&m4*nv&D4lwrUoNyp$2-RsZv%R1!r2%B?^alaH|>BgAh-rHY9HuNp;| zEy^m5&PsV++oEHMe2JfeP=FzmYHFT9Gse)DDkRm`6bDx{kX`r67!2{tkZ|jQ!63`B zYA~D;3Vb+~C}&e)SSTcli8K$xsjMU>wD2ui*<+ zqsKOv;<;B_+Rg3cYA+S{!@6z!TYFc-)wMPDDfc0F~6)=SL@vM?f7bT#T}{JM*f~U0PWah>Q*ln z$0*(XRr_&^xN{S5GKz0xpV})c%*3H%Qn5^)*qF-HsRbZ`ZGMIFpP^LI$5$CD$vgwNIR;zTWB~n5CriZIDdigIdz8!Xo!D5 C(HCX_ diff --git a/__pycache__/lifecyclemanager.cpython-314.pyc b/__pycache__/lifecyclemanager.cpython-314.pyc index f9e73d398debcff11caa8e06756555478b077419..a35cce5431f23131e6573449ee4eb82a8c15874b 100644 GIT binary patch delta 576 zcmX@c_KuxTn~#@^0SI#cp2%9qG?8yveGDT5Ljyy&KmbS>4d_TA1cDe)c#IYi3=Anz z3=A^l>a_&vjWJ<{SrNu)0(1%p$TP&SLRbt8VGJCcmzbM6c^{)bH&;$(T557- za!zXT)~&Cy;1h_`t@%DLmbJqV-h{`2}oOIn-C!T;VXk!6z|adZzSM zKGg+jSNU`|$XwyGy~86oLF)>S>=QAd;AJu04)-q{47`HA!p-2Qs6$t@}TO2mI`6;D2sdhz@ljWJ^IfNLw!Lk4e CYhXA4 delta 429 zcmaFIevFMzn~#@^0SI_s9nU()IFWBz{WBo1fgy$wBnkpyj3!XFJdhp4pd$ql2a!RH z77+{#DfSEuGPvaQKyoq6Fg;-mFw+W{Vpw3J0c`Czmk!)e8YlWC!BnBp}hiaEFDn zL$$@{0Xt7eSZnPJo-6DsH~54nxb^1FsJX(YeMd}nLE2?8-46FBJOce*U0xH)u8XT* z6j#5-qw#^AfnVpN00S#Gkj2H{QPwLvL-Pu!@*N??1!|XtG&|TIvT%I{c|en+h#N@V ul1R> delta 48 zcmX@ke3F?@n~#@^0SMmopUBc-+{ov|$ZZPbHZXi(W8mPM9Lbo*!O19A1X2S43}^|I diff --git a/core/__init__.py b/core/__init__.py index e65c17f..5365cf6 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,3 +1,4 @@ +from .server import server from .apirequest import executeRequest from .runtime import buildSave, loadSave, buildLog, manageFailure, buildOutput #from .execution import buildOperation, buildAction @@ -5,3 +6,7 @@ from .execution.action import buildAction from .execution.operation import buildOperation from .execution.executioncontract import executeContract #from executioncontract import executionContract +from .execution.lifecyclemanager import manageLifecycle +from .execution.lifecyclemanager import registerLifecycle +from .execution.createthread import buildThread +from .server.dispatcher import dispatchRequest diff --git a/core/__pycache__/__init__.cpython-314.pyc b/core/__pycache__/__init__.cpython-314.pyc index 351ecbdde167892c5d2b151ada9ea25199b38ec8..27f63d55dc85fc7141d9471521710e69b808b2c3 100644 GIT binary patch literal 753 zcmYjP&59F25bnwENW?M#`pOfs=j6LxPtf$!l1 z_z*sTmw~Vc*@HJ>U%={~$;LiZfAxJ;HTBW+wA*P4K0hvgetusP;5^$llC8nmzp?PZ40;qWYmQ#2vdR? zd`V$TlWNxZnCdust9FpNaiR)j$;)JsbyjMv7Vui>I7P@>R(O-rCM6!1r!Pa&$=XcM z)eWF3m|pR{SIL@Cg{G&MPrTHhAiNG^U}}J{&|3ohpUh{!TOz2)v_*QmQ4}tV)u)qF zEVI3=sWuvOJ6JJ99n&@G6=0P!teH?Z!8M`5A?xQ`@zNge#21D z{7CI|%%I8sk`ZX| z#FNd&ewuu@xDpF8i&6_qQ;SQAn1SNA*o#W@N-}d(i&%iXB32N=1|rx&1jpoajAGK9 zK;|vs)QZ&P(vr;lJiYva)S^TXtB7mze?~<{?#VSwwwfY9RUn&+#eu{JW=2NFy9{dg X8T_s?_&sINyvv|}pTVL?2q*^tCR94+ diff --git a/core/execution/__pycache__/createthread.cpython-314.pyc b/core/execution/__pycache__/createthread.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..daf696843859e5d64819477c578378faf6e20a17 GIT binary patch literal 995 zcmZuwPiqrF6o0cj*=Cb$(xv~T7-JO*v84+(U<=~S(nu^Ngys?oYcfr@B%5V+Q>=Jc zLD7SU9z1yP;8pMg_!YcGEwqd+6wIZ!Li+)n+07;%d@%3t{NCI5-t0nJOMoEt``!l$ z;7?!-7`FquDsbV$Hk45jJRzkbT9-U2Cv>?euVWAAUU|&ww{pMt30}yATOB z@`&k_G%eR7v}Em&`a!)#xHHo>ZL>*+u6k5apcH;&ey(mKQN1R70d1p2Ez$v8{#Bz` z3hqmeR2$~m#G{*$HU~A4JD@6BmdetD!F@;Gk~h^THj<)$K{=>M4z9>ftd?`dz+x`PcvMWCCBo}1zBHzojzjDQi#gP? zy}ZJdcBj#85te90+jJv$RTk4ly;Ygf5##2A=)Zxw%&i1kT{@xLuI>qWcA^XY6!@aM2z2r&{uUzr^ zkdIUGUom|+ps4q7y5mFtpx0mlRJ>~{9v~I%d;xkx=+m6B_``7KkLXQqieY*`w);Y()Td%rjD&HI?S78wcxqxzpu>mNJ- zKe*x&(;e!~F}4NIpeW>laPG+qIS=uqxa`e)b0QHPS{Dmq@b-x^Ef;S2Uuz8Sn_+lhrE=Je$WC3LHH{ z*Dno#BK)HXb58)OPXQ+W*Y^(hE%Q7aDhW4PCY(}G_Vp!z61Zr?QZ%|4FdtqMk-@?Pr16#wLySjSt=1@CduZ&zALyZClWl zATY8wzdPTSQ%$KYXZIIc^6hVtv3JS0$#&#QbG03r`8d&v-0g&icdoX=mw(0?co3i2 zesCt9B z_IgVm@5CmXnS+?J?LU&(;T}r{6d8vZqhq|#+0#O2P4|aj-XMDMjG285)($Lko5*d> x44gvW10H2Cj&Ym3(C_^s9%m|ls#ctBU9TVr-y!r1ZXCkQA*7GRm=JRO{sO0|-5~$~ literal 0 HcmV?d00001 diff --git a/core/execution/lifecyclemanager/__pycache__/lifecycleregistry.cpython-314.pyc b/core/execution/lifecyclemanager/__pycache__/lifecycleregistry.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dcad79106196bb12b1e317268f3c4457b79d562d GIT binary patch literal 487 zcmdPqsf9=A_=@%E?SiO|DGNNiDv`QZc@@Wv1vC<>n^lC8nnq=_ltGrRt|vq$Zb^Waj7T!;OW>!v$c*>J?Pp z5`=J4i+o_NDB=X#0}9PzV<6GMaD$zcB|{M?&WbpI#4QdRh@b6>K#>Ht10?x@ PnURt43llq|7+5U;9XD+M literal 0 HcmV?d00001 diff --git a/core/execution/lifecyclemanager/lifecyclemanager.py b/core/execution/lifecyclemanager/lifecyclemanager.py new file mode 100644 index 0000000..d956d9e --- /dev/null +++ b/core/execution/lifecyclemanager/lifecyclemanager.py @@ -0,0 +1,25 @@ +import time + +from core.execution.operation import buildOperation +from core.execution.action import buildAction +from core import executeContract + +def manageLifecycle(module, lifecycles): #lifecycles, state): + #print(lifecycles[module.name]["mode"]) + + if lifecycles[module.name]["mode"] == "continuous": + while lifecycles[module.name]["mode"] == "continuous": + print(lifecycles) + + outputs = executeContract(module) + + #print(lifecycles) + + time.sleep(module.sleeptime) + + elif lifecycles[module.name]["mode"] == "oneshot": + print(lifecycles) + outputs = executeContract(module) + + #print(lifecycles) + return diff --git a/lifecycleregistry.py b/core/execution/lifecyclemanager/lifecycleregistry.py similarity index 100% rename from lifecycleregistry.py rename to core/execution/lifecyclemanager/lifecycleregistry.py diff --git a/core/server/__init__.py b/core/server/__init__.py new file mode 100644 index 0000000..d2d51e4 --- /dev/null +++ b/core/server/__init__.py @@ -0,0 +1,2 @@ +from . import server + diff --git a/core/server/__pycache__/__init__.cpython-314.pyc b/core/server/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8798678ddde6f1f6e4660ec521586d4c081db714 GIT binary patch literal 178 zcmdPqFQ_X=cekXB$j2S=ojVYCgvrkrxxia=NF~w yL-gp!$7kkcmc+;F6;$5hu*uC&Da}c>E8+m^1{q!qVtim`WMsV0AX3BzZQAKs1J|30_PMWuLHhVb`|{5lI{2lyVaZPQ71=6kc>%)EIs4{j(kz-0L7>+VMc@RJ`r z5vE|2VxR-tprHb|+zJJh7hE9*+ei}&VqS8k7-&)iT%U%PA?f?gL!T!RRqN$Oxr(0| zZ*ZkuF)?$^>@*Eif8my0Twx_I#K(}xzR@41I*4aYLulu4Oc6 z(5TxMaZO`~Diip6l7)&@>?Zv*K=8XJc3dj!hGUoAN{xzdahrw-b}X}nbK{$>*NRO!r}W5vvGE zKbd8QhD~q%rfm>Db*gw*cla(6KHc$^zW}+-@hwi0Hzv>enA~AUzC#Z84@HE~4+x(_ O>Ks=7NwX+A4*Cz}+P_o) literal 0 HcmV?d00001 diff --git a/core/server/__pycache__/dispatcher.cpython-314.pyc b/core/server/__pycache__/dispatcher.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..874dafc3c6fc7176fd273f858ec56d31e3e3c756 GIT binary patch literal 711 zcmXw0&ubGw6n>N4{OFc6kxD{Puq7B+ge;{IB1TVXNkBZTl6VNhx;r*ovYR+NNv#Ko z;Gutl$6USnAL!LvN-i=G5Za5kLiz{zW|DodZ@zD4-uK>q^Jph)0LIVy@6&?>z?CF% zAXl-f<1&S}#3pTM5l$XRoM<_%AAB`OD_Hn~d8?U&-DY9+FUiTSwyq9j=TMm%KPs48&Vwyrv>Z#~JZG+G7J}dX+ zEfw8zhtxJqogH*E8|rTWJlwqx9a4s#)Lq}+uWkCB>8NwW3f-e_;ZRObgdXwX$kdor zV|WZq)|qLMX7t0DMqC&J|2=ij-2sh6Dj0g>0Tnu~RBUneJK;DG#s)e8jq$*bc$7x5 zN@Y)mu&n+tpqA%Me9vM*;DpWzWtKZ+)QTvZAoe!)QC1zDi(E|Y^(ZWlYEm(3W17PC z?%u4p*fqbrm>ypj_h*$K#-jN2QolQG{!MRROul~plPk?LrP~xdX_8;Zi+cAm^Y~)x z+ou}?@}=47JlB|K8Y>h7Gb46fd>l^WrpgkLjcFtwQaL2<$&st{BX!5zABNR+-P!?V zU+jz@o~W6>1G|GgSPqlOG}b0QXGNs)g`)zd8;uaM1ak=wmvDFm`CC0lo~gS3GXu0K literal 0 HcmV?d00001 diff --git a/core/server/__pycache__/dispatchstate.cpython-314.pyc b/core/server/__pycache__/dispatchstate.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70708a9aa78d834a0ed63affdd9a9bd88f229d14 GIT binary patch literal 1227 zcma)5&ubGw6n^_7N!@NtY}1r9(Jod(*JvZP_@gbNLPfvrG$+PFM^${C39BR3L?*XVJ@f0Aer;29rX#xlV?{q(FpGcC59s zz{s2}Wc8AzmCAbAT#nr=nPtP!iKXVGLc63?)N|^%By$9D!S?AT)m+dmn>Q`pz$S%M zrchR=2+@hm+B}W6J*JhhRFj@QF4?2W1-+;ybD2dgmn6kvrj*I6B$?HTnlx3ih<;8p zjf|CDaPmfsC0m%+3V85oL?a@?(AwrOnhG?0-L=4py6;3I7+Uc(0-+UgD>zU)cy{B+ zMz|I|zZtwx6E5svEMzG??cqhoq3aS7P}xIFifL0~aI>7jD`0q1oWh)Wgk%OOnR6YS zG@G6sqr~Gd*!1X0b_kr4HS!^mGXadg_7c(t0k0Nn=fUGC>(=mB}?|&Uer;!pgQoj&=I3a=v%Y>ZXL3; zNVR8+?O%#v(tD1_bio5CW_5mxGN!->b(j9>2a{4-9|D z-O%ys{Q85n2h}^Zo{73R`L(xy+uyso{4Vh}@u`30v;WM8IGSdx1GO84fkgGx#*@v+ z?Ukzz#&9*f9$kx8{k5J`b@6mF+zBRrY*_Z#T||9YR!z&adHQ}F?pzk>(bm9;bI;v1 l>2i3EL~x5fdNYis$uSJ`1p+_d@GqWcE;75~A?Bcy_ZxH#4%h$y literal 0 HcmV?d00001 diff --git a/core/server/__pycache__/server.cpython-314.pyc b/core/server/__pycache__/server.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1060bc383c810e911fad3edb4067f13cde0c1b93 GIT binary patch literal 929 zcmZWoTTc@~6h6~#FK%tQlmLQ?M7%UjsE`H|l@cN#&;ZRs@C78x?kHQ^?mDxS;8RIV zB)k}XAw&~+HSv%5CaH;J2uY*7@TRFhz?p3qn)q$@T)#8t%+5|c5|)AE=kV8T(gW~I zI4-#Fpn8?75oYcGGRW5}sSqIwcp&;v^% z=OA-#xeHl2Jc6boaN25{LfN6Za2%f)avFlZLW2pdtuRc&h;WX&uTux1;)D4^;(!IUydS8bIANNsEubf=@@AaB&c z;)yjgj}y9DH1q_?=hcGx0+WPh5}cq;r@HF5Hd%<;DzWFCFuB5)5q}gda#4a4DSjG` zzFXc|{xr0o+Dm;I`Vk*Kj1QN?snSG6lHaDc(%+iNAioVRv%Df{*g1zMjJ=A}*FVQ_9Z|etQu@#}Gb-&|j$&bvqUR E0Na4S7XSbN literal 0 HcmV?d00001 diff --git a/core/server/createdispatch.py b/core/server/createdispatch.py new file mode 100644 index 0000000..a4cc7ea --- /dev/null +++ b/core/server/createdispatch.py @@ -0,0 +1,17 @@ +import importlib +from lifecyclemanager import manageLifecycle +from .dispatchstate import buildState + +def buildDispatch(request): + dispatch = [] + + for key in request["module"]: + dispatch.append(request["module"][key]) + + resolveddispatch = "plugins."+ ".".join(dispatch) + + module = importlib.import_module(resolveddispatch) + + mode = request.get("mode", "oneshot") + + return module, mode diff --git a/core/server/dispatcher.py b/core/server/dispatcher.py new file mode 100644 index 0000000..e742605 --- /dev/null +++ b/core/server/dispatcher.py @@ -0,0 +1,22 @@ +from .createdispatch import buildDispatch +from .dispatchstate import buildState +from core.execution.createthread import buildThread + +import threading + +def dispatchRequest(request, lifecycles): + + module, mode = buildDispatch(request) + + mode, lifecycles = buildState(module, mode, lifecycles) + + if mode == "stop": + return lifecycles + + else: + threadnum, threadname, lifecycles, threadlist = buildThread(module, lifecycles) + + #print("Active Threads") + #print(threadlist) + + return threadnum, threadname, lifecycles, threadlist diff --git a/core/server/dispatchstate.py b/core/server/dispatchstate.py new file mode 100644 index 0000000..4977710 --- /dev/null +++ b/core/server/dispatchstate.py @@ -0,0 +1,41 @@ +import requests + +from core import registerLifecycle + +def filterMode(mode): + if mode in ("continuous", "oneshot", "stop"): + state = mode + return state + else: raise ValueError(f"Unsupported lifecycle mode: {mode}") + +def buildState(module, mode, lifecycles): + state = filterMode(mode) + + registryvalue = state + registryname = "mode" + + if state != "stop": + lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + elif state == "stop": + if not module.name in lifecycles: + + print(f"No registered lifecycle: {module.name}") + + return None + + elif "mode" in lifecycles[module.name] != "stop": + lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + print(f"Stopping lifecycle: {module.name}") + + #elif mode == "oneshot": + #registryvalue = {"mode": "oneshot"} + #lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + # else: + #raise ValueError(f"Unsupported lifecycle mode: {mode}") + + #state = registryvalue + + return state, lifecycles diff --git a/core/server/server.py b/core/server/server.py new file mode 100644 index 0000000..700cc55 --- /dev/null +++ b/core/server/server.py @@ -0,0 +1,30 @@ +import socket +import json + +def startServer(): + from .dispatcher import dispatchRequest + + server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + server.bind(("127.0.0.1", 19002)) + + lifecycles = {} + + server.listen() + + while True: + connection, address = server.accept() + + while True: + data = connection.recv(4096) + + request = json.loads(data) + + # if not data: + # break + + dispatch = dispatchRequest(request, lifecycles) + + connection.close() + + # server.close() diff --git a/dispatcher.py b/dispatcher.py deleted file mode 100644 index cec2c87..0000000 --- a/dispatcher.py +++ /dev/null @@ -1,14 +0,0 @@ -from createdispatch import buildDispatch -from createthread import buildThread -from dispatchstate import buildState -import threading - -def dispatchRequest(request, lifecycles): - - module, mode = buildDispatch(request) - - state, lifecycles = buildState(module, mode, lifecycles) - - threadnum, threadname, lifecycles, activethreads = buildThread(module, state, lifecycles) - - return threadnum, lifecycles, diff --git a/dispatchstate.py b/dispatchstate.py deleted file mode 100644 index 5c58637..0000000 --- a/dispatchstate.py +++ /dev/null @@ -1,33 +0,0 @@ -import requests - -from lifecycleregistry import registerLifecycle - -def buildState(module, mode, lifecycles): - registryname = "state" - if mode == "continuous": - registryvalue = {"mode": "continuous"} - - lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) - - elif mode == "stop": - if not module.name in lifecycles: - registryvalue ={} - print(f"No registered lifecycle: {module.name}") - return None - elif lifecycles[module.name]["state"]["mode"] != "stop": - state = lifecycles[module.name]["state"] - state["mode"] = "stop" - #lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) - - print(f"Stopping lifecycle: {module.name}") - - elif mode == "oneshot": - registryvalue = {"mode": "oneshot"} - lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) - - else: - raise ValueError(f"Unsupported lifecycle mode: {mode}") - - state = registryvalue - - return state, lifecycles diff --git a/initialize.py b/initialize.py new file mode 100644 index 0000000..cb33b6a --- /dev/null +++ b/initialize.py @@ -0,0 +1,3 @@ +from core.server.server import startServer + +startServer() diff --git a/lifecyclemanager.py b/lifecyclemanager.py deleted file mode 100644 index d9c5d12..0000000 --- a/lifecyclemanager.py +++ /dev/null @@ -1,19 +0,0 @@ -import time - -from core.execution.operation import buildOperation -from core.execution.action import buildAction -from core import executeContract - -def manageLifecycle(module, state): - print(state) - - if state["mode"] == "continuous": - while state["mode"] == "continuous": - outputs = executeContract(module) - - time.sleep(module.sleeptime) - - elif state["mode"] == "oneshot": - outputs = executeContract(module) - - return diff --git a/lifecyclemonitor.py b/lifecyclemonitor.py new file mode 100644 index 0000000..f6c788c --- /dev/null +++ b/lifecyclemonitor.py @@ -0,0 +1,12 @@ +def lifecycleMonitor(lifecycles): + while True + + print("Active Threads:") + #if not exists module.name in lifecycles: + #print("No active threads") + if exists module.name in lifecyles + for item in lifecycles[module.name] + if item == "thread".__name__: + print(item) + else: + print("No active threads" diff --git a/plugins/rmass/operations/__pycache__/setavailable.cpython-314.pyc b/plugins/rmass/operations/__pycache__/setavailable.cpython-314.pyc index 02a6f9227059af18576b4fac92e8f96cd65dc2fb..f6c08b2ba36be8876710f3b7476ad31e090403de 100644 GIT binary patch delta 33 ncmZ3(vWA6Mn~#@^0SNB>J&~0^k=KurYh%npMn?Y0{}}ZEnAQof delta 33 ncmZ3(vWA6Mn~#@^0SLD99M3A4$m_?rWn;`jMn-|j{}}ZEi#Q2G diff --git a/plugins/rmass/operations/setavailable.py b/plugins/rmass/operations/setavailable.py index 72f16fa..3d23329 100644 --- a/plugins/rmass/operations/setavailable.py +++ b/plugins/rmass/operations/setavailable.py @@ -10,7 +10,7 @@ actions = [ setavailable, ] -sleeptime = 180 +sleeptime = 10 skipstep = { setavailable: { diff --git a/checkavailable.py b/trash/checkavailable.py similarity index 100% rename from checkavailable.py rename to trash/checkavailable.py diff --git a/createdispatch.py b/trash/createdispatch.py similarity index 100% rename from createdispatch.py rename to trash/createdispatch.py diff --git a/trash/createthread.py b/trash/createthread.py new file mode 100644 index 0000000..3d0609d --- /dev/null +++ b/trash/createthread.py @@ -0,0 +1,30 @@ +import threading +from lifecycleregistry import registerLifecycle +from lifecyclemanager import manageLifecycle + +threadlist = [] +threadnum = 0 + +def buildThread(module, lifecycles): + global threadnum + threadnum += 1 + + threadname = f"thread.{threadnum}" + + thread = threading.Thread( + target=manageLifecycle, + args=(module, lifecycles) + ) + thread.start() + + registryname = threadname + registryvalue = thread + + lifecycles = registerLifecycle (module, lifecycles, registryname, registryvalue) + + threadlist.append(thread) + + print(threadlist) + print(lifecycles) + + return threadnum, threadname, lifecycles, threadlist diff --git a/trash/dispatcher.py b/trash/dispatcher.py new file mode 100644 index 0000000..ce2ccbd --- /dev/null +++ b/trash/dispatcher.py @@ -0,0 +1,22 @@ +from createdispatch import buildDispatch +from createthread import buildThread +from dispatchstate import buildState + +import threading + +def dispatchRequest(request, lifecycles): + + module, mode = buildDispatch(request) + + mode, lifecycles = buildState(module, mode, lifecycles) + + if mode == "stop": + return lifecycles + + else: + threadnum, threadname, lifecycles, threadlist = buildThread(module, lifecycles) + + #print("Active Threads") + #print(threadlist) + + return threadnum, threadname, lifecycles, threadlist diff --git a/trash/dispatchstate.py b/trash/dispatchstate.py new file mode 100644 index 0000000..78faf36 --- /dev/null +++ b/trash/dispatchstate.py @@ -0,0 +1,41 @@ +import requests + +from lifecycleregistry import registerLifecycle + +def filterMode(mode): + if mode in ("continuous", "oneshot", "stop"): + state = mode + return state + else: raise ValueError(f"Unsupported lifecycle mode: {mode}") + +def buildState(module, mode, lifecycles): + state = filterMode(mode) + + registryvalue = state + registryname = "mode" + + if state != "stop": + lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + elif state == "stop": + if not module.name in lifecycles: + + print(f"No registered lifecycle: {module.name}") + + return None + + elif "mode" in lifecycles[module.name] != "stop": + lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + print(f"Stopping lifecycle: {module.name}") + + #elif mode == "oneshot": + #registryvalue = {"mode": "oneshot"} + #lifecycles = registerLifecycle(module, lifecycles, registryname, registryvalue) + + # else: + #raise ValueError(f"Unsupported lifecycle mode: {mode}") + + #state = registryvalue + + return state, lifecycles diff --git a/trash/lifecyclemanager.py b/trash/lifecyclemanager.py new file mode 100644 index 0000000..d956d9e --- /dev/null +++ b/trash/lifecyclemanager.py @@ -0,0 +1,25 @@ +import time + +from core.execution.operation import buildOperation +from core.execution.action import buildAction +from core import executeContract + +def manageLifecycle(module, lifecycles): #lifecycles, state): + #print(lifecycles[module.name]["mode"]) + + if lifecycles[module.name]["mode"] == "continuous": + while lifecycles[module.name]["mode"] == "continuous": + print(lifecycles) + + outputs = executeContract(module) + + #print(lifecycles) + + time.sleep(module.sleeptime) + + elif lifecycles[module.name]["mode"] == "oneshot": + print(lifecycles) + outputs = executeContract(module) + + #print(lifecycles) + return diff --git a/trash/lifecycleregistry.py b/trash/lifecycleregistry.py new file mode 100644 index 0000000..86ddab0 --- /dev/null +++ b/trash/lifecycleregistry.py @@ -0,0 +1,8 @@ +def registerLifecycle(module, lifecycles, registryname, registryvalue): + if module.name not in lifecycles: + lifecycles[module.name] = {} + + + lifecycles[module.name][registryname] = registryvalue + + return lifecycles diff --git a/manage.py b/trash/manage.py similarity index 100% rename from manage.py rename to trash/manage.py diff --git a/manager.py b/trash/manager.py similarity index 100% rename from manager.py rename to trash/manager.py diff --git a/server.py b/trash/server.py similarity index 92% rename from server.py rename to trash/server.py index dd7ecc9..6540a8c 100644 --- a/server.py +++ b/trash/server.py @@ -1,6 +1,7 @@ import socket import json from dispatcher import dispatchRequest +#from createthread import buildThread server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -10,10 +11,9 @@ lifecycles = {} server.listen() -#lifecycles = {} - while True: connection, address = server.accept() + while True: data = connection.recv(4096)