+ # Add test site, node, person and slice data
+ # Adds slice to node and person to slice
+ add_test_data(config)(plc_name)
+ plc_stop(config)(plc_name)
+ plc_start(config)(plc_name)
+ person_email = config.persons.values()[0]['email']
+ sync_person_key(config)(person_email)
+
+ # Boot test node and confirm boot state
+ nodelist = ['vm1.paris.cs.princeton.edu']
+ for node in nodelist:
+ if not node in config.nodes.keys():
+ continue
+ node = config.nodes[node]
+ node['vserver'] = config.plcs[plc_name]['vserver']
+ boot_node(config)(plc_name, node['hostname'])
+
+def create_vserver(vserver_name, vserver_home, mailto):
+ # create vserver for this system test if it doesnt already exist
+ if not os.path.isdir('%(vserver_home)s/%(vserver_name)s' % locals()):
+ vserver_create(config)(vserver_name, distro, mailto)
+
+def cleanup_vservers(max_vservers, vserver_home, vserver_basename):
+ # only keep the newest MAX_VSERVERS
+ vservers = os.listdir("%(vserver_home)s" % locals())
+ valid_vservers = lambda vserver: vserver.startswith(vserver_basename)
+ vservers = filter(valid_vservers, vservers)
+ vservers.sort()
+ vservers.reverse()
+ expired_vservers = vservers[5:]
+ for vserver in expired_vservers:
+ utils.header("Deleting vserver: %(vserver)s" % locals())
+ #vserver_delete()(vserver)
+
+usage="""
+Usage: %prog [options]
+"""
+parser = OptionParser(usage=usage,add_help_option = False)
+parser.add_option("-v", "--vserver", help = "Vserver where tests should run")
+parser.add_option("-d", "--distro", help = "Fedora distro to use")
+parser.add_option("-p", "--plcname", help = "Which plc do we use (from config file)")
+parser.add_option("-m", "--mailto", help = "Vserver build mailto address")
+
+(options, args) = parser.parse_args()
+
+# choose which distros to use
+if options.distro is not None: distros = [options.distro]
+else: distros = ['f7']
+# did the user specify a vserver or plc
+vserver_name = options.vserver
+if options.plcname is not None: plc_name = options.plcname
+else: plc_name = 'TestPLC'
+# who gets emailed
+if options.mailto is not None: mailto = options.mailto
+else: mailto = 'tmack@cs.princeton.edu'
+
+# Define globals