>From 3461af8475575d81e32973a2d46d483bf44fc5cb Mon Sep 17 00:00:00 2001
From: Mike McLean <[email protected]>
Date: Wed, 24 Sep 2014 10:10:17 -0400
Subject: [PATCH] sanity check requested arches for image builds

---
 builder/kojid | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/builder/kojid b/builder/kojid
index bdc3b9b..c71637d 100755
--- a/builder/kojid
+++ b/builder/kojid
@@ -2048,6 +2048,14 @@ class BuildBaseImageTask(BuildImageTask):
         target_info = self.session.getBuildTarget(target, strict=True)
         build_tag = target_info['build_tag']
         repo_info = self.getRepo(build_tag)
+        #check requested arches against build tag
+        buildconfig = self.session.getBuildConfig(build_tag)
+        if not buildconfig['arches']:
+            raise koji.BuildError, "No arches for tag %(name)s [%(id)s]" % buildconfig
+        tag_archlist = [koji.canonArch(a) for a in buildconfig['arches'].split()]
+        for arch in arches:
+            if koji.canonArch(arch) not in tag_archlist:
+                raise koji.BuildError, "Invalid arch for build tag: %s" % arch
 
         if not opts:
             opts = {}
@@ -2153,6 +2161,14 @@ class BuildApplianceTask(BuildImageTask):
         target_info = self.session.getBuildTarget(target, strict=True)
         build_tag = target_info['build_tag']
         repo_info = self.getRepo(build_tag)
+        #check requested arch against build tag
+        buildconfig = self.session.getBuildConfig(build_tag)
+        if not buildconfig['arches']:
+            raise koji.BuildError, "No arches for tag %(name)s [%(id)s]" % buildconfig
+        tag_archlist = [koji.canonArch(a) for a in buildconfig['arches'].split()]
+        if koji.canonArch(arch) not in tag_archlist:
+            raise koji.BuildError, "Invalid arch for build tag: %s" % arch
+
 
         if not opts:
             opts = {}
@@ -2231,6 +2247,13 @@ class BuildLiveCDTask(BuildImageTask):
         target_info = self.session.getBuildTarget(target, strict=True)
         build_tag = target_info['build_tag']
         repo_info = self.getRepo(build_tag)
+        #check requested arch against build tag
+        buildconfig = self.session.getBuildConfig(build_tag)
+        if not buildconfig['arches']:
+            raise koji.BuildError, "No arches for tag %(name)s [%(id)s]" % buildconfig
+        tag_archlist = [koji.canonArch(a) for a in buildconfig['arches'].split()]
+        if koji.canonArch(arch) not in tag_archlist:
+            raise koji.BuildError, "Invalid arch for build tag: %s" % arch
 
         if not opts:
             opts = {}
-- 
1.9.3

--
buildsys mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/buildsys

Reply via email to