Пример #1
0
    def run(self, args):
        """Run 'create' subcommand."""
        optparser = CreateOptions(go_args=args, envvar_prefix=self.envvar_prefix, usage=self.usage_txt)
        options = optparser.options
        if not validate_pbs_option(options):
            sys.stderr.write('Missing config options. Exiting.\n')
            return 1

        label = options.label

        if not hc.validate_label(label, hc.known_cluster_labels()):
            sys.exit(1)

        if not hc.validate_hodconf_or_dist(options.hodconf, options.dist):
            sys.exit(1)

        try:
            j = PbsHodJob(optparser)
            hc.report_cluster_submission(label)
            j.run()
            jobs = j.state()
            hc.post_job_submission(label, jobs, optparser.options.workdir)
            return 0
        except StandardError as e:
            fancylogger.setLogFormat(fancylogger.TEST_LOGGING_FORMAT)
            fancylogger.logToScreen(enable=True)
            _log.raiseException(e.message)
Пример #2
0
    def run(self, args):
        """Run 'create' subcommand."""
        optparser = CreateOptions(go_args=args, envvar_prefix=self.envvar_prefix, usage=self.usage_txt)
        options = optparser.options
        if not validate_pbs_option(options):
            sys.stderr.write('Missing config options. Exiting.\n')
            return 1

        label = options.label

        if not hc.validate_label(label, hc.known_cluster_labels()):
            sys.exit(1)

        if not hc.validate_hodconf_or_dist(options.hodconf, options.dist):
            sys.exit(1)

        try:
            j = PbsHodJob(optparser)
            hc.report_cluster_submission(label)
            j.run()
            jobs = j.state()
            hc.post_job_submission(label, jobs, optparser.options.workdir)
        except StandardError as err:
            self._log_and_raise(err)

        return 0
Пример #3
0
    def run(self, args):
        """Run 'create' subcommand."""
        optparser = CreateOptions(go_args=args,
                                  envvar_prefix=self.envvar_prefix,
                                  usage=self.usage_txt)
        options = optparser.options
        if not validate_pbs_option(options):
            sys.stderr.write('Missing config options. Exiting.\n')
            return 1

        label = options.label

        if not hc.validate_label(label, hc.known_cluster_labels()):
            sys.exit(1)

        if not hc.validate_hodconf_or_dist(options.hodconf, options.dist):
            sys.exit(1)

        try:
            j = PbsHodJob(optparser)
            hc.report_cluster_submission(label)
            j.run()
            jobs = j.state()
            hc.post_job_submission(label, jobs, optparser.options.workdir)
        except StandardError as err:
            self._log_and_raise(err)

        return 0
Пример #4
0
    def run(self, args):
        """Run 'batch' subcommand."""
        optparser = BatchOptions(go_args=args,
                                 envvar_prefix=self.envvar_prefix,
                                 usage=self.usage_txt)
        options = optparser.options
        if not validate_pbs_option(options):
            sys.stderr.write('Missing config options. Exiting.\n')
            return 1

        if optparser.options.script is None:
            sys.stderr.write('Missing script. Exiting.\n')
            return 1

        # resolve script path to absolute path
        optparser.options.script = os.path.abspath(optparser.options.script)

        if not os.path.exists(optparser.options.script):
            sys.stderr.write(
                "Specified script does not exist: %s. Exiting.\n" %
                optparser.options.script)
            return 1

        # make sure script is executable
        cur_perms = os.stat(optparser.options.script)[stat.ST_MODE]
        if not (cur_perms & stat.S_IXUSR):
            print "Specified script %s is not executable yet, fixing that..." % optparser.options.script
            os.chmod(optparser.options.script, cur_perms | stat.S_IXUSR)

        label = options.label

        if not hc.validate_label(label, hc.known_cluster_labels()):
            sys.exit(1)

        if not hc.validate_hodconf_or_dist(options.hodconf, options.dist):
            sys.exit(1)

        try:
            j = PbsHodJob(optparser)
            hc.report_cluster_submission(label)
            j.run()
            jobs = j.state()
            hc.post_job_submission(label, jobs, optparser.options.workdir)
        except StandardError as err:
            self._log_and_raise(err)

        return 0
Пример #5
0
    def run(self, args):
        """Run 'batch' subcommand."""
        optparser = BatchOptions(go_args=args, envvar_prefix=self.envvar_prefix, usage=self.usage_txt)
        options = optparser.options
        if not validate_pbs_option(options):
            sys.stderr.write('Missing config options. Exiting.\n')
            return 1

        if optparser.options.script is None:
            sys.stderr.write('Missing script. Exiting.\n')
            return 1

        # resolve script path to absolute path
        optparser.options.script = os.path.abspath(optparser.options.script)

        if not os.path.exists(optparser.options.script):
            sys.stderr.write("Specified script does not exist: %s. Exiting.\n" % optparser.options.script)
            return 1

        # make sure script is executable
        cur_perms = os.stat(optparser.options.script)[stat.ST_MODE]
        if not (cur_perms & stat.S_IXUSR):
            print "Specified script %s is not executable yet, fixing that..." % optparser.options.script
            os.chmod(optparser.options.script, cur_perms|stat.S_IXUSR)

        label = options.label

        if not hc.validate_label(label, hc.known_cluster_labels()):
            sys.exit(1)

        if not hc.validate_hodconf_or_dist(options.hodconf, options.dist):
            sys.exit(1)

        try:
            j = PbsHodJob(optparser)
            hc.report_cluster_submission(label)
            j.run()
            jobs = j.state()
            hc.post_job_submission(label, jobs, optparser.options.workdir)
            return 0
        except StandardError as e:
            fancylogger.setLogFormat(fancylogger.TEST_LOGGING_FORMAT)
            fancylogger.logToScreen(enable=True)
            _log.raiseException(e.message)
Пример #6
0
 def test_validate_required_option_fails_missing_hod_module(self):
     options = MagicMock(workdir='/', dist='Hadoop')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #7
0
 def test_validate_required_option_fails_missing_dist_or_config(self):
     options = MagicMock(workdir='/', hod_module='')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #8
0
 def test_validate_required_option_fails_with_config_and_dist(self):
     options = MagicMock(workdir='/', dist='Hadoop', hod_module='hod', hodconf='hod.conf')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #9
0
 def test_validate_pbs_option(self):
     options = MagicMock(workdir='/', dist='Hadoop', hod_module='hod', hodconf=None)
     self.assertTrue(ho.validate_pbs_option(options))
Пример #10
0
 def test_validate_required_option_fails_missing_hod_module(self):
     options = MagicMock(workdir='/', dist='Hadoop')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #11
0
 def test_validate_required_option_fails_missing_dist_or_config(self):
     options = MagicMock(workdir='/', hod_module='')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #12
0
 def test_validate_required_option_fails_with_config_and_dist(self):
     options = MagicMock(workdir='/',
                         dist='Hadoop',
                         hod_module='hod',
                         hodconf='hod.conf')
     self.assertFalse(ho.validate_pbs_option(options))
Пример #13
0
 def test_validate_pbs_option(self):
     options = MagicMock(workdir='/',
                         dist='Hadoop',
                         hod_module='hod',
                         hodconf=None)
     self.assertTrue(ho.validate_pbs_option(options))