extras-buildsys/server UserInterface.py,1.51,1.52

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Wed Aug 31 18:25:52 UTC 2005


Author: dcbw

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

Modified Files:
	UserInterface.py 
Log Message:
2005-08-31  Dan Williams <dcbw at redhat.com>

    * server/UserInterface.py
        - Fix more target-related stuff




Index: UserInterface.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/UserInterface.py,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- UserInterface.py	29 Aug 2005 17:48:19 -0000	1.51
+++ UserInterface.py	31 Aug 2005 18:25:50 -0000	1.52
@@ -80,6 +80,22 @@
         return True
     return False
 
+def resolve_target(cfg, alias):
+    target_cfg = None
+    try:
+        target_cfg = cfg.resolve_target_user_alias(alias)
+    except Config.InvalidUserAliasException:
+        pass
+
+    # If it wasn't an alias, try actual target names
+    if not target_cfg:
+        for tcfg in cfg.targets():
+            if alias == tcfg.target_string():
+                target_cfg = tcfg
+                break
+    return target_cfg
+
+
 class UserInterface:
     """
     Base UserInterface class. NO AUTHENTICATION.  Subclass this to provide some.
@@ -152,18 +168,17 @@
                     "Submit a bug report?" % (source, target_alias, package))
             return (-1, "The package name contained an illegal character.", -1)
 
-        try:
-            target_cfg = self._cfg.resolve_target_user_alias(target_alias)
-        except Config.InvalidUserAliasException, e:
+        target_cfg = resolve_target(self._cfg, target_alias)
+        if not target_cfg:
             self.email_result(email, source, "Error setting up build for %s on "\
                     "%s: target does not exist." % (source, target_alias))
             return (-1, "This build server does not support the target %s." % target_alias, -1)
-        else:
-            print "Request to enqueue '%s' tag '%s' for target '%s' (user '%s')" % (package, source, target_alias, email)
-            req = self._bm.create_job_request(email, package, source, target_cfg.target_dict(), buildreq, time.time())
-            self._bm.enqueue(req)
-            uid = self._wait_for_uid(req)
-            return (0, "Success: package has been queued.", uid)
+
+        print "Request to enqueue '%s' tag '%s' for target '%s' (user '%s')" % (package, source, target_alias, email)
+        req = self._bm.create_job_request(email, package, source, target_cfg.target_dict(), buildreq, time.time())
+        self._bm.enqueue(req)
+        uid = self._wait_for_uid(req)
+        return (0, "Success: package has been queued.", uid)
 
     def requeue(self, uid):
         uid = validate_uid(uid)
@@ -252,10 +267,10 @@
             sql_args.append('uid<%d' % uid)
 
         if args_dict.has_key('target') and args_dict['target']:
-            try:
-                target_cfg = self._cfg.resolve_target_user_alias(args_dict['target'])
-            except Config.InvalidUserAliasException:
+            target_cfg = resolve_target(self._cfg, args_dict['target'])
+            if not target_cfg:
                 return (-1, "Error: Invalid target.", [])
+
             sql_args.append('target_distro="%s"' % target_cfg.distro())
             sql_args.append('target_target="%s"' % target_cfg.target())
             sql_args.append('target_repo="%s"' % target_cfg.repo())
@@ -397,7 +412,8 @@
             jobrec['version'] = job['version']
             jobrec['release'] = job['release']
             base_url = self._server_cfg.get_str("UI", "log_url")
-            log_url = PackageJob.make_job_log_url(base_url, jobrec['target'],
+            target_str = "%s-%s-%s" % (jobrec['target_distro'], jobrec['target_target'], jobrec['target_repo'])
+            log_url = PackageJob.make_job_log_url(base_url, target_str,
                         str(uid), jobrec['package'], jobrec['version'],
                         jobrec['release'])
             if log_url and len(log_url):
@@ -445,7 +461,7 @@
     def targets(self):
         targets = []
         for target_cfg in self._cfg.targets():
-            targets.append(target_cfg.get_str("General", "name"))
+            targets.append(target_cfg.target_string())
         return targets
 
     def pause(self, paused):




More information about the scm-commits mailing list