extras-buildsys/common Commands.py,1.9,1.10

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Mon May 29 20:26:40 UTC 2006


Author: dcbw

Update of /cvs/fedora/extras-buildsys/common
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv877/common

Modified Files:
	Commands.py 
Log Message:
2006-05-29  Dan Williams  <dcbw at redhat.com>

    * Make most everything work now; both Passive and Active builders will
        download/upload the SRPM from the server.  The SRPM's URL is no longer
        passed to the builder in the initial job request, but comes along later
        once the SPRM is actually available to the builder (which might be after
        an upload to the builder in the case of Passive builders).
    * Pylint cleanups
    * Clean up logging on builders by consolidating newline handling is one place
    * Use the Targets command to pass back to the server any upload URL the builder
        might have (for passive builders)




Index: Commands.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/common/Commands.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Commands.py	23 May 2006 15:06:14 -0000	1.9
+++ Commands.py	29 May 2006 20:26:37 -0000	1.10
@@ -19,7 +19,7 @@
 
 
 import threading
-
+import os
 
 
 CMD_NAME_ERROR = "Error"
@@ -290,15 +290,17 @@
 
 
 class PlgCommandTargets(PlgCommand):
-    def __init__(self, targets, seq=0):
+    def __init__(self, targets, upload_url, seq=0):
         PlgCommand.__init__(self, CMD_NAME_TARGETS, seq)
         self._targets = targets
+        self._upload_url = upload_url
 
     def _deserialize(args):
         try:
             targets = args['targets']
-        except (KeyError, TypeError):
-            raise ValueError("No 'targets' argument found.")
+            upload_url = args['upload_url']
+        except (KeyError, TypeError), exc:
+            raise ValueError("No '%s' argument found." % exc)
 
         # Sanity checking on targets argument
         if type(targets) != type([]):
@@ -313,62 +315,63 @@
             except KeyError, exc:
                 raise ValueError("Required item '%s' not found in a target." % exc)
 
-        return PlgCommandTargets(targets)
+        return PlgCommandTargets(targets, upload_url)
 
     _deserialize = staticmethod(_deserialize)
 
     def serialize(self):
         args = {}
         args['targets'] = self._targets
+        args['upload_url'] = self._upload_url
         return PlgCommand._serialize(self, args)
 
     def targets(self):
         return self._targets
 
+    def upload_url(self):
+        return self._upload_url
+
     def __str__(self):
-        return "%s(seq: %d, targets: %s)" % (self._name, self._seq, self._targets)
+        return "%s(seq: %d, targets: %s, upload_url: %s)" % (self._name, self._seq, self._targets, self._upload_url)
 
 
 class PlgCommandNewJobReq(PlgCommand):
 
     _need_ack = True
 
-    def __init__(self, archjob, target_dict=None, srpm_url=None, archjob_id=None, seq=0):
+    _SRPM_EXT = ".src.rpm"
+    def __init__(self, archjob, target_dict=None, jobname=None, archjob_id=None, seq=0):
         PlgCommand.__init__(self, CMD_NAME_NEW_JOB_REQ, seq)
         self._archjob = archjob  # doesn't get serialized
         if archjob:
             self._target_dict = archjob.target_dict()
-            self._srpm_url = archjob.srpm_url()
+            self._jobname = os.path.basename(archjob.srpm_path())
+            if self._jobname.endswith(self._SRPM_EXT):
+                self._jobname = self._jobname[:len(self._jobname) - len(self._SRPM_EXT)]
             self._archjob_id = archjob.archjob_id()
         else:
-            if not target_dict or not srpm_url or not archjob_id:
-                raise Exception("Need a target_dict, an srpm_url, and an archjob_id.")
+            if not target_dict or not jobname or not archjob_id:
+                raise Exception("Need a target_dict, a jobname, and an archjob_id.")
             self._target_dict = target_dict
-            self._srpm_url = srpm_url
+            self._jobname = jobname
             self._archjob_id = archjob_id
 
     def _deserialize(args):
         try:
             target_dict = args['target_dict']
-        except (KeyError, TypeError):
-            raise ValueError("No 'target_dict' argument found.")
-        try:
-            srpm_url = args['srpm_url']
-        except (KeyError, TypeError):
-            raise ValueError("No 'srpm_url' argument found.")
-        try:
+            jobname = args['jobname']
             archjob_id = args['archjob_id']
-        except (KeyError, TypeError):
-            raise ValueError("No 'archjob_id' argument found.")
+        except (KeyError, TypeError), exc:
+            raise ValueError("No '%s' argument found." % exc)
 
-        return PlgCommandNewJobReq(None, target_dict, srpm_url, archjob_id)
+        return PlgCommandNewJobReq(None, target_dict, jobname, archjob_id)
 
     _deserialize = staticmethod(_deserialize)
 
     def serialize(self):
         args = {}
         args['target_dict'] = self._target_dict
-        args['srpm_url'] = self._srpm_url
+        args['jobname'] = self._jobname
         args['archjob_id'] = self._archjob_id
         return PlgCommand._serialize(self, args)
 
@@ -378,15 +381,15 @@
     def target_dict(self):
         return self._target_dict
 
-    def srpm_url(self):
-        return self._srpm_url
+    def job_name(self):
+        return self._jobname
 
     def archjob_id(self):
         return self._archjob_id
 
     def __str__(self):
-        return "%s(seq: %d, target_dict: %s, srpm_url: %s, archjob_id: %s)" % (self._name,
-                self._seq, self._target_dict, self._srpm_url, self._archjob_id)
+        return "%s(seq: %d, target_dict: %s, jobname: %s, archjob_id: %s)" % (self._name,
+                self._seq, self._target_dict, self._jobname, self._archjob_id)
 
 
 class PlgCommandNewJobAck(PlgCommandAck):




More information about the scm-commits mailing list