[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25745 - gnunet-planetlab/gplmt/scripts
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25745 - gnunet-planetlab/gplmt/scripts |
Date: |
Thu, 10 Jan 2013 14:17:47 +0100 |
Author: wachs
Date: 2013-01-10 14:17:47 +0100 (Thu, 10 Jan 2013)
New Revision: 25745
Removed:
gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
Log:
integrated with gplmt-api
Deleted: gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
===================================================================
--- gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
2013-01-10 13:17:19 UTC (rev 25744)
+++ gnunet-planetlab/gplmt/scripts/create_buildbot_configuration.py
2013-01-10 13:17:47 UTC (rev 25745)
@@ -1,206 +0,0 @@
-#!env python
-import getopt, sys, xmlrpclib, random
-
-
-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\
- -c, --cmd_file= command file for gplmt\n\
- -t, --template= buildmaster configuration template\n\
- -m, --master= buildbot server\n\
- -n, --force_user= buildmaster force build username\n\
- -b, --force_pwd= buildbot force build password\n\
- -h, --help print this help\n\
-Report bugs to address@hidden \n\
-GNUnet home page: http://www.gnu.org/software/gnunet/ \n\
-General help using GNU software: http://www.gnu.org/gethelp/"
-
-
-user = None
-password = None
-plslice = None
-filename = None
-master = None
-template_file = None
-out_cmd_file = "cmdfile"
-out_cfg_file = "master.cfg"
-buildslave_cmd = "buildslave create-slave ./bot "
-master_cfg_force_user = None
-master_cfg_force_pwd = None
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], "hu:p:s:f:c:m:t:o:n:b:", ["help",
"user=", "password=", "slice=", "file=", "cmd_file", "master", "template",
"cfg_output","force_user","force_pwd"])
-except getopt.GetoptError, err:
- # print help information and exit:
- print str(err) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-for o, a in opts:
- if o in ("-h", "--help"):
- usage()
- sys.exit()
- elif o in ("-u", "--user"):
- user = a
- elif o in ("-p", "--password"):
- password = a
- elif o in ("-s", "--slice"):
- plslice = a
- elif o in ("-f", "--file"):
- filename = a
- elif o in ("-c", "--cmd_file"):
- out_cmd_file = a
- elif o in ("-m", "--master"):
- master = a
- elif o in ("-o", "--cfg_output"):
- out_cfg_file = a
- elif o in ("-t", "--template"):
- template_file = a
- elif o in ("-n", "--force_user"):
- master_cfg_force_user = a
- elif o in ("-b", "--force_pwd"):
- master_cfg_force_pwd = a
- else:
- assert False, "unhandled option"
-
-if (((user == None) or (password == None) or (slice == None)) and
- (filename == None)):
- usage()
- sys.exit(2)
-
-if (master == None):
- print "No buildmaster server given!"
- usage()
- sys.exit(2)
-
-if (template_file == None):
- print "No buildbot configuration template given!"
- usage()
- sys.exit(2)
-if (master_cfg_force_user == None):
- print "No buildbot user given!"
- usage()
- sys.exit(2)
-
-if (master_cfg_force_pwd == None):
- print "No buildbot password given!"
- usage()
- sys.exit(2)
-
-# PlanetLab Europe
-api_url = "https://www.planet-lab.eu/PLCAPI/"
-# Planetlab Central
-#api_url = https://www.planet-lab.org/PLCAPI/
-
-server = xmlrpclib.ServerProxy(api_url)
-
-# the auth struct
-auth = {}
-auth['Username'] = user
-auth['AuthString'] = password
-auth['AuthMethod'] = "password"
-
-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:
- node_hostnames.append(line)
- f.close()
-else:
- print "No node file or PlanetLab credentials given"
- sys.exit (2)
-
-# Writing files
-template = {}
-master_cfg_slaves = ""
-master_cfg_builder_definition = ""
-master_cfg_builder_summary = ""
-master_cfg_scheduler_builders = ""
-slave_cmds = ""
-c = 0
-
-try:
- 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)
-
-for node in node_hostnames:
- node = node.strip()
- print "Found node '" + node + "'"
- password =
''.join([random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890')
for i in range(64)])
- # slaves
- master_cfg_slaves += 'BuildSlave("'+node+'","'+password+'"),\n'
- # builder definition
- master_cfg_builder_definition += "builder"+str(c)+" = {'name': \"" + node
+"\"," + "'slavename': \"" + node + "\",'builddir':\"" + node +"\",'factory':
f,'category': \"GNUnet\",}\n"
- # scheduler
- master_cfg_scheduler_builders += '"'+node+'", '
- # builder summary
- master_cfg_builder_summary += "builder"+str(c)+", "
- # cmd
- f_cmd.writelines (node +";" + buildslave_cmd + " " + master + " " + node +
" "+ password + "\n")
- c += 1
-
-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_slaves
-print master_cfg_builder_definition
-print master_cfg_builder_summary
-
-master_file = ""
-
-# Create master.cfg
-try:
- f_tmpl = open(template_file, 'r')
-except IOError as e:
- print "Cannot open template file "+ template_file +": "+str(e)
- sys.exit (2)
-
-for line in f_tmpl:
- line.strip()
- line = line.replace ("%GPLMT_BUILDER_DEFINITION",
master_cfg_builder_definition)
- line = line.replace ("%GPLMT_BUILDER_SUMMARY", master_cfg_builder_summary)
- line = line.replace ("%GPLMT_SLAVES", master_cfg_slaves)
- line = line.replace ("%GPLMT_SCHEDULER_BUILDERS",
master_cfg_scheduler_builders)
- line = line.replace ("%GPLMT_FORCE_USER", master_cfg_force_user)
- line = line.replace ("%GPLMT_FORCE_PWD", master_cfg_force_pwd)
- master_file += line
-
-f_tmpl.close()
-
-try:
- f_cfg = open(out_cfg_file, 'w')
-except IOError as e:
- print "Cannot open template file "+ template_file +": "+str(e)
- sys.exit (2)
-
-f_cfg.writelines(master_file)
-f_cfg.close()
-
-
-
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25745 - gnunet-planetlab/gplmt/scripts,
gnunet <=