def main(): activate_logging() parser = arg_parser() add_arguments(parser) parsed_args = parse_arguments(parser) install_tees(parsed_args.stdout, parsed_args.stderr) max_ram_megabytes = MemoryParser.parse_to_megabytes(parsed_args.max_ram) max_cores = CPUParser.parse(parsed_args.max_cores) executor = CalrissianExecutor(max_ram_megabytes, max_cores) initialize_reporter(max_ram_megabytes, max_cores) runtime_context = CalrissianRuntimeContext(vars(parsed_args)) runtime_context.select_resources = executor.select_resources install_signal_handler() try: result = cwlmain(args=parsed_args, executor=executor, loadingContext=CalrissianLoadingContext(), runtimeContext=runtime_context, versionfunc=version, ) finally: # Always clean up after cwlmain delete_pods() if parsed_args.usage_report: write_report(parsed_args.usage_report) flush_tees() return result
def test_delete_pods_calls_podmonitor(self, mock_pod_monitor): delete_pods() self.assertTrue(mock_pod_monitor.cleanup.called)
def handle_sigterm(signum, frame): log.error('Received signal {}, deleting pods'.format(signum)) delete_pods() sys.exit(signum)