def main(args): """Run HOD cluster.""" optparser = LocalOptions(go_args=args) if MPI.COMM_WORLD.rank == MASTERRANK: label = optparser.options.label if label is None: # if no label is specified, use job ID; # if $PBS_JOBID is not set, generate a random string (10 chars) label = os.getenv('PBS_JOBID', ''.join(random.choice(string.letters + string.digits) for _ in range(10))) optparser.options.label = label _log.debug("Creating cluster info using label '%s'", label) cluster_info = gen_cluster_info(label, optparser.options) try: save_cluster_info(cluster_info) except (IOError, OSError) as e: _log.error("Failed to save cluster info files: %s", e) sys.exit(1) _log.debug("Starting master process") svc = ConfiguredMaster(optparser.options) else: _log.debug("Starting slave process") svc = ConfiguredSlave(optparser.options) try: setup_tasks(svc) run_tasks(svc) svc.stop_service() return 0 except Exception as err: _log.error(str(err)) _log.exception("HanythingOnDemand failed") sys.exit(1)
def run(self, args): """Run 'genconfig' subcommand.""" setup_diagnostic_environment() optparser = GenConfigOptions(go_args=args, usage=self.usage_txt) if not validate_required_option(optparser.options): sys.stderr.write('Missing config options. Exiting.\n') return 1 svc = ConfiguredMaster(optparser.options) try: setup_tasks(svc) except StandardError as err: self._log_and_raise(err) return 0
def run(self, args): """Run 'genconfig' subcommand.""" setup_diagnostic_environment() optparser = GenConfigOptions(go_args=args, usage=self.usage_txt) if not validate_required_option(optparser.options): sys.stderr.write('Missing config options. Exiting.\n') return 1 svc = ConfiguredMaster(optparser.options) try: setup_tasks(svc) return 0 except Exception as e: _log.error("Failed to setup hod tasks: %s", str(e)) _log.exception("hod genconfig failed") sys.exit(1)