SF.net SVN: fclient: [353] trunk/sandbox/fcp2/message.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-03-10 13:03:22
|
Revision: 353
http://fclient.svn.sourceforge.net/fclient/?rev=353&view=rev
Author: jUrner
Date: 2008-03-10 06:03:23 -0700 (Mon, 10 Mar 2008)
Log Message:
-----------
some fixes for mesages
++ getting tired working around the messed up protocol
Modified Paths:
--------------
trunk/sandbox/fcp2/message.py
Modified: trunk/sandbox/fcp2/message.py
===================================================================
--- trunk/sandbox/fcp2/message.py 2008-03-09 12:56:43 UTC (rev 352)
+++ trunk/sandbox/fcp2/message.py 2008-03-10 13:03:23 UTC (rev 353)
@@ -150,7 +150,7 @@
# 2. log errors
#
#
- def setPersistentParams(self, persistentData):
+ def _setPersistentParams(self, persistentData):
params = persistentData.split(PersistentParamsSep)
if len(params) > len(self._persistent_params_):
raise ValueError('Too many parameters in data')
@@ -160,7 +160,7 @@
setter(self, params[n])
- def getPersistentParams(self):
+ def _getPersistentParams(self):
out = []
for n, (getter, setter) in enumerate(self._persistent_params_):
#TODO: check if PersistentParamsSep is in data returned
@@ -168,6 +168,19 @@
return PersistentParamsSep.join(out)
+ def _restoreParams(self, params):
+ for paramName, paramValue in params.items():
+ paramType = self._param_types_.get(paramName, None)
+ if paramType is not None:
+ paramValue = paramType.fcpToPython(paramValue)
+ self[paramName] = paramValue
+ return True
+
+
+ def _getDataLength(self):
+ return 0
+
+
#***************************************************************************************
#
# param types for config message
@@ -617,16 +630,17 @@
'Verbosity': types.FcpTypeInt,
}
- def restorePersistentParams(self):
+ def _restoreParams(self, params):
+ MessageBase._restoreParams(self, params)
try:
- MessageBase.setPersistentParams(self, self['ClientToken'])
+ MessageBase._setPersistentParams(self, self['ClientToken'])
except Exception, d:
#print Exception, d
return False
return True
def updatePersistentParams(self):
- self['ClientToken'] = MessageBase.getPersistentParams(self)
+ self['ClientToken'] = MessageBase._getPersistentParams(self)
class ClientHello(MessageBase):
@@ -652,13 +666,18 @@
'Verbosity': types.FcpTypeInt,
}
- def restorePersistentParams(self):
+ def _getDataLength(self):
+ return self['DataLength']
+
+ def _restoreParams(self, params):
+ MessageBase._restoreParams(self, params)
try:
- MessageBase.setPersistentParams(self, self['ClientToken'])
+ MessageBase._setPersistentParams(self, self['ClientToken'])
except Exception, d:
+ #print Exception, d
return False
return True
-
+
def updatePersistentParams(self):
self['ClientToken'] = MessageBase.getPersistentParams(self)
@@ -666,6 +685,29 @@
class ClientPutComplexDir(ClientPut):
name = consts.Message.ClientPutComplexDir
+
+ def __init__(self, *args, **kwargs):
+ ClientPut.__init__(self, *args, **kwargs)
+ self._dataLength = 0
+
+
+ def _restoreParams(self, params):
+ result = ClientPut._restoreParams(self, params)
+
+ for paramName, paramValue in self.params.items():
+ tmp_paramName = paramName.split('.')
+ if len(tmp_paramName) == 3:
+ if tmp_paramName[-1] == 'DataLength':
+ n = types.FcpTypeInt.fcpToPython(paramValue)
+ self._dataLength += n
+ self[paramName] = n
+ return result
+
+
+ def _getDataLength(self):
+ return self._dataLength
+
+
class ClientPutDiskDir(ClientPut):
name = consts.Message.ClientPutDiskDir
@@ -1022,26 +1064,64 @@
class PersistentGet(MessageBase):
name = consts.Message.PersistentGet
_additional_params_ = {}
- _param_types_ = {
- }
+ _persistent_params_ = PersistentParamsGet
+ _param_types_ = ClientGet._param_types_.copy()
+ _param_types_['Started'] = types.FcpTypeBool
+
+ def _restoreParams(self, params):
+ MessageBase._restoreParams(self, params)
+ try:
+ MessageBase._setPersistentParams(self, self['ClientToken'])
+ except Exception, d:
+ #print Exception, d
+ return False
+ return True
-
#######################################
#######################################
class PersistentPut(MessageBase):
name = consts.Message.PersistentPut
- _additional_params_ = {}
- _param_types_ = {
- }
+ _additional_params_ = AdditionalPutParams
+ _persistent_params_ = PersistentParamsPut
+ _param_types_ = ClientPut._param_types_.copy()
+ _param_types_['Started'] = types.FcpTypeBool
+ def _restoreParams(self, params):
+ MessageBase._restoreParams(self, params)
+ try:
+ MessageBase._setPersistentParams(self, self['ClientToken'])
+ except Exception, d:
+ #print Exception, d
+ return False
+ return True
+
class PersistentPutDir(MessageBase):
name = consts.Message.PersistentPutDir
- _additional_params_ = {}
- _param_types_ = {
- }
+ _additional_params_ = AdditionalPutParams
+ _persistent_params_ = PersistentParamsPut
+ _param_types_ = ClientPutDiskDir._param_types_.copy()
+ _param_types_['Started'] = types.FcpTypeBool
+
+
+ def _restoreParams(self, params):
+ MessageBase._restoreParams(self, params)
+ for paramName, paramValue in self.params.items():
+ tmp_paramName = paramName.split('.')
+ if len(tmp_paramName) == 3:
+ if tmp_paramName[-1] == 'DataLength':
+ n = types.FcpTypeInt.fcpToPython(paramValue)
+ self[paramName] = n
+ try:
+ MessageBase._setPersistentParams(self, self['ClientToken'])
+ except Exception, d:
+ #print Exception, d
+ return False
+ return True
+
+
class PersistentRequestModified(MessageBase):
name = consts.Message.PersistentRequestModified
_additional_params_ = {}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|