SF.net SVN: fclient: [160] trunk/sandbox/fcp/fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <ju...@us...> - 2008-02-06 11:12:38
|
Revision: 160 http://fclient.svn.sourceforge.net/fclient/?rev=160&view=rev Author: jurner Date: 2008-02-06 03:12:36 -0800 (Wed, 06 Feb 2008) Log Message: ----------- kicked out identifier prefixes. Use FcRequestType now 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-06 10:54:42 UTC (rev 159) +++ trunk/sandbox/fcp/fcp2_0_client.py 2008-02-06 11:12:36 UTC (rev 160) @@ -249,11 +249,6 @@ ExpectedFcpVersion = 2.0 ExpectedNodeBuild = 1107 - IdentifierPrefixRequest = 'request:' - IdentifierPrefixGenerateSSK = 'ssk:' - IdentifierPrefixGenerateUSK = 'usk:' - IdentifierPrefixPluginMessage = 'plugin:' - consts = consts Config = Config Message = Message @@ -305,7 +300,7 @@ msg.params.update({ # persistent params that will go into identifier - 'FcType': msgType, # identifies sub message types + 'FcRequestType': msgType, # identifies sub message types 'FcInitTime': initTime, # when was the request started? 'FcFilenameCollision': filenameCollision, # handle fielanem collisions? 'FcPersistentUserData': persistentUserData, # any user defined persistent data @@ -359,7 +354,7 @@ @return: (str) uuid @note: the identifier returned is unique to the client but may not be unique to the node """ - identifier = self.FcParams.newUuid(prefix=self.IdentifierPrefixRequest, uuids=self._requests) + identifier = self.FcParams.newUuid(uuids=self._requests) # add additional params to msg msg = self._addFcParamsToRequest( @@ -612,23 +607,18 @@ ## #################################################### if msg.name == consts.Message.IdentifierCollision: - if initialRequest is not None: - # resend request with new identifier - - #TODO: just an assumption that pugin related messages my end up here - if initialRequest.name in (consts.Message.GetPluginInfo, consts.Message.FCPPlugin): - identifierPrefix = self.IdentifierPrefixPluginMessage - else: - identifierPrefix = self.IdentifierPrefixRequest + if initialRequest is None: + return False - newIdentifier = self.FcParams.newUuid(prefix=identifierPrefix, uuids=self._requests) - self._requests[newIdentifier] = initialRequest - del self._requests[requestIdentifier] - initialRequest['Identifier'] = newIdentifier - initialRequest['FcModified'] = {consts.RequestModified.Identifier: requestIdentifier} - self.events.RequestModified(initialRequest) - self.sendMessageEx(initialRequest) - return True + # resend request with new identifier + newIdentifier = self.FcParams.newUuid(uuids=self._requests) + self._requests[newIdentifier] = initialRequest + del self._requests[requestIdentifier] + initialRequest['Identifier'] = newIdentifier + initialRequest['FcModified'] = {consts.RequestModified.Identifier: requestIdentifier} + self.events.RequestModified(initialRequest) + self.sendMessageEx(initialRequest) + return True elif msg.name == consts.Message.ProtocolError: @@ -877,7 +867,7 @@ initialRequest['FcDataLength'] = msg.get('DataLength', '') # except from GetData all requests are complete here. Next GetData will run through AllData... - if initialRequest['FcType'] != consts.RequestType.GetData: + if initialRequest['FcRequestType'] != consts.RequestType.GetData: # Fcp removes requests from queue with Persistence.Connection.. so do we if initialRequest.params.get('Persistence', consts.Persistence.Connection) == consts.Persistence.Connection: initialRequest['FcStatus'] |= consts.RequestStatus.Removed @@ -901,7 +891,7 @@ # check if it is one of our requests for key information code = msg['Code'] - if code == consts.FetchError.TooBig and initialRequest['FcType'] == consts.RequestType.GetKeyInfo: + if code == consts.FetchError.TooBig and initialRequest['FcRequestType'] == consts.RequestType.GetKeyInfo: initialRequest['FcStatus'] |= consts.RequestStatus.Success initialRequest['FcMetadataContentType'] = msg.get('ExpectedMetadata.ContentType', '') initialRequest['FcDataLength'] = msg.get('ExpectedDataLength', -1) @@ -1025,11 +1015,11 @@ return True # determine initial message name - if restoredRequest['FcType'] == consts.RequestType.Put: + if restoredRequest['FcRequestType'] == consts.RequestType.Put: restoredRequest.name = consts.Message.ClientPut - elif restoredRequest['FcType'] == consts.RequestType.PutDiskDir: + elif restoredRequest['FcRequestType'] == consts.RequestType.PutDiskDir: restoredRequest.name = consts.Message.ClientPutDiskDir - elif restoredRequest['FcType'] == consts.RequestType.PutComplexDir: + elif restoredRequest['FcRequestType'] == consts.RequestType.PutComplexDir: restoredRequest.name = consts.Message.ClientPutComplexDir # restore request @@ -1200,20 +1190,16 @@ insertURI = self.Uri(msg['InsertURI']).uri requestURI = self.Uri(msg['RequestURI']).uri - createUSK = True if requestIdentifier.startswith(self.IdentifierPrefixGenerateUSK) else False - if createUSK: + if initialRequest['FcRequestType'] == consts.RequestType.GenerateUSKKeypair: insertURI = insertURI.replace(consts.KeyType.SSK, consts.KeyType.USK, 1) requestURI = requestURI.replace(consts.KeyType.SSK, consts.KeyType.USK, 1) - keyType = consts.KeyType.USK - else: - keyType = consts.KeyType.SSK - + initialRequest['InsertURI'] = insertURI initialRequest['RequestURI'] = requestURI - initialRequest['FcKeyType'] = keyType initialRequest['FcStatus'] |= consts.RequestStatus.Success | consts.RequestStatus.Removed self.events.KeypairGenerated(initialRequest) + # notify listeners initialRequest['FcStatus'] |= consts.RequestStatus.Completed del self._requests[requestIdentifier] return True @@ -2048,12 +2034,12 @@ @param detailed: (bool) If True, detailed information is returned @return: (str) request identifier """ - identifier = self.FcParam.newUuid(prefix=self.IdentifierPrefixPluginMessage, uuids=self._requests) + identifier = self.FcParam.newUuid(uuids=self._requests) msg = self.Message( consts.Message.GetPluginInfo, FcModified={}, FcStatus=consts.RequestStatus.Pending, - FcType=consts.RequestType.PluginInfo, + FcRequestType=consts.RequestType.PluginInfo, Identifier=identifier, PluginName=pluginName, Detailed=detailed, @@ -2070,12 +2056,12 @@ @param data: (str) data to pass along with the messaage or None @return: (str) request identifier """ - identifier = self.FcParam.newUuid(prefix=self.IdentifierPrefixPluginMessage, uuids=self._requests) + identifier = self.FcParam.newUuid(uuids=self._requests) msg = self.Message( consts.Message.GetPluginInfo, FcModified={}, FcStatus=consts.RequestStatus.Pending, - FcType=consts.RequestType.PluginMessage, + FcRequestType=consts.RequestType.PluginMessage, Identifier=identifier, PluginName=pluginName, **params @@ -2093,7 +2079,6 @@ ## others ## ########################################################## - #TODO: kick out request prefix (use FcType instead) def generateKeypair(self, keypairType=consts.KeyType.SSK): """ @param keypairType: type of keypair to generate (either L{consts.KeyType.SSK} or L{consts.KeyType.SSK}) @@ -2104,13 +2089,13 @@ if keypairType not in (consts.KeyType.SSK, consts.KeyType.USK): raise ValueError('keypairType must be %s or %s' % (consts.KeyType.SSK, consts.KeyType.USK)) - prefix = self.IdentifierPrefixGenerateSSK if keypairType == consts.KeyType.SSK else self.IdentifierPrefixGenerateUSK - identifier = self.FcParams.newUuid(prefix=prefix, uuids=self._requests) + requestType = consts.RequestType.GenerateSSKKeypair if keypairType == consts.KeyType.SSK else consts.RequestType.GenerateUSKKeypair + identifier = self.FcParams.newUuid(uuids=self._requests) msg = self.Message( consts.Message.GenerateSSK, FcModified={}, FcStatus=consts.RequestStatus.Pending, - FcType=consts.RequestType.GenerateKeypair, + FcRequestType=requestType, Identifier=identifier, ) self._requests[identifier] = msg This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |