extras-buildsys/client client.py,1.11,1.12
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Tue Jul 19 02:29:50 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/client
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25058/client
Modified Files:
client.py
Log Message:
2005-07-18 Dan Williams <dcbw at redhat.com>
* server/UserInterface.py
client/client.py
- Rework argument handling and passing so that listing jobs
is more flexible. Can now list jobs by UID as well.
Index: client.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/client/client.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- client.py 10 Jul 2005 04:33:25 -0000 1.11
+++ client.py 19 Jul 2005 02:29:47 -0000 1.12
@@ -89,17 +89,42 @@
print "Package %s enqueued." % package
-def list_jobs(server, email, status=None):
+def validate_arg(arg):
+ if arg == 'email' or arg == 'status' or arg == 'uid' or arg == 'uid_gt' or arg == 'uid_lt':
+ return True
+ return False
+
+def list_jobs(server, args):
"""
- List jobs by email, status, or both.
+ List jobs by criteria
"""
- args = {}
+ # Have to have an even number of options
+ if int(len(args) / 2.0) != (len(args) / 2.0):
+ print "Error: invalid options."
+ return
+
+ query_args = {}
+ cmd = ''
+ for arg in args:
+ if not len(cmd):
+ if validate_arg(arg):
+ cmd = arg
+ else:
+ print "Error: invalid option '%s'" % arg
+ return
+ else:
+ query_args[cmd] = arg
+ cmd = ''
+
+ if len(query_args) == 0:
+ # List all jobs
+ query_args['uid_gt'] = "0"
+
+ print query_args
+
try:
- args['email'] = email
- if status:
- args['status'] = status
- (e, msg, jobs, archjobs) = server.list_jobs(args)
+ (e, msg, jobs, archjobs) = server.list_jobs(query_args)
except socket.error, e:
print "Error connecting to build server: '%s'" % e
return
@@ -270,18 +295,7 @@
except CommandException, e:
print e.message
elif cmd == 'list':
- status = None
- if len(sys.argv) == 2:
- pass
- elif len(sys.argv) == 3:
- status = sys.argv[2]
- elif len(sys.argv) == 4:
- email_addr = sys.argv[2]
- status = sys.argv[3]
- else:
- print "Error: invalid command format"
- sys.exit(1)
- list_jobs(server, email, status)
+ list_jobs(server, sys.argv[2:])
elif cmd == 'kill':
if len(sys.argv) < 3:
print "Error: need a job UID to kill"
More information about the fedora-extras-commits
mailing list