[Uludag-commits] r15080 - in trunk/staj-projeleri/buildfarm: . helpers
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
22 Ağu 2007 Çar 14:46:19 EEST
Author: ozan.caglayan
Date: Wed Aug 22 14:46:19 2007
New Revision: 15080
Modified:
trunk/staj-projeleri/buildfarm/client.py
trunk/staj-projeleri/buildfarm/helpers/qmanager.py
trunk/staj-projeleri/buildfarm/server.py
Log:
cli argument parsing, fixed an internal bug
Modified: trunk/staj-projeleri/buildfarm/client.py
=================================================================
--- trunk/staj-projeleri/buildfarm/client.py (original)
+++ trunk/staj-projeleri/buildfarm/client.py Wed Aug 22 14:46:19 2007
@@ -23,7 +23,8 @@
REMOTE_PORT = 443
def usage():
- print _("""Usage: buildfarm <command> [<param> ...]
+ subst = {'program':sys.argv[0]}
+ print _("""Usage: %(program)s <command> [<param> ...]
where command is:
@@ -32,15 +33,29 @@
sync Synchronizes the binary repositories
update Updates the repository
list
- work Dumps the work queue
wait Dumps the wait queue
+ work Dumps the work queue
build
index Builds PiSi index for the repository
packages Builds and installs all packages of the work queue
-
- """)
+ transfer
+ wait p Transfers the package 'p' from the work queue to the wait queue
+ work p Transfers the package 'p' from the wait queue to the work queue
+ append
+ wait p Appends the package 'p' to the wait queue
+ work p Appends the package 'p' to the work queue
+ remove
+ wait p Removes the package 'p' from the wait queue
+ work p Removes the package 'p' from the work queue
+
+ Examples:
+ $ %(program)s list wait
+ $ %(program)s build packages
+ $ %(program)s append work xmoto/pspec.xml
+ $ %(program)s remove work xmoto/pspec.xml
+ """ % subst)
-def client(op, cmd=None):
+def client(op, cmd=None, pspec=None):
funcString = None
@@ -48,21 +63,25 @@
remoteURI = "https://" + REMOTE_HOST + ":" + str(REMOTE_PORT)
server = xmlrpclib.ServerProxy(remoteURI)
+ #print "\n".join(server.system.listMethods())
+
+ # 1 Parameter : op
if op == "update":
print op
elif op == "sync":
print op
elif op == "status":
print op
-
+
+ # 2 Parameters : op,cmd
elif op == "list":
funcString = "get" + cmd.capitalize() + "Queue"
print _("Current %s queue" % cmd)
- print "-" * 20
+ print "-" * 19
print "\n".join(server.__getattr__(funcString)())
elif op == "build":
- funcString = op + cmd.capitalize()
+ funcString = "build" + cmd.capitalize()
print _("Calling %s()..." % funcString)
retval = server.__getattr__(funcString)()
if retval:
@@ -70,9 +89,33 @@
else:
print _("Errors during %s." % funcString)
- # Call the appropriate method
+ # 3 Parameters : op,cmd,pspec
+ elif op == "remove":
+ funcString = "removeFrom" + cmd.capitalize() + "Queue"
+ print _("Removing '%s' from %s queue.." % (pspec, cmd))
+ retval = server.__getattr__(funcString)(pspec)
+ if retval:
+ print _("Removed!")
+ else:
+ print _("Make sure that '%s' is in the %s queue!" % (pspec, cmd))
+
+ elif op == "append":
+ funcString = "appendTo" + cmd.capitalize() + "Queue"
+ retval = server.__getattr__(funcString)(pspec)
+
+ if retval:
+ print _("%s successfully appended to the %s queue!" % (pspec, cmd))
+ else:
+ print _("Can not append %s to the %s queue!" % (pspec, cmd))
+
+ elif op == "transfer":
+ funcString = "transferTo" + cmd.capitalize() + "Queue"
+ retval = server.__getattr__(funcString)(pspec)
+ if retval:
+ print _("%s transferred to %s queue!" % (pspec, cmd))
+ else:
+ print _("Can not transfer %s to %s queue!" % (pspec, cmd))
-
if __name__ == "__main__":
args = sys.argv[1:]
@@ -95,6 +138,12 @@
client(args[0],args[1])
else:
usage()
+
+ elif len(args) == 3:
+ if args[0] in ("append","remove","transfer") and args[1] in ("work","wait"):
+ client(args[0],args[1],args[2])
+ else:
+ usage()
else:
usage()
Modified: trunk/staj-projeleri/buildfarm/helpers/qmanager.py
=================================================================
--- trunk/staj-projeleri/buildfarm/helpers/qmanager.py (original)
+++ trunk/staj-projeleri/buildfarm/helpers/qmanager.py Wed Aug 22 14:46:19 2007
@@ -32,7 +32,9 @@
self.waitQueue = dependency.DependencyResolver(self.waitQueue).resolvDependencies()
self.workQueue = dependency.DependencyResolver(self.workQueue).resolvDependencies()
-
+ self.__serialize__(self.waitQueue, "waitQueue")
+ self.__serialize__(self.workQueue, "workQueue")
+
def __del__(self):
self.__serialize__(self.waitQueue, "waitQueue")
self.__serialize__(self.workQueue, "workQueue")
@@ -57,14 +59,25 @@
if not line.startswith("#"):
queueName.append(line.strip("\n"))
queue.close()
+
+ def __initWorkQueueFromFile__(self):
+ self.workQueue = []
+ self.__deserialize__(self.workQueue, "workQueue")
+
+ def __initWaitQueueFromFile__(self):
+ self.waitQueue = []
+ self.__deserialize__(self.waitQueue, "waitQueue")
def getWorkQueue(self):
+ self.__initWorkQueueFromFile__()
return self.workQueue
def getWaitQueue(self):
+ self.__initWaitQueueFromFile__()
return self.waitQueue
def removeFromWaitQueue(self, pspec):
+ self.__initWaitQueueFromFile__()
if self.waitQueue.__contains__(pspec):
self.waitQueue.remove(pspec)
self.__serialize__(self.waitQueue, "waitQueue")
@@ -72,6 +85,7 @@
return False
def removeFromWorkQueue(self, pspec):
+ self.__initWorkQueueFromFile__()
if self.workQueue.__contains__(pspec):
self.workQueue.remove(pspec)
self.__serialize__(self.workQueue, "workQueue")
@@ -79,18 +93,20 @@
return False
def appendToWorkQueue(self, pspec):
- if not self.workQueue.__contains__(pspec):
+ self.__initWorkQueueFromFile__()
+ if not self.workQueue.__contains__(pspec):
self.workQueue.append(pspec)
self.__serialize__(self.workQueue, "workQueue")
return True
- return False
+ return False
def appendToWaitQueue(self, pspec):
- if not self.waitQueue.__contains__(pspec):
+ self.__initWaitQueueFromFile__()
+ if not self.waitQueue.__contains__(pspec):
self.waitQueue.append(pspec)
self.__serialize__(self.waitQueue, "waitQueue")
return True
- return False
+ return False
def transferToWorkQueue(self, pspec):
if self.appendToWorkQueue(pspec):
Modified: trunk/staj-projeleri/buildfarm/server.py
=================================================================
--- trunk/staj-projeleri/buildfarm/server.py (original)
+++ trunk/staj-projeleri/buildfarm/server.py Wed Aug 22 14:46:19 2007
@@ -67,8 +67,8 @@
self.server_bind()
self.server_activate()
- def __getattr__(self,x):
- return getattr(self,x)
+ def __getattr__(self,obj):
+ return getattr(self,obj)
class SecureXMLRpcRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
def setup(self):
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi