def execute(self, path): input_path = gf.absolute_path(path, __file__) output_path = gf.tmp_directory() executor = ExecuteJob(job=None) executor.load_job_from_container(input_path) self.assertIsNotNone(executor.job) executor.execute() result_path = executor.write_output_container(output_path) self.assertIsNotNone(result_path) self.assertTrue(gf.file_exists(result_path)) executor.clean() gf.delete_directory(output_path)
def test_execute(self): input_path = "../aeneas/tests/res/validator/job_xml_config" output_path = "/tmp/" logger = Logger(tee=True) executor = ExecuteJob(job=None, logger=logger) executor.load_job_from_container(input_path) self.assertNotEqual(executor.job, None) result = executor.execute() self.assertTrue(result) result, path = executor.write_output_container(output_path) self.assertTrue(result) self.assertTrue(os.path.exists(path)) executor.clean()
def test_execute(self): input_path = "../aeneas/tests/res/container/job.zip" output_path = "/tmp/" logger = Logger(tee=True) executor = ExecuteJob(job=None, logger=logger) executor.load_job_from_container(input_path) self.assertNotEqual(executor.job, None) result = executor.execute() self.assertTrue(result) result, path = executor.write_output_container(output_path) self.assertTrue(result) self.assertTrue(os.path.exists(path)) executor.clean()
def main(): """ Entry point """ if len(sys.argv) < 3: usage() return container_path = sys.argv[1] config_string = None verbose = (sys.argv[-1] == "-v") number_of_arguments = 4 if verbose: number_of_arguments += 1 if len(sys.argv) >= number_of_arguments: config_string = sys.argv[2] output_dir = sys.argv[3] else: output_dir = sys.argv[2] logger = Logger(tee=verbose) executor = ExecuteJob(logger=logger) if not gf.can_run_c_extension(): print "[WARN] Unable to load Python C Extensions" print "[WARN] Running the slower pure Python code" print "[WARN] See the README file for directions to compile the Python C Extensions" print "[INFO] Loading job from container..." result = executor.load_job_from_container(container_path, config_string) print "[INFO] Loading job from container... done" if not result: print "[ERRO] The job cannot be loaded from the specified container" return print "[INFO] Executing..." result = executor.execute() print "[INFO] Executing... done" if not result: print "[ERRO] An error occurred while executing the job" return print "[INFO] Creating output container..." result, path = executor.write_output_container(output_dir) print "[INFO] Creating output container... done" if result: print "[INFO] Created %s" % path else: print "[ERRO] An error occurred while writing the output container" executor.clean(True)
def main(): if len(sys.argv) < 3: usage() return container_path = sys.argv[1] config_string = None if len(sys.argv) >= 4: config_string = sys.argv[2] output_dir = sys.argv[3] else: output_dir = sys.argv[2] #logger = Logger(tee=True) logger = Logger(tee=False) executor = ExecuteJob(logger=logger) print "[INFO] Loading job from container..." result = executor.load_job_from_container(container_path, config_string) print "[INFO] Loading job from container... done" if not result: print "[ERRO] The job cannot be loaded from the specified container" return print "[INFO] Executing..." result = executor.execute() print "[INFO] Executing... done" if not result: print "[ERRO] An error occurred while executing the job" return print "[INFO] Creating output container..." result, path = executor.write_output_container(output_dir) print "[INFO] Creating output container... done" if result: print "[INFO] Created %s" % path else: print "[ERRO] An error occurred while writing the output container" executor.clean(True)
def perform_command(self): """ Perform command and return the appropriate exit code. :rtype: int """ if len(self.actual_arguments) < 2: return self.print_help() container_path = self.actual_arguments[0] output_directory_path = self.actual_arguments[1] config_string = None if (len(self.actual_arguments)) > 2 and (not self.actual_arguments[2].startswith(u"-")): config_string = self.actual_arguments[2] validate = not self.has_option(u"--skip-validator") if self.has_option(u"--cewsubprocess"): self.rconf[RuntimeConfiguration.CEW_SUBPROCESS_ENABLED] = True if not self.check_input_file_or_directory(container_path): return self.ERROR_EXIT_CODE if not self.check_output_directory(output_directory_path): return self.ERROR_EXIT_CODE if validate: try: self.print_info(u"Validating the container (specify --skip-validator to bypass)...") validator = Validator(rconf=self.rconf, logger=self.logger) result = validator.check_container(container_path, config_string=config_string) if not result.passed: self.print_error(u"The given container is not valid:") self.print_error(result.pretty_print()) return self.ERROR_EXIT_CODE self.print_info(u"Validating the container... done") except Exception as exc: self.print_error(u"An unexpected error occurred while validating the container:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Loading job from container...") executor = ExecuteJob(rconf=self.rconf, logger=self.logger) executor.load_job_from_container(container_path, config_string) self.print_info(u"Loading job from container... done") except Exception as exc: self.print_error(u"An unexpected error occurred while loading the job:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Executing...") executor.execute() self.print_info(u"Executing... done") except Exception as exc: self.print_error(u"An unexpected error occurred while executing the job:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Creating output container...") path = executor.write_output_container(output_directory_path) self.print_info(u"Creating output container... done") self.print_success(u"Created output file '%s'" % path) executor.clean(True) return self.NO_ERROR_EXIT_CODE except Exception as exc: self.print_error(u"An unexpected error occurred while writing the output container:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE
def perform_command(self): """ Perform command and return the appropriate exit code. :rtype: int """ if len(self.actual_arguments) < 2: return self.print_help() container_path = self.actual_arguments[0] output_directory_path = self.actual_arguments[1] config_string = None if (len(self.actual_arguments)) > 2 and ( not self.actual_arguments[2].startswith(u"-")): config_string = self.actual_arguments[2] validate = not self.has_option(u"--skip-validator") if self.has_option(u"--cewsubprocess"): self.rconf[RuntimeConfiguration.CEW_SUBPROCESS_ENABLED] = True if not self.check_input_file_or_directory(container_path): return self.ERROR_EXIT_CODE if not self.check_output_directory(output_directory_path): return self.ERROR_EXIT_CODE if validate: try: self.print_info( u"Validating the container (specify --skip-validator to bypass)..." ) validator = Validator(rconf=self.rconf, logger=self.logger) result = validator.check_container(container_path, config_string=config_string) if not result.passed: self.print_error(u"The given container is not valid:") self.print_error(result.pretty_print()) return self.ERROR_EXIT_CODE self.print_info(u"Validating the container... done") except Exception as exc: self.print_error( u"An unexpected error occurred while validating the container:" ) self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Loading job from container...") executor = ExecuteJob(rconf=self.rconf, logger=self.logger) executor.load_job_from_container(container_path, config_string) self.print_info(u"Loading job from container... done") except Exception as exc: self.print_error( u"An unexpected error occurred while loading the job:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Executing...") executor.execute() self.print_info(u"Executing... done") except Exception as exc: self.print_error( u"An unexpected error occurred while executing the job:") self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE try: self.print_info(u"Creating output container...") path = executor.write_output_container(output_directory_path) self.print_info(u"Creating output container... done") self.print_success(u"Created output file '%s'" % path) executor.clean(True) return self.NO_ERROR_EXIT_CODE except Exception as exc: self.print_error( u"An unexpected error occurred while writing the output container:" ) self.print_error(u"%s" % exc) return self.ERROR_EXIT_CODE