def main(): # Dump configuration print 'Cloning: %s ' % clone_names # Create drones drones.main() # Connect global connections connections = util.connect_all() try: # Shutdown all running VMs shutdownall() reactor.callLater(0, next_vm) print 'Starting reactor' reactor.run() print 'Reactor returned' finally: util.close_all(connections)
def init(): # Build drones drones.main() # Start clone queue listener _wait_for_next_entry()
# Templating engine templ = Template(data) d = dict(hostname=vm) templ = templ.substitute(d) # Write result configuration config = open('drones/setup_vm/main.sh', 'w') config.writelines(templ) config.close() except Exception, e: traceback.print_exc(file=sys.stdout) reactor.stop() return # Rebuild drones drones.main() # Load and execute drone print 'Waiting for drone...' drone = drones.load_drone('setup_vm') ret.launchNoWait(drone.data, drone.name).addCallback(update_done, vm, ret) def error(err, vm): print 'Connection failed, waiting and trying again...' reactor.callLater(20, setup, vm) def setup(vm): print 'Connecting with new domain...'