in azure-slurm/slurmcc/topology.py [0:0]
def get_os_name(self):
"""
Retrieves the operating system name from the first host in self.hosts.
This method runs a command on the first host to extract the OS ID from the
/etc/os-release file. It uses the `grep` command to find the line starting
with 'ID=' and then cuts the value after the '=' character.
Returns:
str: The operating system ID if the command is successful.
Raises:
SystemExit: If the command fails, logs the error and exits the program.
"""
cmd = "grep '^ID=' /etc/os-release | cut -d'=' -f2"
try:
output = slutil.srun([self.hosts[0]],cmd,shell=True, partition=self.partition)
exit_code=output.returncode
stdout=output.stdout
except slutil.SrunExitCodeException as e:
log.error("Error running get_os_id command on host %s",self.hosts[0])
if e.stderr_content:
log.error(e.stderr_content)
log.error(e.stderr)
sys.exit(e.returncode)
except subprocesslib.TimeoutExpired:
sys.exit(1)
if exit_code==0:
os_id = stdout.strip().strip('"')
log.debug(f"OS ID for host {self.hosts[0]}: {os_id}")
return os_id