extras-buildsys/builder Builder.py,1.14,1.15

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Sat May 20 05:10:10 UTC 2006


Author: dcbw

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

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

    * server/Builder.py
      builder/Builder.py
        - Make passive builders work more
        - Consolidate some code into base Builder object in the server
        - Don't hang a job if it fails before we've had a chance to contact
            the builder after starting it




Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/Builder.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Builder.py	16 May 2006 15:49:50 -0000	1.14
+++ Builder.py	20 May 2006 05:10:02 -0000	1.15
@@ -66,14 +66,6 @@
     return max_jobs
 
 
-def prefix_url(url, use_ssl):
-    """Convenience function to add correct URL method
-    for the security method we're using."""
-    if use_ssl:
-        return "https://" + url
-    return "http://" + url
-
-
 class Builder(object):
     """ Abstract builder base object """
     def __init__(self, cfg):
@@ -134,6 +126,13 @@
             sys.stdout.write(msg)
             sys.stdout.flush()
 
+    def _prefix_url(self, url):
+        """Convenience function to add correct URL method
+        for the security method we're using."""
+        if self._use_ssl:
+            return "https://" + url
+        return "http://" + url
+
     def new_builder(cfg, btype):
         """Create and return a new builder object of the requested type."""
         if btype == 'passive':
@@ -374,6 +373,7 @@
         self._http_server = None
         self._xmlrpc_server = None
         self._work_dir = os.path.abspath(cfg.get_str("Directories", "builder_work_dir"))
+        self._fileserver_port = self._cfg.get_int("Passive", "fileserver_port")
         threading.Thread.__init__(self)
 
         self._init_servers()
@@ -386,12 +386,12 @@
         
         self._log("Binding to address '%s:%d'\n" % (hostname, xmlrpc_port))
 
-        port = self._cfg.get_int("Passive", "fileserver_port")
         try:
-            self._http_server = HTTPServer.PlgHTTPServerManager((hostname, port),
+            self._http_server = HTTPServer.PlgHTTPServerManager((hostname, self._fileserver_port),
                     self._work_dir, self._certs)
         except socket.error, exc:
-            raise socket.error(exc[0], "Couldn't create server for %s:%s: '%s'" % (hostname, port, exc[1]))
+            raise socket.error(exc[0], "Couldn't create server for %s:%s: '%s'" % (hostname,
+                    self._fileserver_port, exc[1]))
         self._http_server.set_POST_handler('/upload', self.upload_callback)
 
         try:
@@ -549,14 +549,12 @@
 
         # url-ify the file list
         urls = []
-        work_dir = self._get_workdir_for_job(job.uniqid())
-        port = "%s" % self._cfg.get_int("Network", "fileserver_port")
-        host = prefix_url(get_hostname(self._cfg))
+        host = self._prefix_url(get_hostname(self._cfg))
         for fpath in job.files():
-            if not fpath.startswith(work_dir):
+            if not fpath.startswith(self._work_dir):
                 return None
-            file_part = urllib.quote(fpath[len(work_dir) + 1:])
-            full_url = "%s:%s/%s" % (host, port, file_part)
+            file_part = urllib.quote(fpath[len(self._work_dir) + 1:])
+            full_url = "%s:%d/%s" % (host, self._fileserver_port, file_part)
             urls.append(full_url)
         return Commands.PlgCommandJobFilesAck(archjob_id, urls, cmd.seq(), self._seq_gen.next())
 
@@ -601,7 +599,7 @@
         threading.Thread.__init__(self)
 
     def _get_server_address(self, port):
-        addr = prefix_url(self._server_hostname, self._use_ssl)
+        addr = self._prefix_url(self._server_hostname)
         return addr + ":" + port
 
     def download_srpm(self, archjob_id, url, target_dir, dl_callback, cb_data=None):
@@ -616,7 +614,7 @@
     def upload_files(self, archjob_id, files, ul_callback, cb_data=None):
         port = self._cfg.get_int("Active", "fileserver_port")
         url = "%s:%d/upload" % (self._server_hostname, port)
-        url = prefix_url(url, self._use_ssl)
+        url = self._prefix_url(url)
         data = [("archjob_id", archjob_id)]
         uploader = FileUploader.FileUploader(url, files, 'filedata', data,
                 self._certs)




More information about the scm-commits mailing list