コード例 #1
0
ファイル: long_test_job.py プロジェクト: ptrwtts/aeneas
 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)
コード例 #2
0
ファイル: long_test_job.py プロジェクト: ptrwtts/aeneas
 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)
コード例 #3
0
ファイル: job_zip.py プロジェクト: fduch2k/aeneas
    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()
コード例 #4
0
ファイル: job_xml.py プロジェクト: cambell-prince/aeneas
    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()
コード例 #5
0
ファイル: execute_job.py プロジェクト: fduch2k/aeneas
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)
コード例 #6
0
ファイル: execute_job.py プロジェクト: fduch2k/aeneas
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)
コード例 #7
0
ファイル: execute_job.py プロジェクト: cbeer/aeneas
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)
コード例 #8
0
ファイル: execute_job.py プロジェクト: eomerdws/aeneas
    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
コード例 #9
0
ファイル: execute_job.py プロジェクト: theolivenbaum/aeneas
    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