From cb5112ec5c2194c6cb2d1edfa06bc2dfc72291ac Mon Sep 17 00:00:00 2001 From: dottorblaster Date: Thu, 18 Jan 2024 14:29:10 +0000 Subject: [PATCH] deploy: 80473158f2739c46da2e3bd9fedd79296bb03e99 --- Wanda.DataCase.html | 6 +++--- Wanda.epub | Bin 528327 -> 528327 bytes gatherers.html | 2 +- hack_on_wanda.html | 2 +- readme.html | 8 ++++---- specification.html | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Wanda.DataCase.html b/Wanda.DataCase.html index 7bdf9fb2..637b28aa 100644 --- a/Wanda.DataCase.html +++ b/Wanda.DataCase.html @@ -202,9 +202,9 @@

errors_on(changeset)

-

A helper that transforms changeset errors into a map of messages.

assert {:error, changeset} = Accounts.create_user(%{password: "short"})
-assert "password is too short" in errors_on(changeset).password
-assert %{password: ["password is too short"]} = errors_on(changeset)
+

A helper that transforms changeset errors into a map of messages.

assert {:error, changeset} = Accounts.create_user(%{password: "short"})
+assert "password is too short" in errors_on(changeset).password
+assert %{password: ["password is too short"]} = errors_on(changeset)
diff --git a/Wanda.epub b/Wanda.epub index 60ac6b9ee84ad5a3daaa9c82d38bacebfeebb9d0..a815c1a25564dc2b5da9b1e4c241a29c0d9af070 100644 GIT binary patch delta 10747 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 AMgRZ+ delta 10743 zcmY+q1y~f{`~SV*qha8_t<}u1JR>V>EURLb%<( zy&1l0ZbnY{nuWzJ>YbB#i@g2SNw7R5m-V~RN2+fB@=+btE)CpsboGJj>=gUB4Sp-} zr}ucTV+-C}^}b0W`jT&jpJBj6Bz9^Vpmf6FfVc$7eS`nZgh`Q^!xeR^tk@MzL^`p+ z6PjDtGE%aD2*Qcn{@pRVK69PzL0<%53r7pRxt$J(53DM88>=i_M}!8RU6Y0LA$AxU^W+reojxU-rWkCLMe0cBRdCn!|Yvoz$pk)5=c|pHYxGoK{;73 zSzJTPld$d5(jc5%%>wPeJ6k+B-+V2W74r!~aG4`Ba`fm~=UM4U9CnwR!<4(?m}hUt z=O9DK1-mWeC}`FF;fyfPf8UG497NERBcPD6eqjgsBo~0>)oM}Jpw&>_b?k5Q$|!UD z(hkx%(R=9e z3?6ckKJwcVvT>qcuvrDuy|tjPUQyrCEH7sE_7d4Qf7Ruoo~=2r^$SU=LPw}1-qia; z+hN-{&77^aO|c>XYq0&YvlY4x6LkzjL%!l*=6%?eFZQyH$)Ks%?J4g@(BP zt#(g@1Ig6=8CLw~bSt-n_S8q!3pWW-?+A@<0Q%Eis~JiST1UO@$j8gbj0jn>PGiXz$Kr8bsi~J#2m6;bOgg-c>h~ZtS*i;6$Im< zcn@(=h&NwkpNkMB&V#^-Xp_6*Ztww1nvBO|v$CYigA3JEkBXnVglzQ zSof|{4?jj9#L0dw-i!aFmV>U?G4?{r-Y<=8CqIzMB|3|^5(nfd-~V`dZ+D|6P&<;C z6vRC)FbvdWtol$Nue|QdGy83f%PZUDXIjWb0r4eUs6`u+_IMumIjoTIE$4J^T%O*( z@4rz&(n12z;wMx)%-l6( z$ROR|cJiQgQRZ#nxbZ!Usda;_AAX%Ljo)MagZmSiCZ|2H!AzmJt0#E82nYv}ak;&t03l@loT`_}{ZXnJ|n{GTEQxi)AQGYHmKP*m9}vllDXT&`bHCFesP znU}~9C5^t~-1#C*X=XHd8V!tCljN!SzRKn>Sz6d$kxC=mi>NB!_BZB_W zCOmz3;^nq4bX6@%OPGnfOaI{M8091kVYc)wFrr%nwMc&x^c&a{qafaqsy39*q4M^a>{IlnWMjP^qPW@CcA2yo`Z#obDKW4jUNtqnvnHRtWpN)O zA$p#6*v+s?*u1-uRGIti%~HL-R7qC0w11_ZacuqeZmtvBv{JM{*Kj*+^kq{PM0su2 z&e?kHQrXYIWp_Hx&Q)iY>0}0@3G0Iu#lACT>cW+`TZUnb31jWc4?K4+=mKx}h!fB? z1!jF?vYVayF6$+{T@|7oC+C%$YnohjZ&yZs-A8p?95iNqy--{Gq>>S{bui~kk~I|i zP*a4}=GuFWE!=|HRD^xKY5{E5BPBc_#B)m#$@imMIuanfPOXa%i&U> zkSM-?ZT4_`$ijL#Z7KiQfxD(hWNGp0q&ctr_P0{q>eS0s1G52M|Degv+q3ea0cd=r z6ggyTZs%m@Y$84@tKBn}+Gc~gt59+teW&Q{xr1tek&F(j))s1GlY_edz5*^EKzUnSNK-ZN0BYH}q3R>@XZPgZoSBGC%R+s)n^_=)Bt$#o#iReOHo@ zhr6?dYyP$QV`6*)0SmKXe)=;W^8%q98-q4Tv|^}X$`W>*BnO@@e=54I5FePhJF(%Z z_5hybo;wX<`s1fk{8q(^Y_`hEB`UPdSUs8TahjYQ#c#`8qL}jIgvp+(7Y2wqS6+Ny zr+DjCsMGY8jpoC;uUfv7MrmR$Mfb&ZCEBZu#1ijh>eOT+J=Q22ly^U!=i^Wa7{ZG^ zp3_i{OHP?VC=LW94qUMUKu7Abl|YENI?}>R>?`Z6#Qd75nlUXaBJZ6^e0JF}6wc&? z&Ce}iy~jD|rlMqGxbYj(EMS3KvXwU`T`%H^WH^w2TMiY)%g7W%{PXrbkCrEUCE~}w zd{r>^85@&N?rW&$a$C#cgiL+=T%PlC?IUMZWPNB9K5&YibHN>v%cSlil;m!NESKz{ zYIU!Q&!RaX=|vs8Ib%Sy)WhiZ$?h)Bt9yuX5St^=HDpamn?YY6vq1-+F7afDlzqeM zyp24~Z~lJXB)~)uLSP#wdl-UnPl5Ah04el#Z{54$b4pvAk+O|b-=06%n*{``dq(@YD|`?zesyXSy@Ee>MbSFXrdzKF{zrqL|o9)8|3z!wa!(`J4}Dm z(8IIhMh|ZBwxEotsz)L`{5(#1(tB(&=lsG7l2(jG5z34w5FQ&h6a@z)Zi1W&U5+Nz z5;K!-60ys%gD2n~vc!;z81dcK?ad<%zqi&42kspBmDO*b8ojg&=B_LxhSuI#sm{t* zs(G|Aw{ki~ZRTu$te2AJ+QGuy0U|W&MTN&*Rz-yUl4|j> z#nXA}ZcxOmFvNK!v!H4GL@cGtZR!5qO#F?TKQeV;gvU%H#x+ky__;&MV%HHn(1k(#Vza4>#OABG3b6G!-On+d;!-^l5sz&4l@ zFI<@84OE^$Zp|xNT-4MKDpB&Q7f9rB>0LDHoDA)B%{gP)6b?|f(jWY-w^~&boOF`@>$KkweiGvNNp{|=1Z-DDq=jDOo~sxLWJsb z4GfDhBgWRW0&%8~Jrc}D!8ha@q5-S*Rj(x>yI z5$X$R=iggY2&QuQYr`;ekrfwM+hF$F<&f|FrfcJJ3PO#&&FEt zmJ~=chtNaE^V{!kE=`U;IW0%E>}StDl6A)}XKj!~sx>hK8|93`P0*F7GOJ z1A#s6dN=b;D5q-zDH-!o?Jq_@_nQhtM@7CBzGSiYUg(vw$vcH(7;mV{Gn?M=fE}GE zmGSaxRQa%ypz-D3nZNYgwVu5ViPTXtjoSNGb?K>cO8)TPFT;|fS}mM5+S=gTL%`LQ zhZ+Qf?9|y})NXN>!&@mOy91)DvD+EFy@oJUJnE>MqtvB#x;76HQboA;nE$!brH|2q zjYRH9YEvzCl`U!I6U>T%!CX`m`#O;;zf8;Q`&=N8hbChIUluc;ggL^|ZFCyA@>vy@`DD#jL@3if~lHw$*uLXIyR|(zwj_+jYnb z#mlI!H|!R;p)}Zm#4Dn&DNc-C^=bLb$9<5DCSDK{3`V{dFt(&0wiI3$>Gy!#GSacu z{Or&s3Q#5DT2?Dk2Y?6AZ3!Yc{0z-jc_@aly&)88UhlGr8P*hCdFv}2i)X6m1551)b@H7wXg-@k9Ei<{+G z>yo8;S1YB$AVj3K*vuC5xS1Fy`VF;xkl08g}fXS%FmZ2rMpb=lg?t#y}qBUwXrGwv`hPY5UR(|c$!&n zDMUXT>1_AR|2kr;fmfjq`SrqJp_T17*;fE#PK#;W_ew`fTDs#_3KIeF=A`Ch`@7Op z+EoI}ZuQP8EX>R$UKYg9caNEp@Q=_}dAenn`x%ve<`RB?btP-0pn?$nPM^r8AF*7$ z?rzv)p)|XDvfsd7c`@p%S)!SmiJ#$w?P#PXFK$78W?(BVr&oX@;Ne7FUw84E+-FYl zN_#*L`-)*?CV_!!DnYCnW87t9Eq3wX+JAP+hw=Any7}0kfSWnB79onq;0NqxT%C7? zP=Ia^ZFLK2n%zl|ZV$3%dW~0UOkk9ac$hZYq$Uuhs4+vP-&_P)%?t>z$=>kOSjD&w zHvM)%*@>)hw=uQIi7U64g7JR%xzCp2c*n1k&6|bLMkupLMhsb&K<^7Y=yFy@RISSR z=}45rGQp4dKoYJycMyjU=vNdB+EpFmrs1*LQX!nwlk}xOLKhbK}+WJO%WQ3pw$|>Z|2* z-7MMedqD!?^3tML?w0&#>^R{93@x5j$8Pb9JW?RU-xdju<)*7TKWN(j_n#sv+NoX9+mUfr}0 zWI_vGSI?MXJod52o|$=CTc4CIoR@1Yw-OusBQ(}MLAeJ%^CTqq_FH{_JS39ok>)Kn z*JmRq{@!dhj|tp%%IB(V75LVetJ@0GkHS^JjbVzl{el{-uO26!M^6!*5E0{+mGA}W z7weYFsT1*3UwizR=)!}D?;8y&^re1V`)Qeal8WAsihaOBVaI4gtl z;rHE3PkiOf*Hv?c7Q|_x6`GL9*_EHT{8*!?uOwMak@`D>sHedOIuK(ix2MZZ_l1vN zeK7ucD=qCxcRcf>jV5cR)yj~(`7kC{7V4HUt6X)EsoLlr zWUc;$ab!)FreBcg88bf3oJ^5w5of7JbZve&W`X#v6gMTt@I5H}=Jqli4}DBV!MKM5^-BJdY36 zCqV_@79O=WqHd%U(tF~M^KH!DYCrGciTyHr*cfU3wL&d{bH(lF7o@djjc@fsnIr5W zeH~G8{!&#!Hkoyy$PjS4^`qCHHoxK-x~gbx76wuysoXAo&r1_4oK`{039){dGQ863 z95&5BN2=DL9VBvFofyOP6wWhT!NhnWjI?#jKa?e~WKwV3Z$Ap*T@?R%fJBjsrp(d~ zaD1~HLdirG5mqPv@#rI#IF?4VD(ynPy6gJFdh>ZV$Cq~zA`Xz~ir$#+jJJNyv_zs% zV(F^EHZar7;l5?W(Fdc7XTB|xk-clvc$s$Okex?TM%MUZ1$O-#n3;z-(P6sTX_>#f zttN8Bj%9kjrYU0I?b;y+)4k3#bmqH7AGCP!Z z^AsmuA7(#6iYbmt__0fc_vQq%dt%^lxVQB_HOl$!lxpk*f`HXsi@%himJ_)c*;jFh zM@g)P+V?9k;MZw0FPjeM0cYkTfuLRK%MVEy=oV!1W!&u|oK~Hi2M+WVs+KXftP|aQ zA9YRqJ@koG4!>SIp1C*T%{^;+_H$Z#8krw=NkB1%)^<>I5fK}D6;6!Gm#js92NwJN zfSeZU%U-1xX`cG=z2@U0 zUkT1UAk_96BtQB4lp@b88t?D9)-p>O8wRx%ILI*Qsb)ck!Etjf0J~Rww?l&*9$(%? z1#wi{<0tG}K4Z;o$vD;CMk#H05$PhJB5CfiC^MfnP_IT1)7|e7n&c$TOly}4gflsK zO1&8t|NXG9C7z!FS!Axhz%(39;N1Uu;fO(^ie|Oi`TNzyP*Y7i*T^Pmry2{gQb~&5 zY;3~Z;F)`KhLS?VTP-SYg5~z}afeq~FCiBu!`tmbf(f8_H>E)C{m7yRP|`5HIdXkI zR%er>Ug@wbjFM8&vk$Zy6&T#kNS}PwpD7+IYm#==xK&fIJ2O{` zU!{7|i)6n{aN9`|vZ)mK*j?F^2pu=}159)q~h6-e`Otf#msaYOJ z1gos(R0sQn_yI;gI~j_Gm>t@n9TS8od8Ynr37dtZX7u?(ot;7YQ|h>2JU|-1IHR;V zrfOGYRbB_aMFS1B2URv zaahkl&~KnJ1@(H(U<#Cr$iAGkJ@1C;LnPK`n6zRQ;)M_-*^QdR-?_R21`Mg;RB{(?)u*3*WL=E;UHc>lgpn7^RpUan zpPs$hH|cTv;{T%gt<#E0u(w}r-K$i;Z+#AR<33-##=^HJKZm8ccsNPErD=)+i7&cj zo@%5<4+}1O;CgW^2fjeVI%x$UL!wh=IVA6d<&_^#LD%Fj3hd}S-g$!8Q1;QIPD)%O z|J=CuAas+zPsw-UW?qX)wh?;_@llitS;nObWs5@f_Zr2Sp()5fu%6V2G z(J3C-xa7Y4k;J^TH|Jtru#!jG&HN{6h9h&SRh?$y+z4)tP3mS*HdzKMM7aKu`?9j| zODP8COUJzC3!M6}s2IhRDTOy>OR5GYl9VV|*SeuU%&wkTh0t1sT;eFS)}bX$=a?lI zGV*jxh%49eGJ#QPia2!-@mnX z^lX_WiXrUHd7v1AJWSfDSByy3<3?~K_x^1B51}HfY}JiM0G)ixnC-mLw1ospnQC2 zb{*;?Xyz3_-pHMYdX5BZhp7lP4OX|Yy9|{Jo>Cboy72#RG4mRD)W}|iY6A~UtV7L& z6Mxfx$&;<9oNya*Cu$g+KK7!H!k^4)7ot!?(K=BX8Y91$DgMYkue+NMJKs(R( zX8;vAAkY)2%QsZA#@%7mm+&yz2~@HOFKg(5h4h*{YMf8c(GrXs2qqeF<5U<=imt_zfs@7$r}+E#ejKL zuz_m0XbAW~EL^H3o8T8nfBN1|1QWlp{t-YA&s!h^;t^nZE)>8=xDA;WFow5a#Q>P$ z!o2-_05;q=BrTMM0ZiI+o-=T&uv zdMfd2Ys}D&Nq`WN@?z)RL!MmcraEti)Sbu%E7ovH;Ycy!PlDT^ACbWd&J^zsHPy(A zPzGBVoj+=0?8HhtV^K_rn`A|V{Gb3P)>hmsm~8HzjlB)iB%2miPB{G#;=9Rew3Yn? zw1}Fjpf}i(z)G2F>-TLgRpH@h%=h>gTig(|a)&ZK#<;{(2usSj%#x^&P^<6BnanZv z>IX>=R;nn>CuSHbe8hGtap`P>$^-!;g1sTQ!UuE7RdpiWGt>whuiwqh?zmG)#e|V%mcrqHN;= zI+Z$?@~l#7p%YU8J|sMxuI*M4O}t*Y`eL&06}cF_ zc9}DBA)MuAuJZW72vQCVDx>{G6DiO5{0C3=ZR-#b(}y1mpZ(sQQOd>bXwsv`W5i^= z!KYV63FXh#b(bEKKog*;cTroAT4BY*FkhOUeizVUh_w&4#+MAA8U z;U`9wyc(RfvHUwk1#7`{hPIfjcrt;3rrJ#Hh-+~fCfG+wie_B}2<|1NEXCylKRU-P zn@(NJkv{4C)cXPXVVm!#g_solLiJsqb3#qpVWG&eK%`wo)8!Mp-5CCjU)jyuJ;VnV zgyXY`Kk_SzDVg&1-Yy*qzi{X;sbn~}*xe6GkSu-G(N!J#GTU%N+ahhXGoraR6l>zS zc#YUwP+rsFCxpGHeT4(c)U0boDzP-ASoBd(2hDQii?RgMAcbtmIeICN| zTiwRYBTDiGnaZ^Ag}{;N8z~j&?(1ViglWP{&V`P2U30xCnePHdU9+Uf<_nvSL{+ql zl=j(jFSJmaa}W0GyhXSh2EC_C#ONIv{8SEepT6E2q!19hv;nGs%k>b+83KXm8o>TWNh`Gmz?19G`S&381NM#e2w4^n#(K@%fwc1EQHj(Jw}`IChy)}^44Uf zT}t&r@x##@czyGWAu%>rX3kh+qjYew&@6&CdREB&IF-kpHCI_3Bz^>2UCe z<7ZK_V>iB!@4H^*Vtncu1KZKy8l6k(5LmfBjTY&t#r|P|I+@@9#6vk~2Vn`tJ%a5kObZg8~9^QG-B#whjOH z%11bWKAZtmu%N%s>v#YVD3urlBK^ORKU*OLMX2aGzyb^Udo$8S2n13(1c8YDC#V`4 zd=40%#kR$3u$2&*ULbuNWOju@vqrN9LHV8z_4+7EuPo^G}-~xC83u^4zQ=0p; z*8tE#AoBkSDuP;G0Bmp-E&y_bCTPV4Kn;68^5;F`dUO0kGa2*)78qU*_M;FC0u@Pt zKzRStQY!TEB|rnq)V>6s!vOjp%wPVKlHv+bhq;`t09}~Wo_^B7P}&>d5p?b9-^W0D z4QRuHoUi{ycU=RzFbl;Epb7)W8$cVDZ!j{g2@U-9Cx7_{kb(J_e*u~>@cjjt!eIG7 z3*RkZ1hXXE0xB?Azx`K3;O@`9=$|1bUF{$C00-+&s- zRrnh)g8}*jAPWPnhkxzlKLA=V%dZDO@h>FGfnh2nrh;J|O*{fCzyd@Nz{)TPM*z#i zVCp}hL4@Z(UH^k#M6d)b=FbmzX&7iAfu&#oMFPY7u!01J50eKO4A(Ri84Mrh_J5#& z0)}f+f&!Lh zfd9FK(EbhZ1KK~=IvUsd8C^8DswI&u2`q z%KzJUVPS#cQ&1i2pEgh|Fid;sI@Uk2d9eQ}8jSsKD3jR#VrX&xNo$1zHvj(s_M{+) diff --git a/gatherers.html b/gatherers.html index 81d499b6..53e8925f 100644 --- a/gatherers.html +++ b/gatherers.html @@ -130,7 +130,7 @@

Introduction

-

Gatherers can be thought of as functions:

  • they have a name
  • they accept argument(s)
  • they return a value, the gathered Fact

Facts Gathering process in a nutshell

fact = gatherer(argument)

+

Gatherers can be thought of as functions:

  • they have a name
  • they accept argument(s)
  • they return a value, the gathered Fact

Facts Gathering process in a nutshell

fact = gatherer(argument)

diff --git a/hack_on_wanda.html b/hack_on_wanda.html index dcbaab6f..60b27a18 100644 --- a/hack_on_wanda.html +++ b/hack_on_wanda.html @@ -136,7 +136,7 @@

Ensure Compatibility with asdf

-

asdf allows using specific versions of programming language tools that are known to be compatible with the project, rather than relying on the version that's installed globally on the host system.

In order to use asdf, follow the official asdf getting started guide.

Install all required asdf plugins from .tool-versions inside the web repository.

cut -d' ' -f1 .tool-versions|xargs -i asdf plugin add  {}

Set up the asdf environment

asdf install

+

asdf allows using specific versions of programming language tools that are known to be compatible with the project, rather than relying on the version that's installed globally on the host system.

In order to use asdf, follow the official asdf getting started guide.

Install all required asdf plugins from .tool-versions inside the web repository.

cut -d' ' -f1 .tool-versions|xargs -i asdf plugin add  {}

Set up the asdf environment

asdf install

diff --git a/readme.html b/readme.html index 7eb1fd12..1f173399 100644 --- a/readme.html +++ b/readme.html @@ -266,14 +266,14 @@

Often times knowing the returned value of the gathered facts is not a trivial thing, more during the implementation of new checks.

To better debug the fact gathering process and the returned values, the facts subcommand of trento-agent is a really useful tool. This command helps to see in the target itself what the gathered fact looks like. This is specially interesting when the returned value is a complex object or the target under test is modified and the check developer wants to see how this affects the gathered fact.

The command can be used as:

./trento-agent facts gather --gatherer corosync.conf --argument totem.token
 # To see the currently available gatherers and their names
-# ./trento-agent facts list

Which would return the next where the Value is the available value in the written check:

{
+# ./trento-agent facts list

Which would return the next where the Value is the available value in the written check:

{
   "Name": "totem.token",
   "CheckID": "",
-  "Value": {
+  "Value": {
     "Value": 30000
-  },
+  },
   "Error": null
-}

+}

diff --git a/specification.html b/specification.html index 0c4b0608..e4b3d64a 100644 --- a/specification.html +++ b/specification.html @@ -466,12 +466,12 @@

- name: bar_expectation expect: facts.bar == values.expected_bar
  • Pipe the expression language functions vertically in order to provide a better visual output of the code.
    So this:

    expectations:
       - name: some_expectation
    -    expect: facts.foo.find(|item| item.id == "super").properties.find(|prop| prop.name == "good").value

    would be:

    expectations:
    +    expect: facts.foo.find(|item| item.id == "super").properties.find(|prop| prop.name == "good").value

    would be:

    expectations:
       - name: some_expectation
         expect: |
           facts.foo
    -      .find(|item| item.id == "super").properties
    -      .find(|prop| prop.name == "good").value

    Note: Keep in mind that some functions such as sort and drain run in-place modifications, so they cannot be piped.

  • + .find(|item| item.id == "super").properties + .find(|prop| prop.name == "good").value

    Note: Keep in mind that some functions such as sort and drain run in-place modifications, so they cannot be piped.