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
July 2010
- 2 participants
- 23 discussions
r3076 - in isis-fish/branches/3.3.0.4-disworksupport/src/main: java/fr/ifremer/isisfish/simulator/launcher resources
by bleny@users.labs.libre-entreprise.org 09 Jul '10
by bleny@users.labs.libre-entreprise.org 09 Jul '10
09 Jul '10
Author: bleny
Date: 2010-07-09 12:21:57 +0000 (Fri, 09 Jul 2010)
New Revision: 3076
Log:
conf log lazy instanciation du d?\195?\169mon
Modified:
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/log4j.properties
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java 2010-07-09 11:15:51 UTC (rev 3075)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java 2010-07-09 12:21:57 UTC (rev 3076)
@@ -44,9 +44,11 @@
new HashMap<String, JobDescription>();
- public DisworkSimulatorLauncher() {
+ public DisworkSimulatorLauncher() {}
+
+
+ protected synchronized DisworkDaemon getDaemon() {
if (disworkDaemon == null) {
-
DisworkConfig config = new DisworkConfig();
String bootStrapIp = IsisFish.config.getDisworkBootstrapIp();
if (!"".equals(bootStrapIp)) {
@@ -67,25 +69,26 @@
log.info("diswork not started, no bootstrap ip specified");
}
}
-
try {
- for (JobDescription job : disworkDaemon.getAllJobs("isis-fish")) {
- jobs.put(job.getJobName(), job);
+ synchronized (jobs) {
+ for (JobDescription job : disworkDaemon.getAllJobs("isis-fish")) {
+ // jobs.put(job.getJobName(), job);
+ }
}
log.info(jobs.size() + "jobs retrieved from diswork");
} catch (DisworkException e) {
log.error("unable to boot diswork FS");
throw new RuntimeException("unable to boot diswork FS", e);
}
+ return disworkDaemon;
}
-
// TODO 20100628 bleny upload application if needed, whatever the version
protected void submitIsisApplication(String isisVersion) {
try {
log.info("submitting isis-fish " + isisVersion + " to diswork");
URL url = new URL("http://isis-fish.labs.libre-entreprise.org/download/version3/isis-fish-3.3.…");
- disworkDaemon.submitApplication("isis-fish", isisVersion, url.openStream());
+ getDaemon().submitApplication("isis-fish", isisVersion, url.openStream());
} catch (MalformedURLException e) {
// hardcoded URL cannot be malformed
} catch (DisworkException e) {
@@ -150,7 +153,7 @@
try {
log.info("submitting job " + jobDescription.toJSDL());
simulationItem.getControl().setText("submitting job");
- disworkDaemon.submitJob(jobDescription);
+ getDaemon().submitJob(jobDescription);
simulationItem.getControl().setText("job submitted");
} catch (DisworkException e) {
log.error("error while submiting job to diswork", e);
@@ -165,7 +168,7 @@
@Override
public int getCheckProgressionInterval() {
- return 10 * 60; // ten minutes
+ return 15;
}
@Override
@@ -188,7 +191,7 @@
try {
File tempDir = FileUtil.createTempDirectory("isis-results-" +
jobDescription.getJobName(), null);
- Map<String, InputStream> results = disworkDaemon.getResults(jobDescription);
+ Map<String, InputStream> results = getDaemon().getResults(jobDescription);
for (String fileName : results.keySet()) {
File localFile = new File(tempDir, fileName);
localFile.deleteOnExit();
@@ -201,7 +204,7 @@
ZipUtil.uncompress(localFile, SimulationStorage.getSimulationDirectory());
}
}
- disworkDaemon.deleteJob(jobDescription);
+ getDaemon().deleteJob(jobDescription);
FileUtil.deleteRecursively(tempDir);
} catch (IOException e) {
log.error("unable to write results on the local FS", e);
@@ -221,7 +224,7 @@
log.error("unknow Id" + control.getId());
} else {
try {
- if (disworkDaemon.isFinished(jobDescription)) {
+ if (getDaemon().isFinished(jobDescription)) {
// downloads the results
File resultDir = downloadResults(jobDescription);
File controlFile = new File(resultDir, SimulationStorage.CONTROL_FILENAME);
@@ -238,7 +241,7 @@
@Override
public void simulationStopRequest(SimulationJob job) throws RemoteException {
try {
- disworkDaemon.deleteJob(jobs.get(job.getId()));
+ getDaemon().deleteJob(jobs.get(job.getId()));
} catch (DisworkException e) {
log.error("error while trying to delete a job", e);
throw new RemoteException("error while trying to delete a job", e);
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/log4j.properties
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/log4j.properties 2010-07-09 11:15:51 UTC (rev 3075)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/log4j.properties 2010-07-09 12:21:57 UTC (rev 3076)
@@ -3,11 +3,13 @@
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) %M - %m%n
# package level
log4j.logger.fr.ifremer.isisfish=INFO
log4j.logger.org.nuiton=INFO
+log4j.logger.org.nuiton.diswork.daemon=DEBUG
+log4j.logger.org.nuiton.diswork.fs=INFO
log4j.logger.org.nuiton.j2r=DEBUG
log4j.logger.analyseplans=INFO
log4j.logger.exports=INFO
1
0
r3075 - in isis-fish/branches/3.3.0.4-disworksupport/src/main: java/fr/ifremer/isisfish java/fr/ifremer/isisfish/simulator/launcher java/fr/ifremer/isisfish/ui resources/i18n
by bleny@users.labs.libre-entreprise.org 09 Jul '10
by bleny@users.labs.libre-entreprise.org 09 Jul '10
09 Jul '10
Author: bleny
Date: 2010-07-09 11:15:51 +0000 (Fri, 09 Jul 2010)
New Revision: 3075
Log:
abandon de job, configuration de diswork, int?\195?\169gration de la configuration dans l'ihm
Modified:
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx
isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-07-05 12:34:19 UTC (rev 3074)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-07-09 11:15:51 UTC (rev 3075)
@@ -608,7 +608,31 @@
boolean result = !VCSNone.TYPE_NONE.equals(value);
return result;
}*/
+
+ public int getDisworkPort() {
+ return getOptionAsInt(Option.SIMULATOR_DISWORK_PORT.key);
+ }
+ public void setDisworkPort(Integer port) {
+ setOption(Option.SIMULATOR_DISWORK_PORT.key, port.toString());
+ }
+
+ public int getDisworkBootstrapPort() {
+ return getOptionAsInt(Option.SIMULATOR_DISWORK_BOOTSTRAP_PORT.key);
+ }
+
+ public void setDisworkBootstrapPort(Integer port) {
+ setOption(Option.SIMULATOR_DISWORK_BOOTSTRAP_PORT.key, port.toString());
+ }
+
+ public String getDisworkBootstrapIp() {
+ return getOption(Option.SIMULATOR_DISWORK_BOOTSTRAP_IP.key);
+ }
+
+ public void setDisworkBootstrapPort(String ip) {
+ setOption(Option.SIMULATOR_DISWORK_BOOTSTRAP_IP.key, ip);
+ }
+
/**
* Get launch.ui option value.
*
@@ -992,6 +1016,10 @@
/** 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"),
+ SIMULATOR_DISWORK_BOOTSTRAP_IP("simulation.diswork.bootstrap.ip", _("isisfish.config.main.simulation.diswork.bootstrap.ip.description"), ""),
+ SIMULATOR_DISWORK_BOOTSTRAP_PORT("simulation.diswork.bootstrap.port", _("isisfish.config.main.simulation.diswork.bootstrap.port.description"), "19000"),
+ SIMULATOR_DISWORK_PORT("simulation.diswork.port", _("isisfish.config.main.simulation.diswork.port.description"), "19000"),
+
/** Application locale (for i18n init). */
LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
SIMULATION_SHOW_ONLY_ERROR("simulationShowOnlyError", _("isisfish.config.main.simulationShowOnlyError.description"), "false"),
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java 2010-07-05 12:34:19 UTC (rev 3074)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java 2010-07-09 11:15:51 UTC (rev 3075)
@@ -25,6 +25,7 @@
import org.nuiton.util.FileUtil;
import org.nuiton.util.ZipUtil;
+import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.SimulationControl;
@@ -45,24 +46,32 @@
public DisworkSimulatorLauncher() {
if (disworkDaemon == null) {
+
DisworkConfig config = new DisworkConfig();
- config.setBootstrapIp("192.168.99.119");
- config.setBootstrapPort(19002);
- config.setActivityStrategy("none");
- config.setUsedPort(31000);
- try {
- disworkDaemon = new DisworkDaemon(config);
- } catch (DisworkException e) {
- log.error("unable to boot diswork FS");
- throw new RuntimeException("unable to boot diswork FS", e);
+ String bootStrapIp = IsisFish.config.getDisworkBootstrapIp();
+ if (!"".equals(bootStrapIp)) {
+ config.setBootstrapIp(IsisFish.config.getDisworkBootstrapIp());
+ config.setBootstrapPort(IsisFish.config.getDisworkBootstrapPort());
+ config.setUsedPort(IsisFish.config.getDisworkPort());
+
+
+ config.setActivityStrategy("none");
+ config.setHttpFrontendPort(8081);
+ try {
+ disworkDaemon = new DisworkDaemon(config);
+ } catch (DisworkException e) {
+ log.error("unable to boot diswork FS");
+ throw new RuntimeException("unable to boot diswork FS", e);
+ }
+ } else {
+ log.info("diswork not started, no bootstrap ip specified");
}
}
try {
- for (JobDescription job : disworkDaemon.getAllJobs()) {
+ for (JobDescription job : disworkDaemon.getAllJobs("isis-fish")) {
jobs.put(job.getJobName(), job);
}
- // FIXME 20100702 bleny daemon may contains not only isis-jobs
log.info(jobs.size() + "jobs retrieved from diswork");
} catch (DisworkException e) {
log.error("unable to boot diswork FS");
@@ -90,6 +99,7 @@
public void simulate(SimulationService simulationService,
SimulationItem simulationItem) throws RemoteException {
+ //TODO 20100706 use simulationItem.getControl().setText(_(""));
JobDescription jobDescription = new JobDescription();
String simulationId = simulationItem.getControl().getId();
@@ -99,6 +109,7 @@
// String isisVersion = simulationItem.getParameter().getIsisFishVersion();
String isisVersion = "3.3.0.4-SNAPSHOT";
+ simulationItem.getControl().setText("uploading isis " + isisVersion);
submitIsisApplication(isisVersion);
jobDescription.setApplication("isis-fish", isisVersion);
@@ -133,12 +144,14 @@
String standardOutputName = "simulation-" + simulationId + "-output.txt";
jobDescription.setStandardOutput(standardOutputName);
jobDescription.addOutput(standardOutputName);
-
+
jobs.put(simulationId, jobDescription);
try {
log.info("submitting job " + jobDescription.toJSDL());
+ simulationItem.getControl().setText("submitting job");
disworkDaemon.submitJob(jobDescription);
+ simulationItem.getControl().setText("job submitted");
} catch (DisworkException e) {
log.error("error while submiting job to diswork", e);
throw new RemoteException("error while submiting job to diswork", e);
@@ -179,7 +192,7 @@
for (String fileName : results.keySet()) {
File localFile = new File(tempDir, fileName);
localFile.deleteOnExit();
- log.debug("Downloading results in " + localFile.getAbsolutePath());
+ log.debug("downloading results in " + localFile.getAbsolutePath());
out = new FileOutputStream(localFile);
// copy data from diswork to local FS
IOUtils.copy(results.get(fileName), out);
@@ -188,7 +201,7 @@
ZipUtil.uncompress(localFile, SimulationStorage.getSimulationDirectory());
}
}
-
+ disworkDaemon.deleteJob(jobDescription);
FileUtil.deleteRecursively(tempDir);
} catch (IOException e) {
log.error("unable to write results on the local FS", e);
@@ -224,8 +237,12 @@
@Override
public void simulationStopRequest(SimulationJob job) throws RemoteException {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException("not yet implemented");
+ try {
+ disworkDaemon.deleteJob(jobs.get(job.getId()));
+ } catch (DisworkException e) {
+ log.error("error while trying to delete a job", e);
+ throw new RemoteException("error while trying to delete a job", e);
+ }
}
/**
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2010-07-05 12:34:19 UTC (rev 3074)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2010-07-09 11:15:51 UTC (rev 3075)
@@ -130,6 +130,15 @@
IsisConfig.Option.VCS_HOST_NAME,
IsisConfig.Option.VCS_PATH
);
+
+ // categorie diswork
+ model.addCategory(
+ _("isisfish.config.category.diswork"),
+ _("isisfish.config.category.diswork.description"),
+ IsisConfig.Option.SIMULATOR_DISWORK_PORT,
+ IsisConfig.Option.SIMULATOR_DISWORK_BOOTSTRAP_IP,
+ IsisConfig.Option.SIMULATOR_DISWORK_BOOTSTRAP_PORT
+ );
// categorie misc
model.addCategory(
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties 2010-07-05 12:34:19 UTC (rev 3074)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties 2010-07-09 11:15:51 UTC (rev 3075)
@@ -140,6 +140,8 @@
isisfish.common.warn=warn
isisfish.common.year=year
isisfish.common.zone=Zone
+isisfish.config.category.diswork=
+isisfish.config.category.diswork.description=
isisfish.config.category.main=Main
isisfish.config.category.main.description=Main configuration
isisfish.config.category.misc=Misc
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-07-05 12:34:19 UTC (rev 3074)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-07-09 11:15:51 UTC (rev 3075)
@@ -140,6 +140,8 @@
isisfish.common.warn=Warning
isisfish.common.year=ann\u00E9e
isisfish.common.zone=Zone
+isisfish.config.category.diswork=
+isisfish.config.category.diswork.description=
isisfish.config.category.main=Globale
isisfish.config.category.main.description=Configuration globale
isisfish.config.category.misc=Divers
1
0
r3074 - in isis-fish/branches/3.3.0.4-disworksupport: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/ui/simulator/filter src/main/resources/i18n
by bleny@users.labs.libre-entreprise.org 05 Jul '10
by bleny@users.labs.libre-entreprise.org 05 Jul '10
05 Jul '10
Author: bleny
Date: 2010-07-05 12:34:19 +0000 (Mon, 05 Jul 2010)
New Revision: 3074
Log:
adding diswork support with embedded daemon and hard-coded bootstrap
Added:
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
Modified:
isis-fish/branches/3.3.0.4-disworksupport/pom.xml
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/simulator/filter/SimulationFilterDialog.java
isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties
Modified: isis-fish/branches/3.3.0.4-disworksupport/pom.xml
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/pom.xml 2010-06-28 11:48:31 UTC (rev 3073)
+++ isis-fish/branches/3.3.0.4-disworksupport/pom.xml 2010-07-05 12:34:19 UTC (rev 3074)
@@ -319,6 +319,17 @@
<artifactId>tools</artifactId>
<version>1.6.0.16</version>
</dependency>
+ <dependency>
+ <groupId>org.nuiton.diswork</groupId>
+ <artifactId>diswork-daemon</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>net.sf.saxon</groupId>
+ <artifactId>saxon</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<!-- Tests -->
<dependency>
@@ -650,6 +661,15 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-06-28 11:48:31 UTC (rev 3073)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2010-07-05 12:34:19 UTC (rev 3074)
@@ -49,6 +49,7 @@
import fr.ifremer.isisfish.actions.VCSAction;
import fr.ifremer.isisfish.simulator.SimulationContext;
import fr.ifremer.isisfish.simulator.SimulationControl;
+import fr.ifremer.isisfish.simulator.launcher.DisworkSimulatorLauncher;
import fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher;
import fr.ifremer.isisfish.simulator.launcher.SSHSimulatorLauncher;
import fr.ifremer.isisfish.simulator.launcher.SimulationService;
@@ -966,7 +967,8 @@
SIMULATOR_LAUNCHER(SimulationService.SIMULATION_LAUNCHER + ".3", _("isisfish.config.main.localSimulator.description"), InProcessSimulatorLauncher.class.getName()),
SIMULATOR_LAUNCHER2(SimulationService.SIMULATION_LAUNCHER + ".1", _("isisfish.config.main.subSimulator.description"), SubProcessSimulationLauncher.class.getName()),
SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".2", _("isisfish.config.main.remoteCaparmor.description"), SSHSimulatorLauncher.class.getName()),
-
+ SIMULATOR_DISWORK(SimulationService.SIMULATION_LAUNCHER + ".4", _("isisfish.config.main.disworkSimulator.description"), DisworkSimulatorLauncher.class.getName()),
+
/** Serveur accessible par ssh : address */
SIMULATOR_SSH_SERVER("simulation.ssh.server", _("isisfish.config.main.simulation.ssh.server.description"), "caparmor"),
/** Serveur accessible par ssh : login */
Added: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java (rev 0)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/simulator/launcher/DisworkSimulatorLauncher.java 2010-07-05 12:34:19 UTC (rev 3074)
@@ -0,0 +1,239 @@
+package fr.ifremer.isisfish.simulator.launcher;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.rmi.RemoteException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.diswork.daemon.DisworkConfig;
+import org.nuiton.diswork.daemon.DisworkDaemon;
+import org.nuiton.diswork.daemon.DisworkException;
+import org.nuiton.diswork.daemon.JobDescription;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.ZipUtil;
+
+import fr.ifremer.isisfish.datastore.SimulationStorage;
+import fr.ifremer.isisfish.simulator.SimulationControl;
+
+/**
+ * This class implements SimulatorLauncher by calling a diswork daemon
+ *
+ * @author bleny
+ */
+public class DisworkSimulatorLauncher implements SimulatorLauncher {
+ private static final Log log =
+ LogFactory.getLog(DisworkSimulatorLauncher.class);
+
+ protected static DisworkDaemon disworkDaemon;
+
+ protected static Map<String, JobDescription> jobs =
+ new HashMap<String, JobDescription>();
+
+
+ public DisworkSimulatorLauncher() {
+ if (disworkDaemon == null) {
+ DisworkConfig config = new DisworkConfig();
+ config.setBootstrapIp("192.168.99.119");
+ config.setBootstrapPort(19002);
+ config.setActivityStrategy("none");
+ config.setUsedPort(31000);
+ try {
+ disworkDaemon = new DisworkDaemon(config);
+ } catch (DisworkException e) {
+ log.error("unable to boot diswork FS");
+ throw new RuntimeException("unable to boot diswork FS", e);
+ }
+ }
+
+ try {
+ for (JobDescription job : disworkDaemon.getAllJobs()) {
+ jobs.put(job.getJobName(), job);
+ }
+ // FIXME 20100702 bleny daemon may contains not only isis-jobs
+ log.info(jobs.size() + "jobs retrieved from diswork");
+ } catch (DisworkException e) {
+ log.error("unable to boot diswork FS");
+ throw new RuntimeException("unable to boot diswork FS", e);
+ }
+ }
+
+
+ // TODO 20100628 bleny upload application if needed, whatever the version
+ protected void submitIsisApplication(String isisVersion) {
+ try {
+ log.info("submitting isis-fish " + isisVersion + " to diswork");
+ URL url = new URL("http://isis-fish.labs.libre-entreprise.org/download/version3/isis-fish-3.3.…");
+ disworkDaemon.submitApplication("isis-fish", isisVersion, url.openStream());
+ } catch (MalformedURLException e) {
+ // hardcoded URL cannot be malformed
+ } catch (DisworkException e) {
+ log.error("error while submitting application ", e);
+ } catch (IOException e) {
+ log.error("error while submitting application ", e);
+ }
+ }
+
+ @Override
+ public void simulate(SimulationService simulationService,
+ SimulationItem simulationItem) throws RemoteException {
+
+
+ JobDescription jobDescription = new JobDescription();
+ String simulationId = simulationItem.getControl().getId();
+ jobDescription.setJobName(simulationId);
+
+ // TODO 20100702 bleny use isisVersion
+ // String isisVersion = simulationItem.getParameter().getIsisFishVersion();
+ String isisVersion = "3.3.0.4-SNAPSHOT";
+
+ submitIsisApplication(isisVersion);
+ jobDescription.setApplication("isis-fish", isisVersion);
+
+ InputStream simulationZipData;
+ try {
+ simulationZipData = new FileInputStream(simulationItem.getSimulationZip());
+ } catch (FileNotFoundException e) {
+ // should exists
+ log.error("can't find simulation data", e);
+ throw new RuntimeException("can't find simulation data", e);
+ }
+ String simulationZipName = "simulation-" + simulationId + "-preparation.zip";
+ jobDescription.addInput(simulationZipName, simulationZipData);
+
+ String resultZipName = "simulation-" + simulationId + "-result.zip";
+ jobDescription.addOutput(resultZipName);
+
+ String isisJarPath = "isis-fish-" + isisVersion + "/isis-fish-" +
+ isisVersion + ".jar";
+ String commandLine = "%java -Xmx2500M -jar"
+ + " " + isisJarPath
+ + " --option launch.ui false"
+ + " --option perform.vcsupdate false"
+ + " --option perform.migration false"
+ + " --option perform.cron false"
+ + " --simulateRemotelly"
+ + " " + simulationId
+ + " " + simulationZipName
+ + " " + resultZipName;
+ jobDescription.setCommandLine(commandLine);
+
+ String standardOutputName = "simulation-" + simulationId + "-output.txt";
+ jobDescription.setStandardOutput(standardOutputName);
+ jobDescription.addOutput(standardOutputName);
+
+ jobs.put(simulationId, jobDescription);
+
+ try {
+ log.info("submitting job " + jobDescription.toJSDL());
+ disworkDaemon.submitJob(jobDescription);
+ } catch (DisworkException e) {
+ log.error("error while submiting job to diswork", e);
+ throw new RemoteException("error while submiting job to diswork", e);
+ }
+ }
+
+ @Override
+ public int maxSimulationThread() {
+ return 1;
+ }
+
+ @Override
+ public int getCheckProgressionInterval() {
+ return 10 * 60; // ten minutes
+ }
+
+ @Override
+ public SimulationStorage getSimulationStorage(
+ SimulationService simulationService, SimulationControl control)
+ throws RemoteException {
+ String simulationId = control.getId();
+
+ SimulationStorage simulationStorage = SimulationStorage
+ .getSimulation(simulationId);
+
+ return simulationStorage;
+ }
+
+ protected File downloadResults(JobDescription jobDescription)
+ throws DisworkException {
+
+
+ OutputStream out = null;
+ try {
+ File tempDir = FileUtil.createTempDirectory("isis-results-" +
+ jobDescription.getJobName(), null);
+ Map<String, InputStream> results = disworkDaemon.getResults(jobDescription);
+ for (String fileName : results.keySet()) {
+ File localFile = new File(tempDir, fileName);
+ localFile.deleteOnExit();
+ log.debug("Downloading results in " + localFile.getAbsolutePath());
+ out = new FileOutputStream(localFile);
+ // copy data from diswork to local FS
+ IOUtils.copy(results.get(fileName), out);
+
+ if (fileName.endsWith(".zip")) {
+ ZipUtil.uncompress(localFile, SimulationStorage.getSimulationDirectory());
+ }
+ }
+
+ FileUtil.deleteRecursively(tempDir);
+ } catch (IOException e) {
+ log.error("unable to write results on the local FS", e);
+ throw new RuntimeException("unable to write results on the local FS", e);
+ } finally {
+ IOUtils.closeQuietly(out);
+ }
+
+ return new File(SimulationStorage.getSimulationDirectory() + File.separator + jobDescription.getJobName());
+ }
+
+ @Override
+ public void updateControl(SimulationService simulationService,
+ SimulationControl control) throws RemoteException {
+ JobDescription jobDescription = jobs.get(control.getId());
+ if (jobDescription == null) {
+ log.error("unknow Id" + control.getId());
+ } else {
+ try {
+ if (disworkDaemon.isFinished(jobDescription)) {
+ // downloads the results
+ File resultDir = downloadResults(jobDescription);
+ File controlFile = new File(resultDir, SimulationStorage.CONTROL_FILENAME);
+ log.debug("control file is " + controlFile.getAbsolutePath());
+ SimulationStorage.readControl(controlFile, control, "stop");
+ }
+ } catch (DisworkException e) {
+ log.error("error while retrieving status|results for job", e);
+ throw new RemoteException("error while retrieving status|results for job", e);
+ }
+ }
+ }
+
+ @Override
+ public void simulationStopRequest(SimulationJob job) throws RemoteException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return _("isisfish.simulator.launcher.diswork");
+ }
+
+}
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/simulator/filter/SimulationFilterDialog.java
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/simulator/filter/SimulationFilterDialog.java 2010-06-28 11:48:31 UTC (rev 3073)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/java/fr/ifremer/isisfish/ui/simulator/filter/SimulationFilterDialog.java 2010-07-05 12:34:19 UTC (rev 3074)
@@ -20,7 +20,7 @@
"Les crit\u00E8res de type texte (simulationName,simulatorName,...) utilise des expresions rationnelles." +
"<br/> La liste des r\u00E9sultats se met automatiquement \u00E0 jour lors de votre saisie." +
"<h3>Les expressions rationnelles</h3>" +
- "Une expression rationnelle est un motif de recherche sur une chaine de caract\u00E8res."+
+ "Une pattern rationnelle est un motif de recherche sur une chaine de caract\u00E8res."+
"" +
"Voici quelques caract\u00E8res utilisables dans les E.R : " +
"<ul>" +
@@ -33,7 +33,7 @@
"<br/>" +
" Pour plus de renseignement sur les expressions rationnelles, reportez vous au lien suivant :" +
"<ul>" +
- "<li><a href='http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html'>Les expression rationnelles en Java</a></li>" +
+ "<li><a href='http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html'>Les pattern rationnelles en Java</a></li>" +
"</ul>");
doc.setText(sb.toString());
doc.setCaretPosition(0);
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties 2010-06-28 11:48:31 UTC (rev 3073)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-en_GB.properties 2010-07-05 12:34:19 UTC (rev 3074)
@@ -155,6 +155,7 @@
isisfish.config.main.defaultResultNames.description=Result names to manage during a simulation
isisfish.config.main.defaultSimulator.description=Default simulator to use to simulate
isisfish.config.main.defaultTagValue.description=
+isisfish.config.main.disworkSimulator.description=Diswork
isisfish.config.main.encoding.description=encoding used on system
isisfish.config.main.javadocDirectory.description=Javadoc generation directory
isisfish.config.main.javadocURL.description=Javadoc url
Modified: isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-06-28 11:48:31 UTC (rev 3073)
+++ isis-fish/branches/3.3.0.4-disworksupport/src/main/resources/i18n/isis-fish-fr_FR.properties 2010-07-05 12:34:19 UTC (rev 3074)
@@ -155,6 +155,7 @@
isisfish.config.main.defaultResultNames.description=les noms des r\u00E9sultats \u00E0 traiter durant une simulation
isisfish.config.main.defaultSimulator.description=le nom du simulateur par d\u00E9faut \u00E0 utiliser lors d'une simulation
isisfish.config.main.defaultTagValue.description=
+isisfish.config.main.disworkSimulator.description=Diswork
isisfish.config.main.encoding.description=l'encoding du syst\u00E8me
isisfish.config.main.javadocDirectory.description=dossier de g\u00E9n\u00E9ration de la javadoc des scripts
isisfish.config.main.javadocURL.description=l'url de la javadoc des scripts
1
0