Author: echatellier Date: 2012-04-02 14:30:02 +0200 (Mon, 02 Apr 2012) New Revision: 3670 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3670 Log: close #733 Tester R sur caparmor Added: trunk/src/site/rst/documentation/devel/rcaparmor.rst Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java trunk/src/main/resources/templates/ssh/qsub-script.ftl trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-03-30 13:32:08 UTC (rev 3669) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-04-02 12:30:02 UTC (rev 3670) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2002 - 2011 Ifremer, Code Lutin, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2002 - 2012 Ifremer, Code Lutin, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -924,7 +924,7 @@ /** Serveur accessible par ssh : remote tmp path */ SIMULATOR_SSH_TMPPATH("simulation.ssh.tmppath", n_("isisfish.config.main.simulation.ssh.tmppath.description"), "isis-tmp"), /** Serveur accessible par SSH : emplacement de Java (full path) */ - SIMULATOR_SSH_JAVAPATH("simulation.ssh.javapath", n_("isisfish.config.main.simulation.ssh.javapath.description"), "/home3/caparmor/poussin/jdk/bin/java"), + SIMULATOR_SSH_JAVAPATH("simulation.ssh.javapath64", n_("isisfish.config.main.simulation.ssh.javapath.description"), "/home3/caparmor/poussin/jdk64/bin/java"), /** Serveur accessible par SSH : emplacement des executables pbs */ SIMULATOR_SSH_PBSBINPATH("simulation.ssh.pbsbinpath", n_("isisfish.config.main.simulation.ssh.pbsbinpath.description"), "/usr/pbs/bin"), /** Serveur accessible par SSH : option de l'executable qsub (defaut to -m n = no mail) */ Modified: trunk/src/main/resources/templates/ssh/qsub-script.ftl =================================================================== --- trunk/src/main/resources/templates/ssh/qsub-script.ftl 2012-03-30 13:32:08 UTC (rev 3669) +++ trunk/src/main/resources/templates/ssh/qsub-script.ftl 2012-04-02 12:30:02 UTC (rev 3670) @@ -26,7 +26,9 @@ cd "${isishome}" -module load R/2.14.2-gnu-4.3 +setenv R_HOME /home3/caparmor/poussin/R/lib64/R +setenv PATH ${r"${R_HOME}"}/bin:${r"${PATH}"} +setenv LD_LIBRARY_PATH ${r"${R_HOME}"}/lib <#assign commonCommand="${javapath} -Djava.library.path=jri64 -DR.type=jni -Xmx2000M -jar isis-fish*.jar" /> <#assign commonOptions="--option launch.ui false --option perform.vcsupdate false --option perform.migration false --option perform.cron false" /> Added: trunk/src/site/rst/documentation/devel/rcaparmor.rst =================================================================== --- trunk/src/site/rst/documentation/devel/rcaparmor.rst (rev 0) +++ trunk/src/site/rst/documentation/devel/rcaparmor.rst 2012-04-02 12:30:02 UTC (rev 3670) @@ -0,0 +1,52 @@ +Utilisation de R sur caparmor +============================= + +Version caparmor +---------------- + +La version de R fournie par caparmor n'est pas utilisable:: + + ll /appli/R/2.14.2-gnu-4.3/lib64/R/lib + -rwxr-xr-x 1 root root 467061 Mar 5 14:13 libRblas.so + -rwxr-xr-x 1 root root 3977966 Mar 5 14:13 libRlapack.so + +Il manque le fichier "libR.so" parce que R n'a pas été compilé avec l'option +"--enable-R-shlib". + + +Recompilation de R +------------------ + +Télécharger manuellement R et le recompiler avec l'option manquante:: + + ./configure --prefix=/home3/caparmor/poussin/R-2.15 --enable-R-shlib + +Verifier la présence du fichier libR.so:: + + ll /home3/caparmor/poussin/R-2.15/lib64/R/lib + -rwxrwxr-x 1 poussin emh 10797333 Apr 2 08:51 libR.so + -rwxrwxr-x 1 poussin emh 467045 Apr 2 08:51 libRblas.so + -rwxrwxr-x 1 poussin emh 3977950 Apr 2 08:51 libRlapack.so + + +Installation des librairies XSA +------------------------------- + +Installation des librairies pour la version que l'on vient de compiler:: + + /home3/caparmor/poussin/R-2.15/bin/R + install.packages("FLCore", repos="http://flr-project.org/R") + install.packages("FLXSA", repos="http://flr-project.org/R") + + +Configuration de R pour Isis +---------------------------- + +Ajouter dans les script csh:: + + setenv R_HOME /home3/caparmor/poussin/R/lib64/R + setenv PATH ${R_HOME}/bin:${PATH} + setenv LD_LIBRARY_PATH ${R_HOME}/lib + +Et lancer les simulations avec tous les composants en 64 bits +(java, R, isis). Modified: trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java =================================================================== --- trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2012-03-30 13:32:08 UTC (rev 3669) +++ trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2012-04-02 12:30:02 UTC (rev 3670) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2008 - 2010 Ifremer, Code Lutin + * Copyright (C) 2008 - 2012 Ifremer, Code Lutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -85,7 +85,7 @@ Assert.assertTrue("String \"" + simulationResultZip + "\" not found in template", content.indexOf(simulationResultZip) > 0); Assert.assertTrue("String \"" + simulationPreScript + "\" not found in template", content.indexOf(simulationPreScript) > 0); Assert.assertTrue("Action --simulateRemotellyWithPreScript not on script", content.indexOf(" --simulateRemotellyWithPreScript ") > 0); - Assert.assertTrue("Remote Java path not found in template", content.indexOf("/home3/caparmor/poussin/jdk/bin/java") > 0); + Assert.assertTrue("Remote Java path not found in template", content.indexOf("/home3/caparmor/poussin/jdk64/bin/java") > 0); // isis location Assert.assertTrue("String \"" + isisHome + "\" not found in template", content.indexOf(isisHome) > 0); @@ -313,4 +313,21 @@ // simulation parameters Assert.assertTrue(content.startsWith("#!/bin/csh")); } + + /** + * Test que les ${PATH} et ${R_HOME} ne sont pas interpreté par freemarker. + * + * @throws IOException + * @throws TemplateException + */ + @Test + public void testFreemarkerTemplatePathEscape() throws IOException, TemplateException { + SSHSimulatorLauncher launcher = new SSHSimulatorLauncher(); + String content = launcher.getSimulationScriptLaunchContent( + SSHSimulatorLauncher.QSUB_SCRIPT_TEMPLATE, "", + "", true, "", "", true); + System.out.println(content); + Assert.assertTrue(content.contains("${R_HOME}/bin:${PATH}")); + Assert.assertTrue(content.contains("${R_HOME}/lib")); + } } \ No newline at end of file