def main()

in cookbooks/aws-parallelcluster-slurm/files/default/head_node_slurm/slurm/pcluster_slurm_config_generator.py [0:0]


def main():
    try:
        _setup_logger()
        log.info("Running ParallelCluster Slurm Config Generator")
        parser = argparse.ArgumentParser(description="Take in slurm configuration generator related parameters")
        parser.add_argument(
            "--output-directory", type=str, help="The output directory for generated slurm configs", required=True
        )
        parser.add_argument(
            "--template-directory", type=str, help="The directory storing slurm config templates", required=True
        )
        parser.add_argument(
            "--input-file",
            type=str,
            # Todo: is the default necessary?
            default="/opt/parallelcluster/slurm_config.json",
            help="Yaml file containing pcluster configuration file",
        )
        parser.add_argument(
            "--instance-types-data",
            type=str,
            help="JSON file containing info about instance types",
        )
        parser.add_argument(
            "--dryrun",
            action="store_true",
            help="dryrun",
            required=False,
            default=False,
        )
        parser.add_argument(
            "--no-gpu",
            action="store_true",
            help="no gpu configuration",
            required=False,
            default=False,
        )
        args = parser.parse_args()
        generate_slurm_config_files(
            args.output_directory,
            args.template_directory,
            args.input_file,
            args.instance_types_data,
            args.dryrun,
            args.no_gpu,
        )
    except Exception as e:
        log.exception("Failed to generate slurm configurations, exception: %s", e)
        raise