SF.net SVN: fclient: [242] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-02-23 08:17:28
|
Revision: 242
http://fclient.svn.sourceforge.net/fclient/?rev=242&view=rev
Author: jurner
Date: 2008-02-23 00:17:33 -0800 (Sat, 23 Feb 2008)
Log Message:
-----------
removed Fcp bugfix ++ Completd flag is now set in finalizeRequest()
Modified Paths:
--------------
trunk/sandbox/fcp/fcp2_0_client.py
Modified: trunk/sandbox/fcp/fcp2_0_client.py
===================================================================
--- trunk/sandbox/fcp/fcp2_0_client.py 2008-02-21 13:14:57 UTC (rev 241)
+++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-23 08:17:33 UTC (rev 242)
@@ -167,7 +167,20 @@
# requests the node does not know about.
#
#------------------------------------------------------------------------------------------------------------------------------------------------
+# request status
+#
+# x. have to set a dedicated flag when a request is about to be modified or removed
+# Fcp gets confused if we disconnect emidiately after sending a modify or remove request
+# Curretnly the RequestStatus.Completed flag is removed and later set again to get some
+# control over the process.
+#
+# TODO: check if this is a bug in Fcp
+# NOTE: seems to be fixed in [build 1112], fixes removed
+#-------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
import atexit
import copy
import cPickle
@@ -371,7 +384,8 @@
removeRequest = request.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection
if removeRequest:
request['FcRequestStatus'] |= consts.RequestStatus.RemovedFromQueue
-
+
+ request['FcRequestStatus'] |= consts.RequestStatus.Completed
if event is not None:
event(request)
@@ -761,37 +775,25 @@
# handle plugin related request failures
- elif code == consts.ProtocolError.NoSuchPlugin:
+ elif code == consts.ProtocolError.NoSuchPlugin or code == consts.ProtocolError.AccessDenied:
if initialRequest.name == consts.Message.GetPluginInfo:
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error
self._finalizeRequest(msg, initialRequest, self.events.PluginInfoFailed)
return True
+
+ # TODO: just a guess that FCPPluginMessage can trigger an AccessDenied error
elif initialRequest.name == consts.Message.FCPPluginMessage:
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error
self._finalizeRequest(msg, initialRequest, self.events.PluginMessageFailed)
return True
- elif code == consts.ProtocolError.AccessDenied:
- if initialRequest.name == consts.Message.PluginInfo:
- self.events.PluginInfoFailed(initialRequest)
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Completed
- del self._requests[requestIdentifier]
- return True
- # TODO: just a guess that FCPPluginMessage can trigger an AccessDenied error
- elif initialRequest.name == consts.Message.FCPPluginMessage:
- self.events.PluginMessageFailed(initialRequest)
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Completed
- del self._requests[requestIdentifier]
- return True
-
-
# only requests should get through to here
# NOTE: Fcp already removed the request
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error
self._finalizeRequest(msg, initialRequest, self.events.RequestFailed)
return True
@@ -871,7 +873,7 @@
if testFailed:
#TODO: check if errorMsg gives reasonable feedback
- initialRequest['FcRequestStatus'] = consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] = consts.RequestStatus.Error
initialRequest['FcErrorMessage'] = initialRequest['FcTestDDA']['ErrorMsg']
self._finalizeRequest(msg, initialRequest, self.events.RequestFailed)
return True
@@ -905,7 +907,7 @@
if initialRequest is None:
return False
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
initialRequest.data = msg.data
self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
return True
@@ -932,7 +934,6 @@
OnlyData=True
)
else:
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Completed
self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
return True
@@ -950,11 +951,11 @@
if code == consts.FetchError.TooBig and initialRequest['FcRequestType'] == consts.RequestType.GetKeyInfo:
initialRequest['FcMetadataContentType'] = msg.get('ExpectedMetadata.ContentType', '')
initialRequest['FcDataLength'] = msg.get('ExpectedDataLength', -1)
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
else:
initialRequest['FcErrorMessage'] = msg
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error
self._finalizeRequest(msg, initialRequest, self.events.RequestFailed)
return True
@@ -1034,7 +1035,7 @@
if initialRequest is None:
return False
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Removed | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Removed
self._finalizeRequest(msg, initialRequest, self.events.RequestRemoved)
return True
@@ -1106,7 +1107,7 @@
if code == consts.InsertError.Canceled:
return False
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Error
initialRequest['FcErrorMessage'] = msg
self._finalizeRequest(msg, initialRequest, self.events.RequestFailed)
return True
@@ -1127,7 +1128,7 @@
# TODO: StartupTime and CompletionTime are passed, but
# as long as no corrosponding params are passed in DataFound
# we ignore them
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
initialRequest['URI'] = msg['URI']
self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
return True
@@ -1194,14 +1195,14 @@
if initialRequest is None:
return False
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
self._finalizeRequest(msg, initialRequest, self.events.PluginInfo)
return True
elif msg.name == consts.Message.FCPPluginReply:
if initialRequest is None:
return False
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
initialRequest['FcPluginReply'] = msg
self._finalizeRequest(msg, initialRequest, self.events.PluginMessage)
return True
@@ -1235,7 +1236,7 @@
initialRequest['FcPrivateKey'] = insertURI
initialRequest['FcPublicKey'] = requestURI
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Completed
+ initialRequest['FcRequestStatus'] |= consts.RequestStatus.Success
self._finalizeRequest(msg, initialRequest, self.events.KeypairGenerated)
return True
@@ -2072,8 +2073,6 @@
self.events.RequestModified(initialRequest)
return
-
- initialRequest['FcRequestStatus'] &= ~consts.RequestStatus.Completed
msg = self.Message(
consts.Message.ModifyPersistentRequest,
Identifier=initialRequest['Identifier'],
@@ -2102,7 +2101,6 @@
msg = self.Message(consts.Message.PersistentRequestRemoved, Identifier=requestIdentifier, Global=False)
self._finalizeRequest(msg, initialRequest, self.events.RequestRemoved)
else:
- initialRequest['FcRequestStatus'] &= ~consts.RequestStatus.Completed
self.sendMessage(
consts.Message.RemovePersistentRequest,
Global=False,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|