in src/slurm_plugin/resume.py [0:0]
def _get_config(self, config_file_path):
"""Get resume program configuration."""
log.info("Reading %s", config_file_path)
config = ConfigParser()
try:
config.read_file(open(config_file_path, "r"))
except IOError:
log.error(f"Cannot read slurm cloud bursting scripts configuration file: {config_file_path}")
raise
self.region = config.get("slurm_resume", "region")
self.cluster_name = config.get("slurm_resume", "cluster_name")
self.dynamodb_table = config.get("slurm_resume", "dynamodb_table")
self.hosted_zone = config.get("slurm_resume", "hosted_zone", fallback=self.DEFAULTS.get("hosted_zone"))
self.dns_domain = config.get("slurm_resume", "dns_domain", fallback=self.DEFAULTS.get("dns_domain"))
self.use_private_hostname = config.getboolean(
"slurm_resume", "use_private_hostname", fallback=self.DEFAULTS.get("use_private_hostname")
)
self.head_node_private_ip = config.get("slurm_resume", "head_node_private_ip")
self.head_node_hostname = config.get("slurm_resume", "head_node_hostname")
self.max_batch_size = config.getint(
"slurm_resume", "max_batch_size", fallback=self.DEFAULTS.get("max_batch_size")
)
self.update_node_address = config.getboolean(
"slurm_resume", "update_node_address", fallback=self.DEFAULTS.get("update_node_address")
)
self.all_or_nothing_batch = config.getboolean(
"slurm_resume", "all_or_nothing_batch", fallback=self.DEFAULTS.get("all_or_nothing_batch")
)
instance_name_type_mapping_file = config.get(
"slurm_resume", "instance_type_mapping", fallback=self.DEFAULTS.get("instance_type_mapping")
)
self.instance_name_type_mapping = read_json(instance_name_type_mapping_file)
# run_instances_overrides_file contains a json with the following format:
# {
# "queue_name": {
# "compute_resource_name": {
# "RunInstancesCallParam": "Value"
# },
# ...
# },
# ...
# }
run_instances_overrides_file = config.get(
"slurm_resume", "run_instances_overrides", fallback=self.DEFAULTS.get("run_instances_overrides")
)
self.run_instances_overrides = read_json(run_instances_overrides_file, default={})
self.clustermgtd_timeout = config.getint(
"slurm_resume",
"clustermgtd_timeout",
fallback=self.DEFAULTS.get("clustermgtd_timeout"),
)
self.clustermgtd_heartbeat_file_path = config.get("slurm_resume", "clustermgtd_heartbeat_file_path")
# Configure boto3 to retry 1 times by default
self._boto3_retry = config.getint("slurm_resume", "boto3_retry", fallback=self.DEFAULTS.get("max_retry"))
self._boto3_config = {"retries": {"max_attempts": self._boto3_retry, "mode": "standard"}}
proxy = config.get("slurm_resume", "proxy", fallback=self.DEFAULTS.get("proxy"))
if proxy != "NONE":
self._boto3_config["proxies"] = {"https": proxy}
self.boto3_config = Config(**self._boto3_config)
self.logging_config = config.get("slurm_resume", "logging_config", fallback=self.DEFAULTS.get("logging_config"))
log.info(self.__repr__())