Author: chatellier Date: 2010-04-23 16:24:09 +0000 (Fri, 23 Apr 2010) New Revision: 3027 Log: Add new option to customize qsub options 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 Modified: isis-fish/trunk/changelog.txt =================================================================== --- isis-fish/trunk/changelog.txt 2010-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/changelog.txt 2010-04-23 16:24:09 UTC (rev 3027) @@ -1,5 +1,6 @@ isis-fish (3.3.0.3) stable; urgency=low + * Add new option to customize qsub options * Update libs (log4j, junit) * Fix first age use in group creation wizard Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-04-23 16:24:09 UTC (rev 3027) @@ -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, 2); + protected final static Version version = new Version(3, 3, 0, 3); protected final static Version databaseVersion = new Version( version.getNumber(0), version.getNumber(1)); protected final static Version apiVersion = new Version( @@ -504,6 +504,27 @@ } /** + * PBS qsub options (command line). + * + * See man qsub for available options. + * + * @return options + */ + public String getSimulatorSshPbsQsubOptions() { + String result = getOption(Option.SIMULATOR_SSH_PBSQSUBOPTIONS.key); + return result; + } + + /** + * Change PBS qsub options (command line). + * + * @param options new options + */ + public void setSimulatorSshPbsQsubOptions(String options) { + setOption(Option.SIMULATOR_SSH_PBSQSUBOPTIONS.key, options); + } + + /** * Java path directory. * * @return path @@ -958,6 +979,8 @@ 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 : option de l'executable qsub (defaut to -m n = no mail) */ + SIMULATOR_SSH_PBSQSUBOPTIONS("simulation.ssh.pbsqsuboptions", _("isisfish.config.main.simulation.ssh.pbsqsuboptions.description"), "-m n"), /** Serveur accessible par SSH : interval de check du fichier de control */ SIMULATOR_SSH_CONTROLCHECKINTERVAL("simulation.ssh.control.check.interval", _("isisfish.config.main.simulation.ssh.control.check.interval.description"), "120"), /** Serveur accessible par SSH : nombre de thread au maximum a utilise simultanement */ 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-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2010-04-23 16:24:09 UTC (rev 3027) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2008, 2009 Ifremer, Code Lutin + * Copyright (C) 2008, 2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -1142,10 +1142,15 @@ // command to : // - add script in qsub queue - // - use option -m n (to not send email) String remoteFilenameId = getRemoteTempDirectory() + "simulation-" + simulationId + "-pbs.id"; - String command = IsisFish.config.getSimulatorSshPbsBinPath() + "/qsub -m n"; + String command = IsisFish.config.getSimulatorSshPbsBinPath() + "/qsub"; + // add qsub options + String qsubOptions = IsisFish.config.getSimulatorSshPbsQsubOptions(); + if (StringUtils.isNotEmpty(qsubOptions)) { + command += " " + qsubOptions; + } + // multi job specific if (lastSimulationNumber >=0 ) { command+= " -J 0-" + String.valueOf(lastSimulationNumber); 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-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java 2010-04-23 16:24:09 UTC (rev 3027) @@ -71,6 +71,7 @@ protected String currentSSHTempPath; protected String currentSSHJavaPath; protected String currentSSHPbsBinPath; + protected String currentSSHPbsQsubOptions; protected String currentSSHMaxThreads; protected String currentSSHControlInterval; @@ -99,6 +100,7 @@ configUI.getSshTemppathField().setText(IsisFish.config.getSimulatorSshTmpPath()); configUI.getSshJavaPathField().setText(IsisFish.config.getSimulatorSshJavaPath()); configUI.getSshPbsBinPathField().setText(IsisFish.config.getSimulatorSshPbsBinPath()); + configUI.getSshPbsQsubOptionsField().setText(IsisFish.config.getSimulatorSshPbsQsubOptions()); configUI.getSshControlIntervalField().setText(String.valueOf(IsisFish.config.getSimulatorSshControlCheckInterval())); configUI.getSshMaxThreadsField().setText(String.valueOf(IsisFish.config.getSimulatorSshMaxThreads())); @@ -189,6 +191,9 @@ setColor(false, configUI.getSshPbsBinPathField()); } + // currentSSHPbsQsubOptions + currentSSHPbsQsubOptions = configUI.getSshPbsQsubOptionsField().getText().trim(); + // currentSSHMaxThreads currentSSHMaxThreads = configUI.getSshMaxThreadsField().getText().trim(); if (!currentSSHMaxThreads.matches("\\d+")) { @@ -222,6 +227,7 @@ IsisFish.config.setSimulatorSshTmpPath(currentSSHTempPath); IsisFish.config.setSimulatorSshJavaPath(currentSSHJavaPath); IsisFish.config.setSimulatorSshPbsBinPath(currentSSHPbsBinPath); + IsisFish.config.setSimulatorSshPbsQsubOptions(currentSSHPbsQsubOptions); 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-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx 2010-04-23 16:24:09 UTC (rev 3027) @@ -128,6 +128,17 @@ </row> <row fill='horizontal'> <cell> + <JLabel id='sshPbsQsubOptionsLabel' text='isisfish.config.main.simulation.ssh.pbsqsuboptions' + toolTipText='isisfish.config.main.simulation.ssh.pbsqsuboptions.description' /> + </cell> + <cell> + <JTextField id='sshPbsQsubOptionsField' + toolTipText='isisfish.config.main.simulation.ssh.pbsqsuboptions.description' + onKeyReleased="getAction().doCheck()" /> + </cell> + </row> + <row fill='horizontal'> + <cell> <JLabel id='sshMaxThreadsLabel' text='isisfish.config.main.simulation.ssh.max.threads' toolTipText='isisfish.config.main.simulation.ssh.max.threads.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-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2010-04-23 16:24:09 UTC (rev 3027) @@ -178,6 +178,8 @@ 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 isisfish.config.main.simulation.ssh.pbsbinpath.description=PBS executables (qsub, qdel...) directory +isisfish.config.main.simulation.ssh.pbsqsuboptions=Qsub arguments +isisfish.config.main.simulation.ssh.pbsqsuboptions.description=Arguments used at qsub job sumbit. Default to '-m n' don't send mail. isisfish.config.main.simulation.ssh.server=Simulation server isisfish.config.main.simulation.ssh.server.description=Simulation server address isisfish.config.main.simulation.ssh.sftpserver.description=Transfer server address (set empty to use scp from simulation server) 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-04-21 16:44:36 UTC (rev 3026) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-04-23 16:24:09 UTC (rev 3027) @@ -178,6 +178,8 @@ 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 isisfish.config.main.simulation.ssh.pbsbinpath.description=Emplacement des commandes PBS (qsub, qdel...) sur le serveur +isisfish.config.main.simulation.ssh.pbsqsuboptions=Arguments qsub +isisfish.config.main.simulation.ssh.pbsqsuboptions.description=Arguments utilisés lors de la soumission des jobs. Par d\u00E9faut '-m n' pas d'envoi de mails. isisfish.config.main.simulation.ssh.server=Serveur de simulation isisfish.config.main.simulation.ssh.server.description=Adresse du serveur de simulation isisfish.config.main.simulation.ssh.sftpserver.description=Adresse du serveur de transfert de fichier (laisser vide pour utiliser directement scp sur le serveur de simulation)