extras-buildsys/common Commands.py,1.3,1.4
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Mon May 8 14:26:42 UTC 2006
Author: dcbw
Update of /cvs/fedora/extras-buildsys/common
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28715/common
Modified Files:
Commands.py
Log Message:
2006-05-08 Dan Williams <dcbw at redhat.com>
* common/Commands.py
- Add JobFiles and JobFilesAck commands
Index: Commands.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/common/Commands.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Commands.py 5 May 2006 02:10:39 -0000 1.3
+++ Commands.py 8 May 2006 14:26:34 -0000 1.4
@@ -29,11 +29,11 @@
CMD_NAME_NEW_JOB_REQ = "NewJob"
CMD_NAME_NEW_JOB_ACK = "NewJobAck"
CMD_NAME_UNLOCK_REPO = "UnlockRepo"
-CMD_NAME_JOB_FILES_REQ = "JobFiles"
-CMD_NAME_JOB_FILES_ACK = "JobFilesAck"
CMD_NAME_BUILDING_JOBS = "BuildingJobs"
CMD_NAME_JOB_STATUS_REQ = "JobStatus"
CMD_NAME_JOB_STATUS_ACK = "JobStatusAck"
+CMD_NAME_JOB_FILES_REQ = "JobFiles"
+CMD_NAME_JOB_FILES_ACK = "JobFilesAck"
class SequenceGenerator(object):
@@ -131,6 +131,10 @@
cmd = PlgCommandJobStatus._deserialize(args)
elif name == CMD_NAME_JOB_STATUS_ACK:
cmd = PlgCommandJobStatusAck._deserialize(args)
+ elif name == CMD_NAME_JOB_FILES_REQ:
+ cmd = PlgCommandJobFiles._deserialize(args)
+ elif name == CMD_NAME_JOB_FILES_ACK:
+ cmd = PlgCommandJobFilesAck._deserialize(args)
# If command creation was successful, set the sequence
# number from the command stream on the command. We don't
@@ -523,3 +527,70 @@
def status(self):
return self._status
+
+
+class PlgCommandJobFiles(PlgCommand):
+
+ _need_ack = True
+
+ def __init__(self, archjob_id, seq=0):
+ PlgCommand.__init__(self, CMD_NAME_JOB_FILES_REQ, seq)
+ self._archjob_id = archjob_id
+
+ def _deserialize(args):
+ try:
+ archjob_id = args['archjob_id']
+ except KeyError, TypeError:
+ raise ValueError("No 'archjob_id' argument found.")
+
+ return PlgCommandJobFiles(archjob_id)
+
+ _deserialize = staticmethod(_deserialize)
+
+ def serialize(self):
+ args = {}
+ args['archjob_id'] = self._archjob_id
+ return PlgCommand._serialize(self, args)
+
+ def archjob_id(self):
+ return self._archjob_id
+
+ def __str__(self):
+ return "%s(seq: %d, archjob_id: %s)" % (self._name, self._seq, self._archjob_id)
+
+
+class PlgCommandJobFilesAck(PlgCommandAck):
+ def __init__(self, archjob_id, files, req_seq, seq=0):
+ """The files argument is a python list of output files from the job"""
+ PlgCommandAck.__init__(self, CMD_NAME_JOB_FILES_ACK, req_seq, seq)
+ self._archjob_id = archjob_id
+ self._files = files
+
+ def _deserialize(args):
+ try:
+ archjob_id = args['archjob_id']
+ except KeyError, TypeError:
+ raise ValueError("No 'archjob_id' argument found.")
+ try:
+ files = args['files']
+ except KeyError, TypeError:
+ raise ValueError("No 'files' argument found.")
+ if type(files) != type([]):
+ raise ValueError("The 'files' argument was of the wrong type.")
+
+ req_seq = PlgCommandAck._deserialize_acked_seq(args)
+ return PlgCommandJobFilesAck(archjob_id, files, req_seq)
+
+ _deserialize = staticmethod(_deserialize)
+
+ def serialize(self):
+ args = {}
+ args['archjob_id'] = self._archjob_id
+ args['files'] = self._files
+ return PlgCommandAck._serialize(self, args)
+
+ def archjob_id(self):
+ return self._archjob_id
+
+ def files(self):
+ return self._files
More information about the fedora-extras-commits
mailing list