extras-buildsys/server UserInterface.py,1.34,1.35
Seth Vidal (skvidal)
fedora-extras-commits at redhat.com
Fri Jul 29 07:07:35 UTC 2005
Author: skvidal
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19885/server
Modified Files:
UserInterface.py
Log Message:
allow server_admins to requeue anyone's jobs
Index: UserInterface.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/UserInterface.py,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- UserInterface.py 29 Jul 2005 06:09:11 -0000 1.34
+++ UserInterface.py 29 Jul 2005 07:07:32 -0000 1.35
@@ -174,7 +174,7 @@
self._bm.enqueue_srpm(email, package, srpm_file, real_target, buildreq, time.time())
return (0, "Success: package has been queued.")
- def requeue(self, email, uid):
+ def requeue(self, uid):
uid = validate_uid(uid)
if not uid:
return (-1, "Error: Invalid job UID.")
@@ -191,10 +191,6 @@
if not job:
return (-1, "Error: Invalid job UID.")
- # Ensure matching usernames
- if job[1] != email:
- return (-1, "Error: You are not the original submitter for Job %d." % uid)
-
# Ensure the job failed or was killed
if job[2] != 'failed' and job[2] != 'killed':
return (-1, "Error: Job %d must be either 'failed' or 'killed' to requeue." % uid)
@@ -440,7 +436,28 @@
user = AuthedXMLRPCServer.get_authinfo()
if not user or not user.own_jobs:
return (-1, "Insufficient privileges.")
- return UserInterface.requeue(self, user.email, uid)
+
+ uid = validate_uid(uid)
+ if not uid:
+ return (-1, "Error: Invalid job UID.")
+
+ sql = 'SELECT uid, username, status FROM jobs WHERE uid=%d' % uid
+
+ # Run the query for the job
+ try:
+ dbcx, curs = get_dbcx()
+ except sqlite.DatabaseError, e:
+ return (-1, "Unable to access job database.")
+ curs.execute(sql)
+ job = curs.fetchone()
+ if not job:
+ return (-1, "Error: Invalid job UID.")
+
+ # Ensure matching usernames
+ if job[1] != user.email and not user.server_admin:
+ return (-1, "Error: You are not the original submitter for Job %d." % uid)
+
+ return UserInterface.requeue(self, user, uid)
def kill_job(self, email, jobid):
user = AuthedXMLRPCServer.get_authinfo()
More information about the fedora-extras-commits
mailing list