|
From: <ha...@us...> - 2008-04-24 16:14:49
|
Revision: 1978
http://cogkit.svn.sourceforge.net/cogkit/?rev=1978&view=rev
Author: hategan
Date: 2008-04-24 09:14:29 -0700 (Thu, 24 Apr 2008)
Log Message:
-----------
more of automatic shutdown
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/ServiceShutdownHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/Worker.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/ServiceManager.java
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -21,5 +21,6 @@
addHandler("CHANNELCONFIG", ChannelConfigurationHandler.class);
addHandler("SHUTDOWN", ShutdownHandler.class);
addHandler(SubmitJobCommand.NAME, SubmitJobHandler.class);
+ addHandler(ServiceShutdownHandler.NAME, ServiceShutdownHandler.class);
}
}
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterService.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -159,7 +159,7 @@
public void shutdown() {
super.shutdown();
- //jobQueue.getWorkerManager().shutdown();
+ jobQueue.getWorkerManager().shutdown();
done = true;
}
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/ServiceShutdownHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/ServiceShutdownHandler.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/ServiceShutdownHandler.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -19,8 +19,8 @@
public void requestComplete() throws ProtocolException {
try {
CoasterService cs = (CoasterService) getChannel().getChannelContext().getService();
+ sendReply("OK");
cs.shutdown();
- sendReply("OK");
}
catch (Exception e) {
throw new ProtocolException("Failed to shut down service", e);
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/Worker.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/Worker.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/Worker.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -9,14 +9,20 @@
*/
package org.globus.cog.abstraction.coaster.service.job.manager;
+import org.apache.log4j.Logger;
import org.globus.cog.abstraction.impl.common.StatusEvent;
import org.globus.cog.abstraction.impl.common.StatusImpl;
import org.globus.cog.abstraction.interfaces.Status;
import org.globus.cog.abstraction.interfaces.StatusListener;
import org.globus.cog.abstraction.interfaces.Task;
import org.globus.cog.karajan.workflow.service.channels.ChannelContext;
+import org.globus.cog.karajan.workflow.service.channels.ChannelManager;
+import org.globus.cog.karajan.workflow.service.channels.KarajanChannel;
+import org.globus.cog.karajan.workflow.service.commands.ShutdownCommand;
public class Worker implements StatusListener {
+ public static final Logger logger = Logger.getLogger(Worker.class);
+
private Task task, running;
private String id;
private WorkerManager manager;
@@ -25,7 +31,7 @@
private int maxWallTime;
private Status error;
private ChannelContext channelContext;
-
+
private static final Long NEVER = new Long(Long.MAX_VALUE);
public Worker(WorkerManager manager, String id, int maxWallTime, Task w,
@@ -101,11 +107,11 @@
public void setScheduledTerminationTime(long l) {
this.scheduledTerminationTime = new Long(l);
}
-
+
public Status getStatus() {
- return error;
+ return error;
}
-
+
public String toString() {
return "Worker[" + id + "]";
}
@@ -113,8 +119,20 @@
public void setChannelContext(ChannelContext cc) {
this.channelContext = cc;
}
-
+
public ChannelContext getChannelContext() {
return this.channelContext;
}
+
+ public void shutdown() {
+ try {
+ KarajanChannel channel = ChannelManager.getManager()
+ .reserveChannel(channelContext);
+ ShutdownCommand sc = new ShutdownCommand();
+ sc.execute(channel);
+ }
+ catch (Exception e) {
+ logger.warn("Failed to shut down worker", e);
+ }
+ }
}
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -359,5 +359,10 @@
}
public void shutdown() {
+ Iterator i = ready.values().iterator();
+ while (i.hasNext()) {
+ Worker wr = (Worker) i.next();
+ wr.shutdown();
+ }
}
}
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/ServiceManager.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/ServiceManager.java 2008-04-23 17:21:50 UTC (rev 1977)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/ServiceManager.java 2008-04-24 16:14:29 UTC (rev 1978)
@@ -272,6 +272,7 @@
.reserveChannel(url, (GSSCredential) cred);
ServiceShutdownCommand ssc = new ServiceShutdownCommand();
ssc.execute(channel);
+ CoasterChannelManager.getManager().releaseChannel(channel);
}
catch (Exception e) {
logger.warn("Failed to shut down service " + url, e);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|