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);