gnunet-svn
[Top][All Lists]
Advanced

[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
     
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]