Lavoisier: User questionshttps://forge.in2p3.fr/https://forge.in2p3.fr/favicon.ico?16780521162020-09-28T15:31:55ZIN2P3-Forge
Redmine User questions: Bug avec la sortie 'sql' ?https://forge.in2p3.fr/boards/61/topics/29482020-09-28T15:31:55ZEVESQUE Cécilececile.evesque@cc.in2p3.fr
<p>La sortie "?accept=sql" semble dysfonctionner.</p>
<p>En utilisant <br /><pre>lavoisier-standalone-execute.bat view-name?accept=sql</pre></p>
<p>Une erreur se glisse sur la 61eme ligne, il y a : '6/2/201311:39:47' au lieu de '6/2/2013 11:39:47' => Perte d'un espace.<br /><pre>
INSERT INTO Fact_Espace_Utilise (DateDonnee,Service,Groupe,Login,NbOfFiles,TotalSize_MiB,BiggestFile,SmallestFile,MaxAccessTime,MinAccessTime) VALUES ('31/8/2020','hpss','antares','carminat','8091','1846749.984335899355','10103146923','141','6/2/201311:39:47','');
</pre></p>
<p>Alors qu'un export en csv p.e. , la ligne n° 61 est juste (la date est juste): <br /><pre>
hpss,antares,2020-08-31,carminat,Carminati,Giada,8091,1846749.984335899355,10103146923,141,2013-02-06 11:39:47,1970-01-01 01:00:00
</pre></p>
<p>Quel est le pb ?</p>
<p>Voir le détail du pb ici : <a class="external" href="https://forge.in2p3.fr/issues/40556#note-12">https://forge.in2p3.fr/issues/40556#note-12</a></p>
<ul>
<li>Complément - sortie csv<br /><img src="/plugin_assets/redmine_wiki_extensions/images/x_mark.png" alt="(x)"> Même problème mais plus tard avec la sortie csv.<br />Sur la ligne n° 796<br /><pre>
pbs,actartpc,2020-08-31,,,,8406,73.4536571502685547,1303547,0,2020-08-2616:27:10,2016-01-14 21:28:01
</pre></li>
</ul>
<ul>
<li>Complément - sortie xml <br /><img src="/plugin_assets/redmine_wiki_extensions/images/check.png" alt="(/)"> Pas de probleme !</li>
</ul> User questions: RE: l'object NULL d'une requete SQLhttps://forge.in2p3.fr/boards/61/topics/2944?r=2945#message-29452020-09-25T15:43:31ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Ca sera possible dès que la feature request <a class="issue tracker-2 status-1 priority-5 priority-default" title="Feature: add support for attribute @null in namespace http://software.in2p3.fr/lavoisier/tables.xsd (New)" href="https://forge.in2p3.fr/issues/41294">#41294</a> sera implémentée.</p>
<p>Afin de l'exploiter, il faudra faire une petite modif dans ton template XML:</p>
<code><pre>
<element in="MinAccessTime"><text if="contains(., '1/1/1970 1:0:0')">'NULL'</text></element>
</pre></code>
<p>à remplacer par:</p>
<code><pre>
<element-ignore in="MinAccessTime" if="contains(text(), '1/1/1970 1:0:0')"/>
</pre></code> User questions: l'object NULL d'une requete SQLhttps://forge.in2p3.fr/boards/61/topics/29442020-09-25T14:13:05ZEVESQUE Cécilececile.evesque@cc.in2p3.fr
<p>J'utilise une sortie sql du type <br /><pre>nom-de-la-vue?accept=sql</pre></p>
<p>J'obtiens un résultat de ce type<br /><pre>
INSERT INTO nom-de-la-vue (champ1,champ2,...) VALUES ('value1','value2',...);
.
.
.
</pre></p>
<p>Ma question concerne l'utilisation de l'objet NULL.</p>
<p>J'aimerai obtenir ce type de de requête sans l'utilisation de quote : <br /><pre>
INSERT INTO nom-de-la-vue (champ1,champ2,...) VALUES ('value1',NULL,...);
</pre></p>
<p>Est-ce possible? Comment faire?</p> User questions: RE: Adaptor raised exception -- org.postgresql.util.PSQLException: Un résultat a ...https://forge.in2p3.fr/boards/61/topics/2904?r=2905#message-29052020-06-29T16:16:19ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Il s'agit d'un bug du SQLConnector qui n'aiguillait pas le mot-clef WITH vers le bon type de "statement" (d'où le "aucun résultat n'était attendu").</p>
<p>C'est corrigé. Tu peux réessayer avec le dernier build....</p> User questions: Adaptor raised exception -- org.postgresql.util.PSQLException: Un résultat a été ...https://forge.in2p3.fr/boards/61/topics/29042020-06-26T11:39:27ZEVESQUE Cécilececile.evesque@cc.in2p3.fr
<p>J'utilise un driver postgresql <br /><pre>
<parameter name="driver">org.postgresql.Driver</parameter>
</pre></p>
<p>L’exécution de requête simple du type "select...from..." fonctionne.</p>
<p>Par contre, il semblerait que l’exécution d'une requête avec un WITH qui fonctionne depuis une interface admin postgresql pose problème. <br />La requête ci-dessous ne peut s’exécuter avec Lavoisier, cela génère cette erreur :</p>
<pre>
Adaptor raised exception -- org.postgresql.util.PSQLException: Un résultat a été retourné alors qu'aucun n'était attendu
</pre>
<p>La requête <br /><pre><code class="sql syntaxhl"><span class="k">WITH</span> <span class="n">periode</span> <span class="k">AS</span> <span class="p">(</span>
<span class="k">SELECT</span> <span class="nv">"storagestats2"</span><span class="p">.</span><span class="nv">"service"</span> <span class="k">as</span> <span class="n">s</span><span class="p">,</span> <span class="k">max</span><span class="p">(</span><span class="n">date_trunc</span> <span class="p">(</span><span class="s1">'day'</span><span class="p">,</span> <span class="nv">"storagestats2"</span><span class="p">.</span><span class="nv">"date"</span><span class="p">))</span> <span class="k">as</span> <span class="n">d</span>
<span class="k">FROM</span> <span class="nv">"spark"</span><span class="p">.</span><span class="nv">"storagestats"</span> <span class="nv">"storagestats2"</span>
<span class="k">where</span> <span class="nv">"date"</span> <span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="o">=</span> <span class="n">date_trunc</span> <span class="p">(</span><span class="s1">'month'</span><span class="p">,</span><span class="k">CURRENT_DATE</span> <span class="o">-</span> <span class="n">INTERVAL</span> <span class="s1">'1 month'</span><span class="p">)</span>
<span class="k">and</span> <span class="nv">"date"</span> <span class="o">&</span><span class="n">lt</span><span class="p">;</span> <span class="n">date_trunc</span> <span class="p">(</span><span class="s1">'month'</span><span class="p">,</span><span class="k">CURRENT_DATE</span><span class="p">)</span>
<span class="k">group</span> <span class="k">by</span> <span class="nv">"storagestats2"</span><span class="p">.</span><span class="nv">"service"</span>
<span class="p">)</span>
<span class="k">SELECT</span> <span class="n">date_trunc</span> <span class="p">(</span><span class="s1">'month'</span><span class="p">,</span> <span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"date"</span><span class="p">)</span> <span class="k">as</span> <span class="nv">"DateDonnee"</span><span class="p">,</span>
<span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"service"</span> <span class="k">AS</span> <span class="nv">"Service"</span><span class="p">,</span>
<span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"lastname"</span> <span class="k">AS</span> <span class="nv">"lastname"</span><span class="p">,</span>
<span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"firstname"</span> <span class="k">AS</span> <span class="nv">"firstname"</span><span class="p">,</span>
<span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"login"</span> <span class="k">AS</span> <span class="nv">"login"</span><span class="p">,</span>
<span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"groupname"</span> <span class="k">AS</span> <span class="nv">"groupname"</span><span class="p">,</span>
<span class="k">sum</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"nbtype"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"NbFiles"</span><span class="p">,</span>
<span class="k">sum</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"totalsize"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"totalsize"</span><span class="p">,</span>
<span class="k">sum</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"overhead"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"overhead"</span><span class="p">,</span>
<span class="k">max</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"filesizemax"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"filesizemax"</span><span class="p">,</span>
<span class="k">min</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"filesizemin"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"filesizemin"</span><span class="p">,</span>
<span class="k">min</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"minatime"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"minatime"</span><span class="p">,</span>
<span class="k">max</span><span class="p">(</span><span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"maxatime"</span><span class="p">)</span> <span class="k">AS</span> <span class="nv">"maxatime"</span>
<span class="k">FROM</span> <span class="nv">"spark"</span><span class="p">.</span><span class="nv">"storagestats"</span> <span class="nv">"storagestats"</span><span class="p">,</span> <span class="n">periode</span>
<span class="k">where</span> <span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"service"</span><span class="o">=</span> <span class="n">periode</span><span class="p">.</span><span class="n">s</span>
<span class="k">and</span> <span class="n">date_trunc</span> <span class="p">(</span><span class="s1">'day'</span><span class="p">,</span> <span class="nv">"storagestats"</span><span class="p">.</span><span class="nv">"date"</span><span class="p">)</span> <span class="o">=</span> <span class="n">periode</span><span class="p">.</span><span class="n">d</span>
<span class="k">GROUP</span> <span class="k">BY</span> <span class="nv">"DateDonnee"</span><span class="p">,</span><span class="nv">"Service"</span><span class="p">,</span><span class="nv">"lastname"</span><span class="p">,</span><span class="nv">"firstname"</span><span class="p">,</span><span class="nv">"login"</span><span class="p">,</span><span class="nv">"groupname"</span>
</code></pre></p>
<p>Avez vous une idée concernant ce problème ?</p> User questions: RE: SQLRendererhttps://forge.in2p3.fr/boards/61/topics/2900?r=2903#message-29032020-06-19T16:22:58ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Oui, les plug-ins de type "renderer" n’exécutent pas d'action, ils formatent juste les données.</p> User questions: RE: SQLRendererhttps://forge.in2p3.fr/boards/61/topics/2900?r=2902#message-29022020-06-19T16:20:57ZEVESQUE Cécilececile.evesque@cc.in2p3.fr
<p>Ok, cela génère simplement une sortie sous forme de requête.<br />Il ne reste qu'à utiliser ce résultat au bon endroit pour l'exécuter.</p>
<p>Je vais donc tester cette sortie et te tenir au courant.</p>
<p>Merci bien pour ces infos.</p> User questions: RE: SQLRendererhttps://forge.in2p3.fr/boards/61/topics/2900?r=2901#message-29012020-06-19T16:14:54ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>C'est une page générée automatiquement par introspection des plugins, c'est pour ça qu'il n'y a pas d'exemple...</p>
<p>Mais dans le cas de ce plugin là il n'y a aucun paramètre de configuration, donc il n'y a même pas besoin de le déclarer dans ton application Lavoiser. La seule chose à faire est d'ajouter <code>&accept=sql</code> à la fin de ton URL.</p>
<p>Ce plugin génère une liste de requête SQL standard de la forme <code>INSERT INTO X (...) VALUES (...);</code> donc je pense que c'est compatible avec n'importe quelle base de données SQL.<br />Par contre, n'ayant pas été utilisé, ce plugin est pour l'instant resté à l'état d'ébauche et il est donc trop simpliste/limité en l'état ; en particulier il met des guillemets autour de toutes les valeurs.</p>
<p>Donc si tu penses qu'un tel plugin pourrait t'être utile, tiens-moi bien au courant pour que je retravaille dessus (le but étant de ne développer que ce qui est utile, tout en le factorisant pour l'ensemble des projets qui en auraient besoin...).</p> User questions: SQLRendererhttps://forge.in2p3.fr/boards/61/topics/29002020-06-19T15:44:30ZEVESQUE Cécilececile.evesque@cc.in2p3.fr
<p>Comment utiliser le SQLrenderer ?</p>
<p>J'ai trouvé cette page qui manque d'exemple... <img src="/plugin_assets/redmine_wiki_extensions/images/sad.png" alt=":("> : <a class="external" href="http://software.in2p3.fr/lavoisier/adaptors.html#SQLRenderer">http://software.in2p3.fr/lavoisier/adaptors.html#SQLRenderer</a></p>
<p>A priori, cela doit permettre d’insérer des lignes dans une base.</p>
<p>Si oui, sur quelles bases de données est-ce possible ?</p> User questions: RE: about authenticatorshttps://forge.in2p3.fr/boards/61/topics/2563?r=2569#message-25692018-07-02T12:34:56ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>The list of authentication plugins supported by Lavoisier (with their parameters) are here:<br />[[<a class="external" href="http://software.in2p3.fr/lavoisier/adaptors.html#authenticator">http://software.in2p3.fr/lavoisier/adaptors.html#authenticator</a>]]</p>
But it does not describe how to use them from cURL:
<ul>
<li><strong>IPAuthenticator</strong>:
<ul>
<li>nothing to do, you just have to run your query from an authorized machine</li>
</ul>
</li>
<li><strong>X509AUthenticator</strong>:
<ul>
<li>use option <code>--cert</code></li>
</ul>
</li>
<li>*<strong>HTTPBasicAuthenticator</strong>:
<ul>
<li><code>curl http://myname:mypassword@localhost:8080/lavoisier/example</code></li>
</ul>
</li>
<li>*<strong>HTMLFormAuthenticator</strong>: the first command needs to be executed only once per session:
<ul>
<li><code>curl -c mycookie.txt -X POST --data "login=myname" --data "password=mypassword" http://localhost:808
0/lavoisier/example</code></li>
<li><code>curl -b mycookie.txt http://localhost:8080/lavoisier/example</li>
</ul></li>
</ul></code> User questions: about authenticatorshttps://forge.in2p3.fr/boards/61/topics/25632018-07-02T11:47:11ZVernet Renaud
<p>Hopla<br />Where can I get documentation about the various authentication mechanisms that Lavoisier supports, and how they are supposed to be used...<br />Thanks <br /> renaud</p> User questions: RE: How can I use the lavoisier-config.properties ?https://forge.in2p3.fr/boards/61/topics/2416?r=2422#message-24222017-11-27T15:24:05ZL'Orphelin Cyrilcyril.lorphelin@cc.in2p3.fr
<p>You can add several values into the lavoisier-config.properties using the key=value principle and you can use it afterwards in the configuration with the property function.</p>
<p>Example :</p>
<p>1) Set the property "baseurl" into the file etc/lavoisier-config.properties:<br />baseurl=http://software.in2p3.fr/lavoisier/</p>
<p>2) use it into a configuration file<br /><pre><code class="xml syntaxhl"> <span class="nt"><connector</span> <span class="na">type=</span><span class="s">"HTTPConnector"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"url"</span> <span class="na">eval=</span><span class="s">"concat(property('baseurl'), 'input.csv')"</span><span class="nt">></parameter></span>
<span class="nt"></connector></span>
</code></pre></p> User questions: How can I use the lavoisier-config.properties ?https://forge.in2p3.fr/boards/61/topics/24162017-11-27T15:19:44ZL'Orphelin Cyrilcyril.lorphelin@cc.in2p3.fr
<p>What should I add into the lavoisier-config.properties and how can I use it ?</p> User questions: RE: Where can I find a list of adaptors (plug-ins) ?https://forge.in2p3.fr/boards/61/topics/2407?r=2410#message-24102017-11-27T15:17:38ZL'Orphelin Cyrilcyril.lorphelin@cc.in2p3.fr
<p>Here is the list : <a class="external" href="http://software.in2p3.fr/lavoisier/adaptors.html">http://software.in2p3.fr/lavoisier/adaptors.html</a></p> User questions: Where can I find a list of adaptors (plug-ins) ?https://forge.in2p3.fr/boards/61/topics/24072017-11-27T15:17:17ZL'Orphelin Cyrilcyril.lorphelin@cc.in2p3.fr
<p>Where can I find a list of adaptors (plug-ins) ?</p> User questions: RE: Include a property from lavoisier-config.properties in the entry of the shell...https://forge.in2p3.fr/boards/61/topics/782?r=785#message-7852014-01-10T11:21:48ZFORESTIER Flavien
<p>Hi Sylvain,</p>
<p>Thanks for the quick answer,<br />I will investigate on my side.</p>
<p>Regards,<br />Flavien</p> User questions: RE: Include a property from lavoisier-config.properties in the entry of the shell...https://forge.in2p3.fr/boards/61/topics/782?r=784#message-7842014-01-10T11:19:08ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Hi Flavien,</p>
<p>That is the right way to do this. You should get exactly the same result if the property is correctly set.</p>
<p>The exception you get is a XML parsing error exception. A possible cause for this is that the output of your shell excutable is neither a valid XML, nor a exit code different from 0. You can add an EncapsulateSerializer behind the ShellConnector in order to see the output of your shell executable, and then fix the XML syntax error.</p>
<p>Regards,<br />Sylvain</p> User questions: Include a property from lavoisier-config.properties in the entry of the shell con...https://forge.in2p3.fr/boards/61/topics/7822014-01-10T10:41:09ZFORESTIER Flavien
<p>Hi,</p>
<p>I use the shell connector to call a python script.<br />I currently give an hard coded argument to the shell executable like this</p>
<p><code><parameter name="arguments"><br /> <entry>--input-dir=path/to/my/files</entry><br /></parameter></code></p>
<p>What I'd like to do is to get the value of the argument from the lavoisiier-config.properties file<br />I tried to do somethiong like this:</p>
<p><code><parameter name="arguments"><br /> <entry eval="concat('--input-dir=',property('vo.support.tools.monitor.ce.input.dir'))"/><br /></parameter></code></p>
<p>But I get the exception content not allowed in prologue</p>
<p>How can I do this?</p>
<p>By advance, thanks,<br />Flavien Forestier</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=632#message-6322013-08-26T13:30:03ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Salut,</p>
<p>L'élément <insert> prend un attribut @context au lieu de @nodes. L'auto-complétion te serait vraiment utile pour t'éviter de t'embêter avec ce genre de détail!</p>
<p>Là aussi l'auto-complétion t'aurait évité ce soucis: la fonction s'appelle "quot()" au lieu de "quote()" (ca fait référence à ", et de même il y a une fonction apos() pour ').</p>
<p>Sylvain</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=630#message-6302013-08-26T12:24:23ZMichel Franck
<p>Salut,</p>
<p>J'ai plusieurs soucis selon les essais que je fais avec la solution 2. Ca semble lié à un problème de version :</p>
<p>Dans un cas:<br /><code>Caused by: org.xml.sax.SAXParseException; cvc-complex-type.3.2.2 : L'attribut 'nodes' n'est pas autorisÚ dans l'ÚlÚment 'insert'</code></p>
<p>Dans l'autre cas, j'enlève le insert/node et je remplace par un autre select, mais cette fois j'ai cela :<br /><code>Caused by: org.dom4j.XPathException: Exception occurred evaluting XPath: view('bdii_find_se_all', concat('/services/se[@id=', quot<br />e(current()/@id)),']'). Exception: No Such Function quote</code></p>
<p>J'utilise la version lavoisier-package-1.9-20130822.102119-126-bin.</p>
<p>Franck.</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=628#message-6282013-08-26T10:47:45ZMichel Franck
<p>Ok merci Sylvain, on va regarder ça attentivement.</p>
<p>Franck.</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=627#message-6272013-08-26T10:35:10ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Bonjour,</p>
<p>Je viens de rédiger un petit chapitre basé sur l'exemple de Flavien, auquel j'ai ajouté une ligne pour traiter le cas plus général d'une jointure 1-N: <a class="wiki-page new" href="https://forge.in2p3.fr/projects/lavoisier/wiki/Join">Join 2 data views with <for></a></p>
J'attire votre attention sur le fait que la première solution (celle que vous avez choisie) est la plus simple mais également une des moins performantes. Je vous recommande plutôt:
<ul>
<li>soit la solution 2 avec une vue VB qui génère dynamiquement sa requête SQL pour ne récupérer que les lignes nécessaires (grâce au paramètre 'parameters' du SQLConnector, ou bien grâce au traducteur XPath/SQL).</li>
<li>soit la solution 4 si votre vue VB est assez petite pour tenir en mémoire (cette solution sera opérationnelle dans la journée car il manque le support d'un paramètre "select" dans le plug-in AppendXmlProcessor: voir ticket <a class="issue tracker-2 status-3 priority-5 priority-default closed" title="Feature: add parameter "select" to AppendXmlProcessor (Resolved)" href="https://forge.in2p3.fr/issues/4930">#4930</a>).</li>
</ul>
<p>Pour comprendre le fonctionnement des différentes solutions proposées, je vous conseille de copier les fonctions PiXTL une par une et d'observer le résultat à chaque étape.</p>
<p>Sylvain</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=624#message-6242013-08-24T09:50:47ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Ce paramètre existe toujours sous ce nom dans le plug-in SelectProcessor, mais les attributs des fonctions PiXTL n’ont pas forcément le même nom que les paramètres du plug-in correspondant puisque leur raison d’exister est d’être des notations raccourcies. C’est le cas ici, le paramètre « single_node » du plug-in SelectProcessor correspond à l’attribut @single de la fonction <a href="http://software.in2p3.fr/lavoisier/config.xsd#type_select" class="external"><select></a>.</p>
<p>Pour le cas particulier des 10 fonctions PiXTL, il faut donc se référer à cette doc (ou à l'auto-completion si ton éditeur le permet) plutôt qu'aux noms des paramètres des plug-ins correspondant.</p>
<p>Petite astuce: pour le nettoyage des entrées, la fonction <remove> en spécifiant la profondeur (@depth) est parfois plus intéressante que le <select>, ça dépend des cas...</p>
<p>Sylvain</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=622#message-6222013-08-23T17:34:40ZMichel Franck
<p>Salut Olivier, on a avancé là-dessus, on génère maintenant bien l'intersection (je suis en train de faire une autre vue et j'ai le même besoin), et on se débrouille ensuite pour nettoyer les entrées insérées avec le namespace <em>entries</em>.</p>
<p>On a voulu utilisé le paramètre single_node du processeur <select nodes=... >, cela rend une erreur de parsing. Il n'est plus ou pas encore supporté ? Il a été renommé ?</p>
<p>Merci.<br /> Franck.</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=620#message-6202013-08-23T14:42:45ZLequeux Olivierolivier.lequeux@cc.in2p3.fr
<p>Salut,</p>
<p>En fait il faut que tu fasses une troisième vue (VAB) qui se branche à VA par example par l'intermédiaire de son connector et à VB par l'intermédiare du connector du for.<br />Le for en fait permet de browser la vue en cour en injectant des parties de xml de l'autre vue.</p>
<p>La version finale du flux que tu désire nécessitera des transormations après, mais qui sont triviales.<br />Il faut que tu retouches l'example pour modifier l'expression xpath car la structure que j'ai mis en example ne correspond pas exactement à la tienne. Il est d'ailleurs préférable d'avoir des attributs, c'est plus pratique avec pixtle, donc n'hésite pas à transformer ton flux avant de faire le croisement si besoin.</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=619#message-6192013-08-23T11:58:28ZFORESTIER Flavien
<p>Salut,</p>
<p>Merci beaucoup pour ta réponse, cela m'a permis d'avancer.<br />J'arrive à générer les 2 flux XML à partir de 2 vues différentes<br />dans une 3ème vue. Par contre je bloque au niveau de la commande<br /><select nodes="???"/><br />je n'arrive pas à trouver la bonne expression.<br />Voici l'allure de mes 2 flux sources:</p>
<p>flux VA:</p>
<p><result><br /> <row><br /> <HOST>h1</HOST><br /> <PATH>p1</PATH><br /> <RATE>r1</RATE><br /> </row><br /> <row><br /> <HOST>h2</HOST><br /> <PATH>p2</PATH><br /> <RATE>r2</RATE><br /> </row><br /></result></p>
<p>flux VB:</p>
<p><result><br /> <row><br /> <HOST>h1</HOST><br /> <PATH>p1</PATH><br /> <NB>n1</NB><br /> </row><br /> <row><br /> <HOST>h3</HOST><br /> <PATH>p3</PATH><br /> <NB>n3</NB><br /> </row><br /></result></p>
<p>Je souhaiterais obtenir en sortie</p>
<p><result><br /> <row><br /> <HOST>h1</HOST><br /> <PATH>p1</PATH><br /> <RATE>r1</RATE><br /> <NB>n1</NB><br /> </row><br /></result></p>
<p>J'ai pensé pour le tag <for>:<br /><for nodes="/result/row"><br />dans le 1er processor.</p>
<p>Pour le tag select du 2ème processor, j'ai essayé plusieurs<br />façons mais je n'ai pas réussi.</p>
<p>Pourrais-tu m'indiquer ce que je dois metttre dans le tag select?</p>
<p>par avance, merci,<br />Flavien</p> User questions: RE: How to pass a certificate and passphrase in an HTTPConnector?https://forge.in2p3.fr/boards/61/topics/610?r=616#message-6162013-08-23T10:28:08ZMichel Franck
<p>Ok cool, thx Sylvain.<br />Franck.</p> User questions: RE: How to pass a certificate and passphrase in an HTTPConnector?https://forge.in2p3.fr/boards/61/topics/610?r=613#message-6132013-08-23T09:55:27ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Hi Franck,</p>
<p>The lavoisier-passwords.properties is needed only for password-based authentication, so you don't need it unless you want to authenticate to Lavoisier this way.</p>
<p>If you want your certificate path to be OS-independant, you can use the "user.home" system property as your base path:<br /><pre>
certificate.path=${user.home}/yourcert.p12
</pre></p>
<p>Regards,<br />Sylvain</p> User questions: RE: How to pass a certificate and passphrase in an HTTPConnector?https://forge.in2p3.fr/boards/61/topics/610?r=612#message-6122013-08-23T09:40:59ZMichel Franck
<p>Ok great, worked straight away!</p>
Two remarks:
<ul>
<li>in the start logs I get this trace, but the service starts fine anyway.<br /><code>ao¹t 23, 2013 9:36:31 AM fr.in2p3.lavoisier.security.UserPasswordAuthN getInstance<br />INFO: AuthN properties file does not exist security/lavoisier-passwords.properties</code></li>
<li>for a Windows system, the file path should look like this:<br /><code>certificate.path=/C:/Users/username/...</code> (in case you want to document it somewhere)</li>
</ul>
<p>Thank you,<br /> Franck.</p> User questions: RE: How to pass a certificate and passphrase in an HTTPConnector?https://forge.in2p3.fr/boards/61/topics/610?r=611#message-6112013-08-23T09:23:51ZL'Orphelin Cyrilcyril.lorphelin@cc.in2p3.fr
<p>Hi</p>
<p>This part is independent from the version of Lavoisier .<br />These properties are set up into the file lavoisier-config.properties (into the directory : $lavoisier-home/etc )</p>
<p>Examples : certificate.path=/opt/lavoisier/certificate<br /> certificate.password=my_password</p>
<p>For the passwords if you want to declare it into the properties but you want to hide these properties into the console you need to declare the list of the keys into lavoisier-hidden-properties.txt (into the directory : $lavoisier-home/etc ) in the previous example you have just to declare certificate.password in the file.</p>
<p>Regards</p> User questions: How to pass a certificate and passphrase in an HTTPConnector?https://forge.in2p3.fr/boards/61/topics/6102013-08-23T09:14:09ZMichel Franck
<p>Hi guys,</p>
<p>I'm trying to reuse the GOCDB view that Cyril provided me with:</p>
<pre><code class="xml syntaxhl"><span class="nt"><connector</span> <span class="na">type=</span><span class="s">"HTTPConnector"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"url"</span><span class="nt">></span>https://goc.egi.eu/gocdbpi/private/?method=get_service_group<span class="nt"></parameter></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"certificate"</span> <span class="na">eval=</span><span class="s">"property('certificate.path')"</span><span class="nt">/></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"passphrase"</span> <span class="na">eval=</span><span class="s">"property('certificate.password')"</span><span class="nt">/></span>
<span class="nt"></connector></span>
</code></pre> <br />How do I configure the certificate.path and certificate.password properties?<br />I'm using Lavoisier 4.
<p>Thx,<br /> Franck.</p> User questions: RE: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/608?r=609#message-6092013-08-22T18:07:57ZLequeux Olivierolivier.lequeux@cc.in2p3.fr
<p>Salut,</p>
<p>En supposant que tu as 2 vues A et B du type :</p>
<pre><code class="xml syntaxhl"><span class="nt"><VA></span>
<span class="nt"><item</span> <span class="na">host=</span><span class="s">"hvalue1"</span> <span class="na">path=</span><span class="s">"pvalue1"</span><span class="nt">/></span>
<span class="nt"><item</span> <span class="na">host=</span><span class="s">"hvalue2"</span> <span class="na">path=</span><span class="s">"pvalue2"</span><span class="nt">/></span>
<span class="nt"></VA></span>
</code></pre>
<p>Tu peux faire ça avec pixtl comme ci-dessous (ou en XSL si tu veux si tes données tienennt en mémoire, pixtl faisant du streaming)</p>
<pre><code class="xml syntaxhl"><span class="nt"><view</span> <span class="na">name=</span><span class="s">"VAB"</span><span class="nt">></span>
<span class="nt"><connector</span> <span class="na">type=</span><span class="s">"XMLConnector"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"content"</span> <span class="na">eval=</span><span class="s">"view('VA')"</span><span class="nt">/></span>
<span class="nt"></connector></span>
<span class="nt"><processors></span>
<span class="nt"><for</span> <span class="na">nodes=</span><span class="s">"/VA/item"</span><span class="nt">></span>
<span class="nt"><connector</span> <span class="na">type=</span><span class="s">"content"</span> <span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"content"</span> <span class="na">eval=</span><span class="s">"view('VB')"</span><span class="nt">/></span>
<span class="nt"></connector></span>
<span class="nt"><processors></span>
<span class="nt"><select</span> <span class="na">nodes=</span><span class="s">"/VB/item[@host = current()/@host and @path = current()/@path]"</span><span class="nt">/></span>
<span class="nt"></processors></span>
<span class="nt"></for></span>
<span class="nt"></processors></span>
<span class="nt"></view></span>
</code></pre> User questions: Intersection de vues Lavoisierhttps://forge.in2p3.fr/boards/61/topics/6082013-08-22T14:49:22ZFORESTIER Flavien
<p>Bonjour,</p>
<p>Je souhaiterais obtenir une vue Lavoisier qui soit une sorte d'intersection de 2 vues Lavoisier.<br />Si vous avez du temps pour me conseiller cela me serait d'une grande aide.<br />Je vous explique le problème:<br />J'ai une 1ère vue Lavoisier white_list_ce_rate path-template="/{1}/{2}/{3}" qui à partir d'un connector sql <br />me génère un flux XML ayant 3 colonnes HOST, PATH, RATE.<br />J'ai une 2nde vue Lavoisier white_list_last_n_tests path-template="/{1}/{2}" qui à partir d'un connector sql<br />me génère un flux XML ayant 3 colonnes HOST, PATH, NB_TESTS_OK.<br />Je souhaiterais construire une 3ème vue white_list_ce path-template="/{1}/{2}/{3}/{4}/{5}" qui appellerait les<br />2 vues précédentes et qui à partir de leurs 2 flux XML génèrerait un flux XML résultant de l'intersection de ces 2 flux: <br />c'est à dire un flux xml ayant 4 colonnes: HOST, PATH, RATE, NB_TESTS_OK dont les lignes seraient celles<br />des 2 vues sources ayant les champs HOST et PATH en communs.</p>
<p>Pourriez-vous m'indiquer comment faire ?</p>
<p>Par avance, merci,<br />Flavien Forestier,<br />Projet VAPOR</p>