extras-buildsys/builder CONFIG.py,1.6,1.7 builder.py,1.22,1.23

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Fri Jul 22 02:54:04 UTC 2005


Author: dcbw

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

Modified Files:
	CONFIG.py builder.py 
Log Message:
2005-07-21  Dan Williams <dcbw at redhat.com>

    * builder/CONFIG.py
      builder/builder.py
        - You must now specify a target/arch -> mock buildroot name
            mapping in the config file

    * server/UserInterface.py
      server/CONFIG.py
        - Add client target alias support so people don't have to
            know the exact target name
        - Add rowlimit support to job listing




Index: CONFIG.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/CONFIG.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CONFIG.py	13 Jul 2005 19:36:06 -0000	1.6
+++ CONFIG.py	22 Jul 2005 02:54:01 -0000	1.7
@@ -5,26 +5,39 @@
 
 config_opts['builder_cmd'] = "/usr/bin/mock"
 
-# Distro and Repo:
-#
-# The builder constructs the buildroot name that it
-# passes to mock from a few things.  The format is:
-#
-# <distro_name>-<target>-<arch>-<repo_name>
+config_opts['ssl_buildserver'] = True
+config_opts['fileserver_port'] = 8889
+config_opts['xmlrpc_port'] = 8888
+config_opts['hostname'] = 'localhost'
+
+# distro and repo
 #
-# both <target> and <arch> come from the build server.
-# This constructed name NEEDS to match a mock config
-# file in /etc/mock.
+# These will eventually go away...
 config_opts['distro_name'] = "fedora"
 config_opts['repo_name'] = "core"
 
-config_opts['ssl_buildserver'] = True
 
-config_opts['fileserver_port'] = 8889
-config_opts['xmlrpc_port'] = 8888
-config_opts['hostname'] = 'localhost'
+# Targets
+#
+# These targets are maps of (target, arch) -> "mock buildroot name"
+# Mock buildroot names must currently match the buildroot config files
+# found in /etc/mock
+
+config_opts['mock_buildroot_map'] = {
+    ('fedora', 'development', 'i386', 'core')   : "fedora-development-i386-core",
+    ('fedora', 'development', 'x86_64', 'core') : "fedora-development-x86_64-core",
+    ('fedora', '5', 'i386', 'core')             : "fedora-5-i386-core",
+    ('fedora', '5', 'x86_64', 'core')           : "fedora-5-x86_64-core"
+}
+
+# Arches
+#
+# A list of all architectures and sub-architectures that this builder
+# can build.
 config_opts['arches'] = ['i386', 'i486', 'i586', 'i686']
 
+
+
 BUILDER_DIR = "/etc/plague/builder"
 
 # SSL Certs and keys


Index: builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/builder.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- builder.py	20 Jul 2005 14:51:48 -0000	1.22
+++ builder.py	22 Jul 2005 02:54:01 -0000	1.23
@@ -30,6 +30,7 @@
 import fcntl
 import urllib
 import errno
+import exceptions
 from plague import ArchUtils
 from plague import FileDownloader
 from plague import AuthedXMLRPCServer
@@ -396,44 +397,54 @@
         return False
 
 
+def resolve_buildroot_name(target, arch):
+    buildroot_map = config_opts['mock_buildroot_map']
+    try:
+        return buildroot_map[(config_opts['distro_name'], target, arch, config_opts['repo_name'])]
+    except KeyError:
+        raise InvalidTargetError()
+
+
+class InvalidTargetError(exceptions.Exception): pass
+
 class i386Arch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-i386-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'i386')
         self.buildarch = buildarch
         self.arch_command = '/usr/bin/setarch i686'
         BuilderMock.__init__(self, uniqid, target, srpm_url)
 
 class x86_64Arch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-x86_64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'x86_64')
         self.buildarch = buildarch
         self.arch_command = ''
         BuilderMock.__init__(self, uniqid, target, srpm_url)
 
 class PPCArch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-ppc-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'ppc')
         self.buildarch = buildarch
         self.arch_command = ''
         BuilderMock.__init__(self, uniqid, target, srpm_url)
 
 class PPC64Arch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-ppc64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'ppc64')
         self.buildarch = buildarch
         self.arch_command = ''
         BuilderMock.__init__(self, uniqid, target, srpm_url)
 
 class SparcArch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-sparc-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'sparc')
         self.buildarch = buildarch
         self.arch_command = '/usr/bin/sparc32'
         BuilderMock.__init__(self, uniqid, target, srpm_url)
 
 class Sparc64Arch(BuilderMock):
     def __init__(self, uniqid, target, buildarch, srpm_url):
-        self.buildroot = '%s-%s-sparc64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+        self.buildroot = resolve_buildroot_name(target, 'sparc64')
         self.buildarch = buildarch
         self.arch_command = '/usr/bin/sparc64'
         BuilderMock.__init__(self, uniqid, target, srpm_url)
@@ -609,23 +620,10 @@
     return 0
 
 
-def read_mock_configs(allowed_arches):
-    MOCK_CONFIG_DIR = "/etc/mock/"
-    tmp_list = os.listdir(MOCK_CONFIG_DIR)
+def get_target_arches(allowed_arches):
     target_arches = {}
-    for f in tmp_list:
-        if not f.endswith(".cfg"):
-            continue
-        try:
-            t = f.index("-")
-        except ValueError:
-            continue
-        cfg_name = f[:len(f)-4]
-        try:
-            (distro, target, arch, repo) = cfg_name.split('-')
-        except ValueError:
-            print "Unrecognized config %s, ignoring." % cfg_name
-            continue
+    for t in config_opts['mock_buildroot_map'].keys():
+        (distro, target, arch, repo) = t
         if distro == config_opts['distro_name'] and repo == config_opts['repo_name']:
             # 'arch' is by definition the "master" arch, ie i386 or x86_64,
             # not i486/i586/ia32e/etc.  We want to add on the "sub" arches
@@ -693,9 +691,9 @@
             print "Arch '%s' specified in the config file is not supported." % arch
             sys.exit(1)
 
-    target_arch_dict = read_mock_configs(config_opts['arches'])
+    target_arch_dict = get_target_arches(config_opts['arches'])
     if len(target_arch_dict) == 0:
-        print "No mock configuration files were found.  Exiting."
+        print "No useable mock buildroot names configured.  Exiting."
         sys.exit(1)
 
     if opts.daemon:




More information about the fedora-extras-commits mailing list