Isis-fish-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- 3175 discussions
r2799 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/ui/config src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 16:54:18 +0000 (Fri, 04 Dec 2009)
New Revision: 2799
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
Log:
Add option to control number of SSH thread to use
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/changelog.txt 2009-12-04 16:54:18 UTC (rev 2799)
@@ -1,6 +1,7 @@
isis-fish (3.3.0.0) stable; urgency=low
- * Add slipt pane between queued and done simulations tables
+ * Add option to control number of SSH thread to use
+ * Add split pane between queued and done simulations tables
* Add free space actions on caparmor configuration UI
* Remove "isis-export" directory
* Fix editor deactivation in input ui
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-12-04 16:54:18 UTC (rev 2799)
@@ -499,7 +499,7 @@
*
* @return time (in seconds)
*/
- public long getSimulatorSshControlCheckInterval() {
+ public int getSimulatorSshControlCheckInterval() {
int result = getOptionAsInt(Option.SIMULATOR_SSH_CONTROLCHECKINTERVAL.key);
return result;
}
@@ -509,11 +509,31 @@
*
* @param interval interval
*/
- public void setSimulatorSshControlCheckInterval(long interval) {
+ public void setSimulatorSshControlCheckInterval(int interval) {
setOption(Option.SIMULATOR_SSH_CONTROLCHECKINTERVAL.key, String.valueOf(interval));
}
+
+ /**
+ * Retourne le nombre de thread simultane a utiliser par le pool de thread
+ * du launcher SSH.
+ *
+ * @return number of thread to use
+ */
+ public int getSimulatorSshMaxThreads() {
+ int result = getOptionAsInt(Option.SIMULATOR_SSH_MAXTHREADS.key);
+ return result;
+ }
/**
+ * Set number of ssh simulation thread to use.
+ *
+ * @param max max
+ */
+ public void setSimulatorSshMaxThreads(int max) {
+ setOption(Option.SIMULATOR_SSH_MAXTHREADS.key, String.valueOf(max));
+ }
+
+ /**
* Retourne la clé privée de l'utilisteur courant.
*
* @return private ssh key path
@@ -902,6 +922,8 @@
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 */
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 */
+ SIMULATOR_SSH_MAXTHREADS("simulation.ssh.max.threads", _("isisfish.config.main.simulation.ssh.max.threads.description"), "1"),
LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
// REGION_MAP("regionMap", _("isisfish.config.main.regionMap.description"), "maps"),
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 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-12-04 16:54:18 UTC (rev 2799)
@@ -155,10 +155,16 @@
@Override
public int maxSimulationThread() {
- // FIXME pour toutes les envoyer
// met le serveur les lance quand il veut
+ int maxSimulationThread = IsisFish.config.getSimulatorSshMaxThreads();
+
+ if (maxSimulationThread <= 0) {
+ // always set a minimun of 1
+ maxSimulationThread = 1;
+ }
- return 1;
+ return maxSimulationThread;
+
}
/*
@@ -169,7 +175,7 @@
// par defaut, pour ssh, on utilise 20 secondes
- int interval = (int) IsisFish.config.getSimulatorSshControlCheckInterval();
+ int interval = IsisFish.config.getSimulatorSshControlCheckInterval();
return interval;
}
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 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java 2009-12-04 16:54:18 UTC (rev 2799)
@@ -71,6 +71,7 @@
protected String currentSSHIsisHome;
protected String currentSSHTempPath;
protected String currentSSHPbsBinPath;
+ protected String currentSSHMaxThreads;
protected String currentSSHControlInterval;
/**
@@ -99,6 +100,7 @@
configUI.getSshTemppathField().setText(IsisFish.config.getSimulatorSshTmpPath());
configUI.getSshPbsBinPathField().setText(IsisFish.config.getSimulatorSshPbsBinPath());
configUI.getSshControlIntervalField().setText(String.valueOf(IsisFish.config.getSimulatorSshControlCheckInterval()));
+ configUI.getSshMaxThreadsField().setText(String.valueOf(IsisFish.config.getSimulatorSshMaxThreads()));
doCheck();
}
@@ -180,6 +182,15 @@
setColor(false, configUI.getSshPbsBinPathField());
}
+ // currentSSHMaxThreads
+ currentSSHMaxThreads = configUI.getSshMaxThreadsField().getText().trim();
+ if (!currentSSHMaxThreads.matches("\\d+")) {
+ setColor(true, configUI.getSshMaxThreadsField());
+ } else {
+ setColor(false, configUI.getSshMaxThreadsField());
+ }
+
+ // currentSSHControlInterval
currentSSHControlInterval = configUI.getSshControlIntervalField()
.getText().trim();
if (!currentSSHControlInterval.matches("\\d+")) {
@@ -203,7 +214,8 @@
IsisFish.config.setSimulatorSshIsisHome(currentSSHIsisHome);
IsisFish.config.setSimulatorSshTmpPath(currentSSHTempPath);
IsisFish.config.setSimulatorSshPbsBinPath(currentSSHPbsBinPath);
- IsisFish.config.setSimulatorSshControlCheckInterval(Long.parseLong(currentSSHControlInterval));
+ IsisFish.config.setSimulatorSshControlCheckInterval(Integer.parseInt(currentSSHControlInterval));
+ IsisFish.config.setSimulatorSshMaxThreads(Integer.parseInt(currentSSHMaxThreads));
IsisFish.config.saveForUser();
configUI.dispose();
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 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx 2009-12-04 16:54:18 UTC (rev 2799)
@@ -127,6 +127,17 @@
</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>
+ <cell>
+ <JTextField id='sshMaxThreadsField'
+ toolTipText='isisfish.config.main.simulation.ssh.max.threads.description'
+ onKeyReleased="getAction().doCheck()" />
+ </cell>
+ </row>
+ <row fill='horizontal'>
+ <cell>
<JLabel id='sshControlIntervalLabel' text='isisfish.config.main.simulation.ssh.control.check.interval'
toolTipText='isisfish.config.main.simulation.ssh.control.check.interval.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 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-12-04 16:54:18 UTC (rev 2799)
@@ -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.max.threads=SSH threads count
+isisfish.config.main.simulation.ssh.max.threads.description=Number of simultaneous simulations to do throw SSH. Might only be usefull for 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.server=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 2009-12-04 16:00:18 UTC (rev 2798)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-12-04 16:54:18 UTC (rev 2799)
@@ -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.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 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.server=Serveur de simulation
1
0
r2798 - isis-fish/trunk/src/main/resources/templates/ssh
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 16:00:18 +0000 (Fri, 04 Dec 2009)
New Revision: 2798
Modified:
isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl
Log:
Add hack to force remove of simulation contents
Modified: isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2009-12-04 15:13:52 UTC (rev 2797)
+++ isis-fish/trunk/src/main/resources/templates/ssh/qsub-script.ftl 2009-12-04 16:00:18 UTC (rev 2798)
@@ -25,3 +25,5 @@
<#else>
${commonCommand} --simulateRemotelly "${localsimulationid}" "${localsimulationzip}" "${localsimulationresultzip}" >& "${localsimulationoutput}"
</#if>
+
+rm -rf "$HOME/isis-database-3/simulations/${localsimulationid}"
1
0
r2797 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 15:13:52 +0000 (Fri, 04 Dec 2009)
New Revision: 2797
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
Log:
Close properly simulation storage
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-12-04 11:13:43 UTC (rev 2796)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-12-04 15:13:52 UTC (rev 2797)
@@ -241,9 +241,9 @@
if (log.isDebugEnabled()) {
log.debug("Timing : after zipping results : " + new java.util.Date());
}
+
+ simulationStorage.closeStorage();
- simulationStorage.getStorage().closeContext();
-
// remove simulation
if (log.isInfoEnabled()) {
log.info("Deleting simulation : " + simulationStorage.getRoot());
1
0
Author: chatellier
Date: 2009-12-04 11:13:43 +0000 (Fri, 04 Dec 2009)
New Revision: 2796
Modified:
isis-fish/trunk/changelog.txt
Log:
Set a splitpane between queued and done tables.
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-12-04 11:12:34 UTC (rev 2795)
+++ isis-fish/trunk/changelog.txt 2009-12-04 11:13:43 UTC (rev 2796)
@@ -1,8 +1,9 @@
isis-fish (3.3.0.0) stable; urgency=low
+ * Add slipt pane between queued and done simulations tables
* Add free space actions on caparmor configuration UI
* Remove "isis-export" directory
- * Fix editor deactivation in input ui.
+ * Fix editor deactivation in input ui
* Remove deprecated method SimulationStorage#getFisheryRegion()
* Update to jfreechart 1.0.13 (major version)
* #1585 : Analyze plans are now reloaded before each simulation
1
0
r2795 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/queue
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 11:12:34 +0000 (Fri, 04 Dec 2009)
New Revision: 2795
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/queue/QueueUI.jaxx
Log:
Set a splitpane between queued and done tables.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/queue/QueueUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/queue/QueueUI.jaxx 2009-12-04 10:33:50 UTC (rev 2794)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/queue/QueueUI.jaxx 2009-12-04 11:12:34 UTC (rev 2795)
@@ -19,7 +19,7 @@
*##%*/
-->
<Table>
-<script><![CDATA[
+ <script><![CDATA[
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTableModel;
import fr.ifremer.isisfish.simulator.launcher.SimulationService;
import javax.swing.JProgressBar;
@@ -45,23 +45,21 @@
<row>
<cell columns="5" fill="both" weightx="1.0" weighty="0.5">
- <JScrollPane>
- <JTable id="queueTable" model='{newSimulationModel}'
- selectionMode="{ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
- selectionModel="{selectionModelQueueTable}" />
- </JScrollPane>
+ <JSplitPane oneTouchExpandable="true" orientation="VERTICAL" resizeWeight="0.5">
+ <JScrollPane>
+ <JTable id="queueTable" model='{newSimulationModel}'
+ selectionMode="{ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
+ selectionModel="{selectionModelQueueTable}" />
+ </JScrollPane>
+ <JScrollPane>
+ <JTable id="queueTableDone" model='{doneSimulationModel}'
+ selectionMode="{ListSelectionModel.SINGLE_SELECTION}"
+ selectionModel="{selectionModelQueueTableDone}" />
+ </JScrollPane>
+ </JSplitPane>
</cell>
</row>
<row>
- <cell columns="5" fill="both" weightx="1.0" weighty="0.5">
- <JScrollPane>
- <JTable id="queueTableDone" model='{doneSimulationModel}'
- selectionMode="{ListSelectionModel.SINGLE_SELECTION}"
- selectionModel="{selectionModelQueueTableDone}" />
- </JScrollPane>
- </cell>
- </row>
- <row>
<cell fill="horizontal" weightx="0.3">
<JToggleButton id="autoLaunchButton" text="isisfish.queue.simulationLaunch"/>
</cell>
1
0
r2794 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 10:33:50 +0000 (Fri, 04 Dec 2009)
New Revision: 2794
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
Log:
Fix multi job stop. (send stop request only for last simulation)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -555,7 +555,7 @@
* Do nothing (no restriction on inprocess launcher).
*/
@Override
- public void simulationStopRequest(SimulationControl control) {
+ public void simulationStopRequest(SimulationJob job) {
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -256,7 +256,7 @@
* Do nothing (no restriction on xml rpc launcher).
*/
@Override
- public void simulationStopRequest(SimulationControl control) {
+ public void simulationStopRequest(SimulationJob job) {
}
}
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 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -187,7 +187,7 @@
* Try to send a qdel command.
*/
@Override
- public void simulationStopRequest(SimulationControl control) throws RemoteException {
+ public void simulationStopRequest(SimulationJob job) throws RemoteException {
// make sure user is connected
try {
@@ -196,12 +196,30 @@
catch(JSchException e) {
throw new RemoteException("Can't connect", e);
}
-
- try {
- sendStopSimulationRequest(sshSession, control.getId());
- } catch (SSHException e) {
- throw new RemoteException("Can't connect", e);
+
+ // get simulation item info
+ SimulationItem simulationItem = job.getItem();
+ if (simulationItem.isStandaloneSimulation()) {
+ try {
+ sendStopSimulationRequest(sshSession, simulationItem.getControl().getId());
+ } catch (SSHException e) {
+ throw new RemoteException("Can't connect", e);
+ }
}
+ else {
+ // for multi job process, try to optimize process
+ // by send stop request only fo last job
+
+ // multi jobs has been started with last one
+ // must be killed with last one too
+ if (simulationItem.isLastSimulation()) {
+ try {
+ sendStopSimulationRequest(sshSession, simulationItem.getControl().getId());
+ } catch (SSHException e) {
+ throw new RemoteException("Can't connect", e);
+ }
+ }
+ }
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -518,7 +518,7 @@
}
if (control.isStopSimulationRequest()) {
- launcher.simulationStopRequest(control); // to release one resource
+ launcher.simulationStopRequest(job); // to release one resource
simulationEnded = true;
}
} catch (RemoteException e) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -105,11 +105,11 @@
* Called if a started simulation has been ask to stop. Tell launcher to
* stop simulation if possible.
*
- * @param control le control de la simulation
+ * @param job job to stop
*
* @throws RemoteException Si pour l'execution de la simulation
* on utilise des resources distantes (serveurs) et que ceux si non pas pu
* etre contacte.
*/
- public void simulationStopRequest(SimulationControl control) throws RemoteException;
+ public void simulationStopRequest(SimulationJob job) throws RemoteException;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-12-04 09:04:52 UTC (rev 2793)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-12-04 10:33:50 UTC (rev 2794)
@@ -328,7 +328,7 @@
* Do nothing (no restriction on subprocess launcher).
*/
@Override
- public void simulationStopRequest(SimulationControl control) {
+ public void simulationStopRequest(SimulationJob job) {
// TODO kill -9 sub process
}
}
1
0
r2793 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 09:04:52 +0000 (Fri, 04 Dec 2009)
New Revision: 2793
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
Log:
Fix restart simulation for multi jobs (set as standalone)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-12-04 08:59:00 UTC (rev 2792)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-12-04 09:04:52 UTC (rev 2793)
@@ -21,7 +21,6 @@
import static org.nuiton.i18n.I18n._;
-import java.io.File;
import java.rmi.RemoteException;
import java.util.HashSet;
import java.util.Iterator;
@@ -29,7 +28,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.FileUtil;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.SimulationControl;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-12-04 08:59:00 UTC (rev 2792)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-12-04 09:04:52 UTC (rev 2793)
@@ -634,6 +634,9 @@
* @param job job to retstart
*/
public void restart(SimulationJob job) {
+ // lorsqu'un job est resoumit, il redevient forcement standalone
+ job.getItem().setStandaloneSimulation(true);
+
job.getItem().getControl().reset();
fireStartEvent(job);
submit(job);
1
0
r2792 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish/ui/config src/main/resources/i18n src/main/resources/icons
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
by chatellier@users.labs.libre-entreprise.org 04 Dec '09
04 Dec '09
Author: chatellier
Date: 2009-12-04 08:59:00 +0000 (Fri, 04 Dec 2009)
New Revision: 2792
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java
isis-fish/trunk/src/main/resources/icons/accept.png
isis-fish/trunk/src/main/resources/icons/add.png
isis-fish/trunk/src/main/resources/icons/arrow_undo.png
isis-fish/trunk/src/main/resources/icons/cancel.png
isis-fish/trunk/src/main/resources/icons/connect.png
isis-fish/trunk/src/main/resources/icons/delete.png
isis-fish/trunk/src/main/resources/icons/paintbrush.png
isis-fish/trunk/src/main/resources/icons/resultset_next.png
isis-fish/trunk/src/main/resources/icons/resultset_previous.png
isis-fish/trunk/src/main/resources/icons/tick.png
isis-fish/trunk/src/main/resources/icons/wrench.png
isis-fish/trunk/src/main/resources/icons/wrench_orange.png
Modified:
isis-fish/trunk/changelog.txt
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
Log:
Add free space actions on caparmor configuration UI
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-12-02 17:32:03 UTC (rev 2791)
+++ isis-fish/trunk/changelog.txt 2009-12-04 08:59:00 UTC (rev 2792)
@@ -1,5 +1,6 @@
isis-fish (3.3.0.0) stable; urgency=low
+ * Add free space actions on caparmor configuration UI
* Remove "isis-export" directory
* Fix editor deactivation in input ui.
* Remove deprecated method SimulationStorage#getFisheryRegion()
Added: 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 (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java 2009-12-04 08:59:00 UTC (rev 2792)
@@ -0,0 +1,513 @@
+/* *##%
+ * Copyright (C) 2009 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 published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.config;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.awt.Color;
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.KeyPair;
+import com.jcraft.jsch.Session;
+
+import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.ui.input.InputAction;
+import fr.ifremer.isisfish.util.ssh.InvalidPassphraseException;
+import fr.ifremer.isisfish.util.ssh.SSHAgent;
+import fr.ifremer.isisfish.util.ssh.SSHException;
+import fr.ifremer.isisfish.util.ssh.SSHUserInfo;
+import fr.ifremer.isisfish.util.ssh.SSHUtils;
+
+/**
+ * Action for SSHLauncherConfig UI.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SSHLauncherConfigAction {
+
+ /** Class logger. */
+ private static Log log = LogFactory.getLog(InputAction.class);
+
+ 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 currentSSHPbsBinPath;
+ protected String currentSSHControlInterval;
+
+ /**
+ * Constructor with UI.
+ *
+ * @param configUI config ui
+ */
+ public SSHLauncherConfigAction(SSHLauncherConfigUI configUI) {
+ this.configUI = configUI;
+ }
+
+ /**
+ * Reset values with default configuration values.
+ */
+ 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());
+
+ // caparmor config
+ configUI.getSshUserhomeField().setText(IsisFish.config.getSimulatorSshUserHome());
+ configUI.getSshDatapathField().setText(IsisFish.config.getSimulatorSshDataPath());
+ configUI.getSshIsisHomeField().setText(IsisFish.config.getSimulatorSshIsisHome());
+ configUI.getSshTemppathField().setText(IsisFish.config.getSimulatorSshTmpPath());
+ configUI.getSshPbsBinPathField().setText(IsisFish.config.getSimulatorSshPbsBinPath());
+ configUI.getSshControlIntervalField().setText(String.valueOf(IsisFish.config.getSimulatorSshControlCheckInterval()));
+
+ doCheck();
+ }
+
+ /**
+ * Reset display.
+ */
+ protected void configurationChanged() {
+
+ configUI.setConnected(false);
+ configUI.getMessageLabel().setText("");
+ configUI.getStatusFreeDatabaseLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", "isis-database", "0"));
+ configUI.getStatusFreeTempLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", "isis-tmp", "0"));
+
+ }
+
+ /**
+ * Check input format validity.
+ */
+ public void doCheck() {
+
+ configurationChanged();
+
+ // copy values
+ currentSSHserver = configUI.getSshServerField().getText().trim();
+ if (currentSSHserver.isEmpty()) {
+ setColor(true, configUI.getSshServerField());
+ } else {
+ setColor(false, configUI.getSshServerField());
+ }
+
+ // copy values
+ currentSSHsftpServer = configUI.getSshSftpServerField().getText()
+ .trim();
+ // can be empty (optionnal use)
+ currentSSHUsername = configUI.getUsernameField().getText().trim();
+ if (!currentSSHUsername.matches("\\w+")) {
+ setColor(true, configUI.getUsernameField());
+ } else {
+ setColor(false, configUI.getUsernameField());
+ }
+
+ // if ssh key is set, must be a valid file
+ currentSSHKey = new File(configUI.getSshKeyField().getText().trim());
+ if (!currentSSHKey.isFile()) {
+ setColor(true, configUI.getSshKeyField());
+ } else {
+ configUI.getSshKeyButton().setEnabled(false);
+ configUI.getSshKeyField().setEnabled(false);
+ setColor(false, configUI.getSshKeyField());
+ }
+
+ currentSSHDatapath = configUI.getSshDatapathField().getText().trim();
+ if (currentSSHDatapath.isEmpty()) {
+ setColor(true, configUI.getSshDatapathField());
+ } else {
+ setColor(false, configUI.getSshDatapathField());
+ }
+
+ currentSSHIsisHome = configUI.getSshIsisHomeField().getText().trim();
+ if (currentSSHIsisHome.isEmpty()) {
+ setColor(true, configUI.getSshIsisHomeField());
+ } else {
+ setColor(false, configUI.getSshIsisHomeField());
+ }
+
+ currentSSHTempPath = configUI.getSshTemppathField().getText().trim();
+ if (currentSSHTempPath.isEmpty()) {
+ setColor(true, configUI.getSshTemppathField());
+ } else {
+ setColor(false, configUI.getSshTemppathField());
+ }
+
+ currentSSHPbsBinPath = configUI.getSshPbsBinPathField().getText()
+ .trim();
+ if (currentSSHPbsBinPath.isEmpty()) {
+ setColor(true, configUI.getSshPbsBinPathField());
+ } else {
+ setColor(false, configUI.getSshPbsBinPathField());
+ }
+
+ currentSSHControlInterval = configUI.getSshControlIntervalField()
+ .getText().trim();
+ if (!currentSSHControlInterval.matches("\\d+")) {
+ setColor(true, configUI.getSshControlIntervalField());
+ } else {
+ setColor(false, configUI.getSshControlIntervalField());
+ }
+ }
+
+ /**
+ * Set values in config and force configuration save.
+ */
+ public void saveSSHConfiguration() {
+ IsisFish.config.setSimulatorSshServer(currentSSHserver);
+ IsisFish.config.setSimulatorSshSftpServer(currentSSHsftpServer);
+ IsisFish.config.setSimulatorSshUsername(currentSSHUsername);
+ IsisFish.config.setSSHPrivateKeyFilePath(currentSSHKey);
+
+ IsisFish.config.setSimulatorSshUserHome(currentSSHUserhome);
+ IsisFish.config.setSimulatorSshDataPath(currentSSHDatapath);
+ IsisFish.config.setSimulatorSshIsisHome(currentSSHIsisHome);
+ IsisFish.config.setSimulatorSshTmpPath(currentSSHTempPath);
+ IsisFish.config.setSimulatorSshPbsBinPath(currentSSHPbsBinPath);
+ IsisFish.config.setSimulatorSshControlCheckInterval(Long.parseLong(currentSSHControlInterval));
+
+ IsisFish.config.saveForUser();
+ configUI.dispose();
+ }
+
+ /**
+ * Close frame.
+ */
+ public void cancelSSHConfiguration() {
+ configUI.dispose();
+ }
+
+ /**
+ * Realise une connexion ssh et teste les données.
+ */
+ public void testSSHConfiguration() {
+ JSch jsch = new JSch();
+
+ String host = currentSSHserver;
+ int port = 22; // by default, 22
+ String sPort = null;
+
+ try {
+ if (host.indexOf(':') > 0) {
+ sPort = host.substring(host.indexOf(':') + 1);
+ port = Integer.parseInt(sPort);
+ host = host.substring(0, host.indexOf(':'));
+ }
+
+ // add ssh key
+ boolean sshKeyUsed = false;
+ if (currentSSHKey.canRead()) {
+ if (log.isInfoEnabled()) {
+ log.info(_("Ssh key found '%s' will be used to connect to",
+ currentSSHKey.getAbsoluteFile(), host));
+ }
+ jsch.addIdentity(currentSSHKey.getAbsolutePath());
+ sshKeyUsed = true;
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info(_("Can't read ssh key : %s", currentSSHKey));
+ }
+ }
+
+ Session session = jsch.getSession(currentSSHUsername, host, port);
+
+ // username and password will be given via UserInfo interface.
+ SSHUserInfo ui = new SSHUserInfo();
+ if (sshKeyUsed) {
+ String passphrase = null;
+ passphrase = SSHAgent.getAgent().getPassphrase(currentSSHKey);
+ ui.setPassphrase(passphrase);
+ setTestMessage(_("isisfish.simulator.ssh.configuration.connectingpk"), false);
+ } else {
+ setTestMessage(_("isisfish.simulator.ssh.configuration.connecting"), false);
+ }
+ session.setUserInfo(ui);
+ session.connect(10000); // timeout
+
+ setTestMessage(_("isisfish.simulator.ssh.configuration.connectionok"), false);
+
+ // get user home
+ currentSSHUserhome = getUserHomeDirectory(session);
+ configUI.getSshUserhomeField().setText(currentSSHUserhome);
+ // get space disk
+ String databaseSize = getFolderSize(session, currentSSHDatapath);
+ String temppathSize = getFolderSize(session, currentSSHTempPath);
+ configUI.getStatusFreeDatabaseLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", currentSSHDatapath, databaseSize));
+ configUI.getStatusFreeTempLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", currentSSHTempPath, temppathSize));
+ session.disconnect();
+
+ configUI.setConnected(true);
+ } catch (NumberFormatException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't connect", e);
+ }
+ setTestMessage(_("isisfish.error.simulation.remote.wrongportvalue",
+ sPort), true);
+ } catch (JSchException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't connect", e);
+ }
+ setTestMessage(_(
+ "isisfish.simulator.ssh.configuration.connectionerror", e
+ .getMessage()), true);
+ } catch (SSHException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't connect", e);
+ }
+ setTestMessage(_(
+ "isisfish.simulator.ssh.configuration.connectionerror", e
+ .getMessage()), true);
+ } catch (InvalidPassphraseException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't connect", e);
+ }
+ setTestMessage(
+ _("isisfish.simulator.ssh.configuration.invalidpassphrase"),
+ true);
+ }
+ }
+
+ /**
+ * Get user home directory with an opened session.
+ *
+ * @param session opened session
+ * @return 'pwd' result
+ */
+ protected String getUserHomeDirectory(Session session) throws SSHException {
+
+ String command = "pwd";
+
+ Writer output = new StringWriter();
+ int exit = SSHUtils.exec(session, command, output);
+
+ if (exit != 0) {
+ throw new SSHException(_("Command '%s' fail to execute", command));
+ }
+
+ String out = output.toString();
+ return out;
+ }
+
+ /**
+ * Get user home directory with an opened session.
+ *
+ * @param session opened session
+ * @return 'pwd' result
+ */
+ protected String getFolderSize(Session session, String path) throws SSHException {
+
+ String command = "du -hs \"" + path + "\"";
+
+ Writer output = new StringWriter();
+ SSHUtils.exec(session, command, output);
+
+ // la sortie est "35Go isisdatabase-3"
+ String out = output.toString();
+ out = out.split("\\s+")[0];
+ return out;
+ }
+
+ /**
+ * Clear database.
+ */
+ public void clearDatabase() {
+ clearFolder(currentSSHDatapath);
+ }
+
+ /**
+ * Clear temp directory.
+ */
+ public void clearTempDirectory() {
+ clearFolder(currentSSHTempPath);
+ }
+
+ /**
+ * Clear specified directory.
+ *
+ * @param session opened session
+ */
+ protected void clearFolder(String path) {
+
+ // prevent, for home deletion, can happens :D
+ if (StringUtils.isEmpty(path) || path.trim().equals(".")) {
+ throw new IllegalArgumentException("Can't delete directory : " + path);
+ }
+
+ int response = JOptionPane.showConfirmDialog(configUI, _("isisfish.simulator.ssh.configuration.freespace.confirmdelete", currentSSHDatapath),
+ _("isisfish.common.confirm"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
+
+ if (response == JOptionPane.YES_OPTION) {
+ JSch jsch = new JSch();
+
+ String host = currentSSHserver;
+ int port = 22; // by default, 22
+ String sPort = null;
+
+ try {
+ if (host.indexOf(':') > 0) {
+ sPort = host.substring(host.indexOf(':') + 1);
+ port = Integer.parseInt(sPort);
+ host = host.substring(0, host.indexOf(':'));
+ }
+
+ // add ssh key
+ boolean sshKeyUsed = false;
+ if (currentSSHKey.canRead()) {
+ if (log.isInfoEnabled()) {
+ log.info(_("Ssh key found '%s' will be used to connect to",
+ currentSSHKey.getAbsoluteFile(), host));
+ }
+ jsch.addIdentity(currentSSHKey.getAbsolutePath());
+ sshKeyUsed = true;
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info(_("Can't read ssh key : %s", currentSSHKey));
+ }
+ }
+
+ Session session = jsch.getSession(currentSSHUsername, host, port);
+
+ // username and password will be given via UserInfo interface.
+ SSHUserInfo ui = new SSHUserInfo();
+ if (sshKeyUsed) {
+ String passphrase = null;
+ passphrase = SSHAgent.getAgent().getPassphrase(currentSSHKey);
+ ui.setPassphrase(passphrase);
+ }
+ session.setUserInfo(ui);
+ session.connect(10000); // timeout
+
+ String command = "rm -rf \"" + path + "\"";
+
+ if (log.isDebugEnabled()) {
+ log.debug("Removing folder with command : " + command);
+ }
+ Writer output = new StringWriter();
+ int exit = SSHUtils.exec(session, command, output);
+
+ // get space disk
+ String databaseSize = getFolderSize(session, currentSSHDatapath);
+ String temppathSize = getFolderSize(session, currentSSHTempPath);
+ configUI.getStatusFreeDatabaseLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", currentSSHDatapath, databaseSize));
+ configUI.getStatusFreeTempLabel().setText(_("isisfish.simulator.ssh.configuration.freespace.label", currentSSHTempPath, temppathSize));
+ session.disconnect();
+
+ session.disconnect();
+ if (exit != 0) {
+ throw new SSHException(_("Command '%s' fail to execute", command));
+ }
+ }
+ catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't connect", e);
+ }
+ setTestMessage(_("isisfish.simulator.ssh.configuration.connectionerror", e.getMessage()), true);
+ }
+ }
+ else {
+ if (log.isInfoEnabled()) {
+ log.info("Delete action canceled by user");
+ }
+ }
+ }
+
+ /**
+ * Generate new SSH key.
+ */
+ protected void generateSSHKey() {
+ if (currentSSHKey.exists()) {
+ throw new IllegalArgumentException("Can't overwrite ssh key");
+ }
+
+ try {
+ // make parent dir
+ if (currentSSHKey.getParentFile() != null
+ && !currentSSHKey.getParentFile().exists()) {
+ currentSSHKey.getParentFile().mkdirs();
+ }
+ JSch jsch = new JSch();
+ KeyPair kpair = KeyPair.genKeyPair(jsch, KeyPair.RSA, 2048);
+ //kpair.setPassphrase(passphrase);
+ kpair.writePrivateKey(currentSSHKey.getAbsolutePath());
+ kpair.writePublicKey(currentSSHKey.getAbsolutePath() + ".pub",
+ currentSSHUsername + "@forIsisFish");
+ if (log.isInfoEnabled()) {
+ log.info("Finger print: " + kpair.getFingerPrint());
+ }
+ kpair.dispose();
+ } catch (JSchException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't make ssh key", e);
+ }
+ } catch (IOException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't make ssh key", e);
+ }
+ }
+
+ // refresh ckeck
+ doCheck();
+ }
+
+ /**
+ * Set color depending of field validity.
+ *
+ *
+ * @param invalid valid field
+ * @param component component to set color
+ */
+ protected void setColor(boolean invalid, JComponent component) {
+ component.setForeground(invalid ? Color.RED : Color.BLACK);
+ }
+
+ /**
+ * Set message in message field with status color.
+ *
+ * @param message message to display
+ * @param error error status
+ */
+ protected void setTestMessage(String message, boolean error) {
+ configUI.getMessageLabel().setForeground(
+ error ? Color.RED : Color.GREEN.darker());
+ configUI.getMessageLabel().setText(message);
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigAction.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
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 2009-12-02 17:32:03 UTC (rev 2791)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/config/SSHLauncherConfigUI.jaxx 2009-12-04 08:59:00 UTC (rev 2792)
@@ -15,304 +15,17 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##% -->
-<JDialog resizable="false" title="isisfish.simulator.ssh.configuration.title" layout="{new BoxLayout(this.getContentPane(), BoxLayout.PAGE_AXIS)}">
+<JDialog resizable="false" title="isisfish.simulator.ssh.configuration.title"
+ layout="{new BoxLayout(this.getContentPane(), BoxLayout.PAGE_AXIS)}">
+
+ <SSHLauncherConfigAction id="action" javaBean="new SSHLauncherConfigAction(this)" />
+ <Boolean id="connected" javaBean="false" />
+
<script><![CDATA[
- import java.io.IOException;
- import fr.ifremer.isisfish.IsisFish;
- import com.jcraft.jsch.JSch;
- import com.jcraft.jsch.JSchException;
- import com.jcraft.jsch.KeyPair;
- import com.jcraft.jsch.Session;
- import fr.ifremer.isisfish.util.ssh.InvalidPassphraseException;
- import fr.ifremer.isisfish.util.ssh.SSHAgent;
- import fr.ifremer.isisfish.util.ssh.SSHException;
- import fr.ifremer.isisfish.util.ssh.SSHUserInfo;
- import fr.ifremer.isisfish.util.ssh.SSHUtils;
-
- 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 currentSSHPbsBinPath;
- protected String currentSSHControlInterval;
-
// fill default values
- resetSSHConfiguration();
-
- /**
- * Reset values with default configuration values.
- */
- protected void resetSSHConfiguration() {
- // server config
- sshServerField.setText(IsisFish.config.getSimulatorSshServer());
- sshSftpServerField.setText(IsisFish.config.getSimulatorSshSftpServer());
- usernameField.setText(IsisFish.config.getSimulatorSshUsername());
- sshKeyField.setText(IsisFish.config.getSSHPrivateKeyFilePath().getAbsolutePath());
-
- // caparmor config
- sshUserhomeField.setText(IsisFish.config.getSimulatorSshUserHome());
- sshDatapathField.setText(IsisFish.config.getSimulatorSshDataPath());
- sshIsisHomeField.setText(IsisFish.config.getSimulatorSshIsisHome());
- sshTemppathField.setText(IsisFish.config.getSimulatorSshTmpPath());
- sshPbsBinPathField.setText(IsisFish.config.getSimulatorSshPbsBinPath());
- sshControlIntervalField.setText(String.valueOf(IsisFish.config.getSimulatorSshControlCheckInterval()));
-
- doCheck();
- }
-
- protected void doCheck() {
-
- validButton.setEnabled(false);
- messageLabel.setText("");
-
- // copy values
- currentSSHserver = sshServerField.getText().trim();
- if (currentSSHserver.isEmpty()) {
- setColor(true, sshServerField);
- }
- else {
- setColor(false, sshServerField);
- }
-
- // copy values
- currentSSHsftpServer = sshSftpServerField.getText().trim();
- // can be empty (optionnal use)
-
- currentSSHUsername = usernameField.getText().trim();
- if (!currentSSHUsername.matches("\\w+")) {
- setColor(true, usernameField);
- }
- else {
- setColor(false, usernameField);
- }
-
- // if ssh key is set, must be a valid file
- currentSSHKey = new File(sshKeyField.getText().trim());
- if (!currentSSHKey.isFile()) {
- setColor(true, sshKeyField);
- }
- else {
- sshKeyButton.setEnabled(false);
- sshKeyField.setEnabled(false);
- setColor(false, sshKeyField);
- }
-
- currentSSHDatapath = sshDatapathField.getText().trim();
- if (currentSSHDatapath.isEmpty()) {
- setColor(true, sshDatapathField);
- }
- else {
- setColor(false, sshDatapathField);
- }
-
- currentSSHIsisHome = sshIsisHomeField.getText().trim();
- if (currentSSHIsisHome.isEmpty()) {
- setColor(true, sshIsisHomeField);
- }
- else {
- setColor(false, sshIsisHomeField);
- }
-
- currentSSHTempPath = sshTemppathField.getText().trim();
- if (currentSSHTempPath.isEmpty()) {
- setColor(true, sshTemppathField);
- }
- else {
- setColor(false, sshTemppathField);
- }
-
- currentSSHPbsBinPath = sshPbsBinPathField.getText().trim();
- if (currentSSHPbsBinPath.isEmpty()) {
- setColor(true, sshPbsBinPathField);
- }
- else {
- setColor(false, sshPbsBinPathField);
- }
-
- currentSSHControlInterval = sshControlIntervalField.getText().trim();
- if (!currentSSHControlInterval.matches("\\d+")) {
- setColor(true, sshControlIntervalField);
- }
- else {
- setColor(false, sshControlIntervalField);
- }
- }
+ getAction().resetSSHConfiguration();
- /**
- * Set values in config and force configuration save.
- */
- protected void saveSSHConfiguration() {
- IsisFish.config.setSimulatorSshServer(currentSSHserver);
- IsisFish.config.setSimulatorSshSftpServer(currentSSHsftpServer);
- IsisFish.config.setSimulatorSshUsername(currentSSHUsername);
- IsisFish.config.setSSHPrivateKeyFilePath(currentSSHKey);
-
- IsisFish.config.setSimulatorSshUserHome(currentSSHUserhome);
- IsisFish.config.setSimulatorSshDataPath(currentSSHDatapath);
- IsisFish.config.setSimulatorSshIsisHome(currentSSHIsisHome);
- IsisFish.config.setSimulatorSshTmpPath(currentSSHTempPath);
- IsisFish.config.setSimulatorSshPbsBinPath(currentSSHPbsBinPath);
- IsisFish.config.setSimulatorSshControlCheckInterval(Long.parseLong(currentSSHControlInterval));
-
- IsisFish.config.saveForUser();
- dispose();
- }
-
- /**
- * Close frame.
- */
- protected void cancelSSHConfiguration() {
- dispose();
- }
-
- /**
- * Realise une connexion ssh et teste les données.
- */
- protected void testSSHConfiguration() {
- JSch jsch = new JSch();
-
- String host = currentSSHserver;
- int port = 22; // by default, 22
- String sPort = null;
-
- try {
- if (host.indexOf(':') > 0) {
- sPort = host.substring(host.indexOf(':') + 1);
- port = Integer.parseInt(sPort);
- host = host.substring(0, host.indexOf(':'));
- }
-
- // add ssh key
- boolean sshKeyUsed = false;
- if (currentSSHKey.canRead()) {
- if (log.isInfoEnabled()) {
- log.info(_("Ssh key found '%s' will be used to connect to",
- currentSSHKey.getAbsoluteFile(), host));
- }
- jsch.addIdentity(currentSSHKey.getAbsolutePath());
- sshKeyUsed = true;
- }
- else {
- if (log.isInfoEnabled()) {
- log.info(_("Can't read ssh key : %s", currentSSHKey));
- }
- }
-
- Session session = jsch.getSession(currentSSHUsername, host, port);
-
- // username and password will be given via UserInfo interface.
- SSHUserInfo ui = new SSHUserInfo();
- if (sshKeyUsed) {
- String passphrase = null;
- passphrase = SSHAgent.getAgent().getPassphrase(currentSSHKey);
- ui.setPassphrase(passphrase);
- setTestMessage(_("isisfish.simulator.ssh.configuration.connectingpk"), false);
- }
- else {
- setTestMessage(_("isisfish.simulator.ssh.configuration.connecting"), false);
- }
- session.setUserInfo(ui);
- session.connect(10000); // timeout
-
- setTestMessage(_("isisfish.simulator.ssh.configuration.connectionok"), false);
-
- // get user home
- currentSSHUserhome = getUserHomeDirectory(session);
- sshUserhomeField.setText(currentSSHUserhome);
- session.disconnect();
-
- validButton.setEnabled(true);
- } catch (NumberFormatException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't connect", e);
- }
- setTestMessage(_("isisfish.error.simulation.remote.wrongportvalue", sPort), true);
- } catch (JSchException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't connect", e);
- }
- setTestMessage(_("isisfish.simulator.ssh.configuration.connectionerror", e.getMessage()), true);
- } catch (SSHException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't connect", e);
- }
- setTestMessage(_("isisfish.simulator.ssh.configuration.connectionerror", e.getMessage()), true);
- } catch (InvalidPassphraseException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't connect", e);
- }
- setTestMessage(_("isisfish.simulator.ssh.configuration.invalidpassphrase"), true);
- }
- }
-
- /**
- * Get user home directory with an opened session.
- */
- protected String getUserHomeDirectory(Session session) throws SSHException {
-
- String command ="pwd";
-
- Writer output = new StringWriter();
- int exit = SSHUtils.exec(session, command, output);
-
- if (exit != 0) {
- throw new SSHException(_("Command '%s' fail to execute", command));
- }
-
- String out = output.toString();
- return out;
- }
-
- /**
- * Generate new SSH key.
- */
- protected void generateSSHKey() {
- if (currentSSHKey.exists()) {
- throw new IllegalArgumentException("Can't overwrite ssh key");
- }
-
- try {
- // make parent dir
- if (currentSSHKey.getParentFile() != null && !currentSSHKey.getParentFile().exists()) {
- currentSSHKey.getParentFile().mkdirs();
- }
- JSch jsch=new JSch();
- KeyPair kpair=KeyPair.genKeyPair(jsch, KeyPair.RSA, 2048);
- //kpair.setPassphrase(passphrase);
- kpair.writePrivateKey(currentSSHKey.getAbsolutePath());
- kpair.writePublicKey(currentSSHKey.getAbsolutePath()+".pub", currentSSHUsername + "@forIsisFish");
- if (log.isInfoEnabled()) {
- log.info("Finger print: "+kpair.getFingerPrint());
- }
- kpair.dispose();
- }
- catch (JSchException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't make ssh key", e);
- }
- }
- catch (IOException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't make ssh key", e);
- }
- }
-
- // refresh ckeck
- doCheck();
- }
-
- protected void setColor(boolean invalid, JComponent component) {
- component.setForeground(invalid ? Color.RED: Color.BLACK);
- }
- protected void setTestMessage(String message, boolean error) {
- messageLabel.setForeground(error ? Color.RED: Color.GREEN.darker());
- messageLabel.setText(message);
- }
]]></script>
<Table border='{BorderFactory.createTitledBorder(_("isisfish.simulator.ssh.configuration.connection"))}'
@@ -324,7 +37,7 @@
</cell>
<cell fill='horizontal' columns="2">
<JTextField id='sshServerField' toolTipText='isisfish.config.main.simulation.ssh.server.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row>
@@ -334,7 +47,7 @@
</cell>
<cell fill='horizontal' columns="2">
<JTextField id='sshSftpServerField' toolTipText='isisfish.config.main.simulation.ssh.sftpserver.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" enabled="false" />
</cell>
</row>
<row fill='horizontal'>
@@ -344,7 +57,7 @@
</cell>
<cell columns="2">
<JTextField id='usernameField' toolTipText='isisfish.config.main.simulation.ssh.username.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -353,10 +66,10 @@
</cell>
<cell weightx="2.0">
<JTextField id='sshKeyField' toolTipText='isisfish.config.ssh.key.file.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
<cell>
- <JButton id='sshKeyButton' text='isisfish.simulator.ssh.configuration.keygenerate' onActionPerformed="generateSSHKey()" />
+ <JButton id='sshKeyButton' text='isisfish.simulator.ssh.configuration.keygenerate' onActionPerformed="getAction().generateSSHKey()" />
</cell>
</row>
</Table>
@@ -368,7 +81,7 @@
</cell>
<cell weightx="1.0">
<JTextField id='sshUserhomeField' enabled='false' toolTipText='isisfish.config.main.simulation.ssh.userhome.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -378,7 +91,7 @@
</cell>
<cell weightx="1.0">
<JTextField id='sshDatapathField' toolTipText='isisfish.config.main.simulation.ssh.datapath.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -388,7 +101,7 @@
</cell>
<cell>
<JTextField id='sshIsisHomeField' toolTipText='isisfish.config.main.simulation.ssh.isis.home.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -398,7 +111,7 @@
</cell>
<cell>
<JTextField id='sshTemppathField' toolTipText='isisfish.config.main.simulation.ssh.tmppath.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -409,7 +122,7 @@
<cell>
<JTextField id='sshPbsBinPathField'
toolTipText='isisfish.config.main.simulation.ssh.pbsbinpath.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
<row fill='horizontal'>
@@ -420,29 +133,55 @@
<cell>
<JTextField id='sshControlIntervalField'
toolTipText='isisfish.config.main.simulation.ssh.control.check.interval.description'
- onKeyReleased="doCheck()" />
+ onKeyReleased="getAction().doCheck()" />
</cell>
</row>
</Table>
<Table>
<row fill='horizontal'>
- <cell columns="4" fill='horizontal'>
- <JLabel id='messageLabel' text=' ' font-weight='bold' opaque='true' horizontalAlignment='center' minimumSize='{new Dimension(0, 25)}' preferredSize='{new Dimension(0, 25)}'/>
+ <cell fill='horizontal' weightx="1.0">
+ <JButton id='testButton' text='isisfish.simulator.ssh.configuration.test' onActionPerformed="getAction().testSSHConfiguration()" icon="connect.png" />
</cell>
+ <cell fill='horizontal' weightx="1.0">
+ <JButton id='validButton' text='isisfish.common.valid' onActionPerformed="getAction().saveSSHConfiguration()" icon="accept.png" enabled='{isConnected()}' />
+ </cell>
+ <cell fill='horizontal' weightx="1.0">
+ <JButton id='resetButton' text='isisfish.common.reset' onActionPerformed="getAction().resetSSHConfiguration()" icon="arrow_undo.png" />
+ </cell>
+ <cell fill='horizontal' weightx="1.0">
+ <JButton id='cancelButton' text='isisfish.common.cancel' onActionPerformed="getAction().cancelSSHConfiguration()" icon="cancel.png" />
+ </cell>
</row>
+ </Table>
+ <Table border='{BorderFactory.createTitledBorder(_("isisfish.simulator.ssh.configuration.status"))}'>
<row fill='horizontal'>
- <cell fill='horizontal'>
- <JButton id='testButton' text='isisfish.simulator.ssh.configuration.test' onActionPerformed="testSSHConfiguration()" />
+ <cell columns="2" fill='horizontal'>
+ <JLabel id='messageLabel' text=' ' font-weight='bold' opaque='true' horizontalAlignment='center'
+ minimumSize='{new Dimension(0, 25)}' preferredSize='{new Dimension(0, 25)}' border='{BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)}' />
</cell>
- <cell fill='horizontal'>
- <JButton id='validButton' text='isisfish.common.valid' onActionPerformed="saveSSHConfiguration()" />
+ </row>
+ <row fill='horizontal'>
+ <cell columns="2">
+ <JLabel text='isisfish.simulator.ssh.configuration.freespace' enabled='{isConnected()}' />
</cell>
- <cell fill='horizontal'>
- <JButton id='resetButton' text='isisfish.common.reset' onActionPerformed="resetSSHConfiguration()" />
+ </row>
+ <row fill='horizontal'>
+ <cell fill="horizontal" weightx="1.0">
+ <JLabel id='statusFreeDatabaseLabel' enabled='{isConnected()}' />
</cell>
- <cell fill='horizontal'>
- <JButton id='cancelButton' text='isisfish.common.cancel' onActionPerformed="cancelSSHConfiguration()" />
+ <cell>
+ <JButton id='clearDatabaseButton' text='isisfish.common.clear' icon="paintbrush.png"
+ onActionPerformed="getAction().clearDatabase()" enabled='{isConnected()}' />
</cell>
</row>
+ <row fill='horizontal'>
+ <cell fill="horizontal" weightx="1.0">
+ <JLabel id='statusFreeTempLabel' enabled='{isConnected()}' />
+ </cell>
+ <cell>
+ <JButton id='clearTempButton' text='isisfish.common.clear' icon="paintbrush.png"
+ onActionPerformed="getAction().clearTempDirectory()" enabled='{isConnected()}' />
+ </cell>
+ </row>
</Table>
</JDialog>
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 2009-12-02 17:32:03 UTC (rev 2791)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-12-04 08:59:00 UTC (rev 2792)
@@ -933,8 +933,12 @@
isisfish.simulator.ssh.configuration.connectionerror=Can't connect
isisfish.simulator.ssh.configuration.connectionok=Connection successfull
isisfish.simulator.ssh.configuration.environment=Caparmor configuration
+isisfish.simulator.ssh.configuration.freespace=Used space disk \:
+isisfish.simulator.ssh.configuration.freespace.confirmdelete=Warning, deleting the contents of file '%s' is irreversible.\nDo you confirm the deletion of contents ?
+isisfish.simulator.ssh.configuration.freespace.label=Size of %s \: %s
isisfish.simulator.ssh.configuration.invalidpassphrase=Invalid passphrase
isisfish.simulator.ssh.configuration.keygenerate=Generate
+isisfish.simulator.ssh.configuration.status=Status
isisfish.simulator.ssh.configuration.test=Test configuration
isisfish.simulator.ssh.configuration.title=Caparmor launcher configuration
isisfish.simulator.subprocess.readoutput.error=
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 2009-12-02 17:32:03 UTC (rev 2791)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-12-04 08:59:00 UTC (rev 2792)
@@ -933,8 +933,12 @@
isisfish.simulator.ssh.configuration.connectionerror=Connexion impossible (%s)
isisfish.simulator.ssh.configuration.connectionok=Connect\u00E9 avec succ\u00E8s
isisfish.simulator.ssh.configuration.environment=Configuration sur Caparmor
+isisfish.simulator.ssh.configuration.freespace=Espace disque utilis\u00E9 \:
+isisfish.simulator.ssh.configuration.freespace.confirmdelete=Attention, la suppression du contenu du dossier '%s' est irr\u00E9versible.\nConfirmez-vous la suppression de son contenu ?
+isisfish.simulator.ssh.configuration.freespace.label=Taille de %s \: %s
isisfish.simulator.ssh.configuration.invalidpassphrase=Passphrase invalide
isisfish.simulator.ssh.configuration.keygenerate=G\u00E9n\u00E9rer
+isisfish.simulator.ssh.configuration.status=Statut
isisfish.simulator.ssh.configuration.test=Tester la configuration
isisfish.simulator.ssh.configuration.title=Configuration du lanceur Caparmor
isisfish.simulator.subprocess.readoutput.error=
Added: isis-fish/trunk/src/main/resources/icons/accept.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/accept.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/add.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/add.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/arrow_undo.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/arrow_undo.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/cancel.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/cancel.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/connect.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/connect.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/delete.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/delete.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/paintbrush.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/paintbrush.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/resultset_next.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/resultset_next.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/resultset_previous.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/resultset_previous.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/tick.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/tick.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/wrench.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/wrench.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/main/resources/icons/wrench_orange.png
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/main/resources/icons/wrench_orange.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
r2791 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/simulator src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/ui/simulator src/main/resources/i18n src/test/java/fr/ifremer/isisfish/simulator
by chatellier@users.labs.libre-entreprise.org 02 Dec '09
by chatellier@users.labs.libre-entreprise.org 02 Dec '09
02 Dec '09
Author: chatellier
Date: 2009-12-02 17:32:03 +0000 (Wed, 02 Dec 2009)
New Revision: 2791
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/datastore/SimulationStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
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/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java
Log:
Remove "isis-export" directory
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/changelog.txt 2009-12-02 17:32:03 UTC (rev 2791)
@@ -1,5 +1,8 @@
isis-fish (3.3.0.0) stable; urgency=low
+ * Remove "isis-export" directory
+ * Fix editor deactivation in input ui.
+ * Remove deprecated method SimulationStorage#getFisheryRegion()
* Update to jfreechart 1.0.13 (major version)
* #1585 : Analyze plans are now reloaded before each simulation
* Editing sensitivity factors after simulation reload now works
@@ -11,7 +14,7 @@
* Add -m n option to qsub to not send email for each simulation
* Remove duplicated SSH key configuration, common configuration for VCS and caparmor
* Global VCS improvement (code, script UI, input UI)
- * Update to svnkit 1.3.1
+ * Update to svnkit 1.3.2
* Unification of error frames
* Add ".shp" extension to database map files list (database migration)
* Move codelutin librairies to nuiton.org (database migration)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -567,20 +567,8 @@
public boolean isSimulationShowOnlyError() {
Boolean result = getOptionAsBoolean(Option.SIMULATION_SHOW_ONLY_ERROR.key);
return result;
- }
-
- public File getDefaultExportDirectory() {
- File result = getOptionAsFile(Option.DEFAULT_EXPORT_DIRECTORY.key);
- if (!result.exists()) {
- result.mkdirs();
- }
- return result;
}
- public void setDefaultExportDirectory(String value) {
- setOption(Option.DEFAULT_EXPORT_DIRECTORY.key, value);
- }
-
public String getDefaultExportNames() {
String result = getOption(Option.DEFAULT_EXPORT_NAMES.key);
return result;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -68,12 +68,12 @@
public static final String RESULT_XML_FILENAME = "isis-mexico-output.xml";
public static final String RESULT_EXPORT_DIRECTORY = "resultExports";
public static final String DESIGN_PLAN_FILENAME = "isis-mexico-designplan.xml";
+ public static final String SENSITIVITY_RESULTS = "sensitivityresults";
/** to use log facility, just put in your code: log.info(\"...\"); */
private static Log log = LogFactory.getLog(SimulationStorage.class);
- /** cache des simulation storage */
- @SuppressWarnings("unchecked")
+ /** Cache des simulation storage. */
protected static Map<String, SimulationStorage> simulations = (Map<String, SimulationStorage>) new ReferenceMap();
/** some free information, that user can add during simulation */
@@ -89,7 +89,8 @@
protected transient File simulationControlFile = null;
/**
- * Pour la lecture d'une simulation existante
+ * Pour la lecture d'une simulation existante.
+ *
* @param directory repertoire de base du storage (inclu le nom de la sim)
* @param name le nom de la simulation
* @param parameter les paramètres de la simulation
@@ -101,8 +102,9 @@
}
/**
- * Retourne le repertoire de base de stockage des simulations
- * @return
+ * Retourne le repertoire de base de stockage des simulations.
+ *
+ * @return simulation directory
*/
public static File getSimulationDirectory() {
File result = IsisFish.config.getDatabaseDirectory();
@@ -114,9 +116,10 @@
}
/**
- * Retourne le repertoire de stockage d'une simulation portant le nom name
+ * Retourne le repertoire de stockage d'une simulation portant le nom name.
+ *
* @param name le nom de la simulation dont on souhaite le repertoire
- * @return
+ * @return simulation name directory
*/
public static File getSimulationDirectory(String name) {
File result = getSimulationDirectory();
@@ -128,6 +131,21 @@
}
/**
+ * Retourne le repertoire de base de stockage des resutats des analyses
+ * de sensibilité.
+ *
+ * @return sensitivity result directory
+ */
+ public static File getSensitivityResultsDirectory() {
+ File result = IsisFish.config.getDatabaseDirectory();
+ result = new File(result, SENSITIVITY_RESULTS);
+ if (!result.exists()) {
+ result.mkdirs();
+ }
+ return result;
+ }
+
+ /**
* Retourne le repertoire de stockage des exports de resulatat d'une
* simulation.
* @param root le repertoire de stockage de la simulation
@@ -193,7 +211,7 @@
File result = new File(root, DESIGN_PLAN_FILENAME);
return result;
}
-
+
/**
* Retourne le fichier de stockage du fichier de control de la simulation.
* Ce fichier conserve l'etat de la simulation, cela permet a un processus
@@ -580,30 +598,6 @@
}
/**
- * Retourne la {@link FisheryRegion} associee a cette simulation.
- *
- * Attention, toujours utilisée dans les scripts !!!
- *
- * @return la {@link FisheryRegion}
- * @throws StorageException
- * @deprecated ne plus utiliser car le context n'est jamais ferme, plutot
- * utiliser {@link #getFisheryRegion(TopiaContext)}
- */
- public FisheryRegion getFisheryRegion() throws StorageException {
- // FIXME voir si la methode est vraiment utilisée car le context n'est
- // jamais fermé, ce qui est dérangeant
- try {
- TopiaContext tx = getStorage().beginTransaction();
- FisheryRegion result = getFisheryRegion(tx);
- tx.commitTransaction();
- return result;
- } catch (TopiaException eee) {
- throw new StorageException(_("isisfish.error.get.fisheryRegion"),
- eee);
- }
- }
-
- /**
* Checkout not existing Simulation localy from server
*
* @param name name of simulation to retrieve
@@ -612,8 +606,7 @@
*/
public static void checkout(String name) throws VCSException,
TopiaException {
- checkout(IsisFish.config.getDatabaseDirectory(), SIMULATION_PATH + "/"
- + name);
+ checkout(IsisFish.config.getDatabaseDirectory(), SIMULATION_PATH + "/" + name);
SimulationStorage sim = getSimulation(name);
File file = sim.getDataBackupFile();
TopiaContext tx = sim.getStorage().beginTransaction();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -140,9 +140,6 @@
/** Ma liste des exports automatique a faire en fin de simulation. */
protected List<String> exportNames;
- /** Repertoire d'enregistrement des exports. */
- protected String exportDirectory;
-
/** Utilisation du script de pre simulation. */
protected Boolean usePreScript;
@@ -1375,64 +1372,6 @@
}
/**
- * Get only export properties.
- *
- * Default to false.
- *
- * @return only export.
- */
- public boolean getOnlyExport() {
-
- if (onlyExport == null) {
- if (propertiesParameters != null) {
- onlyExport = Boolean.valueOf(propertiesParameters.getProperty("onlyExport", "false"));
- } else {
- onlyExport = Boolean.FALSE;
- }
- }
-
- return onlyExport;
- }
-
- /**
- * Set only export property.
- *
- * @param onlyExport only export to set
- */
- public void setOnlyExport(boolean onlyExport) {
- this.onlyExport = onlyExport;
- }
-
- /**
- * Get export directory path.
- *
- * Default to /tmp.
- *
- * @return export directory path
- */
- public String getExportDirectory() {
-
- if (exportDirectory == null) {
-
- if (propertiesParameters != null) {
- exportDirectory = propertiesParameters.getProperty("exportDirectory", "/tmp");
- } else {
- exportDirectory = "/tmp";
- }
- }
- return this.exportDirectory;
- }
-
- /**
- * Set export directory path.
- *
- * @param exportDirectory export directory path.
- */
- public void setExportDirectory(String exportDirectory) {
- this.exportDirectory = exportDirectory;
- }
-
- /**
* Get simulator log level.
*
* Default to "info".
@@ -1612,11 +1551,9 @@
result.preScript = getPreScript();
result.useAnalysePlan = getUseAnalysePlan();
result.analysePlanNumber = getAnalysePlanNumber();
- result.onlyExport = getOnlyExport();
if (exportNames != null) {
result.exportNames = new LinkedList<String>(exportNames);
}
- result.exportDirectory = getExportDirectory();
if (strategies != null) {
result.strategies = new LinkedList<Strategy>(strategies);
}
@@ -1950,9 +1887,6 @@
result.setProperty("tagValue." + e.getKey(), e.getValue());
}
- result.setProperty("onlyExport", String.valueOf(getOnlyExport()));
- result.setProperty("exportDirectory", String.valueOf(getExportDirectory()));
-
result.setProperty("simulLogLevel", getSimulLogLevel());
result.setProperty("scriptLogLevel", getScriptLogLevel());
result.setProperty("libLogLevel", getLibLogLevel());
@@ -1972,191 +1906,6 @@
this.propertiesParameters = props;
this.directory = directory;
- // when reading new properties files, clean some information
- // to force re instantion on next call
- //sensitivityExports = null;
- //rules = null;
-
- //isisFishVersion = props.getProperty("isisFishVersion", "");
- //description = props.getProperty("description", "");
- //regionName = props.getProperty("regionName", "");
- //numberOfYear = Integer.parseInt(props.getProperty("numberOfYear", "1"));
- //simulatorName = props.getProperty("simulatorName", "DefaultSimulator.java");
- //useOptimization = Boolean.parseBoolean(props.getProperty(
- // "useOptimization", "true"));
- //useStatistic = Boolean.parseBoolean(props.getProperty("useStatistic",
- // "true"));
-
- // FIXME not good place and code
- // FIXME regionName is null
- /*if (directory != null && (this.region == null || !region.getName().equals(regionName))) {
- // ATTENTION: directory pointe sur le repertoire de la simulation et non de la region
- this.region = new RegionStorage(directory, regionName); // RegionStorage.getRegion(directory, regionName);
- }*/
-
- /*try {
- // On verifie tout d'abord que l'on ai pas dans une simulation
- // si on y es, on utilise le context static non null du thread local
- // Resoud les lazy exceptions des parametres des regles
- boolean mustClose = false;
- TopiaContext tx = SimulationContext.get().getDB();
-
- if (tx == null) {
- // not in simulation, create transaction
- tx = getRegion().getStorage().beginTransaction();
- mustClose = true;
- }
-
- // strategies
- try {
- StrategyDAO strategyDAO = IsisFishDAOHelper.getStrategyDAO(tx);
- String[] strategyList = props.getProperty("strategies", "")
- .split(",");
- for (String name : strategyList) {
- if (name != null && !"".equals(name)) {
- try {
- Strategy str = strategyDAO.findByName(name);
- getStrategies().add(str);
- } catch (TopiaException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Can't find strategy: " + name, eee);
- }
- }
- }
- }
- } catch (TopiaException eee1) {
- if (log.isWarnEnabled()) {
- log.warn("Can't get StrategyDAO", eee1);
- }
- }
-
- // populations
- try {
- PopulationDAO populationDAO = IsisFishDAOHelper
- .getPopulationDAO(tx);
- String[] populationList = props.getProperty("populations", "")
- .split(",");
- for (String name : populationList) {
- if (name != null && !"".equals(name)) {
- try {
- Population population = populationDAO
- .findByName(name);
- getPopulations().add(population);
-
- String numberAsString = props
- .getProperty("population." + name
- + ".number");
- List number = MatrixHelper
- .convertStringToList(numberAsString);
- MatrixND mat = getNumberOf(population);
- mat.fromList(number);
- } catch (TopiaException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Can't find population: " + name, eee);
- }
- }
- }
- }
- } catch (TopiaException eee1) {
- if (log.isWarnEnabled()) {
- log.warn("Can't get PopulationDAO", eee1);
- }
- }
-
- tx.commitTransaction();
-
- // si la transaction a été ouverte (pas dans une simulation)
- // on la referme
- if (mustClose) {
- tx.closeContext();
- }
- } catch (TopiaException eee1) {
- if (log.isWarnEnabled()) {
- log.warn("Can't get TopiaContext", eee1);
- }
- }*/
-
- // analyse plan
- /*String[] planList = props.getProperty("plans", "").split(",");
- int planIndex = 0;
- for (String name : planList) {
- if (name != null && !"".equals(name)) {
- try {
- AnalysePlan plan = AnalysePlanStorage.getAnalysePlan(name)
- .getNewAnalysePlanInstance();
- populateAnalysePlan(planIndex++, plan, props);
- getAnalysePlans().add(plan);
- } catch (IsisFishException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Can't find plan: " + name, eee);
- }
- }
- }
- }*/
-
- // exports
- /*String[] exportList = props.getProperty("exports", "").split(",");
- for (String name : exportList) {
- if (name != null && !"".equals(name)) {
- getExportNames().add(name);
- }
- }*/
-
- // number of sensitivity simulation
- //numberOfSensitivitySimulation = Integer.parseInt(props.getProperty(
- // "numberOfSensitivitySimulation", "-1"));
- // calculator name
- /*String sensitivityCalculator = props.getProperty(
- "sensitivitycalculator", null);
- if (!StringUtils.isEmpty(sensitivityCalculator)) {
- try {
- SensitivityCalculator calculator = SensitivityStorage
- .getSensitivity(sensitivityCalculator)
- .getNewSensitivityInstance();
- // 0 = only single sensitivity
- populateSensitivityCalculator(0, calculator, props);
- setSensitivityCalculator(calculator);
- } catch (IsisFishException eee) {
- if (log.isWarnEnabled()) {
- log.warn(
- "Can't find sensitivity: " + sensitivityCalculator,
- eee);
- }
- }
- }*/
-
- //usePreScript = Boolean.parseBoolean(props.getProperty("usePreScript",
- // "false"));
- //preScript = props.getProperty("preScript");
- //useAnalysePlan = Boolean.parseBoolean(props.getProperty(
- // "useAnalysePlan", "false"));
- //analysePlan = props.getProperty("analysePlan");
- //analysePlanNumber = Integer.parseInt(props.getProperty(
- // "analysePlanNumber", "-1"));
-
- /*String[] resultList = props.getProperty("resultNames", "").split(",");
- for (String name : resultList) {
- if (name != null && !"".equals(name)) {
- getResultEnabled().add(name);
- }
- }*/
-
- /*for (Object k : props.keySet()) {
- if (k.toString().startsWith("tagValue.")) {
- String key = k.toString().substring("tagValue.".length());
- String value = props.getProperty(k.toString());
- getTagValue().put(key, value);
- }
- }*/
-
- //onlyExport = Boolean.parseBoolean(props.getProperty("onlyExport",
- // "false"));
-
- //exportDirectory = props.getProperty("exportDirectory");
-
- /*simulLogLevel = props.getProperty("simulLogLevel", "info");
- scriptLogLevel = props.getProperty("scriptLogLevel", "info");
- libLogLevel = props.getProperty("libLogLevel", "info");*/
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -232,14 +232,6 @@
&& !SimulationStorage.exists(control.getId()));
}
- // nettoyage si besoin apres toutes les simulations
- if (param.getOnlyExport()) {
- for (File file : FileUtil.find(SimulationStorage
- .getSimulationDirectory(), id + "_[0-9]+$", false)) {
- log.debug("Delete simulation " + file);
- FileUtil.deleteRecursively(file);
- }
- }
} else {
// on est sur une simple simulation, ou le resultat d'un plan
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -44,7 +44,6 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.FileUtil;
-import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishException;
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
@@ -207,16 +206,18 @@
// 1 = date
// 2 = export
// 3 = plan dependent
+ // 4 = use analyse plan
+ // 5 = plans list
String[] simulationInfos = simulationInfo.split(MONITORFILESEPARATOR);
String simulationLauncher = simulationInfos[0];
String simulationDate = simulationInfos[1];
- String simulationOnlyExport = simulationInfos[2];
- String simulationExports = simulationInfos[3];
- String simulationUseAnalysePlan = simulationInfos[4];
- String simulationPlans = "";
- if(simulationInfos.length >= 6) {
- simulationPlans = simulationInfos[5];
- }
+ //String simulationOnlyExport = simulationInfos[2];
+ //String simulationExports = simulationInfos[3];
+ //String simulationUseAnalysePlan = simulationInfos[4];
+ //String simulationPlans = "";
+ //if(simulationInfos.length >= 6) {
+ // simulationPlans = simulationInfos[5];
+ //}
if (log.isInfoEnabled()) {
log.info("Restart monitoring of " + simulationId);
@@ -236,9 +237,9 @@
SimulationParameter params = new SimulationParameter();
// UseAnalysePlan
- params.setUseAnalysePlan("true".equalsIgnoreCase(simulationUseAnalysePlan));
+ //params.setUseAnalysePlan("true".equalsIgnoreCase(simulationUseAnalysePlan));
// plans
- String[] planList = simulationPlans.split(",");
+ /*String[] planList = simulationPlans.split(",");
for (String name : planList) {
if (name != null && !name.isEmpty()) {
try {
@@ -250,20 +251,17 @@
}
}
}
- }
+ }*/
// OnlyExport
- params.setOnlyExport("true".equalsIgnoreCase(simulationOnlyExport));
+ //params.setOnlyExport("true".equalsIgnoreCase(simulationOnlyExport));
// exports
- String[] exportList = simulationExports.split(",");
+ /*String[] exportList = simulationExports.split(",");
for (String name : exportList) {
if (name != null && !name.isEmpty()) {
params.getExportNames().add(name);
}
- }
-
- // FIXME needed
- params.setExportDirectory(IsisFish.config.getDefaultExportDirectory().toString());
-
+ }*/
+
service.submitForCheckOnly(simulationId, params, launcher, 0);
} catch (ClassNotFoundException e) {
if (log.isErrorEnabled()) {
@@ -285,24 +283,24 @@
String monitorKey = job.getId();
SimulatorLauncher launcher = job.getLauncher();
- SimulationParameter params = job.getItem().getParameter();
+ //SimulationParameter params = job.getItem().getParameter();
// 0 = launcher
String monitorValue = launcher.getClass().getName();
// 1 = date
monitorValue += MONITORFILESEPARATOR + System.currentTimeMillis();
// 2 = onlyexport
- monitorValue += MONITORFILESEPARATOR + params.getOnlyExport();
+ //monitorValue += MONITORFILESEPARATOR + params.getOnlyExport();
// 3 = exports
- monitorValue += MONITORFILESEPARATOR + collectionToString(params.getExportNames());
+ //monitorValue += MONITORFILESEPARATOR + collectionToString(params.getExportNames());
// 4 = plan dependent
- monitorValue += MONITORFILESEPARATOR + params.getUseAnalysePlan();
+ //monitorValue += MONITORFILESEPARATOR + params.getUseAnalysePlan();
// 5 = plan dependent
- String planList = "";
- for (AnalysePlan plan : params.getAnalysePlans()) {
+ //String planList = "";
+ /*for (AnalysePlan plan : params.getAnalysePlans()) {
planList += AnalysePlanStorage.getName(plan) + ",";
}
- monitorValue += MONITORFILESEPARATOR + planList;
+ monitorValue += MONITORFILESEPARATOR + planList;*/
properties.put(monitorKey, monitorValue);
OutputStream out = null;
@@ -550,10 +548,6 @@
SimulationService service = SimulationService.getService();
SimulationControl control = job.getItem().getControl();
-
- // Release one available resource on launcher
- // FIXME done by launcher himself
- //launcher.simulationEnded();
if (log.isInfoEnabled()) {
log.info("Do post simulation operation for " + control.getId());
@@ -571,8 +565,19 @@
// la simulation n'a pas été arretée
if (!control.isStopSimulationRequest()) {
// post manage this storage
- boolean simulationAvailble = exportResult(job, simulation);
+ boolean simulationAvailble = true; //exportResult(job, simulation);
+ // do posts actions
+ for (PostAction action : job.getPostActions()) {
+ try {
+ action.finished(job, simulation);
+ } catch (Exception eee) {
+ if (log.isErrorEnabled()) {
+ log.error(_("Can't do post action %s", action), eee);
+ }
+ }
+ }
+
// sensitivity calculator analyze result call
// can't do analyze second pass if simulation
// has been deleted
@@ -604,12 +609,14 @@
* been selected.
*
* @return <tt>true</tt> if simulation is still available (not delete by onlyExport)
+ *
+ * @deprecated there is no export anymore
*/
protected boolean exportResult(SimulationJob job, SimulationStorage simulation) {
boolean simulationAvailble = true;
- SimulationParameter param = job.getItem().getParameter();
+ /*SimulationParameter param = job.getItem().getParameter();
SimulationControl control = job.getItem().getControl();
String id = control.getId();
@@ -675,18 +682,8 @@
if (log.isErrorEnabled()) {
log.error(_("Can't delete simulation %s ", id), eee);
}
- }
+ }*/
- for (PostAction action : job.getPostActions()) {
- try {
- action.finished(job, simulation);
- } catch (Exception eee) {
- if (log.isErrorEnabled()) {
- log.error(_("Can't do post action %s", action), eee);
- }
- }
- }
-
return simulationAvailble;
}
@@ -725,7 +722,7 @@
List<SimulationStorage> simulationStorageForAnalyze =
getStorageListForSecondPass(simulationCommonPrefix, numberOfSimulation);
// build master sensitivity export directory
- File masterExportDirectory = new File(IsisFish.config.getDefaultExportDirectory(), simulationCommonPrefix);
+ File masterExportDirectory = new File(SimulationStorage.getSimulationDirectory(), simulationCommonPrefix);
// directory must already exists !!!
sensitivityCalculator.analyzeResult(simulationStorageForAnalyze, masterExportDirectory);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -423,7 +423,7 @@
try {
// build master sensitivity export directory
- File masterExportDirectory = new File(IsisFish.config.getDefaultExportDirectory(), id);
+ File masterExportDirectory = new File(SimulationStorage.getSensitivityResultsDirectory(), id);
if (!masterExportDirectory.isDirectory()) {
masterExportDirectory.mkdirs();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2009-12-02 17:32:03 UTC (rev 2791)
@@ -30,9 +30,6 @@
}
public void refresh() {
- // fill ExportDirectory
- String exportDirectory = getSimulAction().getSimulationParameter().getExportDirectory();
- fieldSimulExportFolder.setText(exportDirectory);
// fill export
setListSimulExportChooseModel();
}
@@ -67,10 +64,6 @@
}
protected void saveConfigExports() {
- // set export directory
- String exportDirectory = fieldSimulExportFolder.getText();
- getSimulAction().getSimulationParameter().setExportDirectory(exportDirectory);
-
// Set exports (this can save empty list (not a big deal))
Object[] values = listSimulExportChoose.getSelectedValues();
java.util.List<String> exportNames = new LinkedList<String>();
@@ -91,7 +84,7 @@
]]>
</script>
<row>
- <cell columns="4" fill="both" weightx="1.0" weighty="1.0">
+ <cell fill="both" weightx="1.0" weighty="1.0">
<JScrollPane>
<JList id="listSimulExportChoose" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
cellRenderer='{new fr.ifremer.isisfish.ui.models.export.ExportNameListRenderer()}'
@@ -100,16 +93,7 @@
</cell>
</row>
<row>
- <cell>
- <JLabel text="isisfish.export.directory"/>
- </cell>
- <cell fill="horizontal" weightx="1.0">
- <JTextField id="fieldSimulExportFolder" />
- </cell>
- <cell>
- <JButton text="isisfish.common.ellipsis" onActionPerformed='getSimulAction().updateDirectory()'/>
- </cell>
- <cell>
+ <cell fill="horizontal">
<JButton text="isisfish.common.saveNextSimulation" onActionPerformed='saveConfigExports()'/>
</cell>
</row>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-12-02 17:32:03 UTC (rev 2791)
@@ -228,14 +228,6 @@
simul.selTab(i);
}
}
-protected void enableOnlyExport(){
- if (fieldSimulOnlyExport.isSelected()){
- simulAction.getSimulationParameter().setOnlyExport(true);
- }
- else {
- simulAction.getSimulationParameter().setOnlyExport(false);
- }
-}
protected void setNbAnnees() {
simulAction.setNumberOfYear(fieldSimulParamsNbAnnees.getText());
}
@@ -603,9 +595,6 @@
selected='{simulAction.getSimulationParameter().getUseAnalysePlan()}'
visible='{!isSensitivity()}' onItemStateChanged='enableAnalysePlan()' onMouseReleased='selTab(event, 2)'/>
</cell>
- <cell fill="horizontal" weightx="0.3">
- <JCheckBox text="isisfish.params.onlyExportSimulation" id="fieldSimulOnlyExport" onItemStateChanged='enableOnlyExport()'/>
- </cell>
</row>
</Table>
</cell>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -133,8 +133,7 @@
// put default value in param
param.setSimulatorName(IsisFish.config.getSimulatorClassfile());
param.setTagValue(IsisFish.config.getDefaultTagValueAsMap());
- param.setExportDirectory(IsisFish.config
- .getDefaultExportDirectory().toString());
+
param.setExportNames(IsisFish.config.getDefaultExportNamesAsList());
List<String> defaultResultNames = IsisFish.config
.getDefaultResultNamesAsList();
@@ -562,15 +561,11 @@
return result;
}
- public void updateDirectory() {
- param.setExportDirectory(FileUtil.getDirectory());
- }
-
/**
* Save current parameters exports names in configuration.
*/
public void saveExport() {
- IsisFish.config.setDefaultExportDirectory(param.getExportDirectory());
+
if (param.getExportNames() != null) {
if (log.isDebugEnabled()) {
@@ -1063,8 +1058,7 @@
if (sensitivityCalculator != null) {
try {
// build master sensitivity export directory
- File masterExportDirectory = new File(IsisFish.config
- .getDefaultExportDirectory(),
+ File masterExportDirectory = new File(SimulationStorage.getSensitivityResultsDirectory(),
masterSensitivitySimulationName);
if (!masterExportDirectory.isDirectory()) {
masterExportDirectory.mkdirs();
@@ -1098,8 +1092,7 @@
List<File> result = new ArrayList<File>();
// build master sensitivity export directory
- File masterExportDirectory = new File(IsisFish.config
- .getDefaultExportDirectory(), masterSensitivitySimulationName);
+ File masterExportDirectory = new File(SimulationStorage.getSensitivityResultsDirectory(), masterSensitivitySimulationName);
if (masterExportDirectory.isDirectory()) {
for (File exportFile : masterExportDirectory.listFiles()) {
if (exportFile.isFile()
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 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-12-02 17:32:03 UTC (rev 2791)
@@ -266,7 +266,6 @@
isisfish.error.evalute.plan.script=Can't evaluate plan script
isisfish.error.factor.invalid=Factor is not valid
isisfish.error.file.already.exists=The file %1$s already exist
-isisfish.error.get.fisheryRegion=Can't get FisheryRegion
isisfish.error.growth.equation.before.create.group.population=Error, You must input growth equation before create the group population
isisfish.error.immigration.negative=immigration negative
isisfish.error.import.convertible=Erreur lors de l'import, la version du fichier que vous souhaitez importer n'est pas transformable en une version importable.
@@ -395,7 +394,6 @@
isisfish.error.wait.simThread=Can't wait SimThread
isisfish.error.warning.title=Warning
isisfish.error.write.simulation=Can't write information %1$s
-isisfish.export.directory=Export directory
isisfish.export.saved=Export saved
isisfish.export.title=Results export
isisfish.filter=Filter
@@ -663,7 +661,6 @@
isisfish.params.lblLauncher=Simulation launcher
isisfish.params.loadOldSimulation=Load old simulation
isisfish.params.numberYear=Number of year
-isisfish.params.onlyExportSimulation=Only export simulation
isisfish.params.populationNumbers=Population numbers input
isisfish.params.ruleParameters=Rule's parameters
isisfish.params.sensitivityName=Sensitivity name
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 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-12-02 17:32:03 UTC (rev 2791)
@@ -266,7 +266,6 @@
isisfish.error.evalute.plan.script=Can't evaluate plan script
isisfish.error.factor.invalid=Le facteur n'est pas valide
isisfish.error.file.already.exists=The file %1$s already exist
-isisfish.error.get.fisheryRegion=Can't get FisheryRegion
isisfish.error.growth.equation.before.create.group.population=Error, You must input growth equation before create the group population
isisfish.error.immigration.negative=immigration negative
isisfish.error.import.convertible=Erreur lors de l'import, la version du fichier que vous souhaitez importer n'est pas transformable en une version importable.
@@ -395,7 +394,6 @@
isisfish.error.wait.simThread=Can't wait SimThread
isisfish.error.warning.title=Attention
isisfish.error.write.simulation=Can't write information %1$s
-isisfish.export.directory=Dossier d'export
isisfish.export.saved=Exports des r\u00E9sultats sauvegard\u00E9s
isisfish.export.title=Export des r\u00E9sultats
isisfish.filter=Filtrer
@@ -663,7 +661,6 @@
isisfish.params.lblLauncher=Lanceur de simulation
isisfish.params.loadOldSimulation=Charger une ancienne simulation
isisfish.params.numberYear=Nombre d'ann\u00E9es
-isisfish.params.onlyExportSimulation=Exporter uniquement des simulations
isisfish.params.populationNumbers=Donn\u00E9es de population
isisfish.params.ruleParameters=Param\u00E8tres des r\u00E8gles
isisfish.params.sensitivityName=Nom de l'analyse de sensibilit\u00E9
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2009-12-02 15:47:44 UTC (rev 2790)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2009-12-02 17:32:03 UTC (rev 2791)
@@ -68,7 +68,6 @@
Assert.assertTrue(params.getExtraRules().isEmpty());
Assert.assertTrue(params.getAnalysePlans().isEmpty());
Assert.assertTrue(params.getExportNames().isEmpty());
- Assert.assertEquals("/tmp", params.getExportDirectory());
Assert.assertFalse(params.getUsePreScript());
Assert.assertEquals("", params.getPreScript());
Assert.assertFalse(params.getUseAnalysePlan());
@@ -78,12 +77,11 @@
Assert.assertNull(params.getSensitivityCalculator());
Assert.assertTrue(params.getResultEnabled().isEmpty());
Assert.assertTrue(params.getTagValue().isEmpty());
- Assert.assertFalse(params.getOnlyExport());
Assert.assertEquals("info", params.getSimulLogLevel());
Assert.assertEquals("info", params.getScriptLogLevel());
Assert.assertEquals("error", params.getLibLogLevel());
}
-
+
/**
* Test to build one simulation parameters.
*
@@ -119,7 +117,7 @@
*/
@Test
public void testBasicFilePropertiesLoading() throws IOException {
-
+
InputStream basicFileStream = SimulationParameterTest.class.getResourceAsStream("parameters_basic.properties");
Properties props = new SortedProperties();
1
0
Author: chatellier
Date: 2009-12-02 15:47:44 +0000 (Wed, 02 Dec 2009)
New Revision: 2790
Modified:
isis-fish/trunk/pom.xml
Log:
Update rsyntaxtexarea
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-12-02 15:26:09 UTC (rev 2789)
+++ isis-fish/trunk/pom.xml 2009-12-02 15:47:44 UTC (rev 2790)
@@ -183,9 +183,9 @@
</dependency>
<dependency>
- <groupId>org.fife</groupId>
+ <groupId>org.nuiton.thirdparty</groupId>
<artifactId>rsyntaxtextarea</artifactId>
- <version>1.3.4</version>
+ <version>1.4.0</version>
<scope>runtime</scope>
</dependency>
1
0