SF.net SVN: fclient: [152] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <ju...@us...> - 2008-02-05 15:59:03
|
Revision: 152 http://fclient.svn.sourceforge.net/fclient/?rev=152&view=rev Author: jurner Date: 2008-02-05 07:58:32 -0800 (Tue, 05 Feb 2008) Log Message: ----------- another comb-over status flags on error or remove RequestStatus.Comnplete should not be set 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-05 15:21:54 UTC (rev 151) +++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-05 15:58:32 UTC (rev 152) @@ -702,10 +702,12 @@ elif code == consts.ProtocolError.NoSuchPlugin: if initialRequest.name == consts.Message.PluginInfo: del self._requests[requestIdentifier] + initialRequest['FcStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Complete | consts.RequestStatus.Removed self.events.PluginInfoFailed(initialRequest) return True elif initialRequest.name == consts.Message.FCPPluginMessage: del self._requests[requestIdentifier] + initialRequest['FcStatus'] |= consts.RequestStatus.Error | consts.RequestStatus.Complete | consts.RequestStatus.Removed self.events.PluginMessageFailed(initialRequest) return True @@ -889,7 +891,7 @@ self.events.RequestCompleted(initialRequest) else: initialRequest['FcErrorMessage'] = msg - initialRequest['FcStatus'] |= consts.RequestStatus.Complete | consts.RequestStatus.Error + initialRequest['FcStatus'] |= consts.RequestStatus.Error self.events.RequestFailed(initialRequest) return True @@ -1031,7 +1033,7 @@ if initialRequest is None: return False - initialRequest['FcStatus'] |= consts.RequestStatus.Complete | consts.RequestStatus.Error + initialRequest['FcStatus'] |= consts.RequestStatus.Error # Fcp removes requests from queue with Persistence.Connection.. so do we if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection: @@ -1129,6 +1131,7 @@ return False del self._pluginRequests[requestIdentifier] + initialRequest['FcStatus'] |= consts.RequestStatus.Completed self.events.PluginInfo(msg) return True @@ -1137,6 +1140,7 @@ return False del self._requests[requestIdentifier] + initialRequest['FcStatus'] |= consts.RequestStatus.Completed self.events.PluginMessage(msg) return True @@ -1163,8 +1167,7 @@ #TODO:no idea if the node may pass uris with prefixes like 'freenet:'... strip it anyways insertURI = self.Uri(msg['InsertURI']).uri requestURI = self.Uri(msg['RequestURI']).uri - - + createUSK = True if requestIdentifier.startswith(self.IdentifierPrefixGenerateUSK) else False if createUSK: insertURI = requestURI.replace(consts.KeyType.SSK, consts.KeyType.USK, 1) @@ -1176,6 +1179,7 @@ msg['InsertURI'] = insertURI msg['RequestURI'] = requestURI msg['FcKeyType'] = keyType + msg['FcStatus'] |= consts.RequestStatus.Completed self.events.KeypairGenerated(msg) return True @@ -1231,15 +1235,15 @@ # check if we have running requests - # assert all requests have completed - status = consts.RequestStatus.Complete + # assert no requests has completed + status = consts.RequestStatus.Null for request in self._requests.values(): tmp_status = request.params.get('FcStatus', consts.RequestStatus.Null) - if not tmp_status & consts.RequestStatus.Complete: - status = consts.RequestStatus.Null + if not tmp_status & consts.RequestStatus.MaskProcessed: + status = consts.RequestStatus.Started break - if status == consts.RequestStatus.Complete: + if status == consts.RequestStatus.Null: self._log.info(consts.LogMessages.AllRequestsCompleted) break @@ -1574,7 +1578,7 @@ #TODO: persists until connection is closed... can this request be removed? - # Anyway. It is not listed in consts.Message.ClientRequestMessages, + # Anyway. It is not listed in consts.Message.ClientKeyRequestMessages, # so any attempts will fail (wink) def subscribeUSK(self, uri, dontPoll=True): """Asks the node to notify the client when an USK is updated @@ -1787,12 +1791,12 @@ @param persistentUserData: (str) persistent user data or None @param priorityClass: (L{consts.Priority}) new priority or None - @note: you can use this method to modify requests as listed in L{consts.Message.ClientRequestMessages}. + @note: you can use this method to modify requests as listed in L{consts.Message.ClientKeyRequestMessages}. All attempts to modify other requests will fail @note: a RequestModified event is triggered as soon as the request has actually been modified """ initialRequest = self._requests[requestIdentifier] - if initialRequest.name not in consts.Message.ClientRequestMessages: + if initialRequest.name not in consts.Message.ClientKeyRequestMessages: raise ValueError('Can not modify request: %s' % initialRequest.name) msg = self.Message( @@ -1813,14 +1817,14 @@ """Removes a request @param requestIdentifier: (str) identifier of the request to remove - @note: you can use this method to remove requests as listed in L{consts.Message.ClientRequestMessages} + @note: you can use this method to remove requests as listed in L{consts.Message.ClientKeyRequestMessages} or L{consts.Message.ClientPluginMessages}. All attempts to remove other requests will fail - @note: if the request is one the requests listed in L{consts.Message.ClientRequestMessages} + @note: if the request is one the requests listed in L{consts.Message.ClientKeyRequestMessages} a RequestRemoved event is triggered as soon as the request has actually been removed """ initialRequest = self._requests[requestIdentifier] - if initialRequest.name in consts.Message.ClientRequestMessages: - initialRequest['FcStatus'] = consts.RequestStatus.Removed + initialRequest['FcStatus'] |= consts.RequestStatus.Removed + if initialRequest.name in consts.Message.ClientKeyRequestMessages: self.sendMessage( consts.Message.RemovePersistentRequest, Global=False, @@ -1838,11 +1842,11 @@ @param requestMessage: (L{fcp2_0_message.Message}) @return: (str) request identifier - @note: you can use this method to resend requests as listed in L{consts.Message.ClientRequestMessages} + @note: you can use this method to resend requests as listed in L{consts.Message.ClientKeyRequestMessages} or L{consts.Message.ClientPluginMessages}. All attempts to resend other requests will fail @note: the request passed is not removed in the call. Use L{removeRequest} if necessary """ - if requestMessage.name in consts.Message.ClientRequestMessages: + if requestMessage.name in consts.Message.ClientKeyRequestMessages: self._registerRequest( requestMessage, requestMessage['FcUserData'], @@ -1981,6 +1985,7 @@ msg = self.Message( consts.Message.GetPluginInfo, FcModified={}, + FcStatus=consts.RequestStatus.Pending, Identifier=identifier, PluginName=pluginName, Detailed=detailed, @@ -2001,6 +2006,7 @@ msg = self.Message( consts.Message.GetPluginInfo, FcModified={}, + FcStatus=consts.RequestStatus.Pending, Identifier=identifier, PluginName=pluginName, **params @@ -2033,6 +2039,7 @@ msg = self.Message( consts.Message.GenerateSSK, FcModified={}, + FcStatus=consts.RequestStatus.Pending, Identifier=identifier, ) self._requests[identifier] = msg This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |