[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r23218 - gnunet-planetlab/gplmt/scripts
From: |
gnunet |
Subject: |
[GNUnet-SVN] r23218 - gnunet-planetlab/gplmt/scripts |
Date: |
Tue, 14 Aug 2012 11:41:20 +0200 |
Author: wachs
Date: 2012-08-14 11:41:20 +0200 (Tue, 14 Aug 2012)
New Revision: 23218
Modified:
gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
Log:
support to create buildslave cfg
Modified: gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
===================================================================
--- gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
2012-08-14 08:49:00 UTC (rev 23217)
+++ gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
2012-08-14 09:41:20 UTC (rev 23218)
@@ -4,12 +4,14 @@
def usage():
print "GNUnet PlanetLab deployment and automation toolset\n\
+ Create buildmaster configuration file and buildslave setup commands\n\
Arguments mandatory for long options are also mandatory for short options.\n\
-u, --user= Planetlab username\n\
-p, --password= Planetlab password\n\
-s, --slice= Planetlab slice\n\
-f, --file= file containing nodes\n\
- -o, --outputdir= where to store slave configuration\n\
+ -c, --cmd_file= command file for gplmt\n\
+ -m, --master= buildbot server\n\
-h, --help print this help\n\
Report bugs to address@hidden \n\
GNUnet home page: http://www.gnu.org/software/gnunet/ \n\
@@ -20,10 +22,12 @@
password = None
plslice = None
filename = None
-outputdir = "./"
+master = None
+out_cmd_file = "cmdfile"
+buildslave_cmd = "buildslave create-slave ./bot "
try:
- opts, args = getopt.getopt(sys.argv[1:], "hu:p:s:f:o:", ["help", "user=",
"password=", "slice=", "file=", "outputdir"])
+ opts, args = getopt.getopt(sys.argv[1:], "hu:p:s:f:c:m:", ["help",
"user=", "password=", "slice=", "file=", "cmd_file", "master"])
except getopt.GetoptError, err:
# print help information and exit:
print str(err) # will print something like "option -a not recognized"
@@ -41,8 +45,10 @@
plslice = a
elif o in ("-f", "--file"):
filename = a
- elif o in ("-o", "--outputdir"):
- outputdir = a
+ elif o in ("-c", "--cmd_file"):
+ out_cmd_file = a
+ elif o in ("-m", "--master"):
+ master = a
else:
assert False, "unhandled option"
@@ -50,6 +56,10 @@
(filename == None)):
usage()
sys.exit(2)
+
+if (master == None):
+ usage()
+ sys.exit(2)
# PlanetLab Europe
api_url = "https://www.planet-lab.eu/PLCAPI/"
@@ -67,28 +77,52 @@
slice_data = {}
slice_data['name'] = plslice
+node_hostnames = []
+
# request nodes assigned to slice
+if ((user != None) and (password != None) and (plslice != None) and (filename
== None)):
+ try:
+ node_ids = server.GetSlices(auth, [slice_data['name']],
['node_ids'])[0]['node_ids']
+ node_hostnames = [node['hostname'] for node in server.GetNodes(auth,
node_ids, ['hostname'])]
+ except Exception as e:
+ print "Error while retrieving node list: " + str(e)
+ sys.exit (2)
+elif (filename != None):
+ try:
+ f = open (filename, 'r')
+ except IOError as e:
+ print "Could not open: " + str(e)
+ sys.exit (2)
+ for line in f:
+ print line
+ node_hostnames.append(line)
+ f.close()
+else:
+ print "No node file or PlanetLab credentials given"
+ sys.exit (2)
+
+# Writing files
+master_cfg_buildslave = "c['slaves'] = ["
+slave_cmds = ""
+
try:
- node_ids = server.GetSlices(auth, [slice_data['name']],
['node_ids'])[0]['node_ids']
- node_hostnames = [node['hostname'] for node in server.GetNodes(auth,
node_ids, ['hostname'])]
-except Exception as e:
- print "Error while retrieving node list: " + str(e)
+ f_cmd = open(out_cmd_file, 'w')
+except IOError as e:
+ print "Cannot open output command file "+ out_cmd_file +": "+str(e)
sys.exit (2)
-master_cfg_buildslave = "c['slaves'] = ["
+
for node in node_hostnames:
-
password =
''.join([random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890')
for i in range(64)])
master_cfg_buildslave += 'BuildSlave("'+node+'","'+password+'"),\n'
- try:
- f = open(outputdir + '/' + node, 'w')
- f.writelines (node +";" +password)
- f.close()
- except IOError as e:
- print str(e)
- sys.exit (2)
+ f_cmd.writelines (node +";" + buildslave_cmd + " " + master + " " +
password + "\n")
+
master_cfg_buildslave += "]"
+try:
+ f_cmd.close()
+except IOError as e:
+ print "Cannot close output command file "+ out_cmd_file +": "+str(e)
+ sys.exit (2)
-
print master_cfg_buildslave
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r23218 - gnunet-planetlab/gplmt/scripts,
gnunet <=