IN2P3-Forge: Issueshttps://forge.in2p3.fr/https://forge.in2p3.fr/favicon.ico?16780521162018-05-31T15:49:48ZIN2P3-Forge
Redmine Lavoisier - Feature #33350 (New): add a XPath function multireplace()https://forge.in2p3.fr/issues/333502018-05-31T15:49:48ZReynaud SylvainSylvain.Reynaud@in2p3.fr
This function would support a variable number of arguments:
<ul>
<li>string: the input string</li>
<li>search: the substring to replace</li>
<li>replace: the replacement string for the first occurence of the search string</li>
<li>replace: the replacement string for the second occurence of the search string</li>
<li>...</li>
<li>replace: the replacement string for the Nth occurence of the search string</li>
</ul> Lavoisier - Feature #30741 (New): add research button on web sitehttps://forge.in2p3.fr/issues/307412018-04-04T10:53:55ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>with a javascript that automatically add "site:http://software.in2p3.fr/lavoisier" to the query, and send it to Google</p> Lavoisier - Feature #30735 (New): write documentation about the admin web consolehttps://forge.in2p3.fr/issues/307352018-04-04T10:51:59ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>to be done the the admin web consoled will be stabilised</p> Lavoisier - Bug #20738 (New): Stacktracehttps://forge.in2p3.fr/issues/207382017-08-30T10:39:18ZLavoisier Api
<p>Build Version: 2.1.2-SNAPSHOT<br />Build Date: Thu Apr 21 07:12:14 UTC 2016<br />Author: lavoisier<br />Description: Describe the context of the problem here...<br />Stack Trace: fr.in2p3.lavoisier.interfaces.error.AdaptorException: Exception raised for view 'VAPOR_ComputingShare' [Adaptor raised exception -- javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]]<br /> at fr.in2p3.lavoisier.chaining.link.connector.SAXConnectorLink.generate(SAXConnectorLink.java:26)<br /> at fr.in2p3.lavoisier.chaining.Chain.generate(Chain.java:120)<br /> at fr.in2p3.lavoisier.chaining.Chain.writeToCache(Chain.java:109)<br /> at fr.in2p3.lavoisier.engine.view.ViewCached.refresh(ViewCached.java:151)<br /> at fr.in2p3.lavoisier.engine.task.CacheRefreshTask.run(CacheRefreshTask.java:22)<br /> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)<br /> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)<br /> at java.lang.Thread.run(Thread.java:748)<br />Caused by: javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]<br /> at com.sun.jndi.ldap.LdapCtx.getSearchReply(LdapCtx.java:1920)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.getNextBatch(AbstractLdapNamingEnumeration.java:130)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:217)<br /> at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMore(AbstractLdapNamingEnumeration.java:189)<br /> at fr.in2p3.lavoisier.connector.LDAPConnector.writeToContentHandler(LDAPConnector.java:88)<br /> at fr.in2p3.lavoisier.chaining.link.connector.SAXConnectorLink.generate(SAXConnectorLink.java:24)<br /> ... 7 more<br />Caused by: java.io.IOException: connection closed<br /> at com.sun.jndi.ldap.LdapClient.ensureOpen(LdapClient.java:1592)<br /> at com.sun.jndi.ldap.LdapClient.getSearchReply(LdapClient.java:598)<br /> at com.sun.jndi.ldap.LdapCtx.getSearchReply(LdapCtx.java:1918)<br /> ... 12 more</p> PEM - Bug #12978 (New): pem-sync pullhttps://forge.in2p3.fr/issues/129782016-03-24T17:11:58ZNguyen-Kim Kaneknguyen@ipno.in2p3.fr
<p>add a progress bar when downloading the realm</p> PEM - Feature #12976 (New): pem-sync co_pemhttps://forge.in2p3.fr/issues/129762016-03-24T17:00:48ZNguyen-Kim Kaneknguyen@ipno.in2p3.fr
<p>automatically update the ~/.bashrc with the entry :<br />path=/opt/pem/bin:$PATH at the end of 'pem-sync co_pem'</p> Lavoisier - Feature #11484 (New): improve command "lavoisier-upgrade.sh"https://forge.in2p3.fr/issues/114842015-12-10T10:39:44ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>la commande diff de linux est inadéquate => recherche d'une solution alternative type (git diff ?)</p> TReqS - Bug #9736 (Suspended): hpss_SetLoginCred + hpss_PurgeLoginCredhttps://forge.in2p3.fr/issues/97362015-04-21T09:40:04ZChambon Bernard
<p>Doing some tests, encountered the following behaviour</p>
<ul>
<li>Case calling hpss_PurgeLoginCred either case failure<br />With user root123 fail (=PASS), then with user root <strong>hanging on hpss_SetLoginCred</strong> (=FAILURE)</li>
</ul>
<pre>
TRACE HPSSConnection - Login for user root123 ...
TRACE HPSSConnection - Using authentication method 'unix'
ERROR HPSSConnection - Just before hpss_SetLoginCred
ERROR HPSSConnection - Just after hpss_SetLoginCred
ERROR HPSSConnection - Authentication failed for user root123, hpss_SetLoginCred return -1
TRACE HPSSConnection - Logout ...
TRACE HPSSConnection - Logout done
Calling HPSSConnection
TRACE HPSSConnection - logger already configured ...
TRACE HPSSConnection - Login for user root ...
TRACE HPSSConnection - Using authentication method 'unix'
ERROR HPSSConnection - Just before hpss_SetLoginCred
^C
Here hpss_PurgeLoginCred hang forever !
</pre>
<ul>
<li>Case calling hpss_PurgeLoginCred only if hpss_SetLoginCred succeed <br />With user root123 fail (=PASS), then with <strong>user root fail</strong> (= FAILURE)</li>
</ul>
<pre>
Calling HPSSConnection
TRACE HPSSConnection - Login for user root123 ...
TRACE HPSSConnection - Using authentication method 'unix'
ERROR HPSSConnection - Just before hpss_SetLoginCred
ERROR HPSSConnection - Just after hpss_SetLoginCred
ERROR HPSSConnection - Authentication failed for user root123, hpss_SetLoginCred return -1
Calling HPSSConnection
Exception catched : Authentication failed for user root123
TRACE HPSSConnection - logger already configured ...
TRACE HPSSConnection - Login for user root ...
TRACE HPSSConnection - Using authentication method 'unix'
ERROR HPSSConnection - Just before hpss_SetLoginCred
ERROR HPSSConnection - Just after hpss_SetLoginCred
ERROR HPSSConnection - Authentication failed for user root, hpss_SetLoginCred return -22
Exception catched : Authentication failed for user root
</pre> Lavoisier - Bug #7566 (New): fields of view "form" are disabled when they have default valuehttps://forge.in2p3.fr/issues/75662014-06-27T16:53:21ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>send the form with javascript instead</p> Lavoisier - Feature #6687 (New): develop a CronTriggerhttps://forge.in2p3.fr/issues/66872014-03-27T16:36:12ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p><a class="external" href="http://fr.wikipedia.org/wiki/Crontab">http://fr.wikipedia.org/wiki/Crontab</a></p> Lavoisier - Feature #6360 (New): develop a EntriesProcessor (or a EntriesRenderer)https://forge.in2p3.fr/issues/63602014-03-05T15:22:23ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>Input data example:<br /><pre><code class="xml syntaxhl"><span class="nt"><root></span>
<span class="nt"><child</span> <span class="na">id=</span><span class="s">"truc"</span> <span class="na">name=</span><span class="s">"IGNORED"</span><span class="nt">></span>
<span class="nt"><id></span>truc<span class="nt"></id></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"bidule"</span><span class="nt">></span>value<span class="nt"></leaf></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"bidule2"</span><span class="nt">></span>value2<span class="nt"></leaf></span>
<span class="nt"><leaf</span> <span class="na">name=</span><span class="s">"name"</span><span class="nt">></span>nom<span class="nt"></leaf></span>
<span class="nt"></child></span>
<span class="nt"></root></span>
</code></pre></p>
<p>Plugin configuration example:<br /><pre><code class="xml syntaxhl"><span class="nt"><e:root></span>
<span class="nt"><e:entries</span> <span class="na">base=</span><span class="s">"root/child"</span> <span class="na">key=</span><span class="s">"id/text()"</span><span class="nt">></span>
<span class="nt"><e:entry</span> <span class="na">base=</span><span class="s">"leaf"</span> <span class="na">key=</span><span class="s">"@name"</span> <span class="na">value=</span><span class="s">"text()"</span><span class="nt">/></span>
<span class="nt"></e:entries></span>
<span class="nt"></e:root></span>
</code></pre></p>
<p>Result example:<br /><pre><code class="xml syntaxhl"><span class="nt"><e:entries></span>
<span class="nt"><e:entries</span> <span class="na">key=</span><span class="s">"truc"</span><span class="nt">></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"value"</span><span class="nt">></span>machin<span class="nt"></e:entry></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"bidule"</span><span class="nt">></span>value<span class="nt"></e:entry></span>
<span class="nt"><e:entry</span> <span class="na">key=</span><span class="s">"name"</span><span class="nt">></span>nom<span class="nt"></e:entry></span>
<span class="nt"></e:entries></span>
<span class="nt"></e:entries></span>
</code></pre></p> Lavoisier - Feature #6353 (New): support new parameter type "Language"https://forge.in2p3.fr/issues/63532014-03-04T15:10:47ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>The goal is to support langage-specific syntax-highlight in web console and configuration wizard (e.g. SQL, XQuery...).</p> Lavoisier - Feature #6325 (New): enable limiting the maximum output sizehttps://forge.in2p3.fr/issues/63252014-03-03T10:47:04ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>All the opened elements should be automatically closed in order to keep the XML output well formed.</p> Lavoisier - Feature #6303 (New): support attributes @package and @id on <config>https://forge.in2p3.fr/issues/63032014-02-27T17:00:28ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This will replace metadata <category>.</p>
This must correspond to (or must be deduced from) file system:
<ul>
<li>@package must correspond to directory name</li>
<li>@id must correspond to file name</li>
</ul>
<p>Element <view> may support attribute @private="true|FALSE".</p>
When referencing a data view:
<ul>
<li>if it is in another package, then add package name : view('my.package.myView').</li>
<li>if it is in the same package, then package name will be automatically added.</li>
</ul> Lavoisier - Feature #6260 (New): support introspection of view-templatehttps://forge.in2p3.fr/issues/62602014-02-24T18:22:11ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>a process should be able to query the list of parameters of a view-template</p> Topology Manager - Feature #5757 (New): Topology manager- error detection in mezzaninehttps://forge.in2p3.fr/issues/57572014-01-07T13:29:11ZRalet Damian
<p>We noticed that it is possible to set two time a relation of a carrier to the same mezzanine (in our case it was mez-112).<br />It would be nice if the TM could noticed this error, and bring it up.</p> Topology Manager - Feature #5729 (New): Title in firefoxhttps://forge.in2p3.fr/issues/57292014-01-03T18:58:58ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Should be great to have a real name in the firefox tab instead of <a class="external" href="http://scgw2:6095">http://scgw2:6095</a></p> Lavoisier - Feature #5558 (New): add XPath function build_xpath()https://forge.in2p3.fr/issues/55582013-11-22T14:51:40ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre><code class="xml syntaxhl"><span class="nt"><view</span> <span class="na">name=</span><span class="s">"v"</span><span class="nt">></span>
<span class="nt"><argument</span> <span class="na">name=</span><span class="s">"site"</span><span class="nt">></span>NONE<span class="nt"></argument></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="nt">></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"CC-IN2P3"</span><span class="nt">></span>Lyon<span class="nt"></entry></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"LAPP"</span><span class="nt">></span>Annecy<span class="nt"></entry></span>
<span class="nt"><entry</span> <span class="na">key=</span><span class="s">"CERN"</span><span class="nt">></span>Geneve<span class="nt"></entry></span>
<span class="nt"></parameter></span>
<span class="nt"></connector></span>
<span class="nt"><processors></span>
<span class="c"><!-- the less flexible solution (the XPath is fixed in the view) --></span>
<span class="nt"><processor</span> <span class="na">type=</span><span class="s">"SelectProcessor"</span> <span class="na">match=</span><span class="s">"/*/*[@key=$site]"</span> <span class="na">disabled=</span><span class="s">"$site='NONE'"</span><span class="nt">/></span>
<span class="nt"></processors></span>
<span class="nt"></view></span>
<span class="c"><!-- the less efficient solution (requires a data structure to be built) --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v')/*/*[@key=$site]"</span><span class="nt">/></span>
<span class="c"><!-- argument 'site' is evaluated by view 'v' --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v/*/*[@key=$site]', arguments())"</span><span class="nt">/></span><span class="c"><!-- view 'v' must have <argument name="site"/> --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view('v/*/*[@key=arguments()[@key=&quot;site&quot;]])]', arguments())"</span><span class="nt">/></span>
<span class="c"><!-- argument 'site' is evaluated by current view --></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view(concat('v/*/*[@key=',quot($site),']'))"</span><span class="nt">/></span>
<span class="nt"><parameter</span> <span class="na">eval=</span><span class="s">"view(build_xpath('v/*/*[@key={$site}'))"</span><span class="nt">/></span>
</code></pre>
<p><ins>Note</ins>: build_xpath() must disable optimizer for {match()/@id}</p> ENX - Feature #5527 (New): Named register listhttps://forge.in2p3.fr/issues/55272013-11-18T17:30:28ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>It should be great to remove template-register.ads from driver files and to list the regsiter from a configuration file...</p>
<p>need to define a way to find this configuration file and some others details, but to do ...</p> Lavoisier - Feature #5090 (New): add new adaptor type : <writer>https://forge.in2p3.fr/issues/50902013-09-17T15:49:22ZReynaud SylvainSylvain.Reynaud@in2p3.fr
Adaptors example:
<ul>
<li>SQLWriter</li>
<li>HTTPWriter</li>
<li>FileWriter</li>
<li>EmailWriter</li>
</ul>
<p>Usage example:<br /><pre><code class="xml syntaxhl"><span class="nt"><view</span> <span class="na">name=</span><span class="s">"ldap-to-sql"</span><span class="nt">></span>
<span class="nt"><connector</span> <span class="na">type=</span><span class="s">"LDAPConnector"</span><span class="nt">/></span>
<span class="nt"><writer</span> <span class="na">type=</span><span class="s">"SQLWriter"</span> <span class="na">match=</span><span class="s">"/o/cn[@id='fr']/ou[@id='in2p3']/dn"</span>
<span class="na">recovery-base-directory=</span><span class="s">"$TMP/recovery"</span> <span class="na">recovery-period=</span><span class="s">"PT1M"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"url"</span><span class="nt">></span>jdbc:...<span class="nt"></parameter></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"query"</span><span class="nt">></span>INSERT INTO my_table (?,?)<span class="nt"></parameter></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"parameters"</span><span class="nt">></span>
<span class="nt"><entry</span> <span class="na">eval=</span><span class="s">"@id"</span><span class="nt">/></span>
<span class="nt"><entry</span> <span class="na">eval=</span><span class="s">"ancestor::cn/@id"</span><span class="nt">/></span>
<span class="nt"></parameter></span>
<span class="nt"><trigger</span> <span class="na">type=</span><span class="s">"DeltaTimeTrigger"</span><span class="nt">></span>
<span class="nt"><parameter</span> <span class="na">name=</span><span class="s">"hours"</span><span class="nt">></span>1<span class="nt"></parameter></span>
<span class="nt"></trigger></span>
<span class="nt"></writer></span>
<span class="nt"></view></span>
</code></pre></p>
<p>Interface:<br /><pre><code class="java syntaxhl"><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">Writer</span> <span class="kd">extends</span> <span class="nc">Adaptor</span> <span class="o">{</span>
<span class="cm">/**
* @return the list of exceptions caused by bad configuration (event will not be retried).
*/</span>
<span class="kd">public</span> <span class="nc">Exception</span><span class="o">[]</span> <span class="nf">getConfigurationExceptions</span><span class="o">();</span>
<span class="cm">/**
* A resource can be for example: a connection to database, an URL to an AVAILABLE web service, a pointer to file...
* @throws ResourceAlreadyOpened if resource was already opened.
* @return true if opening resource is successful, else false.
*/</span>
<span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">openResource</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">ResourceAlreadyOpened</span><span class="o">;</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">closeResource</span><span class="o">();</span>
<span class="o">}</span>
</code></pre></p>
<p>Algorithm:<br /><pre><code class="java syntaxhl"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">WriterLink</span> <span class="o">{</span>
<span class="kd">private</span> <span class="nc">File</span> <span class="n">m_base_directory</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Duration</span> <span class="n">m_retry_period</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">EventStore</span> <span class="n">m_unrecoverable</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">EventStore</span> <span class="n">m_recoverable</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Writer</span> <span class="n">m_writer</span><span class="o">;</span>
<span class="kd">private</span> <span class="nc">Set</span><span class="o"><</span><span class="nc">Exception</span><span class="o">></span> <span class="n">m_configuration_exceptions</span><span class="o">;</span>
<span class="kd">public</span> <span class="nf">WriterLink</span><span class="o">()</span> <span class="o">{</span>
<span class="n">m_configuration_exceptions</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HashSet</span><span class="o"><</span><span class="nc">Exception</span><span class="o">>();</span>
<span class="n">m_configuration_exceptions</span><span class="o">.</span><span class="na">addAll</span><span class="o">(</span><span class="nc">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">getConfigurationExceptions</span><span class="o">()));</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">write</span><span class="o">(</span><span class="nc">Xml</span> <span class="n">view</span><span class="o">)</span> <span class="o">{</span>
<span class="nc">EventReader</span> <span class="n">input</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventReader</span><span class="o">(</span><span class="n">view</span><span class="o">);</span>
<span class="n">m_unrecoverable</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventStore</span><span class="o">(</span><span class="n">m_viewId</span><span class="o">);</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="nc">StartElement</span><span class="o">(</span><span class="s">"root"</span><span class="o">));</span>
<span class="k">while</span><span class="o">(!</span><span class="n">input</span><span class="o">.</span><span class="na">isEmpty</span><span class="o">()</span> <span class="o">&&</span> <span class="o">!</span><span class="n">isTriggered</span><span class="o">)</span> <span class="o">{</span>
<span class="nl">label:</span> <span class="k">while</span><span class="o">(!</span><span class="n">isTriggered</span><span class="o">)</span> <span class="o">{</span>
<span class="k">switch</span> <span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">openResource</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">WAS_ALREADY_OPENED:</span>
<span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="n">m_retry_period</span><span class="o">);</span>
<span class="k">break</span> <span class="n">label</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_OPENED:</span>
<span class="k">break</span> <span class="n">label</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_CLOSED:</span>
<span class="nc">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="n">m_retry_period</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">m_recoverable</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">EventStore</span><span class="o">(</span><span class="n">m_viewId</span><span class="o">);</span>
<span class="k">try</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="n">event</span> <span class="o">:</span> <span class="n">input</span><span class="o">.</span><span class="na">getEvents</span><span class="o">())</span> <span class="o">{</span>
<span class="k">switch</span><span class="o">(</span><span class="n">event</span><span class="o">.</span><span class="na">getState</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">UNSELECTED:</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">SELECTED:</span>
<span class="k">this</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">.</span><span class="na">getCurrent</span><span class="o">());</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">DESCENDANT_OF_SELECTED:</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">ResourceClosedException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="n">event</span> <span class="o">:</span> <span class="n">input</span><span class="o">.</span><span class="na">getEvents</span><span class="o">())</span> <span class="o">{</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">event</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="c1">// remove the file if if contains no event</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">moveTo</span><span class="o">(</span><span class="n">input</span><span class="o">);</span>
<span class="o">}</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="nc">EndElement</span><span class="o">(</span><span class="s">"root"</span><span class="o">));</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="c1">// remove the file if it contains no event</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">write</span><span class="o">(</span><span class="nc">Element</span> <span class="n">current</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">ResourceClosedException</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="n">m_configuration_exceptions</span><span class="o">.</span><span class="na">contains</span><span class="o">(</span><span class="n">e</span><span class="o">))</span> <span class="o">{</span>
<span class="n">m_unrecoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">switch</span> <span class="o">(</span><span class="n">m_writer</span><span class="o">.</span><span class="na">openResource</span><span class="o">())</span> <span class="o">{</span>
<span class="k">case</span> <span class="nl">WAS_ALREADY_OPENED:</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_OPENED:</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">m_writer</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="n">m_recoverable</span><span class="o">.</span><span class="na">write</span><span class="o">(</span><span class="n">current</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="nl">IS_CLOSED:</span>
<span class="k">throw</span> <span class="k">new</span> <span class="nf">ResourceClosedException</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></p> Lavoisier - Feature #5009 (New): ICalRendererhttps://forge.in2p3.fr/issues/50092013-09-12T10:46:56ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #5008 (New): ICalSerializerhttps://forge.in2p3.fr/issues/50082013-09-12T10:44:37ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4934 (New): implement some additional cache adaptorshttps://forge.in2p3.fr/issues/49342013-08-26T17:13:59ZReynaud SylvainSylvain.Reynaud@in2p3.fr
Technologies to be considered are:
<ul>
<li>in-memory cache (DOM, DOM4J or recorded stream of XML events)</li>
<li>on-disk serialized DOM tree or recorded stream of XML events</li>
<li>native XML database</li>
<li>relational database</li>
<li>no-SQL dataabse (e.g. MongoDB)</li>
</ul> Lavoisier - Feature #4906 (New): XPath2SQLTemplate : add support for SQL functionshttps://forge.in2p3.fr/issues/49062013-08-16T11:13:25ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*[sql:contains(dno,'DR')]
</pre> Lavoisier - Feature #4905 (New): XPath2SQLTemplate : add support for XPath functionshttps://forge.in2p3.fr/issues/49052013-08-16T11:10:47ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*[starts-with(dno,'DR')]
</pre> Lavoisier - Feature #4904 (New): XPath2SQLTemplate : add support for ORDER BYhttps://forge.in2p3.fr/issues/49042013-08-16T11:01:42ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<pre>
http://host:8080/lavoisier/database/dept:*?sort=dno,course
</pre> Lavoisier - Feature #4871 (New): ExcelSerializerhttps://forge.in2p3.fr/issues/48712013-07-31T18:42:31ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This adaptor may rely on the apache POI library.</p> Lavoisier - Feature #4870 (New): BinarySerializerhttps://forge.in2p3.fr/issues/48702013-07-31T18:36:58ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>This adaptor may rely on the Daffodil open-source implementation of the DFDL specification.</p> Lavoisier - Feature #4867 (New): ScalaProcessorhttps://forge.in2p3.fr/issues/48672013-07-31T17:22:39ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4866 (New): XQueryConnectorhttps://forge.in2p3.fr/issues/48662013-07-31T17:21:18ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4865 (New): support remote connection in JMXConnectorhttps://forge.in2p3.fr/issues/48652013-07-31T17:19:46ZReynaud SylvainSylvain.Reynaud@in2p3.frLavoisier - Feature #4863 (New): YAMLRendererhttps://forge.in2p3.fr/issues/48632013-07-31T16:51:48ZReynaud SylvainSylvain.Reynaud@in2p3.frRENOIR chat - Task #4788 (New): Nemo3 / SuperNemo experimentshttps://forge.in2p3.fr/issues/47882013-07-09T18:26:27ZChapon Arnaud
<p><img src="/plugin_assets/redmine_wiki_extensions/images/smile.png" alt=":)"></p> Pipelet - Feature #3992 (New): directory in data with specific colorhttps://forge.in2p3.fr/issues/39922013-02-20T17:19:27ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>from the web interface, user directories are not clearly visible<br />shoud use specific color and maybe a reordering by folder , then files instead of alphabetic sort</p> Pipelet - Task #3954 (New): Documentation: Environment cheat sheethttps://forge.in2p3.fr/issues/39542013-02-13T11:00:33ZBetoule Marcbetoule@lpnhe.in2p3.fr
<p>I feel the need for this every day: a single sheet documenting the API of the standard environment functions.</p> LC2 - Feature #2112 (New): Rorc libhttps://forge.in2p3.fr/issues/21122011-10-19T12:40:13ZLafage Vincentlafage@ipno.in2p3.fr
<p>Try the different programs in<br /> /opt/date/rorc/examples/README<br />that is<br /><code> download_data_block_to_FEE.c<br /> get_FEE_status.c<br /> read_data_block_from_FEE.c<br /> send_command_to_FEE.c</code><br />Implement methods on top of rorc_lib that could be used in replacement of FeC2</p>
Find documentation about the rorc_reset, rorc_status…<br /><code>http://alice-proj-ddl.web.cern.ch/alice-proj-ddl/</code><br />However old, the reference is<br /><code>http://www.ge.infn.it/~minutoli/BONUS/SW/rorc_lib_rev10.pdf</code><br />in particular
<ul>
<li>4.3 RORC_RESET, p51</li>
<li>4.4 SIU_RESET, p52</li>
<li>4.10 RORC_STATUS, p58</li>
<li>4.12 DIU_STATUS, p60</li>
<li>4.13 SIU_STATUS, p61</li>
</ul>
<p>This confirms that the status command do not return failure code when we would like it.</p> LC2 - Feature #2076 (New): Finer grained report for boot Crocus scripthttps://forge.in2p3.fr/issues/20762011-10-11T14:18:00ZLafage Vincentlafage@ipno.in2p3.fr
<p><code>/opt/daq-MCH/LC2/scripts/bootCrt23.x</code><br />calls<br /> <code>bootFrtCrtDsp.x</code><br />which in turn calls<br /> <code>rorc_rst.x</code></p>
<p>The return code of <code>bootCrt23.x</code> combines the return codes of the 2 invocations of <code>bootFrtCrtDsp.x</code><br />in a relevant way. This would allow to propagate a much finer level of details.</p>
The <code>rorc_reset.x</code> script no only resets but also checks the SIU, DIU and RORC. <br />It turns out that
<ol>
<li>only the last command's return code decides the return code of the whole script</li>
<li>even this return code is not significant of the error status of the Whole DDL chain<br />We can report a much finer level of details.</li>
</ol>
In the same way, <code>bootFrtCrtDsp.x</code> might report two levels of error:
<ol>
<li>one for the FeC2 core command, as is the case, and with the known limitations of this report</li>
<li>a new one for the <code>rorc_reset.x</code> that would help shifters to catch anomalous SIU status from start</li>
</ol>
<p>A better documentation of basic command's return code is needed.</p> Pipelet - Bug #1566 (New): Bug daemon cherrypy on Macintoshhttps://forge.in2p3.fr/issues/15662011-04-15T17:53:52ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>Check where the bug come from, if not to low level do something, or warn the user.</p> Pipelet - Task #1336 (New): Add comments in multiplexhttps://forge.in2p3.fr/issues/13362011-02-15T12:02:22ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>The code of multiplex is hard to read/lacks for comments. Variable Names, data structure may be rethought.</p> Oval - Bug #1082 (New): NO DIFFhttps://forge.in2p3.fr/issues/10822010-11-16T11:38:30ZChamont David
<p>When "oval log" displays "NO DIFF", it is not easy for the newcomer to distinguish between "there is no difference" or "the diff command has not been applied". We should investigate how to make it more clear.</p> SphereLib - Feature #959 (New): intégrer ginphttps://forge.in2p3.fr/issues/9592010-10-06T11:30:50ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>interfacer ginp depuis python</p> SphereLib - Bug #938 (New): Construction icosahedronhttps://forge.in2p3.fr/issues/9382010-09-29T11:32:48ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>Utiliser le module fortran pour la compilation de icosahedron.f</p> SphereLib - Feature #890 (New): spline with order != 3https://forge.in2p3.fr/issues/8902010-09-06T15:08:41ZLe Jeune Maudelejeune@apc.in2p3.frftsmonitor - Feature #631 (New): History of a DN accesshttps://forge.in2p3.fr/issues/6312010-05-19T15:42:41ZSchwarz Lionel
<p>This could be used to trace access by DN in case of security issue</p> TReqS - Feature #500 (New): Injecter les information d'opération vers COLLOShttps://forge.in2p3.fr/issues/5002010-03-25T15:27:50ZGomez Casanova Andresandres.gomez@cc.in2p3.fr
<p>Tous les informations de TReqS doivent être injectées dans SYMOD.</p>
<p>Les informations de temps de lecture d'un fichier.<br />Cela inclus le temps de montage (mouvement du bras, montage dans le drive, positionnement et lecture). Traitement complet de la requête.<br />- HPSS + montage.</p>
<p>Pour pouvoir extraire seulement le temps de lecture, cela se fera avec une requête croisé avec l'information de ACSLS dans SYMOD.</p> TReqS - Feature #425 (New): Durée de vie des métadatahttps://forge.in2p3.fr/issues/4252010-02-12T09:16:07ZSchaeffer Jonathanjonathan.schaeffer@cc.in2p3.fr
<p>Ceci est prévu dans le code mais n'est pas implémenté.<br />Actuellement, la durée de vie d'une méta-donnée est nulle.</p> Smurf - Feature #202 (New): Smurf::DB::Getopt add fping to smelecthttps://forge.in2p3.fr/issues/2022009-10-21T16:46:45ZWernli Fabienwernli@in2p3.fr
<p>It should be possible to add -ping flag to e.g. smelect<br />to output only servers which are alive</p> RlsngCons - Feature #93 (New): Touche pour forcer le renouvellement de cachehttps://forge.in2p3.fr/issues/932009-03-31T10:16:29ZWernli Fabienwernli@in2p3.fr
<p>Par exemple $ comme pour mutt <img src="/plugin_assets/redmine_wiki_extensions/images/wink.png" alt=";)"></p> RlsngCons - Feature #87 (New): Limiter la taille du cachehttps://forge.in2p3.fr/issues/872009-03-30T15:32:25ZPuel Mattieumpuel@cc.in2p3.fr
<p>En plus des filtres de cache, il faut pouvoir définir une taille de fenêtre maximale du cache à partir de laquelle il commence à supprimer les anciens messages au fur et à mesure de l'arrivée de nouveaux.</p> RlsngCons - Feature #86 (New): Tris dynamiqueshttps://forge.in2p3.fr/issues/862009-03-30T15:31:08ZPuel Mattieumpuel@cc.in2p3.fr
<p>On doit pouvoir trier dynamiquement les messages en fonction d'un champs.</p>