You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
(39) |
May
(165) |
Jun
(164) |
Jul
(127) |
Aug
(81) |
Sep
(146) |
Oct
(375) |
Nov
(241) |
Dec
(77) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(42) |
Feb
(38) |
Mar
(30) |
Apr
(6) |
May
(17) |
Jun
|
Jul
(15) |
Aug
(59) |
Sep
(31) |
Oct
(44) |
Nov
(30) |
Dec
(12) |
| 2008 |
Jan
(9) |
Feb
(63) |
Mar
(18) |
Apr
(43) |
May
(28) |
Jun
(32) |
Jul
(61) |
Aug
(5) |
Sep
(72) |
Oct
(48) |
Nov
(6) |
Dec
|
|
From: <ha...@us...> - 2008-10-02 18:41:33
|
Revision: 2211
http://cogkit.svn.sourceforge.net/cogkit/?rev=2211&view=rev
Author: hategan
Date: 2008-10-02 18:40:51 +0000 (Thu, 02 Oct 2008)
Log Message:
-----------
added delete handler
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java
Added Paths:
-----------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/DeleteHandler.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-10-02 18:38:40 UTC (rev 2210)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java 2008-10-02 18:40:51 UTC (rev 2211)
@@ -11,6 +11,7 @@
import org.globus.cog.abstraction.impl.execution.coaster.SubmitJobCommand;
import org.globus.cog.abstraction.impl.file.coaster.commands.ChmodCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.DeleteCommand;
import org.globus.cog.abstraction.impl.file.coaster.commands.ExistsCommand;
import org.globus.cog.abstraction.impl.file.coaster.commands.FileInfoCommand;
import org.globus.cog.abstraction.impl.file.coaster.commands.GetFileCommand;
@@ -21,6 +22,7 @@
import org.globus.cog.abstraction.impl.file.coaster.commands.RenameCommand;
import org.globus.cog.abstraction.impl.file.coaster.commands.RmdirCommand;
import org.globus.cog.abstraction.impl.file.coaster.handlers.ChmodHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.DeleteHandler;
import org.globus.cog.abstraction.impl.file.coaster.handlers.ExistsHandler;
import org.globus.cog.abstraction.impl.file.coaster.handlers.FileInfoHandler;
import org.globus.cog.abstraction.impl.file.coaster.handlers.GetFileHandler;
@@ -44,6 +46,7 @@
addHandler(ServiceShutdownHandler.NAME, ServiceShutdownHandler.class);
addHandler(ExistsCommand.NAME, ExistsHandler.class);
+ addHandler(DeleteCommand.NAME, DeleteHandler.class);
addHandler(MkdirCommand.NAME, MkdirHandler.class);
addHandler(ListCommand.NAME, ListHandler.class);
addHandler(RmdirCommand.NAME, RmdirHandler.class);
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/DeleteHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/DeleteHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/DeleteHandler.java 2008-10-02 18:40:51 UTC (rev 2211)
@@ -0,0 +1,34 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.apache.log4j.Logger;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class DeleteHandler extends CoasterFileRequestHandler {
+ public static final Logger logger = Logger.getLogger(DeleteHandler.class);
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+ if (!f.delete()) {
+ if (f.exists()) {
+ sendError("Failed to delete " + f.getAbsolutePath());
+ }
+ else {
+ sendReply("OK");
+ }
+ }
+ else {
+ sendReply("OK");
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-10-02 18:39:19
|
Revision: 2210
http://cogkit.svn.sourceforge.net/cogkit/?rev=2210&view=rev
Author: hategan
Date: 2008-10-02 18:38:40 +0000 (Thu, 02 Oct 2008)
Log Message:
-----------
allow commands to see whether data is part of an error or not
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java 2008-10-02 18:38:07 UTC (rev 2209)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java 2008-10-02 18:38:40 UTC (rev 2210)
@@ -97,6 +97,7 @@
}
public void unregisterCommand(Command cmd) {
+ logger.info("Unregistering " + cmd);
context.unregisterCommand(cmd);
}
@@ -274,6 +275,9 @@
Command cmd = getChannelContext().getRegisteredCommand(tag);
if (cmd != null) {
try {
+ if (error) {
+ cmd.raiseErrorFlag();
+ }
cmd.replyReceived(data);
if (fin) {
if (logger.isInfoEnabled()) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-10-02 18:39:00
|
Revision: 2209
http://cogkit.svn.sourceforge.net/cogkit/?rev=2209&view=rev
Author: hategan
Date: 2008-10-02 18:38:07 +0000 (Thu, 02 Oct 2008)
Log Message:
-----------
removed replier since a separate sending thread is used anyway somewhere up the hierarchy
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/GSSChannel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/GSSChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/GSSChannel.java 2008-10-02 18:36:55 UTC (rev 2208)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/GSSChannel.java 2008-10-02 18:38:07 UTC (rev 2209)
@@ -13,13 +13,10 @@
import java.net.URI;
import org.apache.log4j.Logger;
-import org.globus.cog.karajan.workflow.events.EventBus;
import org.globus.cog.karajan.workflow.service.FallbackAuthorization;
import org.globus.cog.karajan.workflow.service.GSSService;
-import org.globus.cog.karajan.workflow.service.RemoteConfiguration;
import org.globus.cog.karajan.workflow.service.RequestManager;
import org.globus.cog.karajan.workflow.service.UserContext;
-import org.globus.cog.karajan.workflow.service.commands.ChannelConfigurationCommand;
import org.globus.cog.karajan.workflow.service.commands.ShutdownCommand;
import org.globus.gsi.GSIConstants;
import org.globus.gsi.gssapi.GSSConstants;
@@ -41,7 +38,6 @@
private UserContext uc;
private boolean shuttingDown;
private Exception startException;
- private Replier replier;
private int id;
private static int sid = 1;
@@ -61,14 +57,8 @@
private void init() {
id = sid++;
- replier = new Replier(this);
- EventBus.initialize();
}
- public void sendTaggedReply(int tag, byte[] data, boolean fin, boolean err) {
- EventBus.post(replier, new ReplyEvent(tag, data, fin, err));
- }
-
public void start() throws ChannelException {
reconnect();
super.start();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-10-02 18:37:47
|
Revision: 2208
http://cogkit.svn.sourceforge.net/cogkit/?rev=2208&view=rev
Author: hategan
Date: 2008-10-02 18:36:55 +0000 (Thu, 02 Oct 2008)
Log Message:
-----------
formatting
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java 2008-09-30 16:55:58 UTC (rev 2207)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java 2008-10-02 18:36:55 UTC (rev 2208)
@@ -15,6 +15,7 @@
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
@@ -84,18 +85,18 @@
protected void addOutData(long value) {
addOutData(pack(value));
}
-
+
protected byte[] pack(long value) {
- byte[] b = new byte[8];
- b[0] = (byte) (value & 0xff);
- b[1] = (byte) ((value >> 8) & 0xff);
- b[2] = (byte) ((value >> 16) & 0xff);
- b[3] = (byte) ((value >> 24) & 0xff);
- b[4] = (byte) ((value >> 32) & 0xff);
- b[5] = (byte) ((value >> 40) & 0xff);
- b[6] = (byte) ((value >> 48) & 0xff);
- b[7] = (byte) ((value >> 56) & 0xff);
- return b;
+ byte[] b = new byte[8];
+ b[0] = (byte) (value & 0xff);
+ b[1] = (byte) ((value >> 8) & 0xff);
+ b[2] = (byte) ((value >> 16) & 0xff);
+ b[3] = (byte) ((value >> 24) & 0xff);
+ b[4] = (byte) ((value >> 32) & 0xff);
+ b[5] = (byte) ((value >> 40) & 0xff);
+ b[6] = (byte) ((value >> 48) & 0xff);
+ b[7] = (byte) ((value >> 56) & 0xff);
+ return b;
}
protected void addOutData(boolean value) {
@@ -132,10 +133,8 @@
}
protected synchronized void addInData(byte[] data) {
- synchronized (this) {
- if (inData == null) {
- inData = new LinkedList();
- }
+ if (inData == null) {
+ inData = new ArrayList(4);
}
inData.add(data);
}
@@ -173,7 +172,7 @@
return data;
}
- public byte[] getInData(int index) {
+ public synchronized byte[] getInData(int index) {
if (inData == null) {
return null;
}
@@ -184,8 +183,8 @@
throw new IllegalArgumentException("Missing command argument #" + (index + 1));
}
}
-
- public int getInDataSize() {
+
+ public synchronized int getInDataSize() {
return inData.size();
}
@@ -196,22 +195,24 @@
public int getInDataAsInt(int index) {
byte[] b = getInData(index);
if (b.length != 4) {
- throw new IllegalArgumentException("Wrong data size: " + b.length);
+ throw new IllegalArgumentException("Wrong data size: " + b.length + ". Data was "
+ + AbstractKarajanChannel.ppByteBuf(b));
}
return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24);
}
public long getInDataAsLong(int index) {
return unpackLong(getInData(index));
-
+
}
-
+
protected long unpackLong(byte[] b) {
- if (b.length != 8) {
- throw new IllegalArgumentException("Wrong data size: " + b.length);
- }
- return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24) + (b[2] << 32) + (b[3] << 40)
- + (b[2] << 48) + (b[3] << 56);
+ if (b.length != 8) {
+ throw new IllegalArgumentException("Wrong data size: " + b.length + ". Data was "
+ + AbstractKarajanChannel.ppByteBuf(b));
+ }
+ return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24) + (b[2] << 32) + (b[3] << 40)
+ + (b[2] << 48) + (b[3] << 56);
}
public boolean getInDataAsBoolean(int index) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:56:09
|
Revision: 2207
http://cogkit.svn.sourceforge.net/cogkit/?rev=2207&view=rev
Author: hategan
Date: 2008-09-30 16:55:58 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
updated provider props
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/resources/cog-provider.properties
Modified: trunk/current/src/cog/modules/provider-coaster/resources/cog-provider.properties
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/resources/cog-provider.properties 2008-09-30 16:54:56 UTC (rev 2206)
+++ trunk/current/src/cog/modules/provider-coaster/resources/cog-provider.properties 2008-09-30 16:55:58 UTC (rev 2207)
@@ -2,5 +2,5 @@
sandbox=false
executionTaskHandler=org.globus.cog.abstraction.impl.execution.coaster.TaskHandlerImpl
securityContext=org.globus.cog.abstraction.impl.common.task.SecurityContextImpl
-
-
+fileResource=org.globus.cog.abstraction.impl.file.coaster.FileResourceImpl
+fileOperationTaskHandler=org.globus.cog.abstraction.impl.file.coaster.TaskHandlerImpl
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:55:17
|
Revision: 2206
http://cogkit.svn.sourceforge.net/cogkit/?rev=2206&view=rev
Author: hategan
Date: 2008-09-30 16:54:56 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
added relevant things to request manager
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.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-09-30 16:53:38 UTC (rev 2205)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/CoasterRequestManager.java 2008-09-30 16:54:56 UTC (rev 2206)
@@ -10,6 +10,26 @@
package org.globus.cog.abstraction.coaster.service;
import org.globus.cog.abstraction.impl.execution.coaster.SubmitJobCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ChmodCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ExistsCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.FileInfoCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.GetFileCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.IsDirectoryCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ListCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.MkdirCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.PutFileCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.RenameCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.RmdirCommand;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.ChmodHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.ExistsHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.FileInfoHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.GetFileHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.IsDirectoryHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.ListHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.MkdirHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.PutFileHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.RenameHandler;
+import org.globus.cog.abstraction.impl.file.coaster.handlers.RmdirHandler;
import org.globus.cog.karajan.workflow.service.AbstractRequestManager;
import org.globus.cog.karajan.workflow.service.handlers.ChannelConfigurationHandler;
import org.globus.cog.karajan.workflow.service.handlers.ShutdownHandler;
@@ -22,5 +42,16 @@
addHandler("SHUTDOWN", ShutdownHandler.class);
addHandler(SubmitJobCommand.NAME, SubmitJobHandler.class);
addHandler(ServiceShutdownHandler.NAME, ServiceShutdownHandler.class);
+
+ addHandler(ExistsCommand.NAME, ExistsHandler.class);
+ addHandler(MkdirCommand.NAME, MkdirHandler.class);
+ addHandler(ListCommand.NAME, ListHandler.class);
+ addHandler(RmdirCommand.NAME, RmdirHandler.class);
+ addHandler(FileInfoCommand.NAME, FileInfoHandler.class);
+ addHandler(GetFileCommand.NAME, GetFileHandler.class);
+ addHandler(PutFileCommand.NAME, PutFileHandler.class);
+ addHandler(ChmodCommand.NAME, ChmodHandler.class);
+ addHandler(RenameCommand.NAME, RenameHandler.class);
+ addHandler(IsDirectoryCommand.NAME, IsDirectoryHandler.class);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:54:03
|
Revision: 2205
http://cogkit.svn.sourceforge.net/cogkit/?rev=2205&view=rev
Author: hategan
Date: 2008-09-30 16:53:38 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
added file stuff
Added Paths:
-----------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/FileResourceImpl.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/TaskHandlerImpl.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ChmodCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/DeleteCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ExistsCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/FileInfoCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/GetFileCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/IsDirectoryCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ListCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/MkdirCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/PutFileCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RenameCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RmdirCommand.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ChmodHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/CoasterFileRequestHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ExistsHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/FileInfoHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/GetFileHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/IsDirectoryHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ListHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/MkdirHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/PutFileHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RenameHandler.java
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RmdirHandler.java
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/FileResourceImpl.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/FileResourceImpl.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/FileResourceImpl.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,224 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Collection;
+
+import org.globus.cog.abstraction.coaster.service.local.LocalRequestManager;
+import org.globus.cog.abstraction.impl.common.task.IllegalSpecException;
+import org.globus.cog.abstraction.impl.common.task.InvalidSecurityContextException;
+import org.globus.cog.abstraction.impl.common.task.ServiceContactImpl;
+import org.globus.cog.abstraction.impl.common.task.TaskSubmissionException;
+import org.globus.cog.abstraction.impl.execution.coaster.ServiceManager;
+import org.globus.cog.abstraction.impl.file.AbstractFileResource;
+import org.globus.cog.abstraction.impl.file.DirectoryNotFoundException;
+import org.globus.cog.abstraction.impl.file.FileResourceException;
+import org.globus.cog.abstraction.impl.file.IllegalHostException;
+import org.globus.cog.abstraction.impl.file.IrrecoverableResourceException;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ChmodCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.DeleteCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ExistsCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.FileInfoCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.GetFileCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.IsDirectoryCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.ListCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.MkdirCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.PutFileCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.RenameCommand;
+import org.globus.cog.abstraction.impl.file.coaster.commands.RmdirCommand;
+import org.globus.cog.abstraction.interfaces.ExecutableObject;
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.abstraction.interfaces.ProgressMonitor;
+import org.globus.cog.abstraction.interfaces.SecurityContext;
+import org.globus.cog.abstraction.interfaces.ServiceContact;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+import org.globus.cog.karajan.workflow.service.channels.ChannelException;
+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.Command;
+import org.ietf.jgss.GSSCredential;
+
+public class FileResourceImpl extends AbstractFileResource {
+ private boolean autostart;
+ private String url, provider;
+
+ public FileResourceImpl() {
+ this.autostart = true;
+ }
+
+ public FileResourceImpl(String name, String protocol,
+ ServiceContact serviceContact, SecurityContext securityContext) {
+ super(name, protocol, serviceContact, securityContext);
+ this.autostart = true;
+ }
+
+ private void run(Command cmd) throws FileResourceException {
+ try {
+ KarajanChannel channel = ChannelManager.getManager().reserveChannel(
+ url, (GSSCredential) getSecurityContext().getCredentials(),
+ LocalRequestManager.INSTANCE);
+ try {
+ cmd.execute(channel);
+ }
+ catch (ProtocolException e) {
+ throw new FileResourceException(e);
+ }
+ catch (IOException e) {
+ throw new IrrecoverableResourceException(e);
+ }
+ }
+ catch (ChannelException e) {
+ throw new IrrecoverableResourceException(e);
+ }
+ }
+
+ public void changeMode(String fileName, int mode)
+ throws FileResourceException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void changeMode(GridFile gridFile) throws FileResourceException {
+ run(new ChmodCommand(gridFile));
+ }
+
+ public void createDirectory(String directoryName)
+ throws FileResourceException {
+ run(new MkdirCommand(directoryName));
+ }
+
+ public void deleteDirectory(String directoryName, boolean force)
+ throws DirectoryNotFoundException, FileResourceException {
+ run(new RmdirCommand(directoryName, force));
+ }
+
+ public void deleteFile(String fileName) throws FileResourceException {
+ run(new DeleteCommand(fileName));
+ }
+
+ public boolean exists(String fileName) throws FileResourceException {
+ ExistsCommand ec = new ExistsCommand(fileName);
+ run(ec);
+ return ec.getResult();
+ }
+
+ public String getCurrentDirectory() throws FileResourceException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void getFile(String remoteFileName, String localFileName)
+ throws FileResourceException {
+ getFile(remoteFileName, localFileName, null);
+ }
+
+ public void getFile(String remoteFileName, String localFileName,
+ ProgressMonitor progressMonitor) throws FileResourceException {
+ try {
+ run(new GetFileCommand(remoteFileName, localFileName, progressMonitor));
+ }
+ catch (FileNotFoundException e) {
+ throw new FileResourceException(e);
+ }
+ }
+
+ public GridFile getGridFile(String fileName) throws FileResourceException {
+ FileInfoCommand fc = new FileInfoCommand(fileName);
+ run(fc);
+ return fc.getResult();
+ }
+
+ public boolean isDirectory(String name)
+ throws FileResourceException {
+ IsDirectoryCommand ic = new IsDirectoryCommand(name);
+ run(ic);
+ return ic.getResult();
+ }
+
+ public Collection list() throws FileResourceException {
+ return list(".");
+ }
+
+ public Collection list(String directoryName)
+ throws DirectoryNotFoundException, FileResourceException {
+ ListCommand lc = new ListCommand(directoryName);
+ run(lc);
+ return lc.getResult();
+ }
+
+ public void putFile(String localFileName, String remoteFileName)
+ throws FileResourceException {
+ try {
+ run(new PutFileCommand(localFileName, remoteFileName));
+ }
+ catch (FileNotFoundException e) {
+ throw new FileResourceException(e);
+ }
+
+ }
+
+ public void putFile(String localFileName, String remoteFileName,
+ ProgressMonitor progressMonitor) throws FileResourceException {
+ putFile(localFileName, remoteFileName);
+ }
+
+ public void rename(String oldFileName, String newFileName)
+ throws FileResourceException {
+ run(new RenameCommand(oldFileName, newFileName));
+ }
+
+ public void setCurrentDirectory(String directoryName)
+ throws FileResourceException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setServiceContact(ServiceContact serviceContact) {
+ String contact = serviceContact.getContact();
+ int pi = contact.indexOf("://");
+ if (pi == -1) {
+ throw new IllegalArgumentException(
+ "You need to specify a provider as the url scheme (e.g. coaster-gt2://host:port)");
+ }
+ String scheme = contact.substring(0, pi);
+ if (scheme.startsWith("coaster-")) {
+ this.provider = scheme.substring("coaster-".length());
+ }
+ else {
+ this.provider = scheme;
+ }
+ super.setServiceContact(new ServiceContactImpl(contact.substring(pi + 3)));
+ }
+
+ public void start() throws IllegalHostException,
+ InvalidSecurityContextException, FileResourceException {
+ if (autostart) {
+ try {
+ url = ServiceManager.getDefault().reserveService(
+ getServiceContact(), getSecurityContext(), provider);
+ }
+ catch (TaskSubmissionException e) {
+ throw new FileResourceException(
+ "Failed to start coaster resource on "
+ + getServiceContact(), e);
+ }
+ }
+ else {
+ url = this.getServiceContact().getContact();
+ }
+ }
+
+ public void stop() throws FileResourceException {
+ }
+
+ public void submit(ExecutableObject commandWorkflow)
+ throws IllegalSpecException, TaskSubmissionException {
+ throw new UnsupportedOperationException();
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/TaskHandlerImpl.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/TaskHandlerImpl.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/TaskHandlerImpl.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,15 @@
+
+// ----------------------------------------------------------------------
+// This code is developed as part of the Java CoG Kit project
+// The terms of the license can be found at http://www.cogkit.org/license
+// This message may not be removed or altered.
+// ----------------------------------------------------------------------
+
+package org.globus.cog.abstraction.impl.file.coaster;
+
+/**
+ * Extends the base class TaskHandlerImpl in
+ * org.globus.cog.core.impl.file
+ */
+public class TaskHandlerImpl extends org.globus.cog.abstraction.impl.file.TaskHandlerImpl{
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ChmodCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ChmodCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ChmodCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,25 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class ChmodCommand extends Command {
+ public static final String NAME = "CHMOD";
+
+ public ChmodCommand(GridFile f) {
+ super(NAME);
+ addOutData(f.getName());
+ addOutData(f.getUserPermissions().toDigit());
+ addOutData(f.getGroupPermissions().toDigit());
+ addOutData(f.getWorldPermissions().toDigit());
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/DeleteCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/DeleteCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/DeleteCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,21 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class DeleteCommand extends Command {
+ public static final String NAME = "DEL";
+
+ public DeleteCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ExistsCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ExistsCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ExistsCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,25 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class ExistsCommand extends Command {
+ public static final String NAME = "EXISTS";
+
+ public ExistsCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+
+ public boolean getResult() {
+ return getInDataAsBoolean(0);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/FileInfoCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/FileInfoCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/FileInfoCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,39 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import java.io.File;
+
+import org.globus.cog.abstraction.impl.file.GridFileImpl;
+import org.globus.cog.abstraction.impl.file.PermissionsImpl;
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class FileInfoCommand extends Command {
+ public static final String NAME = "FILEINFO";
+
+ public FileInfoCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+
+ public GridFile getResult() {
+ GridFile f = new GridFileImpl();
+ f.setAbsolutePathName(getInDataAsString(0));
+ f.setFileType((byte) getInDataAsInt(1));
+ f.setLastModified(getInDataAsString(2));
+ f.setName(new File(f.getAbsolutePathName()).getName());
+ f.setSize(getInDataAsLong(3));
+ f.setUserPermissions(new PermissionsImpl(getInDataAsInt(4)));
+ f.setGroupPermissions(new PermissionsImpl(getInDataAsInt(5)));
+ f.setWorldPermissions(new PermissionsImpl(getInDataAsInt(6)));
+ return f;
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/GetFileCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/GetFileCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/GetFileCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,57 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.globus.cog.abstraction.interfaces.ProgressMonitor;
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class GetFileCommand extends Command {
+ public static final String NAME = "GET";
+ private long len = -1;
+ private FileOutputStream fos;
+ private String local;
+ private ProgressMonitor pm;
+
+ public GetFileCommand(String remote, String local, ProgressMonitor pm) throws FileNotFoundException {
+ super(NAME);
+ addOutData(remote);
+ this.local = local;
+ this.pm = pm;
+ fos = new FileOutputStream(local);
+ }
+
+ protected void addInData(byte[] data) {
+ if (len == -1) {
+ len = unpackLong(data);
+ }
+ else {
+ try {
+ fos.write(data);
+ }
+ catch (IOException e) {
+ errorReceived(e.getMessage(), e);
+ }
+ }
+ }
+
+ public void receiveCompleted() {
+ super.receiveCompleted();
+ try {
+ fos.close();
+ }
+ catch (IOException e) {
+ errorReceived(e.getMessage(), e);
+ }
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/IsDirectoryCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/IsDirectoryCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/IsDirectoryCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,25 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class IsDirectoryCommand extends Command {
+ public static final String NAME = "ISDIR";
+
+ public IsDirectoryCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+
+ public boolean getResult() {
+ return getInDataAsBoolean(0);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ListCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ListCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/ListCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,54 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.globus.cog.abstraction.impl.file.GridFileImpl;
+import org.globus.cog.abstraction.impl.file.PermissionsImpl;
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class ListCommand extends Command {
+ public static final String NAME = "LIST";
+
+ public ListCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+
+ public Collection getResult() {
+ List l = new ArrayList();
+ int i = 0;
+ int sz = getInDataSize();
+ if (sz % 7 != 0) {
+ errorReceived("Reply size mismatch", new IOException(
+ "Reply size mismatch"));
+ }
+
+ while (i < sz) {
+ GridFile f = new GridFileImpl();
+ f.setAbsolutePathName(getInDataAsString(i++));
+ f.setFileType((byte) getInDataAsInt(i++));
+ f.setLastModified(getInDataAsString(i++));
+ f.setName(new File(f.getAbsolutePathName()).getName());
+ f.setSize(getInDataAsLong(i++));
+ f.setUserPermissions(new PermissionsImpl(getInDataAsInt(i++)));
+ f.setGroupPermissions(new PermissionsImpl(getInDataAsInt(i++)));
+ f.setWorldPermissions(new PermissionsImpl(getInDataAsInt(i++)));
+ l.add(f);
+ }
+ return l;
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/MkdirCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/MkdirCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/MkdirCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,21 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class MkdirCommand extends Command {
+ public static final String NAME = "MKDIR";
+
+ public MkdirCommand(String name) {
+ super(NAME);
+ addOutData(name);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/PutFileCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/PutFileCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/PutFileCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,82 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+import org.globus.cog.karajan.workflow.service.channels.KarajanChannel;
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class PutFileCommand extends Command {
+ public static final Logger logger = Logger
+ .getLogger(PutFileCommand.class);
+
+ public static final String NAME = "PUT";
+
+ private String remote;
+ private long size;
+ private int chunks;
+ private FileInputStream is;
+ private Exception ex;
+
+ public PutFileCommand(String local, String remote)
+ throws FileNotFoundException {
+ super(NAME);
+ this.remote = remote;
+ size = new File(local).length();
+ is = new FileInputStream(local);
+ chunks = (int) (1 + (size / 16384));
+ }
+
+ public void send() throws ProtocolException {
+ KarajanChannel channel = getChannel();
+ if (logger.isInfoEnabled()) {
+ logger.info("Sending " + this + " on " + channel);
+ }
+ if (channel == null) {
+ throw new ProtocolException("Unregistered command");
+ }
+
+ try {
+ channel.sendTaggedData(getId(), false, getOutCmd().getBytes());
+ channel.sendTaggedData(getId(), false, pack(size));
+ channel.sendTaggedData(getId(), size == 0, remote.getBytes());
+ if (logger.isInfoEnabled()) {
+ logger.info("Sending data");
+ }
+ int avail;
+ byte[] buf = new byte[16384];
+ while ((avail = is.available()) > 0) {
+ if (avail > buf.length) {
+ is.read(buf);
+ channel.sendTaggedData(getId(), false, buf);
+ }
+ else {
+ byte[] mb = new byte[avail];
+ is.read(mb);
+ channel.sendTaggedData(getId(), true, mb);
+ }
+ }
+ if (logger.isInfoEnabled()) {
+ logger.info("Data sent");
+ }
+ is.close();
+ setupReplyTimeoutChecker();
+ }
+ catch (IOException e) {
+ reexecute(e.getMessage(), e);
+ }
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RenameCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RenameCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RenameCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,22 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class RenameCommand extends Command {
+ public static final String NAME = "RENAME";
+
+ public RenameCommand(String oldName, String newName) {
+ super(NAME);
+ addOutData(oldName);
+ addOutData(newName);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RmdirCommand.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RmdirCommand.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/commands/RmdirCommand.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,22 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 24, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.commands;
+
+import org.globus.cog.karajan.workflow.service.commands.Command;
+
+public class RmdirCommand extends Command {
+ public static final String NAME = "RMDIR";
+
+ public RmdirCommand(String name, boolean force) {
+ super(NAME);
+ addOutData(name);
+ addOutData(force);
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ChmodHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ChmodHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ChmodHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,20 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class ChmodHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ sendError("Not implemented");
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/CoasterFileRequestHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/CoasterFileRequestHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/CoasterFileRequestHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,38 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 29, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.abstraction.impl.execution.coaster.NotificationManager;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+import org.globus.cog.karajan.workflow.service.handlers.RequestHandler;
+
+public abstract class CoasterFileRequestHandler extends RequestHandler {
+ private static final String HOME = System.getProperty("user.home");
+
+ protected File normalize(String name) {
+ File f = new File(name);
+
+ return f;
+
+ /*if (f.isAbsolute()) {
+ return f;
+ }
+ else {
+ return new File(HOME, name);
+ }*/
+ }
+
+ protected void sendReply() throws ProtocolException {
+ NotificationManager.getDefault().notIdle();
+ super.sendReply();
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ExistsHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ExistsHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ExistsHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,30 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class ExistsHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ if (f.exists()) {
+ addOutData(true);
+ }
+ else {
+ addOutData(false);
+ }
+ sendReply();
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/FileInfoHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/FileInfoHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/FileInfoHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,38 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+import java.util.Date;
+
+import org.globus.cog.abstraction.impl.file.PermissionsImpl;
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.abstraction.interfaces.Permissions;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class FileInfoHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ addOutData(f.getAbsolutePath());
+ addOutData(f.isDirectory() ? GridFile.DIRECTORY : GridFile.FILE);
+ addOutData(new Date(f.lastModified()).toString());
+ addOutData(f.length());
+
+ Permissions p = new PermissionsImpl();
+ p.setRead(f.canRead());
+ p.setWrite(f.canWrite());
+ addOutData(p.toDigit());
+ addOutData(p.toDigit());
+ addOutData(p.toDigit());
+ sendReply();
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/GetFileHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/GetFileHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/GetFileHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,107 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.AbstractCollection;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.log4j.Logger;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class GetFileHandler extends CoasterFileRequestHandler {
+ public static final Logger logger = Logger
+ .getLogger(GetFileHandler.class);
+
+ private File f;
+ private long size;
+ private int chunks;
+ private Exception ex;
+
+ public void requestComplete() throws ProtocolException {
+ f = normalize(getInDataAsString(0));
+ logger.warn(f.getAbsolutePath());
+ size = f.length();
+ chunks = (int) ((size - 1) / 16384) + 1;
+ sendReply();
+ }
+
+ public Collection getOutData() {
+ return new AbstractCollection() {
+
+ public Iterator iterator() {
+ return new Iterator() {
+ private long crt = 0;
+ private byte[] buf = new byte[16384];
+ private boolean first = true;
+ private FileInputStream is;
+
+ {
+ try {
+ is = new FileInputStream(f);
+ }
+ catch (Exception e) {
+ ex = e;
+ }
+ }
+
+ public boolean hasNext() {
+ return first || crt < size && ex == null;
+ }
+
+ public Object next() {
+ try {
+ if (first) {
+ first = false;
+ return pack(size);
+ }
+ else {
+ int l = is.read(buf);
+ crt += l;
+ if (crt == l) {
+ is.close();
+ }
+ if (l == buf.length) {
+ return buf;
+ }
+ else {
+ byte[] mb = new byte[l];
+ System.arraycopy(buf, 0, mb, 0, l);
+ return mb;
+ }
+ }
+ }
+ catch (Exception e) {
+ ex = e;
+ return new byte[0];
+ }
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+
+ public int size() {
+ return chunks + 1;
+ }
+ };
+ }
+
+ public void send() throws ProtocolException {
+ super.send();
+ if (ex != null) {
+ sendError(ex.getMessage(), ex);
+ }
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/IsDirectoryHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/IsDirectoryHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/IsDirectoryHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,30 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class IsDirectoryHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ if (f.isDirectory()) {
+ addOutData(true);
+ }
+ else {
+ addOutData(false);
+ }
+ sendReply();
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ListHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ListHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/ListHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.abstraction.interfaces.GridFile;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class ListHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ File[] l = f.listFiles();
+ for (int i = 0; i < l.length; i++) {
+ f = l[i];
+ addOutData(f.getAbsolutePath());
+ addOutData(f.isDirectory() ? GridFile.DIRECTORY : GridFile.FILE);
+ addOutData("");
+ addOutData(f.length());
+ addOutData(0);
+ addOutData(0);
+ addOutData(0);
+ }
+ sendReply();
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/MkdirHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/MkdirHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/MkdirHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,29 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class MkdirHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ if (!f.mkdirs() && !f.exists()) {
+ sendError("Failed to create directory " + f.getPath());
+ }
+ else {
+ sendReply("OK");
+ }
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/PutFileHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/PutFileHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/PutFileHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,65 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class PutFileHandler extends CoasterFileRequestHandler {
+ public static final Logger logger = Logger.getLogger(PutFileHandler.class);
+
+ private long len = -1;
+ private File f;
+ private FileOutputStream fos;
+
+ public void requestComplete() throws ProtocolException {
+ try {
+ fos.close();
+ sendReply("OK");
+ }
+ catch (IOException e) {
+ sendError("Failed to close file", e);
+ }
+ }
+
+ protected void addInData(byte[] data) {
+ if (len == -1) {
+ len = unpackLong(data);
+ if (logger.isInfoEnabled()) {
+ logger.info("Size: " + len);
+ }
+ }
+ else if (f == null) {
+ f = normalize(new String(data));
+ if (logger.isInfoEnabled()) {
+ logger.info("Name: " + f.getPath());
+ }
+ try {
+ fos = new FileOutputStream(f);
+ }
+ catch (FileNotFoundException e) {
+ errorReceived(e.getMessage(), e);
+ }
+ }
+ else {
+ try {
+ fos.write(data);
+ }
+ catch (IOException e) {
+ errorReceived(e.getMessage(), e);
+ }
+ }
+ }
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RenameHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RenameHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RenameHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,25 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class RenameHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ f.renameTo(new File(getInDataAsString(1)));
+ sendReply("OK");
+ }
+
+}
Added: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RmdirHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RmdirHandler.java (rev 0)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/file/coaster/handlers/RmdirHandler.java 2008-09-30 16:53:38 UTC (rev 2205)
@@ -0,0 +1,31 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Sep 26, 2008
+ */
+package org.globus.cog.abstraction.impl.file.coaster.handlers;
+
+import java.io.File;
+
+import org.globus.cog.karajan.workflow.service.ProtocolException;
+
+public class RmdirHandler extends CoasterFileRequestHandler {
+
+ public void requestComplete() throws ProtocolException {
+ File f = normalize(getInDataAsString(0));
+
+ if (!f.isDirectory()) {
+ sendError("Not a directory: " + f);
+ }
+ if (!f.delete() && f.exists()) {
+ sendError("Failed to delete directory " + f);
+ }
+ else {
+ sendReply("OK");
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:51:30
|
Revision: 2204
http://cogkit.svn.sourceforge.net/cogkit/?rev=2204&view=rev
Author: hategan
Date: 2008-09-30 16:51:12 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
reorganized things a bit
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/JobSubmissionTaskHandler.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/impl/execution/coaster/JobSubmissionTaskHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/JobSubmissionTaskHandler.java 2008-09-30 16:50:03 UTC (rev 2203)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/JobSubmissionTaskHandler.java 2008-09-30 16:51:12 UTC (rev 2204)
@@ -6,17 +6,11 @@
package org.globus.cog.abstraction.impl.execution.coaster;
-import java.util.HashMap;
-import java.util.Map;
-
import org.apache.log4j.Logger;
import org.globus.cog.abstraction.coaster.service.local.LocalRequestManager;
-import org.globus.cog.abstraction.impl.common.AbstractionFactory;
-import org.globus.cog.abstraction.impl.common.ProviderMethodException;
import org.globus.cog.abstraction.impl.common.StatusImpl;
import org.globus.cog.abstraction.impl.common.task.ExecutionServiceImpl;
import org.globus.cog.abstraction.impl.common.task.IllegalSpecException;
-import org.globus.cog.abstraction.impl.common.task.InvalidProviderException;
import org.globus.cog.abstraction.impl.common.task.InvalidSecurityContextException;
import org.globus.cog.abstraction.impl.common.task.InvalidServiceContactException;
import org.globus.cog.abstraction.impl.common.task.JobSpecificationImpl;
@@ -31,7 +25,6 @@
import org.globus.cog.abstraction.interfaces.Service;
import org.globus.cog.abstraction.interfaces.Status;
import org.globus.cog.abstraction.interfaces.Task;
-import org.globus.cog.abstraction.interfaces.TaskHandler;
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.Command;
@@ -47,7 +40,6 @@
.getLogger(JobSubmissionTaskHandler.class);
private Task task, startServiceTask;
- private Map bootHandlers;
private SubmitJobCommand jsc;
private GSSCredential cred;
private String jobid;
@@ -57,7 +49,6 @@
public JobSubmissionTaskHandler() {
this.autostart = true;
- bootHandlers = new HashMap();
}
public void submit(Task task) throws IllegalSpecException,
@@ -67,8 +58,8 @@
task.setStatus(Status.SUBMITTING);
try {
if (autostart) {
- url = ServiceManager.getDefault().reserveService(task,
- getBootHandler(task), getBootHandlerProvider(task));
+ String provider = getBootHandlerProvider(task);
+ url = ServiceManager.getDefault().reserveService(task, provider);
cred = getCredentials(task);
}
else {
@@ -84,20 +75,6 @@
}
}
- private TaskHandler getBootHandler(Task t)
- throws InvalidServiceContactException, InvalidProviderException,
- ProviderMethodException, IllegalSpecException {
- String provider = getBootHandlerProvider(t);
- synchronized (bootHandlers) {
- TaskHandler th = (TaskHandler) bootHandlers.get(provider);
- if (th == null) {
- th = AbstractionFactory.newExecutionTaskHandler(provider);
- bootHandlers.put(provider, th);
- }
- return th;
- }
- }
-
private String getBootHandlerProvider(Task t)
throws InvalidServiceContactException, IllegalSpecException {
String jm = getJobManager(t);
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-09-30 16:50:03 UTC (rev 2203)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/ServiceManager.java 2008-09-30 16:51:12 UTC (rev 2204)
@@ -29,7 +29,9 @@
import org.globus.cog.abstraction.impl.common.ProviderMethodException;
import org.globus.cog.abstraction.impl.common.StatusEvent;
import org.globus.cog.abstraction.impl.common.task.ExecutionServiceImpl;
+import org.globus.cog.abstraction.impl.common.task.IllegalSpecException;
import org.globus.cog.abstraction.impl.common.task.InvalidProviderException;
+import org.globus.cog.abstraction.impl.common.task.InvalidServiceContactException;
import org.globus.cog.abstraction.impl.common.task.JobSpecificationImpl;
import org.globus.cog.abstraction.impl.common.task.TaskImpl;
import org.globus.cog.abstraction.impl.common.task.TaskSubmissionException;
@@ -37,6 +39,8 @@
import org.globus.cog.abstraction.interfaces.ExecutionService;
import org.globus.cog.abstraction.interfaces.FileLocation;
import org.globus.cog.abstraction.interfaces.JobSpecification;
+import org.globus.cog.abstraction.interfaces.SecurityContext;
+import org.globus.cog.abstraction.interfaces.ServiceContact;
import org.globus.cog.abstraction.interfaces.Status;
import org.globus.cog.abstraction.interfaces.StatusListener;
import org.globus.cog.abstraction.interfaces.Task;
@@ -71,6 +75,7 @@
private LocalService localService;
private Map services;
private Map credentials;
+ private Map bootHandlers;
private Set starting;
private Map usageCount;
private ServiceReaper serviceReaper;
@@ -80,25 +85,39 @@
credentials = new HashMap();
starting = new HashSet();
usageCount = new HashMap();
+ bootHandlers = new HashMap();
serviceReaper = new ServiceReaper();
Runtime.getRuntime().addShutdownHook(serviceReaper);
}
- public String reserveService(Task task, TaskHandler bootHandler,
+ private TaskHandler getBootHandler(String provider)
+ throws InvalidServiceContactException, InvalidProviderException,
+ ProviderMethodException, IllegalSpecException {
+ synchronized (bootHandlers) {
+ TaskHandler th = (TaskHandler) bootHandlers.get(provider);
+ if (th == null) {
+ th = AbstractionFactory.newExecutionTaskHandler(provider);
+ bootHandlers.put(provider, th);
+ }
+ return th;
+ }
+ }
+
+ public String reserveService(ServiceContact contact, SecurityContext sc,
String bootHandlerProvider) throws TaskSubmissionException {
if (logger.isDebugEnabled()) {
- logger.debug("Reserving service for " + task);
+ logger.debug("Reserving service " + contact);
}
try {
- Object service = getService(task);
// beah. it's impossible to nicely abstract both concurrency
// and normal program semantics
- String url = waitForStart(service);
+ String url = waitForStart(contact);
if (url == null) {
- url = startService(task, bootHandler, bootHandlerProvider,
- service);
+ url = startService(contact, sc,
+ getBootHandler(bootHandlerProvider),
+ bootHandlerProvider);
}
- increaseUsageCount(service);
+ increaseUsageCount(contact);
return url;
}
catch (Exception e) {
@@ -107,6 +126,11 @@
}
}
+ public String reserveService(Task task, String bootHandlerProvider)
+ throws TaskSubmissionException {
+ return reserveService(getContact(task), getSecurityContext(task) ,bootHandlerProvider);
+ }
+
protected String waitForStart(Object service) throws InterruptedException {
synchronized (services) {
while (starting.contains(service)) {
@@ -124,37 +148,38 @@
localService.heardOf(id);
}
- protected String startService(Task task, TaskHandler bootHandler,
- String bootHandlerProvider, Object service) throws Exception {
+ protected String startService(ServiceContact contact, SecurityContext sc,
+ TaskHandler bootHandler, String bootHandlerProvider)
+ throws Exception {
try {
startLocalService();
- Task t = buildTask(task);
- setSecurityContext(t, task, bootHandlerProvider);
+ Task t = buildTask(contact);
+ setSecurityContext(t, sc, bootHandlerProvider);
t.addStatusListener(this);
if (logger.isDebugEnabled()) {
- logger.debug("Starting coaster service on "
- + task.getService(0) + ". Task is " + t);
+ logger.debug("Starting coaster service on " + contact
+ + ". Task is " + t);
}
bootHandler.submit(t);
String url = localService.waitForRegistration(t, (String) t
.getAttribute(TASK_ATTR_ID));
synchronized (services) {
- services.put(service, url);
- credentials.put(url, task.getService(0).getSecurityContext()
- .getCredentials());
+ services.put(contact, url);
+ credentials.put(url, sc.getCredentials());
}
return url;
}
finally {
synchronized (services) {
- starting.remove(service);
+ starting.remove(contact);
services.notifyAll();
}
}
}
- private void setSecurityContext(Task t, Task orig, String provider)
- throws InvalidProviderException, ProviderMethodException {
+ private void setSecurityContext(Task t, SecurityContext sc,
+ String provider) throws InvalidProviderException,
+ ProviderMethodException {
t.getService(0).setSecurityContext(
AbstractionFactory.newSecurityContext(provider));
}
@@ -169,8 +194,8 @@
}
String url;
synchronized (services) {
- Object service = getService(t);
- url = (String) services.remove(service);
+ ServiceContact contact = getContact(t);
+ url = (String) services.remove(contact);
if (url == null) {
logger
.info("Service does not appear to be registered with this manager");
@@ -207,11 +232,15 @@
}
}
- protected Object getService(Task task) {
- return task.getService(0).getServiceContact().toString();
+ protected ServiceContact getContact(Task task) {
+ return task.getService(0).getServiceContact();
}
+
+ protected SecurityContext getSecurityContext(Task task) {
+ return task.getService(0).getSecurityContext();
+ }
- private Task buildTask(Task orig) throws TaskSubmissionException {
+ private Task buildTask(ServiceContact sc) throws TaskSubmissionException {
try {
Task t = new TaskImpl();
t.setType(Task.JOB_SUBMISSION);
@@ -228,12 +257,12 @@
String id = getRandomID();
t.setAttribute(TASK_ATTR_ID, id);
js.addArgument(id);
- js.addArgument(orig.getService(0).getServiceContact().getHost());
+ js.addArgument(sc.getHost());
js.setStdOutputLocation(FileLocation.MEMORY);
js.setStdErrorLocation(FileLocation.MEMORY);
t.setSpecification(js);
ExecutionService s = new ExecutionServiceImpl();
- s.setServiceContact(orig.getService(0).getServiceContact());
+ s.setServiceContact(sc);
s.setJobManager("fork");
t.setService(0, s);
return t;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:50:21
|
Revision: 2203
http://cogkit.svn.sourceforge.net/cogkit/?rev=2203&view=rev
Author: hategan
Date: 2008-09-30 16:50:03 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
a method to force non-idleness
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/NotificationManager.java
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/NotificationManager.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/NotificationManager.java 2008-09-30 16:48:00 UTC (rev 2202)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/impl/execution/coaster/NotificationManager.java 2008-09-30 16:50:03 UTC (rev 2203)
@@ -93,6 +93,12 @@
}
}
+ public void notIdle() {
+ synchronized(tasks) {
+ lastNotificationTime = System.currentTimeMillis();
+ }
+ }
+
public int getActiveTaskCount() {
synchronized(tasks) {
return tasks.size();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:48:23
|
Revision: 2202
http://cogkit.svn.sourceforge.net/cogkit/?rev=2202&view=rev
Author: hategan
Date: 2008-09-30 16:48:00 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
ability to flush a channel
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/KarajanChannel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java 2008-09-30 16:46:45 UTC (rev 2201)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractKarajanChannel.java 2008-09-30 16:48:00 UTC (rev 2202)
@@ -363,4 +363,7 @@
logger.warn(e);
}
}
+
+ public void flush() throws IOException {
+ }
}
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java 2008-09-30 16:46:45 UTC (rev 2201)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java 2008-09-30 16:48:00 UTC (rev 2202)
@@ -150,7 +150,13 @@
protected void register() {
getMultiplexer(FAST).register(this);
}
+
+ public void flush() throws IOException {
+ outputStream.flush();
+ }
+
+
private static final int SENDER_COUNT = 1;
private static Sender[] sender;
private static int crtSender;
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/KarajanChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/KarajanChannel.java 2008-09-30 16:46:45 UTC (rev 2201)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/KarajanChannel.java 2008-09-30 16:48:00 UTC (rev 2202)
@@ -9,6 +9,7 @@
*/
package org.globus.cog.karajan.workflow.service.channels;
+import java.io.IOException;
import java.net.URI;
import org.globus.cog.karajan.workflow.service.ProtocolException;
@@ -73,4 +74,6 @@
URI getCallbackURI() throws Exception;
void setRequestManager(RequestManager requestManager);
+
+ void flush() throws IOException;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:47:07
|
Revision: 2201
http://cogkit.svn.sourceforge.net/cogkit/?rev=2201&view=rev
Author: hategan
Date: 2008-09-30 16:46:45 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
changed log level
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/MetaChannel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/MetaChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/MetaChannel.java 2008-09-30 16:45:40 UTC (rev 2200)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/MetaChannel.java 2008-09-30 16:46:45 UTC (rev 2201)
@@ -63,7 +63,7 @@
public synchronized void bind(KarajanChannel channel) throws ChannelException {
if (channel == current) {
- logger.warn("Trying to re-bind current channel");
+ logger.info("Trying to re-bind current channel");
return;
}
logger.info(this + ".bind -> " + channel);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:45:58
|
Revision: 2200
http://cogkit.svn.sourceforge.net/cogkit/?rev=2200&view=rev
Author: hategan
Date: 2008-09-30 16:45:40 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
small updates
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/commands/Command.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/commands/Command.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/commands/Command.java 2008-09-30 16:44:14 UTC (rev 2199)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/commands/Command.java 2008-09-30 16:45:40 UTC (rev 2200)
@@ -10,8 +10,8 @@
package org.globus.cog.karajan.workflow.service.commands;
import java.io.IOException;
+import java.util.Collection;
import java.util.Iterator;
-import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
@@ -88,8 +88,10 @@
public void send() throws ProtocolException {
KarajanChannel channel = getChannel();
- logger.info("Sending " + this + " on " + channel);
- List outData = getOutData();
+ if (logger.isInfoEnabled()) {
+ logger.info("Sending " + this + " on " + channel);
+ }
+ Collection outData = getOutData();
if (channel == null) {
throw new ProtocolException("Unregistered command");
}
@@ -110,12 +112,16 @@
channel.sendTaggedData(getId(), !i.hasNext(), buf);
}
}
- timer.schedule(timeout = new Timeout(), replyTimeout);
+ setupReplyTimeoutChecker();
}
catch (ChannelIOException e) {
reexecute(e.getMessage(), e);
}
}
+
+ protected void setupReplyTimeoutChecker() {
+ timer.schedule(timeout = new Timeout(), replyTimeout);
+ }
public byte[] execute(KarajanChannel channel) throws ProtocolException, IOException {
executeAsync(channel);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:44:35
|
Revision: 2199
http://cogkit.svn.sourceforge.net/cogkit/?rev=2199&view=rev
Author: hategan
Date: 2008-09-30 16:44:14 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
small updates
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/handlers/RequestHandler.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/handlers/RequestHandler.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/handlers/RequestHandler.java 2008-09-30 16:42:44 UTC (rev 2198)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/handlers/RequestHandler.java 2008-09-30 16:44:14 UTC (rev 2199)
@@ -9,8 +9,8 @@
*/
package org.globus.cog.karajan.workflow.service.handlers;
+import java.util.Collection;
import java.util.Iterator;
-import java.util.List;
import org.apache.log4j.Logger;
import org.globus.cog.karajan.workflow.service.ProtocolException;
@@ -26,8 +26,7 @@
protected void sendReply(byte[] data) throws ProtocolException {
addOutData(data);
- send();
- replySent = true;
+ sendReply();
}
protected void sendReply(String reply) throws ProtocolException {
@@ -59,7 +58,7 @@
public void send() throws ProtocolException {
KarajanChannel channel = getChannel();
- List outData = getOutData();
+ Collection outData = getOutData();
if (channel == null) {
throw new ProtocolException("Unregistered command");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:43:03
|
Revision: 2198
http://cogkit.svn.sourceforge.net/cogkit/?rev=2198&view=rev
Author: hategan
Date: 2008-09-30 16:42:44 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
added methods to pack/unpack more data types
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java 2008-09-30 16:40:55 UTC (rev 2197)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/RequestReply.java 2008-09-30 16:42:44 UTC (rev 2198)
@@ -81,6 +81,27 @@
addOutData(b);
}
+ protected void addOutData(long value) {
+ addOutData(pack(value));
+ }
+
+ protected byte[] pack(long value) {
+ byte[] b = new byte[8];
+ b[0] = (byte) (value & 0xff);
+ b[1] = (byte) ((value >> 8) & 0xff);
+ b[2] = (byte) ((value >> 16) & 0xff);
+ b[3] = (byte) ((value >> 24) & 0xff);
+ b[4] = (byte) ((value >> 32) & 0xff);
+ b[5] = (byte) ((value >> 40) & 0xff);
+ b[6] = (byte) ((value >> 48) & 0xff);
+ b[7] = (byte) ((value >> 56) & 0xff);
+ return b;
+ }
+
+ protected void addOutData(boolean value) {
+ addOutData(value ? 1 : 0);
+ }
+
protected void sendError(String error) throws ProtocolException {
sendError(error, null);
}
@@ -110,7 +131,6 @@
protected void dataReceived(byte[] data) throws ProtocolException {
}
-
protected synchronized void addInData(byte[] data) {
synchronized (this) {
if (inData == null) {
@@ -164,11 +184,40 @@
throw new IllegalArgumentException("Missing command argument #" + (index + 1));
}
}
+
+ public int getInDataSize() {
+ return inData.size();
+ }
public String getInDataAsString(int index) {
return new String(getInData(index));
}
+ public int getInDataAsInt(int index) {
+ byte[] b = getInData(index);
+ if (b.length != 4) {
+ throw new IllegalArgumentException("Wrong data size: " + b.length);
+ }
+ return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24);
+ }
+
+ public long getInDataAsLong(int index) {
+ return unpackLong(getInData(index));
+
+ }
+
+ protected long unpackLong(byte[] b) {
+ if (b.length != 8) {
+ throw new IllegalArgumentException("Wrong data size: " + b.length);
+ }
+ return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24) + (b[2] << 32) + (b[3] << 40)
+ + (b[2] << 48) + (b[3] << 56);
+ }
+
+ public boolean getInDataAsBoolean(int index) {
+ return getInDataAsInt(index) != 0;
+ }
+
public synchronized void setInData(int index, byte[] data) {
if (inData == null) {
inData = new LinkedList();
@@ -191,12 +240,12 @@
public KarajanChannel getChannel() {
return channel;
}
-
+
protected void setChannel(KarajanChannel channel) {
this.channel = channel;
}
- public List getOutData() {
+ public Collection getOutData() {
return outData;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:41:10
|
Revision: 2197
http://cogkit.svn.sourceforge.net/cogkit/?rev=2197&view=rev
Author: hategan
Date: 2008-09-30 16:40:55 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
updated implementations
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/GridFileImpl.java
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/PermissionsImpl.java
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/UnixPermissionsImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/GridFileImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/GridFileImpl.java 2008-09-30 16:39:31 UTC (rev 2196)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/GridFileImpl.java 2008-09-30 16:40:55 UTC (rev 2197)
@@ -24,12 +24,12 @@
private Permissions userPermissions = null;
private Permissions groupPermissions = null;
- private Permissions allPermissions = null;
+ private Permissions worldPermissions = null;
public GridFileImpl() {
userPermissions = new PermissionsImpl();
groupPermissions = new PermissionsImpl();
- allPermissions = new PermissionsImpl();
+ worldPermissions = new PermissionsImpl();
}
/** set name for the file */
@@ -133,15 +133,23 @@
}
/** set permissions for all users */
- public void setAllPermissions(Permissions allPermissions) {
- this.allPermissions = allPermissions;
+ public void setWorldPermissions(Permissions worldPermissions) {
+ this.worldPermissions = worldPermissions;
}
/** return permissions for all users */
+ public Permissions getWorldPermissions() {
+ return worldPermissions;
+ }
+
public Permissions getAllPermissions() {
- return allPermissions;
+ return getWorldPermissions();
}
+ public void setAllPermissions(Permissions worldPermissions) {
+ setWorldPermissions(worldPermissions);
+ }
+
/** return true if the user can read from this file */
public boolean userCanRead() {
return userPermissions.getRead();
@@ -174,17 +182,17 @@
/** return true if all users can read from this file */
public boolean allCanRead() {
- return allPermissions.getRead();
+ return worldPermissions.getRead();
}
/** return true if all users can write into this file */
public boolean allCanWrite() {
- return allPermissions.getWrite();
+ return worldPermissions.getWrite();
}
/** return true of all users can execute the current file */
public boolean allCanExecute() {
- return allPermissions.getExecute();
+ return worldPermissions.getExecute();
}
/** represents the entire grid file properties as a string */
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/PermissionsImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/PermissionsImpl.java 2008-09-30 16:39:31 UTC (rev 2196)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/PermissionsImpl.java 2008-09-30 16:40:55 UTC (rev 2197)
@@ -20,6 +20,12 @@
public PermissionsImpl() {
}
+ public PermissionsImpl(int digit) {
+ readable = (digit & 4) != 0;
+ writable = (digit & 2) != 0;
+ executable = (digit & 1) != 0;
+ }
+
/** set/unset readable */
public void setRead(boolean canRead) {
this.readable = canRead;
@@ -50,20 +56,14 @@
return this.executable;
}
- /** return a string representation of the mode. Pattern 777 */
+ /**
+ * Returns a string representing the octal digit of this permission
+ */
public String toString() {
- String mode = getVal(getRead()) + getVal(getWrite())
- + getVal(getExecute());
- return String.valueOf((Integer.parseInt(mode, 2)));
+ return String.valueOf(toDigit());
}
- /** return 1 if value = true, else return 0 */
- private String getVal(boolean value) {
- if (value == true) {
- return "1";
- }
- else {
- return "0";
- }
+ public int toDigit() {
+ return (readable ? 4 : 0) + (writable ? 2 : 0) + (executable ? 1 : 0);
}
}
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/UnixPermissionsImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/UnixPermissionsImpl.java 2008-09-30 16:39:31 UTC (rev 2196)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/UnixPermissionsImpl.java 2008-09-30 16:40:55 UTC (rev 2197)
@@ -60,4 +60,8 @@
public boolean getExecute() {
return (value & 1) != 0;
}
+
+ public int toDigit() {
+ return value;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:39:50
|
Revision: 2196
http://cogkit.svn.sourceforge.net/cogkit/?rev=2196&view=rev
Author: hategan
Date: 2008-09-30 16:39:31 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
added method to get some uniform representation between implementations
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/Permissions.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/Permissions.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/Permissions.java 2008-09-30 16:37:48 UTC (rev 2195)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/Permissions.java 2008-09-30 16:39:31 UTC (rev 2196)
@@ -33,4 +33,6 @@
/** return permissions as a string. pattern 777 */
public String toString();
+
+ public int toDigit();
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:38:12
|
Revision: 2195
http://cogkit.svn.sourceforge.net/cogkit/?rev=2195&view=rev
Author: hategan
Date: 2008-09-30 16:37:48 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
trying to eliminate some ambiguity
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/GridFile.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/GridFile.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/GridFile.java 2008-09-30 16:36:28 UTC (rev 2194)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/GridFile.java 2008-09-30 16:37:48 UTC (rev 2195)
@@ -77,11 +77,19 @@
/** get permissions of the group users */
public Permissions getGroupPermissions();
- /** set permissions for all users */
+ /** set permissions for all users
+ * @deprecated The name is ambiguous. Use setWorldPermissions()
+ */
public void setAllPermissions(Permissions allPermissions);
+
+ public void setWorldPermissions(Permissions worldPermissions);
- /** get permissions of all users */
+ /** get permissions of all users
+ * @deprecated The name is ambiguous. Use getWorldPermissions()
+ */
public Permissions getAllPermissions();
+
+ public Permissions getWorldPermissions();
/** return true if the user can read the file */
public boolean userCanRead();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-30 16:36:45
|
Revision: 2194
http://cogkit.svn.sourceforge.net/cogkit/?rev=2194&view=rev
Author: hategan
Date: 2008-09-30 16:36:28 +0000 (Tue, 30 Sep 2008)
Log Message:
-----------
updated javadoc a bit
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/FileResource.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/FileResource.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/FileResource.java 2008-09-25 00:18:36 UTC (rev 2193)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/interfaces/FileResource.java 2008-09-30 16:36:28 UTC (rev 2194)
@@ -107,14 +107,16 @@
public String getCurrentDirectory() throws FileResourceException;
/**
- * Returns the list of files in the current working directory
+ * Returns the list of files in the current working directory as a
+ * collection of GridFile objects
*
* @throws FileResourceException
*/
public Collection list() throws FileResourceException;
/**
- * Returns the list of files in the given directory
+ * Returns the list of files in the given directory as a
+ * collection of GridFile objects
*
* @throws FileResourceException
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-25 00:18:47
|
Revision: 2193
http://cogkit.svn.sourceforge.net/cogkit/?rev=2193&view=rev
Author: hategan
Date: 2008-09-25 00:18:36 +0000 (Thu, 25 Sep 2008)
Log Message:
-----------
synchronize on the right thing there
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java
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-09-24 19:59:48 UTC (rev 2192)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java 2008-09-25 00:18:36 UTC (rev 2193)
@@ -218,7 +218,7 @@
prototype.setStatus(new StatusImpl(Status.FAILED, e.getMessage(),
e));
}
- synchronized (requested) {
+ synchronized (this) {
requested.putAll(newlyRequested);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <li...@us...> - 2008-09-24 20:00:04
|
Revision: 2192
http://cogkit.svn.sourceforge.net/cogkit/?rev=2192&view=rev
Author: liuwt
Date: 2008-09-24 19:59:48 +0000 (Wed, 24 Sep 2008)
Log Message:
-----------
update the code to work fine with CoG 1.5
Added Paths:
-----------
trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/transfer/DirTransferRequest.java
Added: trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/transfer/DirTransferRequest.java
===================================================================
--- trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/transfer/DirTransferRequest.java (rev 0)
+++ trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/transfer/DirTransferRequest.java 2008-09-24 19:59:48 UTC (rev 2192)
@@ -0,0 +1,402 @@
+package org.globus.ogce.beans.filetransfer.transfer;
+
+import org.apache.log4j.Logger;
+import org.globus.ftp.FileInfo;
+import org.globus.ftp.MlsxEntry;
+import org.globus.ogce.beans.filetransfer.gui.MainInterface;
+import org.globus.ogce.beans.filetransfer.gui.local.LocalTreePanel;
+import org.globus.ogce.beans.filetransfer.gui.remote.common.DisplayInterface;
+import org.globus.ogce.beans.filetransfer.util.FileToTransfer;
+import org.globus.ogce.beans.filetransfer.util.GridBrokerQueue;
+
+import javax.swing.*;
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Vector;
+
+public class DirTransferRequest {
+
+ private static Logger logger =
+ Logger.getLogger(DirTransferRequest.class.getName());
+
+ LocalTreePanel toLocal = null, fromLocal = null;
+ DisplayInterface toRemote = null, fromRemote = null;
+ String to = "",from = "";
+
+ String fromFileSep = "", toFileSep = "";
+ boolean dragLocal = true;
+ DisplayInterface display = null;
+ boolean dropLocal = false;
+ private MainInterface theApp = null;
+ int submitCount = 0;
+ String rootfrom = null,rootto = null;
+ GridBrokerQueue requestQueue = null;
+ String provider = null;
+ int noOfFiles = 0;
+ String fromFullURL = null;
+ String toFullURL = null;
+ boolean start = true;
+ Thread newThread = null;
+ String status = null;
+ Vector dirVector = null;
+
+ public DirTransferRequest(MainInterface theApp,
+ LocalTreePanel fromLocal,
+ LocalTreePanel toLocal,
+ DisplayInterface fromRemote,
+ DisplayInterface toRemote,
+ String from, String to,
+ boolean dragLocal, boolean dropLocal,
+ String provider) {
+ this.toLocal = toLocal;
+ this.fromLocal = fromLocal;
+ this.toRemote = toRemote;
+ this.fromRemote = fromRemote;
+ this.to = to;
+ this.from = from;
+ this.dragLocal = dragLocal;
+ this.dropLocal = dropLocal;
+ this.theApp = theApp;
+ this.provider = provider;
+ requestQueue = new GridBrokerQueue();
+ dirVector = new Vector();
+ }
+
+ public void suspend() {
+ status = "Suspended";
+ start = false;
+ newThread.suspend();
+ }
+
+ public void resume() {
+ start = true;
+ status = "Resumed";
+ newThread.resume();
+ // theApp.startActualTransfer(requestQueue,provider);
+ }
+
+ public void kill() {
+
+ requestQueue.deleteAll();
+ // suspend();
+ status = "Failed";
+ newThread.stop();
+ newThread = null;
+
+ }
+
+ public String getTotalFiles() {
+ return noOfFiles + "";
+ }
+
+ public String getFrom() {
+ if (dragLocal) {
+ fromFullURL = "file:///";
+ } else {
+ fromFullURL = fromRemote.getRootURL();
+ }
+ fromFullURL += from;
+ return fromFullURL;
+ }
+
+ public String getTo() {
+ if (dropLocal) {
+ toFullURL = "file:///";
+ } else {
+ toFullURL = toRemote.getRootURL();
+ }
+ toFullURL += to;
+ return toFullURL;
+ }
+
+ public void run() {
+ newThread = new Thread() {
+ public void run() {
+ putRequest();
+ }
+ };
+ newThread.start();
+ }
+
+
+ public void putRequest() {
+
+ status = "Active";
+ if (dropLocal) {
+ rootto = "file:///";
+ toFileSep = toLocal.LclFile_Sep;
+ } else {
+ rootto = toRemote.getRootURL();
+ toFileSep = "/";
+ }
+ boolean isDir = false;
+ File dir = null;
+ if (dragLocal) {
+ rootfrom = "file:///";
+ dir = new File(from);
+ isDir = dir.isDirectory();
+ fromFileSep = fromLocal.LclFile_Sep;
+ } else {
+ rootfrom = fromRemote.getRootURL();
+ isDir = fromRemote.chdir(from);
+ fromFileSep = "/";
+ }
+
+ if (isDir) {
+ String fromCopy = from;
+ if (from.endsWith(fromFileSep)) {
+ from = from.substring(0, from.length() - 1);
+ }
+ int index = from.lastIndexOf(fromFileSep);
+ String firstDir = from.substring(index + 1);
+ logger.info("This is a directory");
+ firstDir.replace(fromFileSep.charAt(0), toFileSep.charAt(0));
+ String fromSource = getFrom();
+ String toDest = getTo() + firstDir;
+
+ if (!toDest.startsWith("file")) {
+ toDest = toDest.replaceAll("///", "//");
+ }
+
+ logger.info("From :" + fromSource + "To: " + toDest);
+ if (fromSource.equals(toDest)) {
+ String alertMsg = "Destination cannot be same as Source.";
+ JOptionPane.showMessageDialog(theApp, alertMsg);
+ status = "Failed";
+ return;
+ }
+ firstDir = firstDir + fromFileSep;
+ logger.info("First Dir:" + firstDir);
+ if (dragLocal) {
+ if (createDestDir(firstDir, "")) {
+ transferLocal(dir, firstDir);
+ if (checkVector()) {
+ status = "Finished";
+ } else {
+ status = "Failed";
+ }
+ } else {
+ return;
+ }
+
+ } else {
+ if (createDestDir(firstDir, "")) {
+ transferRemote(from + fromFileSep, firstDir);
+ if (checkVector()) {
+ status = "Finished";
+ } else {
+ status = "Failed";
+ }
+ } else {
+ return;
+ }
+ }
+ } else {
+ logger.info("This is a file");
+ putFile(from);
+ status = "Finished";
+ }
+
+ if (start && status.equals("Finished")) {
+ theApp.startActualTransfer(requestQueue, provider);
+ }
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void transferLocal(File fromDir, String startdir) {
+ if (!start) {
+ return;
+ }
+
+ File[] files = fromDir.listFiles();
+ logger.info("\nLISTING DIR: " + fromDir);
+
+ for (int i = 0; i < files.length; i++) {
+ File current = files[i];
+ if (current.isDirectory()) {
+
+ if (!createDestDir(current.getName(), startdir)) {
+ logger.info("\nDir creation failed =" + current.getName());
+ break;
+ } else {
+ logger.info("\nDir created successfully =" + current.getName());
+ transferLocal(current, startdir + current.getName() + fromFileSep);
+ }
+ } else {
+ putFile(fromDir.getAbsolutePath() + fromFileSep + current.getName());
+ }
+ }
+ }
+
+ public void putFile(String fromFullPath) {
+ noOfFiles++;
+ theApp.msgOut("\nCounting number of files :" + noOfFiles);
+ String fromSourceURL = rootfrom + fromFullPath;
+ int index = from.lastIndexOf(fromFileSep);
+ String toFullPath = fromFullPath.substring(index + 1);
+ toFullPath = toFullPath.replace(fromFileSep.charAt(0), toFileSep.charAt(0));
+ String toDestinationURL = rootto + to + toFullPath;
+
+ String checkFrom = fromSourceURL.replaceAll("//", "/");
+ String checkTo = toDestinationURL.replaceAll("//", "/");
+ checkFrom = checkFrom.replaceAll("//", "/");
+ checkTo = checkTo.replaceAll("//", "/");
+
+ if (checkFrom.equals(checkTo)) {
+ String alertMsg = "Destination cannot be same as Source.";
+ JOptionPane.showMessageDialog(theApp, alertMsg);
+ status = "Failed";
+ return;
+ } else {
+ FileToTransfer fileToTransfer = new FileToTransfer(fromSourceURL, toDestinationURL, provider);
+
+ requestQueue.put(fileToTransfer);
+ return;
+ }
+
+ }
+
+ public boolean createDestDir(String newDir, String location) {
+ newDir = newDir.replace(fromFileSep.charAt(0), toFileSep.charAt(0));
+ location = location.replace(fromFileSep.charAt(0), toFileSep.charAt(0));
+ String remoteNewDir = null;
+ if (location != null) {
+ remoteNewDir = to + location + newDir;
+ } else {
+ remoteNewDir = to + newDir;
+ }
+ String toCheck = remoteNewDir.replaceAll("//", "/");
+ if (toCheck.endsWith(toFileSep)) {
+ toCheck = toCheck.substring(0, toCheck.length() - 1);
+ }
+ if (toCheck.equals(from)) {
+ String alertMsg = "Destination cannot be same as Source.";
+ JOptionPane.showMessageDialog(theApp, alertMsg);
+ status = "Failed";
+ return false;
+ }
+ if (remoteNewDir.indexOf(from) >= 0) {
+ logger.info("\nStore in hashtable remote dir =" + remoteNewDir +
+ "\nFrom : " + from);
+ dirVector.add(remoteNewDir);
+ return true;
+ } else {
+
+ logger.info("\nCreating remote dir =" + remoteNewDir +
+ "\nAT : " + to + location);
+
+ boolean created = createDestDir(remoteNewDir);
+ if (created) {
+ logger.info("DESTINATION DIRECTORY CREATED");
+ } else {
+ logger.info("DESTINATION DIRECTORY not created");
+ }
+ return created;
+ }
+ }
+
+ public boolean createDestDir(String remoteNewDir) {
+ theApp.msgOut("\nCreating remote dir =" + remoteNewDir);
+ if (dropLocal) {
+
+ try {
+ File newfile = new File(remoteNewDir);
+ if (newfile.exists()) {
+ return true;
+ }
+ if (newfile.mkdir()) {
+ logger.info("Directory successfully created : " + remoteNewDir);
+
+ return true;
+ } else {
+ String alertMsg = "You do not have permissions to " +
+ "to create new directories in the local machine.\n Transfer failed. Please set the permissions and try again.";
+ JOptionPane.showMessageDialog(theApp, alertMsg);
+ status = "Failed";
+ return false;
+ }
+ } catch (Exception e) {
+ return false;
+ }
+ } else {
+ if (toRemote.mkdir(remoteNewDir)) {
+ logger.info("Directory successfully created : " + remoteNewDir);
+ return true;
+ } else {
+ String alertMsg = "You do not have permissions to " +
+ "to create new directories at Destination.\n" +
+ " Transfer failed. Please set the permissions and try again. ";
+ JOptionPane.showMessageDialog(theApp, alertMsg);
+ status = "Failed";
+ return false;
+ }
+ }
+
+ }
+
+ /**
+ * This method was to avoid recursive creation and travesing of
+ * directory when a directory is dragged and dropped into a one of its
+ * child directories.
+ *
+ */
+ public boolean checkVector() {
+ boolean success = true;
+ while (dirVector.size() > 0) {
+ String newDir = (String) dirVector.remove(0);
+ if (!createDestDir(newDir)) {
+ success = false;
+ break;
+ }
+ }
+ return success;
+ }
+ //Here there is no way to get the absolute path. So send the fullpath.
+
+ public void transferRemote(String fullpath, String startdir) {
+ if (!start) {
+ return;
+ }
+ Vector vector = fromRemote.listTransferDir(fullpath);
+ if (vector == null) {
+ logger.info("\nThis is an empty directory.");
+ } else {
+ Enumeration enum1 = vector.elements();
+ while (enum1.hasMoreElements()) {
+ MlsxEntry current = (MlsxEntry) enum1.nextElement();
+ if (null != current.getFileName() &&
+ !"cdir".equals(current.get("type")) && !"pdir".equals(current.get("type"))) {
+ //System.out.println(current);
+ //it's a soft link
+ if (current.get("unix.slink") != null) {
+ ;
+ } else {
+ if ("dir".equals(current.get("type"))) {
+// if ((current.getName().equals("//dev")) ||
+// (current.isDevice())) {
+// ;
+// } else {
+ if(!".".equals(current.getFileName()) && !"..".equals(current.getFileName())) {
+ if (!createDestDir(current.getFileName(), startdir)) {
+ break;
+ }
+ transferRemote(fullpath + current.getFileName()
+ + fromFileSep,
+ startdir + current.getFileName()
+ + fromFileSep);
+ }
+
+ //}
+
+ } else {
+ putFile(fullpath + fromFileSep + current.getFileName());
+ }
+ }
+ }
+ }
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <li...@us...> - 2008-09-24 19:58:32
|
Revision: 2191
http://cogkit.svn.sourceforge.net/cogkit/?rev=2191&view=rev
Author: liuwt
Date: 2008-09-24 19:58:24 +0000 (Wed, 24 Sep 2008)
Log Message:
-----------
Modified Paths:
--------------
trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/GridFTPGUIView.java
Modified: trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/GridFTPGUIView.java
===================================================================
--- trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/GridFTPGUIView.java 2008-09-24 19:55:59 UTC (rev 2190)
+++ trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/GridFTPGUIView.java 2008-09-24 19:58:24 UTC (rev 2191)
@@ -615,7 +615,12 @@
}//GEN-LAST:event_jMenuItem7ActionPerformed
private void localFrameHandle() {
- boolean isRFTEnabled = (new Boolean((String)Utils.getProperty("rft_enabled", "rft.properties"))).booleanValue();
+ boolean isRFTEnabled;
+ try {
+ isRFTEnabled = (new Boolean((String)Utils.getProperty("rft_enabled", "rft.properties"))).booleanValue();
+ } catch (Exception e) {
+ isRFTEnabled = false;
+ }
if (isRFTEnabled) {
JOptionPane.showMessageDialog(null, "RFT is enabled, you can not use local dialog",
"Message", JOptionPane.ERROR_MESSAGE);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <li...@us...> - 2008-09-24 19:56:12
|
Revision: 2190
http://cogkit.svn.sourceforge.net/cogkit/?rev=2190&view=rev
Author: liuwt
Date: 2008-09-24 19:55:59 +0000 (Wed, 24 Sep 2008)
Log Message:
-----------
update the code to work fine with CoG 1.5
Modified Paths:
--------------
trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/remote/common/RemoteTree.java
Modified: trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/remote/common/RemoteTree.java
===================================================================
--- trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/remote/common/RemoteTree.java 2008-09-24 19:54:44 UTC (rev 2189)
+++ trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/remote/common/RemoteTree.java 2008-09-24 19:55:59 UTC (rev 2190)
@@ -4,6 +4,7 @@
import org.apache.log4j.Logger;
import org.globus.ftp.FileInfo;
+import org.globus.ftp.MlsxEntry;
import org.globus.ogce.beans.filetransfer.util.DirInfo;
import org.globus.ogce.beans.filetransfer.util.DirQueue;
import org.globus.ogce.beans.filetransfer.util.GridTransferable;
@@ -557,15 +558,20 @@
}*/
}
- FileInfo temp[] = new FileInfo[vector.size()];
+ //FileInfo temp[] = new FileInfo[vector.size()];
+ MlsxEntry temp[] = new MlsxEntry[vector.size()];
String as[] = new String[vector.size()];
int p = 0;
Enumeration enum1 = vector.elements();
while (enum1.hasMoreElements()) {
- FileInfo file = (FileInfo) enum1.nextElement();
- as[p] = file.getName();
- temp[p] = file;
- p++;
+ MlsxEntry entry = (MlsxEntry) enum1.nextElement();
+ if (null != entry) {
+ as[p] = entry.getFileName();
+ temp[p] = entry;
+ p++;
+ }
+ //System.out.println(entry);
+
}
if (as == null) {
@@ -578,36 +584,39 @@
return;
}
statusOut("Listing the directories...");
+ String fullName = null;
for (int j = 0; j < i; j++) {
if (s.endsWith("/")) {
- temp[j].setName(s + as[j]);
+ fullName = s + as[j];
+ //temp[j].setName(s + as[j]);
} else {
- temp[j].setName(s + "/" + as[j]);
+ fullName = s + "/" + as[j];
+ //temp[j].setName(s + "/" + as[j]);
}
- file1 = (FileInfo) temp[j];
+ //file1 = (FileInfo) temp[j];
+
+ if ("dir".equals(temp[j].get("type"))) {
- if (file1.isDirectory()) {
-
- if (file1.isSoftLink()) {
+ if (temp[j].get("unix.slink") != null) {
;
} else {
- if ((file1.getName().equals("//dev")) ||
- (file1.isDevice())) {
- logger.info("\nIt is a device directory");
- addObject(defaultmutabletreenode, as[j], flag);
- statusOut("Disabled the device directory" + file1.getName());
-
- } else if ((file1.getName().equals("?"))) {
- logger.info("\nDir name could not be parsed");
- statusOut("The Parser could not parse filename");
-
- } else {
-
+// if ((file1.getName().equals("//dev")) ||
+// (file1.isDevice())) {
+// logger.info("\nIt is a device directory");
+// addObject(defaultmutabletreenode, as[j], flag);
+// statusOut("Disabled the device directory" + file1.getName());
+//
+// } else if ((file1.getName().equals("?"))) {
+// logger.info("\nDir name could not be parsed");
+// statusOut("The Parser could not parse filename");
+//
+// } else {
+ //System.out.println(as[j]);
DefaultMutableTreeNode defaultmutabletreenode1
= addObject(defaultmutabletreenode, as[j] + "/", flag);
addObject(defaultmutabletreenode1, "", false);
- }
+ //}
}
}
}
@@ -615,19 +624,21 @@
for (int k = 0; k < i; k++) {
if (s.endsWith("/")) {
- temp[k].setName(s + as[k]);
+ fullName = s + as[k];
+ //temp[k].setName(s + as[k]);
} else {
- temp[k].setName(s + "/" + as[k]);
+ fullName = s + "/" + as[k];
+ //temp[k].setName(s + "/" + as[k]);
}
- file2 = temp[k];
+ //file2 = temp[k];
- if (file2.isFile()) {
- if (file2.isSoftLink()) {
+ if ("file".equals(temp[k].get("type"))) {
+ if (temp[k].get("unix.slink") != null) {
logger.info("\nThis is a softlink.");
- } else if ((file2.getName().equals("?"))) {
- logger.info("\nFile name could not be parsed");
- statusOut("The Parser could not parse file");
-
+// } else if ((file2.getName().equals("?"))) {
+// logger.info("\nFile name could not be parsed");
+// statusOut("The Parser could not parse file");
+//
} else {
addObject(defaultmutabletreenode, as[k], flag);
statusOut("Done. Status: Ready");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <li...@us...> - 2008-09-24 19:54:55
|
Revision: 2189
http://cogkit.svn.sourceforge.net/cogkit/?rev=2189&view=rev
Author: liuwt
Date: 2008-09-24 19:54:44 +0000 (Wed, 24 Sep 2008)
Log Message:
-----------
update the code to work fine with CoG 1.5
Modified Paths:
--------------
trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/monitor/UrlCopyPanel.java
Modified: trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/monitor/UrlCopyPanel.java
===================================================================
--- trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/monitor/UrlCopyPanel.java 2008-09-23 21:29:04 UTC (rev 2188)
+++ trunk/current/src/cog/modules/transfer-gui/src/org/globus/ogce/beans/filetransfer/gui/monitor/UrlCopyPanel.java 2008-09-24 19:54:44 UTC (rev 2189)
@@ -2,9 +2,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.globus.gsi.gssapi.auth.Authorization;
+import org.globus.gsi.gssapi.auth.IdentityAuthorization;
import org.globus.io.urlcopy.UrlCopy;
import org.globus.io.urlcopy.UrlCopyListener;
import org.globus.ogce.beans.filetransfer.gui.MainInterface;
+import org.globus.ogce.beans.filetransfer.gui.remote.gridftp.GridClient;
import org.globus.ogce.beans.filetransfer.transfer.TransferInterface;
import org.globus.tools.ui.util.UITools;
import org.globus.transfer.reliable.client.utils.Utils;
@@ -125,19 +128,26 @@
c = new UrlCopy();
c.setSourceUrl(froms);
c.setDestinationUrl(tos);
-
+ Authorization auth = new IdentityAuthorization(GridClient.subject1);
+ c.setSourceAuthorization(auth);
+ c.setDestinationAuthorization(auth);
if (from.startsWith("gsiftp") && to.startsWith("gsiftp")) {
c.setUseThirdPartyCopy(true);
} else {
c.setUseThirdPartyCopy(false);
}
-
- int bufferSize = Integer.parseInt(Utils.getProperty("tcpbuffersize", "rft.properties"));
+ int bufferSize;
+ try {
+ bufferSize = Integer.parseInt(Utils.getProperty("tcpbuffersize", "rft.properties"));
+ } catch (Exception e) {
+ bufferSize = 16000;
+ }
c.setBufferSize(bufferSize);
c.setAppendMode(urlcopyOptions.getAppendMode());
c.setDCAU(urlcopyOptions.getDCAU());
c.addUrlCopyListener(this);
jobs.put(jobid, c);
+
long st = System.currentTimeMillis();
if (!(c.isCanceled())) {
printOutput("\n\n------------------------------\n");
@@ -145,7 +155,7 @@
printOutput("\n------------------------------\n");
updateTransfer(currentJob, "Active",
null, null, "No errors");
-
+
c.copy();
finalStatus = "Finished";
updateTransfer(currentJob, "Finished",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-23 21:29:09
|
Revision: 2188
http://cogkit.svn.sourceforge.net/cogkit/?rev=2188&view=rev
Author: hategan
Date: 2008-09-23 21:29:04 +0000 (Tue, 23 Sep 2008)
Log Message:
-----------
force redirection if sge is used
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-gt2/src/org/globus/cog/abstraction/impl/execution/gt2/JobSubmissionTaskHandler.java
Modified: trunk/current/src/cog/modules/provider-gt2/src/org/globus/cog/abstraction/impl/execution/gt2/JobSubmissionTaskHandler.java
===================================================================
--- trunk/current/src/cog/modules/provider-gt2/src/org/globus/cog/abstraction/impl/execution/gt2/JobSubmissionTaskHandler.java 2008-09-23 04:44:45 UTC (rev 2187)
+++ trunk/current/src/cog/modules/provider-gt2/src/org/globus/cog/abstraction/impl/execution/gt2/JobSubmissionTaskHandler.java 2008-09-23 21:29:04 UTC (rev 2188)
@@ -309,6 +309,11 @@
}
else {
boolean batchJob = spec.isBatchJob();
+ if ("sge".equals(jobManager) && !batchJob) {
+ logger.info("Forcing redirection because the SGE JM is broken.");
+ spec.setStdOutputLocation(FileLocation.MEMORY);
+ spec.setStdErrorLocation(FileLocation.MEMORY);
+ }
boolean redirected = spec.getStdOutputLocation().overlaps(
FileLocation.MEMORY_AND_LOCAL)
|| spec.getStdErrorLocation().overlaps(
@@ -463,7 +468,6 @@
"Cannot parse the user defined attributes", e);
}
}
-
return rsl;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2008-09-23 04:44:51
|
Revision: 2187
http://cogkit.svn.sourceforge.net/cogkit/?rev=2187&view=rev
Author: hategan
Date: 2008-09-23 04:44:45 +0000 (Tue, 23 Sep 2008)
Log Message:
-----------
only flush when final flag is set
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java 2008-09-23 04:42:38 UTC (rev 2186)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/service/channels/AbstractStreamKarajanChannel.java 2008-09-23 04:44:45 UTC (rev 2187)
@@ -261,7 +261,9 @@
synchronized (os) {
os.write(shdr);
os.write(data);
- os.flush();
+ if ((flags & FINAL_FLAG) != 0) {
+ os.flush();
+ }
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|