def main(args): programs = cli.select_programs(args, filter_paused=True) programs = cli.filter_programs(programs, lambda p: p.is_running, 'Starting', 'started', True) if args.daemon: for prog in programs: if not prog.is_running: prog.start(args.daemon) for prog in programs: print("Checking status of program %-25s ... " % (prog.name[:25]), end='') sys.stdout.flush() err = prog.wait_for_start() if err: print_colors('[{=ERROR!c:red} ]') else: print_colors('[ {=OK!c:green} ]') else: pool = MultiPlexIOPool(stream=args.stream, use_color=args.color and os.name == 'posix') for prog in programs: pool.append(prog) pool.join()
def main(args): programs = cli.select_programs(args, filter_paused=False, force=args.force) programs = cli.filter_programs(programs, lambda p: not p.is_running, 'Stopping', 'stopped') if not programs: return for prog in programs: if prog.is_running: print("Stopping program %-25s ... " % prog.name[:25], end='') sys.stdout.flush() try: prog.stop(args.force) except errors.StateError as err: log.error(err.message) except errors.ConnectionError as err: print_colors( "[ {=ERROR!c:red} ] %s (use --force to force stop the program)" % err.message) else: print_colors("[ {=OK!c:green} ]") else: print_colors("Program is already stopped: %-25s " % prog.name[:25], "[{=STOPPED!c:yello} ]")
def main(args): export_data = [] programs = select_programs(args, filter_paused=False) for prog in programs: export_data.append({'program': dict(prog.raw_data)}) yaml.safe_dump(export_data, args.output, default_flow_style=False)
def pause_main(args): programs = cli.select_programs(args, filter_paused=False) programs = cli.filter_programs(programs, lambda p: p.is_paused, 'Pausing', 'paused') if not programs: return for prog in programs: log.info("Pausing program %s" % (prog.name)) if prog.is_running: log.warn("%s is running and will not restart on system reboot" % (prog.name)) prog.state.update(paused=True)
def unpause_main(args): programs = cli.select_programs(args, filter_paused=False) programs = cli.filter_programs(programs, lambda p: not p.is_paused, 'Unpausing', 'unpaused') if not programs: return for prog in programs: log.info("Unpausing program %s" % (prog.name)) prog.state.update(paused=False) if not prog.is_running: log.warning( "%s is not running and will start on next system boot" % (prog.name))
def restart_main(args): programs = cli.select_programs(args, filter_paused=True) if not (args.all or args.names): raise errors.ChalmersError( "Must specify at least one program to restart") if len(programs): print("Restarting programs %s" % ', '.join([p.name for p in programs])) print("") else: log.warn("No programs to restart") return for prog in programs: sys.stdout.flush() if prog.is_running: print("Stop program %-25s ... " % (prog.name[:25]), end='') try: prog.stop() except errors.StateError: print_colors('[ {=ERROR!c:red} ]') print_colors('[ {=OK!c:green} ]') time.sleep(.5) for prog in programs: prog.start() for prog in programs: print("Checking status of program %-25s ... " % (prog.name[:25]), end='') sys.stdout.flush() err = prog.wait_for_start() if err: print_colors('[{=ERROR!c:red} ]') else: print_colors('[ {=OK!c:green} ]')
def main(args): programs = select_programs(args, filter_paused=False) for prog in programs: if not prog.exists(): print("Program '{0}' does not exist".format(prog.name)) continue print("Removing program {0!s:25} ... ".format(prog.name[:25]), end=''); sys.stdout.flush() try: prog.delete() except errors.ChalmersError as err: print_colors("[{=ERROR!c:red} ] %s" % err.message, stream=sys.stdout, end='\n') continue print_colors("[ {=OK!c:green} ]", stream=sys.stdout, end='\n')
def main(args): programs = select_programs(args, filter_paused=False) for prog in programs: if not prog.exists(): print("Program '{0}' does not exist".format(prog.name)) continue print("Removing program {0!s:25} ... ".format(prog.name[:25]), end='') sys.stdout.flush() try: prog.delete() except errors.ChalmersError as err: print_colors("[{=ERROR!c:red} ] %s" % err.message, stream=sys.stdout, end='\n') continue print_colors("[ {=OK!c:green} ]", stream=sys.stdout, end='\n')