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> 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> Topology Manager - Feature #5719 (New): Launching server easilyhttps://forge.in2p3.fr/issues/57192014-01-03T16:01:57ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>Need to have a script or at leats an easier way to relaunch TM_server when Damian killall screen .... (as root)</p> Electronic Control and Monitoring - Task #5688 (New): Mercurialiser configuration fileshttps://forge.in2p3.fr/issues/56882013-12-19T09:59:34ZRalet Damian
<p>The miroring of scgw1 to scgw2 is not existing anymore. <br />We would need a backup of the configuration files (digitizer DB, crystal_rc, others?) <br />in case of problem. The software and a procedure on how to install them could be needed as well.</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> ENX - Bug #5447 (New): make distclean - DCODhttps://forge.in2p3.fr/issues/54472013-10-30T10:18:56ZLegay EricEric.Legay@csnsm.in2p3.fr
<p>After 'make distclean' in /docd/, some objs and libraries are not cleaned.</p>
<pre>
? enx/common/ID_Handler/libidhandler.a
? enx/common/ID_Handler/libidhandler.so
? enx/common/ID_Handler/obj_dynamic/auto.cgpr
? enx/common/ID_Handler/obj_dynamic/b__idhandler.adb
? enx/common/ID_Handler/obj_dynamic/b__idhandler.ads
? enx/common/ID_Handler/obj_dynamic/idhandler.lexch
? enx/common/ID_Handler/obj_static/auto.cgpr
? enx/common/ID_Handler/obj_static/b__idhandler.adb
? enx/common/ID_Handler/obj_static/b__idhandler.ads
? enx/common/ID_Handler/obj_static/idhandler.lexch
? enx/common/Types/libenxtypes.a
? enx/common/Types/libenxtypes.so
? enx/common/Types/obj_dynamic/auto.cgpr
? enx/common/Types/obj_dynamic/b__enxtypes.adb
? enx/common/Types/obj_dynamic/b__enxtypes.ads
? enx/common/Types/obj_dynamic/enxtypes.lexch
? enx/common/Types/obj_static/auto.cgpr
? enx/common/Types/obj_static/b__enxtypes.adb
? enx/common/Types/obj_static/b__enxtypes.ads
? enx/common/Types/obj_static/enxtypes.lexch
? enx/common/plugins/libenxplugins.a
? enx/common/plugins/libenxplugins.so
? enx/common/plugins/obj_dynamic/auto.cgpr
? enx/common/plugins/obj_dynamic/b__enxplugins.adb
? enx/common/plugins/obj_dynamic/b__enxplugins.ads
? enx/common/plugins/obj_dynamic/enxplugins.lexch
? enx/common/plugins/obj_static/auto.cgpr
? enx/common/plugins/obj_static/b__enxplugins.adb
? enx/common/plugins/obj_static/b__enxplugins.ads
? enx/common/plugins/obj_static/enxplugins.lexch
? enx/common/soap/libenxsoapclient.a
? enx/common/soap/libenxsoapclient.so
? enx/common/soap/obj_dynamic/auto.cgpr
? enx/common/soap/obj_dynamic/b__enxsoapclient.adb
? enx/common/soap/obj_dynamic/b__enxsoapclient.ads
? enx/common/soap/obj_dynamic/enxsoapclient.lexch
? enx/common/soap/obj_static/auto.cgpr
? enx/common/soap/obj_static/b__enxsoapclient.adb
? enx/common/soap/obj_static/b__enxsoapclient.ads
? enx/common/soap/obj_static/enxsoapclient.lexch
? enx/common/soap/sources
? enx/common/soap/src/client/server_xml_service-client.adb
? enx/common/soap/src/client/server_xml_service-client.ads
? enx/common/soap/src/common/server_xml_service-types.ads
? enx/common/soap/src/common/server_xml_service.ads
? enx/common/soap/src/server/server_web_enx.adb
? enx/common/soap/src/server/server_xml_service-cb.adb
? enx/common/soap/src/server/server_xml_service-cb.ads
? enx/common/soap/src/server/server_xml_service-server.adb
? enx/common/soap/src/server/server_xml_service-server.ads
? enx/common/soap/wsdl/server_xml.wsdl
? enx/server/UI/remote-console.adb.orig
? enx/server/_init.enx
? enx/server/build/x86_64/bin/remote-console
? enx/server/build/x86_64/bin/server_web_enx
? enx/server/build/x86_64/obj/b~remote-console.adb
? enx/server/build/x86_64/obj/b~remote-console.ads
? enx/server/build/x86_64/obj/b~server_web_enx.adb
? enx/server/build/x86_64/obj/b~server_web_enx.ads
? enx/server/soap/server_web_enx.adb
? enx/server/soap/server_xml.wsdl
? enx/server/soap/server_xml_service-cb.adb
? enx/server/soap/server_xml_service-cb.ads
? enx/server/soap/server_xml_service-client.adb
? enx/server/soap/server_xml_service-client.ads
? enx/server/soap/server_xml_service-server.adb
? enx/server/soap/server_xml_service-server.ads
? enx/server/soap/server_xml_service-types.ads
? enx/server/soap/server_xml_service.ads
</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.frRENOIR chat - Task #5201 (New): Julia: a fast dynamic language for technical computinghttps://forge.in2p3.fr/issues/52012013-10-03T02:39:39ZZoubian Julienzoubian@cppm.in2p3.fr
<p>Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia’s built-in package manager at a rapid pace. IJulia, a collaboration between the IPython and Julia communities, provides a powerful browser-based graphical notebook interface to Julia.</p> RENOIR chat - Task #5199 (New): Ipython notebookhttps://forge.in2p3.fr/issues/51992013-10-03T00:59:22ZZoubian Julienzoubian@cppm.in2p3.fr
<p>The IPython Notebook is an interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single document.<br /><a class="external" href="http://ipython.org/notebook.html">http://ipython.org/notebook.html</a></p> RENOIR chat - Task #5198 (New): Laboratory for visual learning (LVL)https://forge.in2p3.fr/issues/51982013-10-03T00:56:09ZZoubian Julienzoubian@cppm.in2p3.fr
<p>The LVL investigate how visual information shapes learning in astronomy.<br /><a class="external" href="https://lvl.si.edu/research/research-at-lvl/">https://lvl.si.edu/research/research-at-lvl/</a></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.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> 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> 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> 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> ENX - Feature #656 (New): named registerhttps://forge.in2p3.fr/issues/6562010-05-26T13:15:23ZDosme Nicolas
<p>possibility to access register by name and not only by address</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 #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> 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> 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> 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>