SF.net SVN: fclient: [172] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-02-08 08:36:54
|
Revision: 172
http://fclient.svn.sourceforge.net/fclient/?rev=172&view=rev
Author: jurner
Date: 2008-02-08 00:36:59 -0800 (Fri, 08 Feb 2008)
Log Message:
-----------
run() would hang when GetData[Persistence] is not connection. fixed
removed RequestStatus.Started and event.RequestStarted. We can not know that
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-07 23:49:44 UTC (rev 171)
+++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-08 08:36:59 UTC (rev 172)
@@ -62,7 +62,6 @@
"""
-
#Bug reports filed and open:
#--------------------------------------------------------------------------------------------------------------------------------------------
# [0001931: Send EndListPersistentRequests following client connect]
@@ -167,7 +166,6 @@
from fcp2_0_requests import Upload
from fcp2_0_uri import Uri
-
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
#**********************************************************************
# helpers
@@ -874,8 +872,23 @@
initialRequest['FcDataLength'] = msg.get('DataLength', '')
# except from GetData all requests are complete here. Next GetData will run through AllData...
- if initialRequest['FcRequestType'] != consts.RequestType.GetData:
- self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
+
+ # For GetData with persistence != connection the node sends no All Data message
+ # whatever that is good for ..fix this here to get all GetData request to complete on
+ # All Data, too.
+ # Note: All other requests are completed here.
+ if initialRequest['FcRequestType'] == consts.RequestType.GetData:
+ if initialRequest['Persistence'] != consts.Persistence.Connection:
+ self.sendMessage(
+ consts.Message.GetRequestStatus,
+ Identifier=initialRequest['Identifier'],
+ Global=False,
+ OnlyData=True
+ )
+ else:
+ self._finalizeRequest(msg, initialRequest, self.events.RequestCompleted)
+
+
return True
@@ -917,22 +930,14 @@
# restore request
self._requests[requestIdentifier] = restoredRequest
- restoredRequest['FcRequestStatus'] |= consts.RequestStatus.Started
+ #restoredRequest['FcRequestStatus'] |= consts.RequestStatus.Null
self.events.RequestRestored(restoredRequest)
return True
- # known request... filter out multiple PersistentGets
- if not initialRequest['FcRequestStatus'] & consts.RequestStatus.Started:
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Started
-
- #TODO: update initialRequest with params from PersistentGet?
-
- self.events.RequestStarted(initialRequest)
- return True
+ # known request ..we don't handle that
+ return False
- return True
-
elif msg.name == consts.Message.PersistentRequestModified:
if initialRequest is None:
return False
@@ -1012,22 +1017,14 @@
# restore request
self._requests[requestIdentifier] = restoredRequest
- restoredRequest['FcRequestStatus'] = consts.RequestStatus.Started
+ #restoredRequest['FcRequestStatus'] = consts.RequestStatus.Null
self.events.RequestRestored(restoredRequest)
return True
- # known request... filter out multiple PersistentGets
- if not initialRequest['FcRequestStatus'] & consts.RequestStatus.Started:
- initialRequest['FcRequestStatus'] |= consts.RequestStatus.Started
-
- #TODO: update initialRequest with params from PersistentPut?
-
- self.events.RequestStarted(initialRequest)
- return True
-
- return True
+ # known request ..we don't handle that
+ return False
+
-
elif msg.name == consts.Message.PutFailed:
if initialRequest is None:
return False
@@ -1211,11 +1208,14 @@
# check if we have running requests. Assert False
haveRunningRequests = False
+ #print 'run'
for request in self._requests.values():
+ #print 'is completed', request.params['FcRequestStatus'] & consts.RequestStatus.Completed
if not request.params['FcRequestStatus'] & consts.RequestStatus.Completed:
haveRunningRequests = True
break
+ #print 'haveRunningRequest', haveRunningRequests
if not haveRunningRequests:
self._log.info(consts.LogMessages.AllRequestsCompleted)
break
@@ -2144,7 +2144,7 @@
identifier = c.getData(
'CHK@q4~2soHTd9SOINIoXmg~dn7LNUAOYzN1tHNHT3j4c9E,gcVRtoglEhgqN-DJolXPqJ4yX1f~1gBGh89HNWlFMWQ,AAIC--8/snow_002%20%2810%29.jpg',
- #persistence=consts.Persistence.Forever,
+ persistence=consts.Persistence.Connection,
#binaryBlob=True,
)
@@ -2242,7 +2242,7 @@
def testUskPutData():
def cb(event, request):
- insertURI = request['InsertURI']
+ insertURI = request['FcPrivateKey']
identifier = c.uskPutData(
'foo',
insertURI + 'foo/0/',
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|