Source code for arbiterd.common.nova

# -*- coding: utf-8 -*-
# Copyright 2021 - 2021, Sean Mooney and the arbiterd contributors
# SPDX-License-Identifier: Apache-2.0
import configparser
import typing as ty

from arbiterd.common import cpu


[docs]def parse_nova_conf(nova_conf: str) -> configparser.ConfigParser: config = configparser.ConfigParser(interpolation=None) config.read(nova_conf) return config
[docs]def get_string( conf: configparser.ConfigParser, section, option, default=None, strip=True ) -> str: data = conf.get(section, option, fallback=default) if data is not None and strip: data = data.strip('"').strip('\'') return data
[docs]def get_dedicated_cpus(nova_conf: str) -> ty.Set[int]: nova = parse_nova_conf(nova_conf) data = get_string(nova, 'compute', 'cpu_dedicated_set') if data is None: return set() return cpu.parse_cpu_spec(data)
[docs]def get_shared_cpus(nova_conf: str) -> ty.Set[int]: nova = parse_nova_conf(nova_conf) data = get_string(nova, 'compute', 'cpu_shared_set') if data is None: return set() return cpu.parse_cpu_spec(data)