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