diff --git a/bufferutils.py b/bufferutils.py index 47855d2..3156002 100644 --- a/bufferutils.py +++ b/bufferutils.py @@ -189,6 +189,15 @@ def main(): default=None, help="label that identifies the source(s) to restart") + parser_stop = subparsers.add_parser('stop', + help="stop a source", + formatter_class=argparse.RawTextHelpFormatter) + + parser_stop.add_argument('-l', + '--label', + default=None, + help="label that identifies the source(s) to stop") + parser_list = subparsers.add_parser('list', help="list", formatter_class=argparse.RawTextHelpFormatter) @@ -244,6 +253,30 @@ def main(): logging.warning("Not yet implemented") parser_restart.print_usage() + + # + # STOP + elif arguments.command == 'stop': + if arguments.label: + label = arguments.label + logging.info(f"Stop: {label}") + + policies = read_files(base_directory / Path("policies"), "policies") + sources = read_files(base_directory / Path("sources"), "sources") + + # Only for debugging purposes + labeled_sources = get_labeled_sources(sources, label) + for s in labeled_sources: + logging.info(f"Restarting {s['stream']}") + + sources_new = remove_labeled_source(sources, label) + + # Stopping the removed source(s) + upload_sources_and_policies(sources_new, policies) + else: + logging.warning("Not yet implemented") + parser_stop.print_usage() + # # LIST elif arguments.command == 'list':