Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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} ]")
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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))
Ejemplo n.º 7
0
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}  ]')
Ejemplo n.º 8
0
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')
Ejemplo n.º 9
0
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')