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. |