Author: chatellier
Date: 2010-03-30 09:24:33 +0000 (Tue, 30 Mar 2010)
New Revision: 3008
Modified:
isis-fish/trunk/changelog.txt
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx
isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java
Log:
Make java path configurable on cluster server (caparmor & noumea)
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/changelog.txt 2010-03-30 09:24:33 UTC (rev 3008)
@@ -1,3 +1,9 @@
+isis-fish (3.3.0.1) stable; urgency=low
+
+ * Make java path configurable on cluster server (caparmor & noumea)
+
+ -- mar. mars 30 10:37:48 CEST 2010
+
isis-fish (3.3.0.0) stable; urgency=low
* Replace zone selection event from mouse click to correct valueChanged
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-03-30 09:24:33 UTC (rev 3008)
@@ -113,7 +113,7 @@
* migration de donnees demande automatiquement un changement de version
* d'application.
*/
- protected final static Version version = new Version(3, 3, 0, 0);
+ protected final static Version version = new Version(3, 3, 0, 1);
protected final static Version databaseVersion = new Version(
version.getNumber(0), version.getNumber(1));
protected final static Version apiVersion = new Version(
@@ -386,27 +386,8 @@
public void setSimulatorSshServer(String sshServer) {
setOption(Option.SIMULATOR_SSH_SERVER.key, sshServer);
}
-
- /**
- * Retourne l'url du service de tranfert de fichier.
- *
- * @return sftp server
- */
- public String getSimulatorSshSftpServer() {
- String result = getOption(Option.SIMULATOR_SSH_SFTP_SERVER.key);
- return result;
- }
/**
- * Change sftp server url value.
- *
- * @param sshSftpServer sftp server
- */
- public void setSimulatorSshSftpServer(String sshSftpServer) {
- setOption(Option.SIMULATOR_SSH_SFTP_SERVER.key, sshSftpServer);
- }
-
- /**
* Retourne le login pour acceder au serveur de simulation accessible via SSH.
*
* @return simulator username
@@ -521,8 +502,27 @@
public void setSimulatorSshPbsBinPath(String path) {
setOption(Option.SIMULATOR_SSH_PBSBINPATH.key, path);
}
+
+ /**
+ * Java path directory.
+ *
+ * @return path
+ */
+ public String getSimulatorSshJavaPath() {
+ String result = getOption(Option.SIMULATOR_SSH_JAVAPATH.key);
+ return result;
+ }
/**
+ * Change Java bin path.
+ *
+ * @param path new path
+ */
+ public void setSimulatorSshJavaPath(String path) {
+ setOption(Option.SIMULATOR_SSH_JAVAPATH.key, path);
+ }
+
+ /**
* Retourne l'interval de temps a utiliser
* pour recuperer le fichier de control.
*
@@ -944,8 +944,6 @@
/** Serveur accessible par ssh : address */
SIMULATOR_SSH_SERVER("simulation.ssh.server", _("isisfish.config.main.simulation.ssh.server.description"), "caparmor"),
- /** Serveur accessible par ssh : nom du service de transfert de fichier */
- SIMULATOR_SSH_SFTP_SERVER("simulation.ssh.sftpserver", _("isisfish.config.main.simulation.ssh.sftpserver.description"), "caparmor-sftp"),
/** Serveur accessible par ssh : login */
SIMULATOR_SSH_USER_NAME("simulation.ssh.username", _("isisfish.config.main.simulation.ssh.username.description"), ""),
/** Serveur accessible par ssh : user home directory */
@@ -956,6 +954,8 @@
SIMULATOR_SSH_ISIS_HOME("simulation.ssh.isis.home", _("isisfish.config.main.simulation.ssh.isis.home.description"), "/home3/caparmor/poussin/isis-fish-" + IsisConfig.getApiVersion()),
/** Serveur accessible par ssh : remote tmp path */
SIMULATOR_SSH_TMPPATH("simulation.ssh.tmppath", _("isisfish.config.main.simulation.ssh.tmppath.description"), "isis-tmp"),
+ /** Serveur accessible par SSH : emplacement de Java (full path) */
+ SIMULATOR_SSH_JAVAPATH("simulation.ssh.javapath", _("isisfish.config.main.simulation.ssh.javapath.description"), "/home3/caparmor/poussin/jdk/bin/java"),
/** Serveur accessible par SSH : emplacement des executables pbs */
SIMULATOR_SSH_PBSBINPATH("simulation.ssh.pbsbinpath", _("isisfish.config.main.simulation.ssh.pbsbinpath.description"), "/usr/pbs/bin"),
/** Serveur accessible par SSH : interval de check du fichier de control */
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2010-03-30 09:24:33 UTC (rev 3008)
@@ -1102,6 +1102,7 @@
Map<String, Object> root = new HashMap<String, Object>();
root.put("isishome", IsisFish.config.getSimulatorSshIsisHome());
root.put("isistemp", getRemoteTempDirectory());
+ root.put("javapath", IsisFish.config.getSimulatorSshJavaPath());
root.put("simulationid", simuationId);
root.put("simulationzip", simulationZip);
root.put("simulationstandalonezip", standaloneZip);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java 2010-03-30 09:24:33 UTC (rev 3008)
@@ -63,13 +63,13 @@
protected SSHLauncherConfigUI configUI;
protected String currentSSHserver;
- //protected String currentSSHsftpServer;
protected String currentSSHUsername;
protected File currentSSHKey;
protected String currentSSHUserhome;
protected String currentSSHDatapath;
protected String currentSSHIsisHome;
protected String currentSSHTempPath;
+ protected String currentSSHJavaPath;
protected String currentSSHPbsBinPath;
protected String currentSSHMaxThreads;
protected String currentSSHControlInterval;
@@ -89,7 +89,6 @@
public void resetSSHConfiguration() {
// server config
configUI.getSshServerField().setText(IsisFish.config.getSimulatorSshServer());
- //configUI.getSshSftpServerField().setText(IsisFish.config.getSimulatorSshSftpServer());
configUI.getUsernameField().setText(IsisFish.config.getSimulatorSshUsername());
configUI.getSshKeyField().setText(IsisFish.config.getSSHPrivateKeyFilePath().getAbsolutePath());
@@ -98,6 +97,7 @@
configUI.getSshDatapathField().setText(IsisFish.config.getSimulatorSshDataPath());
configUI.getSshIsisHomeField().setText(IsisFish.config.getSimulatorSshIsisHome());
configUI.getSshTemppathField().setText(IsisFish.config.getSimulatorSshTmpPath());
+ configUI.getSshJavaPathField().setText(IsisFish.config.getSimulatorSshJavaPath());
configUI.getSshPbsBinPathField().setText(IsisFish.config.getSimulatorSshPbsBinPath());
configUI.getSshControlIntervalField().setText(String.valueOf(IsisFish.config.getSimulatorSshControlCheckInterval()));
configUI.getSshMaxThreadsField().setText(String.valueOf(IsisFish.config.getSimulatorSshMaxThreads()));
@@ -174,6 +174,13 @@
setColor(false, configUI.getSshTemppathField());
}
+ currentSSHJavaPath = configUI.getSshJavaPathField().getText().trim();
+ if (currentSSHJavaPath.isEmpty()) {
+ setColor(true, configUI.getSshJavaPathField());
+ } else {
+ setColor(false, configUI.getSshJavaPathField());
+ }
+
currentSSHPbsBinPath = configUI.getSshPbsBinPathField().getText()
.trim();
if (currentSSHPbsBinPath.isEmpty()) {
@@ -213,6 +220,7 @@
IsisFish.config.setSimulatorSshDataPath(currentSSHDatapath);
IsisFish.config.setSimulatorSshIsisHome(currentSSHIsisHome);
IsisFish.config.setSimulatorSshTmpPath(currentSSHTempPath);
+ IsisFish.config.setSimulatorSshJavaPath(currentSSHJavaPath);
IsisFish.config.setSimulatorSshPbsBinPath(currentSSHPbsBinPath);
IsisFish.config.setSimulatorSshControlCheckInterval(Integer.parseInt(currentSSHControlInterval));
IsisFish.config.setSimulatorSshMaxThreads(Integer.parseInt(currentSSHMaxThreads));
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx 2010-03-30 09:24:33 UTC (rev 3008)
@@ -40,16 +40,6 @@
onKeyReleased="getAction().doCheck()" />
</cell>
</row>
- <!-- <row>
- <cell>
- <JLabel id='sshSftpServerLabel' text='isisfish.config.main.simulation.ssh.sftpserver'
- toolTipText='isisfish.config.main.simulation.ssh.sftpserver.description' />
- </cell>
- <cell fill='horizontal' columns="2">
- <JTextField id='sshSftpServerField' toolTipText='isisfish.config.main.simulation.ssh.sftpserver.description'
- onKeyReleased="getAction().doCheck()" enabled="false" />
- </cell>
- </row> -->
<row fill='horizontal'>
<cell>
<JLabel id='usernameLabel' text='isisfish.config.main.simulation.ssh.username'
@@ -116,6 +106,17 @@
</row>
<row fill='horizontal'>
<cell>
+ <JLabel id='sshJavaPathLabel' text='isisfish.config.main.simulation.ssh.javapath'
+ toolTipText='isisfish.config.main.simulation.ssh.javapath.description' />
+ </cell>
+ <cell>
+ <JTextField id='sshJavaPathField'
+ toolTipText='isisfish.config.main.simulation.ssh.javapath.description'
+ onKeyReleased="getAction().doCheck()" />
+ </cell>
+ </row>
+ <row fill='horizontal'>
+ <cell>
<JLabel id='sshPbsBinPathLabel' text='isisfish.config.main.simulation.ssh.pbsbinpath'
toolTipText='isisfish.config.main.simulation.ssh.pbsbinpath.description' />
</cell>
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2010-03-30 09:24:33 UTC (rev 3008)
@@ -172,6 +172,8 @@
isisfish.config.main.simulation.ssh.datapath.description=Isis-Fish database path
isisfish.config.main.simulation.ssh.isis.home=Isis-Fish home
isisfish.config.main.simulation.ssh.isis.home.description=Isis-Fish installation directory
+isisfish.config.main.simulation.ssh.javapath=Java path
+isisfish.config.main.simulation.ssh.javapath.description=Java location on remote server (full path or relative to $PATH, by default value is caparmor configuration)
isisfish.config.main.simulation.ssh.max.threads=SSH threads count
isisfish.config.main.simulation.ssh.max.threads.description=Number of simultaneous simulations to do through SSH. Might only be usefull for dependent analysis plans. Otherwise keep value at '1'.
isisfish.config.main.simulation.ssh.pbsbinpath=PBS executables directory
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-03-30 09:24:33 UTC (rev 3008)
@@ -172,6 +172,8 @@
isisfish.config.main.simulation.ssh.datapath.description=Emplacement de la base de donn\u00E9es (isis-database)
isisfish.config.main.simulation.ssh.isis.home=Installation d'Isis-Fish
isisfish.config.main.simulation.ssh.isis.home.description=Emplacement d'installation d'Isis-Fish sur le serveur
+isisfish.config.main.simulation.ssh.javapath=Emplacement de java
+isisfish.config.main.simulation.ssh.javapath.description=Emplacement de java sur le serveur (chemin total, ou relatif au $PATH, par d\u00E9faut la valeur est celle de caparmor)
isisfish.config.main.simulation.ssh.max.threads=Nombre de thread SSH
isisfish.config.main.simulation.ssh.max.threads.description=Nombre de simulation simultan\u00E9e \u00E0 faire en SSH. Attention, ne doit \u00EAtre utilis\u00E9 que pour faire plusieurs plans d'analyse d\u00E9pendants en m\u00EAme temps, sinon laisser '1'.
isisfish.config.main.simulation.ssh.pbsbinpath=Emplacement des executables PBS
Modified: isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2010-03-30 09:24:33 UTC (rev 3008)
@@ -5,7 +5,7 @@
#source /usr/share/modules/init/csh
#module load java/1.6.0
-<#assign commonCommand="/home3/caparmor/poussin/jdk/bin/java -Xmx2500M -jar isis-fish*.jar --option launch.ui false --option perform.vcsupdate false --option perform.migration false --option perform.cron false" />
+<#assign commonCommand="${javapath} -Xmx2500M -jar isis-fish*.jar --option launch.ui false --option perform.vcsupdate false --option perform.migration false --option perform.cron false" />
<#if qsubmutiplejob>
<#-- localsimulationid is short simulation id version -->
<#assign localsimulationid='${simulationid}_$PBS_ARRAY_INDEX' />
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2010-03-01 14:12:20 UTC (rev 3007)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2010-03-30 09:24:33 UTC (rev 3008)
@@ -78,6 +78,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);
// isis location
Assert.assertTrue("String \"" + isisHome + "\" not found in template", content.indexOf(isisHome) > 0);
@@ -136,6 +137,8 @@
*
* Le script contient plusieurs variables qui doivent être remplacées.
*
+ * Also test configuration off remote Java path.
+ *
* @throws IOException when freemarker throws it
* @throws TemplateException when freemarker throws it
*/
@@ -143,6 +146,7 @@
public void testFreemarkerTemplateMultiJobs() throws IOException,
TemplateException {
+ // some things to test !
String shortSimulationId = "sim_test1_2009-11-10-18-08";
String simulationId = shortSimulationId + "_122";
String simulationZip = "simulation-" + simulationId + "-preparation.zip";
@@ -150,6 +154,8 @@
String simulationPreScript = null;
String isisHome = IsisFish.config.getSimulatorSshIsisHome();
String isisTemp = IsisFish.config.getSimulatorSshTmpPath();
+ String javaPath = "/home1/noumea/cluster";
+ IsisFish.config.setSimulatorSshJavaPath(javaPath);
SSHSimulatorLauncher launcher = new SSHSimulatorLauncher();
String content = launcher.getSimulationScriptLaunchContent(
@@ -166,6 +172,7 @@
Assert.assertTrue(content.indexOf("/tmp/simulation-" + shortSimulationId + "_$PBS_ARRAY_INDEX-result.zip") > 0);
Assert.assertTrue("String " + isisTemp + "/simulation-" + shortSimulationId + "_$PBS_ARRAY_INDEX-output.txt\" not found in template", content.indexOf(isisTemp + "/simulation-" + shortSimulationId + "_$PBS_ARRAY_INDEX-output.txt\"") > 0);
Assert.assertTrue("Action --simulateRemotelly not on script", content.indexOf(" --simulateRemotelly ") > 0);
+ Assert.assertTrue("Remote Java path not found in template", content.indexOf(javaPath) > 0);
// isis location
Assert.assertTrue("String \"" + isisHome + "\" not found in template", content.indexOf(isisHome) > 0);