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