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 fedora-extras-commits
mailing list