From 70c7dd27cd7a2fb58fb21830798d9cde1e88a869 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 31 Jul 2012 22:42:12 +0200 Subject: [PATCH] Added: #1440 Build task finished result handling --HG-- branch : build_pipeline_v3 --- .../plugin_library/pipeline_process.h | 21 ++++++++ .../tools/pipeline/service/metadata_storage.h | 10 ++-- .../service/module_pipeline_master.cpp | 48 ++++++++++++++---- .../service/module_pipeline_master_itf.cpp | Bin 13551 -> 28400 bytes .../service/module_pipeline_master_itf.h | Bin 7769 -> 16160 bytes .../service/module_pipeline_master_itf.xml | 5 +- .../service/module_pipeline_slave.cpp | 17 ++++++- .../service/module_pipeline_slave_itf.cpp | Bin 10428 -> 21496 bytes .../service/module_pipeline_slave_itf.h | Bin 6705 -> 13822 bytes .../service/module_pipeline_slave_itf.xml | 1 + 10 files changed, 84 insertions(+), 18 deletions(-) diff --git a/code/nel/tools/pipeline/plugin_library/pipeline_process.h b/code/nel/tools/pipeline/plugin_library/pipeline_process.h index 61cb600fe..1a8c7b4c6 100644 --- a/code/nel/tools/pipeline/plugin_library/pipeline_process.h +++ b/code/nel/tools/pipeline/plugin_library/pipeline_process.h @@ -39,6 +39,27 @@ namespace PIPELINE { +enum TProcessResult +{ + /// Invalid state. + FINISH_NOT = 0, + + /// Successfully built. + FINISH_SUCCESS = 1, + + /// Built successfully with warnings. + FINISH_WARNING = 2, + + /// Build failed. + FINISH_ERROR = 3, + + /// Task aborted by slave. For internal usage only. + FINISH_ABORT = 4, + + /// Task rejected by slave. For internal usage only. + FINISH_REJECT = 5, +}; + /** * \brief IPipelineProcess * \date 2012-03-03 09:22GMT diff --git a/code/nel/tools/pipeline/service/metadata_storage.h b/code/nel/tools/pipeline/service/metadata_storage.h index b090075f9..c64d2a0ed 100644 --- a/code/nel/tools/pipeline/service/metadata_storage.h +++ b/code/nel/tools/pipeline/service/metadata_storage.h @@ -48,11 +48,11 @@ namespace PIPELINE { enum TFileState { - Unknown = 0, - Success = 1, - Warning = 2, - Error = 3, - Removal = 4, + STATE_UNKNOWN = 0, + STATE_SUCCESS = 1, + STATE_WARNING = 2, + STATE_ERROR = 3, + STATE_REMOVAL = 4, }; /// Suffix for metafiles that contain the CRC32 etc diff --git a/code/nel/tools/pipeline/service/module_pipeline_master.cpp b/code/nel/tools/pipeline/service/module_pipeline_master.cpp index cee249230..c4567012f 100644 --- a/code/nel/tools/pipeline/service/module_pipeline_master.cpp +++ b/code/nel/tools/pipeline/service/module_pipeline_master.cpp @@ -44,6 +44,7 @@ #include "database_status.h" #include "build_task_queue.h" #include "pipeline_workspace.h" +#include "../plugin_library/pipeline_process.h" using namespace std; using namespace NLMISC; @@ -425,43 +426,62 @@ public: /////////////////////////////////////////////////////////////////// /// When the slave task finishes, with or without error - virtual void slaveFinishedBuildTask(NLNET::IModuleProxy *sender, uint8 errorLevel) + virtual void slaveFinishedBuildTask(NLNET::IModuleProxy *sender, uint8 errorLevel, const std::string &errorMessage) { - // TODO + //m_SlavesMutex.lock(); + TSlaveMap::iterator slaveIt = m_Slaves.find(sender); + if (slaveIt == m_Slaves.end()) { nlerror("Received 'slaveFinishedBuildTask' from unknown slave at '%s'", sender->getModuleName().c_str()); m_Slaves.erase(sender); /*m_SlavesMutex.unlock();*/ return; } + CSlave *slave = slaveIt->second; + //m_SlavesMutex.unlock(); + + switch ((TProcessResult)errorLevel) + { + case FINISH_WARNING: + case FINISH_SUCCESS: + m_BuildTaskQueue.successTask(slave->ActiveTaskId); + break; + case FINISH_ERROR: + m_BuildTaskQueue.erroredTask(slave->ActiveTaskId); + break; + default: + nlerror("Slave returned bad error level"); + break; + } + + notifyTerminalTaskState(slave->ActiveTaskId, (TProcessResult)errorLevel, errorMessage); + + slave->ActiveTaskId = 0; } /// When the user aborts slave-side, when slave-side exits, etc (assume the master requested abort or the slave crashed) virtual void slaveAbortedBuildTask(NLNET::IModuleProxy *sender) { - // TODO //m_SlavesMutex.lock(); TSlaveMap::iterator slaveIt = m_Slaves.find(sender); if (slaveIt == m_Slaves.end()) { nlerror("Received 'slaveAbortedBuildTask' from unknown slave at '%s'", sender->getModuleName().c_str()); m_Slaves.erase(sender); /*m_SlavesMutex.unlock();*/ return; } CSlave *slave = slaveIt->second; //m_SlavesMutex.unlock(); + m_BuildTaskQueue.abortedTask(slave->ActiveTaskId); + notifyTerminalTaskState(slave->ActiveTaskId, FINISH_ABORT, "The task has been aborted"); slave->ActiveTaskId = 0; - // --slave->SaneBehaviour; // legal behaviour - // slave->TimeOutStamp = NLMISC::CTime::getSecondsSince1970() + 30; // timeout for 30 seconds on this slave // no timeout - // CInfoFlags::getInstance()->addFlag(PIPELINE_INFO_SLAVE_ABORTED); // don't keep a count - // TODO } // in fact slaves are not allowed to refuse tasks, but they may do this if the user is toying around with the slave service virtual void slaveRefusedBuildTask(NLNET::IModuleProxy *sender) { - // TODO //m_SlavesMutex.lock(); TSlaveMap::iterator slaveIt = m_Slaves.find(sender); if (slaveIt == m_Slaves.end()) { nlerror("Received 'slaveRefusedBuildTask' from unknown slave at '%s'", sender->getModuleName().c_str()); m_Slaves.erase(sender); /*m_SlavesMutex.unlock();*/ return; } CSlave *slave = slaveIt->second; //m_SlavesMutex.unlock(); + m_BuildTaskQueue.rejectedTask(slave->ActiveTaskId); + notifyTerminalTaskState(slave->ActiveTaskId, FINISH_REJECT, "The slave service has rejected the task. This is a programming error"); slave->ActiveTaskId = 0; --slave->SaneBehaviour; slave->TimeOutStamp = NLMISC::CTime::getSecondsSince1970() + 3; // timeout for 3 seconds on this slave CInfoFlags::getInstance()->addFlag(PIPELINE_INFO_SLAVE_REJECTED); - // TODO } virtual void slaveReloadedSheets(NLNET::IModuleProxy *sender) @@ -512,6 +532,16 @@ public: /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// + void notifyTerminalTaskState(uint32 taskId, TProcessResult errorLevel, const std::string &errorMessage) + { + nlinfo("taskId: %i, errorLevel: %i, errorMessage: %s", taskId, (uint32)errorLevel, errorMessage.c_str()); + // TODO NOTIFY TERMINAL (send errorlevel as uint8 as usual) + } + + /////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////// + class CUpdateDatabaseStatusSlaveCallback : public CDelayedCallback { public: diff --git a/code/nel/tools/pipeline/service/module_pipeline_master_itf.cpp b/code/nel/tools/pipeline/service/module_pipeline_master_itf.cpp index db7a9ddbf22aef6d1af0c1901b4220708a3644c0..35cfa69aa53e707bda3a755adb28b14f5fff4b92 100644 GIT binary patch literal 28400 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 JO1Fuh#=os{<^2Ev diff --git a/code/nel/tools/pipeline/service/module_pipeline_master_itf.h b/code/nel/tools/pipeline/service/module_pipeline_master_itf.h index ff8a884949c5d122b003ca8d8395c84d874fda16..cbdf02b64083b77e97743eea892a4aa6fd98ec66 100644 GIT binary patch literal 16160 zcmeHOU2hXd6rERB>VH^@L$rAXpISqvbeuuy7J zpPQho2O1ASV-NH-A%UiQ;a-a*UbvQf zynT_`>SyP?9mswn^e65IS!V!T9gEI7xEi~2Hw1ShP<4W5??Nj-1iTyPd*HC;eh0U2 zz-7yQ#PtJtE`eMqr+BSLSfh*2DX?(vo=j&XIu1pqCf)e0JPL_2MN}%7>Emx3l(s;7 zUsg#oR4<-$gm+V+`3UoL1eIs9$_RIf(O3>eGZO1#ktZcM0$oIN)pt)JlZn_!{Wn|g z0CUjNsIe4W4M9x`>PAb@(-Qfvg0mJRqdwsazRv@ih=dc|BVI;Abq80o*1+e!3XU4` zm%keu_mTIe6wzO;+fQB{?&)RPVgU*K!W&qSA-V}n(!UJE+PWCybBqls{NiUBQB9g| zhrscHJl{c_(J|vxqmIUllj$r(%MjP}G#podX7AbW(2woG8}DQ8hoE&A*i&l4d0xtF zL~1&*G5 ztP*@rAOlKHy{Sg#F1+Gr-0e-}s@7>9j!(BmOWljL8shuL&~WGrU*S3Wd}aVCG*9Y` z?}qz!@%9;3r?;Bm`2p7br-rQaIoCA|4`<+~4|z9F^>9gK$l-I z_6)OWoCxidc1d~kM0=FV4(Qa#$T=JEy~GOR-2~r6O#WJ`;Uv31|(GRc7_)nE4ARS`7u&*MASmc0{tomG`tA&NKn^wX7-!ii;=Rc28h(n_c?VG;rY-iAJC%@lITC3I5*fWMdU}gL zhMb0oiT)0+%-_(*&F4?!;yek^BMqmq!t@Yodj9afz3P0C{xN#2%sz-C ztF4;2o*;rT##~i<*D8e>f_4E|BP2i=dt*fzqh^-J&>gEnKF#hbDgWdSF2DYY<9I%$wrYN5WfgGT3n1b+!hA<_(U1r2hx?w0(H}q0YREq`o4Mw5w93we z)t&P?E|l4({+ZlVZ|mKIpmsLJw_leMh^1h^vi*{Jx#=<)DZ2>lMLd8d(27}`r|6_~ zB`+S#RA%{=0yA{~c3cmzmVfN-2mK;NLKPV-%4zFLU=_42%2GE?TT$M*NxBwil2?s7 z%MI60*P?8%E=8>F!%Do^vb85r-&X48dv!UhPieUft}b205)XC!2)UyAIBlu>Zk@;!P* zx>uY4FYK1v9)srbJ~I#ZE%>bU<8|gnru)hco!{s1bTpAQq{y#$dLnN;FKchkrHheD zPX%N<*v#%(6|xdJ7Hi5d*MmE4RK*Q_)sB|ZBPR&8D$wi8It zKe*smdxf#o4GrZnYCFLV^u>#Kw`V*$be;U_rTp3+msPy8M}ya}T9$ENjBjSOq4ju< zRR8MbXocJh>I0G7J^x!!nJ<0QE%)#g>t?~GKTnmS`gUNwKOipSUp4=E-A4>(=J_O6-pVcaD2vy+A$0D^$*kAWo-<`! z9vy}{?%5ReAGk;CeI{k)&m&ONMuqCxY<%7uDtGF>10Lzwct_75#C{~^FM}$-YCh#E0l)Lyz?uU=YjvKi>a{ohtl7%H%1MdP*Jb?{sgKV}#7K+J zMfjPB{#ozg$0>2+BJ>p0h(Aj(KNpy#O?{-zdl}si@Nkug#1rZ&z%76kl%LWxEfnU%gy+q0YKtWtq2ER87vs6|D9M=);c? zwQfnIOQVQggvHD04%Cqq{lwz^n^j3H)J(maUww>uPnB=nd*v<+Gk`GrjE=h#EP zZ532}+CWc=F-zcy8h>(4@AHhA#$!HVJ1lxCk>{^D>T8fA{PMMl(Hv$-aW^WCTFj5a za}Y$>f%HjuQaT>fy%p{imOtH*)oI>(v!^j=4eN|0Cbg}m^@RScrmIHMa(ea=b*q6z zwpKNt*lK_k;VQiyHBdII+Dd=b(yyLdZgsE@9Ta8QTj{Sx`e8O(rp_oQ_xkn5Hd5zD z>Qz-+<@C4BoEBFpb!yIX(l552&{~(NJsZ*!q^;S9-A7-STECN{H<6cw|8MwzK3@z# literal 7769 zcmdT}TW{J(6n?gU#dITO0cAtA`%=*)Qku&a2`CD*`)CdJ0HYe)ni-R_Rrj~=H#0Vv ziwzqRZHjUuo^wCvJLe2;^VpZ$Y?8mOAA0THpQJ_9luLpyN+v8~f+`k}F%Q`p3F7Ei zMf@p^CX8@J-hlAPm+PMJaTKsI>9_lLop$fe>wdcZ+`02s@2>~Ly9cj5y!Sr3CpgL@ zcIasy`C%F`@=L_R=8Q|fsTK*7UKE~Bf6=0~aRTSes>+$b&iaGv#D7;G5elFxF1p} z$xYWdx6cz6BE7m)DkcVBS?D@2Gf77w_gk)`1)@HX{1Kk}EK#u_I-~GN|FYTCyBoGz zH|^Dt`&c|ufxwW9a!FUtut4%2QbnwokLuHcOBJlu@f130-B6%}Q4ubPNF$>25yi^< zuVf50vxpN#N1@i&nK0G0`Sy`UL5RGp)gjjTf$upNDy1R$XTRJZNCIab^8ilas@Cfm z^V`;;q%kv&T`K7nY&^Hy4y zMtsbqs?`Z9O)BR*5lp2bA_XcKNsNh585}f=Pm!hnoNTDy7xA}6Zi9JKC**qx^=z*{ z37E8roh1!9%`!?SO(OUlXwlNSkQaiSY61%oMLO1^-bjPehR28%)J>)d})8TXWj&nsY#HV}(` zDyIWGM?7mLrAdI&y`^XjRI-7hDwQ7=UyRJ>wL>y>J%@L62kM9Egh$U83Elk|nz>*k z#(Y=+KLFxvgx(vEP3zXaV=9hNNX3Th6g!hCvjWG>mXCg#HFPS;Sa9H^WskAh3>09V z{Tpy%CX5_C3;pk~u|T71asD`N;DTbX>uJNj8GnuxZ{_1>K4DY0P}XT-^9u)?)!Lcg5q(!is*L?r!AO!9%dTPp2%qvxT@IXV@9E6lT!?O z6|ty7t}0O#EO$Uu6{j_&t+f|AG5`4eikv1E;+BwS#iE1%(D-s(A%Xh!E>31rHk*^S zk_={8M@bSJOa?j|7`6jH!R-2NfqKp0acHMf!=SH(;}zcLpxj?)6vkM-^VwHTsUm!q zglxtlwOZB2dULID+X0MBeZ!&GB1(!3^q#Vz3bfEKucPHybuyT_dcKnqR zRAJq>{m5vch5B)*rRtj%>j#J}9h99$QMO)6;fZ2X*hy(zxI1-?{dOaR+%+GQOB)g6 zYYnA(MdLK&e`A$gDXnd!@UMxewo3DXcWZ|AZ&!LwHhbSKmx@L{!$x*_N#1Iqc3EBX zXD-zc7W{1YQOAjN2W3LlijE*}E=limr(<^33iq{I#WqhGM(1pGw;Xghq5f)LhdxkS zao_WC5rCyVZ{F6Z4;Ygg_k|0t^P}jX}=nXgxP#whFI`ch%{F13-^q>-&{nkiO3Hn$ z{XpU!t-OqKPwURf)*7I_ma$!X!|(s0Rp+d?+`qj&l%|1Q;ms(qw=3s;CBN4I(pbb3 z=j6d&AL;o&yY0Y@lF#_uTukBbF+&Zaw`f#nRN_9^l<5T5=74?FgawkaE0mGBys~#N zSO>i7Y`@7>JYC)hoRM7_54p(O{Ph2BP+7h0utx{|m1$pA@jr|9yD;bH(7hD(em3=s yxclmLFGKzvidUik>#5>Hde08yUKtdXcfTFFuLb6S4v0_kFu>`(6oX&>f#<&gpxYw= diff --git a/code/nel/tools/pipeline/service/module_pipeline_master_itf.xml b/code/nel/tools/pipeline/service/module_pipeline_master_itf.xml index 48413b6c8..1a1f7a2ff 100644 --- a/code/nel/tools/pipeline/service/module_pipeline_master_itf.xml +++ b/code/nel/tools/pipeline/service/module_pipeline_master_itf.xml @@ -7,7 +7,8 @@ - + + @@ -33,7 +34,7 @@ - + diff --git a/code/nel/tools/pipeline/service/module_pipeline_slave.cpp b/code/nel/tools/pipeline/service/module_pipeline_slave.cpp index 16a1749b9..0edc054b5 100644 --- a/code/nel/tools/pipeline/service/module_pipeline_slave.cpp +++ b/code/nel/tools/pipeline/service/module_pipeline_slave.cpp @@ -251,6 +251,7 @@ public: } if (bothReady) { + m_SlaveTaskState = SOMEWHERE_INBETWEEN; if (m_AbortRequested) { nlinfo("Aborted slave task after status update"); @@ -259,15 +260,17 @@ public: else { nlinfo("Slave task: Status update done"); - m_SlaveTaskState = SOMEWHERE_INBETWEEN; // Done with the status updating, now do something fancey // ... TODO ... // not implemented, so abort. - abortBuildTask(NULL); + // abortBuildTask(NULL); } } } break; + default: + finishedTask(FINISH_ERROR, "Task got lost somewhere inbetween the code of the slave service. This is a programming error. Implementation may be incomplete."); + break; } // Nothing to do here, move along @@ -377,6 +380,16 @@ public: CInfoFlags::getInstance()->removeFlag(PIPELINE_INFO_BUILD_TASK); } + void finishedTask(TProcessResult errorLevel, const std::string &errorMessage) + { + m_ActiveProject = NULL; + m_ActiveProcess = NULL; + m_SlaveTaskState = IDLE_WAIT_MASTER; + if (m_Master) // else was disconnect + m_Master->slaveFinishedBuildTask(this, (uint8)errorLevel, errorMessage); + CInfoFlags::getInstance()->removeFlag(PIPELINE_INFO_BUILD_TASK); + } + /// Master or user request to abort. virtual void abortBuildTask(NLNET::IModuleProxy *sender) { diff --git a/code/nel/tools/pipeline/service/module_pipeline_slave_itf.cpp b/code/nel/tools/pipeline/service/module_pipeline_slave_itf.cpp index f74930dfd688a6250c815a0f00c71317c38ae7ab..529c8cd0af7866d90a447a16e14d03c7ba2bcedf 100644 GIT binary patch literal 21496 zcmeHPZBH9V5Z

ssG_hrPM?%k=k#xjRb`fBvKG2%}2{%8{8N}ZIgsV{p)R?XUF5+ zJKr7Wv(FCZgbv^N_GMveD)z#l&JyUH6a_Jd1i{V&Gtr_?GH`OY@&U~ z1vv|hNL+wBa>g0lMVT-swKAKPhoSj-EHm-e&M{gy;FNQ|kBjsES6m(R*hA0laZRBq zK#30C)}R}-{N|)(N3rzM!q{%xdDX=@hUOPsdB&QxNQr8$8`P%0aaB1dDGHZ zOiG5(VCT?7e@)Po^DMfbDM z9^Qvz4XE-TPPC#(g|gCSM9gO@j?4z@V;MufV zr^3_MJIkG!r_iwt^9B~#9zOSgZo|~)o~P9Hs$t(i-?#8AHu9dmBknBGMqje}-r=dz z#iF;%oxwz$YwC_gylz+7eIQ<+Q#X_L9#*F&(5_=WY~ycKp^Ei+8K~}#b@D#E)-xb{ zIwzX+ZN(CCEA1%|CA#;MSt~wZWj`@8K)b#yYgo}e0f< z&A>Um~W09GX&;MWE z>}bH!jgOD;=}>-!GCQ!#&oIMlGsnhgNoU18qR|yaN1|cr^`a=dT0UO$B9+I#UpJ(( zcy^H!H{O2y&ySl0@U*xR{DrxAftjlM$IV}f6{#IpgN(%`k-A>uTU}_cp4I)yt@`vZ z7DIdSC-Wn;&n@cRK?m}?L(JOw`;WHg_e}oNB0^DlC1=T;$eXl27AM{Lq8;lc-Pt_H zqe(upSv8}`x>}3FYTgLOdZAc!G}59=4zU0$VUbu-`4T`IB|Dz6UKpqIn;tRpaZIaU zK2o#CD%K0R{QPSi!9|ID1oO62KBBY7C)Nwm{QN7TE;8gJnzx;7MCliBk4iZ9MrXJ2 zU2K6Kc9w6FjbjL()AuyhKX!hTdesd?Iv5k74eLilbY}u13eUh%S~>c+UG#N`^@+Y( z3r~{6*t6d=hdo03+!w@sJ#|>TxA!_{Tl7NT{OR2Ub6lCB>zrF*Y%Kv zwvMSkgQ9dq(W56d&6D=&B2yZnTD)e-@&>b_pK;AXPFy6AvvCAz5bfo5s!)rh`;>lt z-$RyKaeq?~adKU0vNYWs)nr+SXUTT?nyhHV!Ji$K-izuRr}wgPPl{`$&(wItN;TGc zYRT-#$}C#4vcJ^+^CczQ@}zZ?jlgQPmdd`rT37ZLt=A;`>melLdPqmtmlxlAID@|0sCQ2XuO4mFdU6Y04)6ypS z^Cp#cDPOzfN2AgK8>F82^;iTqOy+yS1HU8Oz96U$wD4w{)$X2vDk+QIjH&wMuPY9^MaP=+YS zx9;@wC7$F&KC`Vtv7bwe>anEr2YGjiyJ#CTd-LU5AEqiPGb-G-Wet zwvk~^Ivwxw#u{1Vc)L>q)9p$P%{5hW!Lz9PYbLYGMOH4Vh+M2b`#dc#Npk3Rr}I3T zN)$5({7r(ln8)%<6G=M}$Rp$1EW>p<%5%f+tYFq%e%T^9|IQse{I!Z&N*3Oox*<)A zr^?Uj`?SP!`#Lt9W!3zY(`U=m+u1pqBJ*=P@0oAD#P_?qSyM@dJD0dT$tW5xU#85Y z?V+z^M^=Z2u_(tHqHA$MMwM9{llD;>;l8@EONB)S_!xFqWdC~pi?gT(3 XC##i{{IP{q$cZ~wuqZi^J>CBUln=X9 literal 10428 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 literal 6705 zcmd5>U2ob*6n(aT#k7&KfU=?5eOb{aQk$e(B%r8}?xQu>1I*UgXgp5JR^8ve=g!zL zCWf*hm4ecw#B)FA+;i_Ge*4&$-)^(N-hLW%2Y<2-({q_Id~r4tiBMdNh)rcI&RCQt zzi1ZDc`_4BYW4zxN4|XjL{5`POxdtIyySn5TZs_Pt`qFxEJ`1(ZQI%>DqVmY@F83NuJcNhj8ETUWuHqF_dBO;c zs8bPsVN*C+TsPBv5|g*yOz6G^+XtRRF+ka9!m9Tj|L&yHIgi=DKQ#Lt0PyZo86hK5 zHwHZud)FqDwH79+YaatA!gC`)M03W9W7a$rB9=VKGmwsx=L`=r9d$akln}!7K6*!Z zx7PYRkyDZBMw6k+GVOh1O6XiA%#lKj%tQ#6p@CF~WuIOuqhG7Erua~Via zs56^PP^3k5ff;sM0E#fPRPqi?(IG69RbVjD*oB`?r!}skuX(H!Ys==g7kv4~x%M-* zWe(L=wcqE<*W|x}&h}|MWT$lnW0PY9A!}mJ^2tK#aoXn@C?d$fA&&|zC>a_VUhCGN zbp!b^&%QjZZaztWn(l?k#qBbpLE@T&gLo!Jn(I7!+8~sOQyz`xLg**fEQrlb>OTn{ zt;l)tw7$mzE$3%hpza{h>6Bn8W+#Uoz!-}OI#W6|jg9asbeaHiZa?x|>NbFMG;TLU z^qZpH@r+HC1d&+vm?%xRh4SLpC^*x8OL}n{#6eAy*vDHO3^udDk>;&^ zd@mbt4WsNMlP0@(MNJezJWx`hj(ti>#&_tGoubS9jbUVfA+UU&14O_7hDUKelSwz) zW4y{O`;6~VvWG+t(O5~T%M*tP*Ce!#5FV+juJV7Z3SHqlRpN1&gY>hVzs<~L25<_J zjTY#BY?&JJ0*x8IvZEsdKEJMj`GQBrcD^wRhFW=n^S)%SVO3F_VudTGC_U$z$;C1j z3*7T&;-Av~(~y=bjZNB;X};#nRX`K(mMidrUO|uSSa*t2y_O24wH;U{6gI_;6I^3y zw8U+^AfsU#lU3TzZ608D*U06yT+_7LAQ3Km)(M&f)nkS*aWPfqNUXf9|^Hj1~S~Y@B zmhD>Oc?mTdp>)H|1AB472DiPQS$%dVuhVgxA!`|zi}lYcpu2?ko1G8tz-ukTAjI^8 z#jk8}Hl}x&fLiRb;>BixcbJ`dgVkAhg zGg<%FN*_p8@JHL-gcR5dU9<2)K$K{_g{sT(9Yk2?w diff --git a/code/nel/tools/pipeline/service/module_pipeline_slave_itf.xml b/code/nel/tools/pipeline/service/module_pipeline_slave_itf.xml index 9ad58a4cb..53f3572be 100644 --- a/code/nel/tools/pipeline/service/module_pipeline_slave_itf.xml +++ b/code/nel/tools/pipeline/service/module_pipeline_slave_itf.xml @@ -24,6 +24,7 @@ +