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 #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 #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> Electronic Control and Monitoring - Feature #5751 (New): buildcfg with some error messagehttps://forge.in2p3.fr/issues/57512014-01-06T17:43:19ZRalet Damian
I am still missing some information errors like:
<ul>
<li>no FRS (I tryed, no information was telling me that it was missing)</li>
<li>15C, not in database, and yet no error message.</li>
</ul> ENX - Support #5710 (Assigned): Documentation - Named functionhttps://forge.in2p3.fr/issues/57102014-01-03T10:44:35ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Need to document the list of named functions available for each driver</p> DCOD - Bug #5592 (New): environment test missing in ./configurehttps://forge.in2p3.fr/issues/55922013-11-29T11:12:40ZDosme NicolasENX - Support #5572 (New): Cleaning autorconfhttps://forge.in2p3.fr/issues/55722013-11-25T15:23:38ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Should clean build directoy at the end of install phase.</p>
<p>(Removing at least automate.cache)</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> Lavoisier - Feature #5525 (Assigned): enable configuring trust-store with a directoryhttps://forge.in2p3.fr/issues/55252013-11-18T11:29:13ZReynaud SylvainSylvain.Reynaud@in2p3.fr
<p>The trust-store must be updated automatically without restarting the service.</p> DCOD - Bug #5462 (Feedback): Cleaning tagshttps://forge.in2p3.fr/issues/54622013-11-05T17:06:24ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>It should be great to have only "readable" tags ...</p>
<p>And potentially with coherent naming <img src="/plugin_assets/redmine_wiki_extensions/images/wink.png" alt=";)"></p>
<pre>
dataserver:~/Projects/dcod/enx/tools/Driver_Generator$ hg tags
tip 901:2917b5c7fe3e
ENX-V2.6.02 860:6dccaaedecc9
last-monotone-version 770:0cdcea7b6f0b
narval.1.10.3-1 690:3555f5589824
narval-1.10.3 678:5277417ba5bb
narval-1.8.1 654:eccbdeaa2c2c
Debian 648:1c59cb36e91e
glade_to_polyorb 632:2831b9b87a1d
1.6.6-compatible 631:6e70e9f5efa6
narval-1.6.6 628:466159b15547
narval-1.6.4 production 604:afc5bd34f045
ENX-V2.6.01 578:9957d1d423c1
ENX-V2.6.00 576:d64cad49c457
ENX-V2.5 574:552bf30293d9
ENX-V2.4-AP1-Scanning 572:4358b89995ba
ENX-V2.2 570:9c55505f8ff3
ENX-V2.0 568:9a160e6544ca
ENX-V1.0 565:d26e8f3dd1cc
</pre> Lavoisier - Feature #5442 (New): create a view 'stoppoint'https://forge.in2p3.fr/issues/54422013-10-29T17:02:12ZReynaud SylvainSylvain.Reynaud@in2p3.fr
This view should:
<ul>
<li>enable dumping output of connector, then 1st processor, then 2nd processor, etc., with a single clic.</li>
<li>dump configuration (with disabled processors in grey).</li>
<li>and most importantly: manage view arguments for each execution!</li>
</ul> ENX - Support #5431 (New): Cleaning compilation chainhttps://forge.in2p3.fr/issues/54312013-10-29T10:18:49ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>unused configure.ac in enx/server</p> CLASS - Feature #5377 (New): enrichment factoryhttps://forge.in2p3.fr/issues/53772013-10-21T15:15:07ZMOUGINOT Baptiste
<p>Do a fabrication plant which can build UOX fuel...</p> RENOIR chat - Task #5202 (New): Calibrating with style: Gaia self-calibrationhttps://forge.in2p3.fr/issues/52022013-10-03T04:54:19ZZoubian Julienzoubian@cppm.in2p3.frENX - Bug #5144 (Feedback): ENX + P42 regressionhttps://forge.in2p3.fr/issues/51442013-09-26T11:08:03ZGrave Xavier
<p>ENX > !create My_Device 0x0 0xff DRV_DEBUG<br /> 3191 INFO [main_task_0000000000B6DA20] ENX.Console - NO_RESULT<br />ENX > !list device<br /> 3208 INFO [main_task_0000000000B6DA20] ENX.Console - DEVICE list:<br /> - My_Device<br />ENX > <br />ENX > MD My_Device 0x0<br /> 3337 INFO [main_task_0000000000B6DA20] ENX.Console - 0x00000000 -> 0x00<br />ENX > MM My_Device 0x0 0xfadadada<br /> 3360 INFO [main_task_0000000000B6DA20] ENX.Console - OK<br />ENX > MM My_Device 0x4 0xdeadbeaf<br /> 3372 INFO [main_task_0000000000B6DA20] ENX.Console - OK<br />ENX > MD My_Device 0x0</p>
<blockquote>
<p>0xFADADADA< : Wrong kind of arguments.</p>
</blockquote>
<p>Should be a number.</p>
<pre><code>3376 ERROR [main_task_0000000000B6DA20] ENX.Console - Uncatched Exception. - P42.CONVERT.WRONG_TYPE - p42-convert-characters_2_numeric.adb:84<br />ENX > MD My_Device 0x4</code></pre>
<blockquote>
<p>0xDEADBEAF< : Wrong kind of arguments.</p>
</blockquote>
<p>Should be a number.</p>
<pre><code>3407 ERROR [main_task_0000000000B6DA20] ENX.Console - Uncatched Exception. - P42.CONVERT.WRONG_TYPE - p42-convert-characters_2_numeric.adb:84</code></pre> 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.frDCOD - Feature #4937 (New): Implement Hobbit/Zabbix scriptshttps://forge.in2p3.fr/issues/49372013-08-27T11:19:13ZGrave Xavier
<p>We should look how to implement data flow survey using hobbit or zabbix</p> Lavoisier - 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> DCOD - Task #4932 (New): DCOD testinghttps://forge.in2p3.fr/issues/49322013-08-26T15:35:59ZGrave Xavier
<p>Find a way to test Narval with scripts<br /> - need to define working scripts<br /> - need to define non working scripts</p>
<p>See if one can use similar test system for ENX</p>
<p>May be one can use Partition Player to implement the test system.</p> 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> 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> Smurf - Bug #3673 (Feedback): gestion des options de smupdatehttps://forge.in2p3.fr/issues/36732012-12-19T10:57:40ZCanehan Xavier
<p>Le parsing des options de smupdate est trop zélé :</p>
<p>% smupdate -set comment='vierge, donnee au LPNHE' ccdcacsn1{18..23}<br />FATAL: no affectation specified for donnee au LPNHE. Use '--unset donnee au LPNHE' instead if you want to set it to (SQL)NULL</p>
<p>L'éclatement sur la virgule se fait aussi dans un bloc protégé.</p> LPC Service Informatique - Support #2109 (New): imprimanteshttps://forge.in2p3.fr/issues/21092011-10-19T10:11:58ZJammes Fabrice
<p>installer l'imprimantes</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> LC2 - Support #1258 (Assigned): Better report of mute FRThttps://forge.in2p3.fr/issues/12582011-01-17T14:39:09ZLafage Vincentlafage@ipno.in2p3.fr
31/08/2010 10:30<br />When an FRT doesn't answer (header is correct but there's no payload and error type 0x251 occurs)
<ul>
<li>one should provide adequate Error description "FRT doesn't answer" </li>
<li>the corresponding bus should be grey instead of red</li>
</ul> LC2 - Feature #1254 (Assigned): Add Tooltip for the three LC2 modeshttps://forge.in2p3.fr/issues/12542011-01-17T13:34:50ZLafage Vincentlafage@ipno.in2p3.fr
<p>2010-10-04T21:44:43+0200<br />The meaning of the three LC2 modes being unclear, <br />a concise explanation is wanted. <br />It could go along the following lines:<br />Edit : prepare Crocus command file for storage <br />Emulate : prepare Crocus command file, simulate sending it and load the corresponding result file for postmortem analysis <br />Send : prepare and send Crocus command files, ask Crocus for result file and display it in the Load cmd/result tab</p> LC2 - Feature #1232 (Assigned): Include parseCrocusVersion in the Crocus Threadhttps://forge.in2p3.fr/issues/12322011-01-12T00:18:42ZLafage Vincentlafage@ipno.in2p3.fr
<p>2010-08-25T23:34:45+0200</p> LC2 - Feature #1231 (Assigned): Include boot in the Crocus Threadhttps://forge.in2p3.fr/issues/12312011-01-12T00:16:44ZLafage Vincentlafage@ipno.in2p3.fr
<p>2010-08-25T23:33:54+0200</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> ENX - Feature #852 (New): Better handling of exception in empty skeletonhttps://forge.in2p3.fr/issues/8522010-07-27T09:19:21ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Replace all infinite loop with a correct result (OK for example, or error).</p>
<p>Need to take care to the patch for C module !</p> Pipelet - Feature #748 (New): Git and CVS repositorieshttps://forge.in2p3.fr/issues/7482010-06-13T16:30:24ZLe Jeune Maudelejeune@apc.in2p3.fr
<p>Write classes GitRepository and CVSRepository</p> ftsmonitor - 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 #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> RlsngCons - Feature #187 (New): Abort limit/delete/ackhttps://forge.in2p3.fr/issues/1872009-10-07T13:08:32ZWernli Fabienwernli@in2p3.fr
<p>Ctrl-G should abort l/A/D edition</p> Oval - Feature #37 (New): Automatically select the shell flavorhttps://forge.in2p3.fr/issues/372009-02-16T19:44:59ZChamont David
<p>Oval should recognize the current user shell, and make it the default one for oval commands.</p> Oval - Feature #36 (New): Extend tasks with begin/end directory commandshttps://forge.in2p3.fr/issues/362009-02-16T19:42:43ZChamont David
<p>Perhaps, the administrators should be given the possibility to define a command to be executed each time Oval enter a new directory, and another one each time Oval exit from a directory.</p> Oval - Bug #28 (New): "oval validate" should remove differences in "oval log"https://forge.in2p3.fr/issues/282009-02-16T19:01:54ZChamont David
<p>As said in the title...</p> Oval - Bug #26 (New): Commands options not well propagated, when declared within an OvalFilehttps://forge.in2p3.fr/issues/262009-02-16T18:50:15ZChamont David
<p>Intro: so to ensure user interface and commands consistency, each single feature is implemented in a single command, and when a command needs another command feature, it is internally instanciating this command and use it. Behind this nice concept, since the internal command is not instanciated in the same way as the main command, we must propagate to it some "fake command line" options, and fakely calls its functions, as would do the main oval framework with the top level command. This fake calls are not done automatically, but case by case and "by hand" by the top command. This is why there could be and there is some<br />errors or awkward situation.</p>
<p>The general bug: in the current implementation, when a commmand option is set within an OvalFile, it is not<br />correctly propagated to the internals commands.</p>
<p>Example: if I set "-sh" for the runtime command, it will not be propagated to "environnement" command, and the<br />resulting output will be a mix of csh and sh commands.</p>
<p>Solution: review the use of internal commands, and the way they are managed, so that they are in the same state if they are instanciated as user commands or as internal commands.</p> Oval - Bug #22 (New): Deliver messages when ISA failshttps://forge.in2p3.fr/issues/222009-02-16T18:22:12ZChamont David
<p>When there is a perl failure, for example when ISA fails because perl does not find the relevant base package, it would be nice if oval could catch the event and deliver the defered messages before exiting.</p>