def test_parse_rp_inventory_defaults(self): self.assertEqual( {}, place_utils.parse_rp_inventory_defaults({}), ) self.assertRaises( ValueError, place_utils.parse_rp_inventory_defaults, {'allocation_ratio': '-1.0'} ) self.assertEqual( {'allocation_ratio': 1.0}, place_utils.parse_rp_inventory_defaults( {'allocation_ratio': '1.0'}), ) self.assertRaises( ValueError, place_utils.parse_rp_inventory_defaults, {'min_unit': '-1'} ) self.assertEqual( {'min_unit': 1}, place_utils.parse_rp_inventory_defaults( {'min_unit': '1'}), ) self.assertRaises( ValueError, place_utils.parse_rp_inventory_defaults, {'no such inventory parameter': 1} )
def _parse_inventory_defaults(cms_options): inv_defaults = _parse_placement_option(n_const.RP_INVENTORY_DEFAULTS, cms_options) if not inv_defaults: return {} inventory = {} for inv_default in inv_defaults.split(';'): for key in placement_constants.INVENTORY_OPTIONS: if key in inv_default: inventory[key] = inv_default.split(':')[1] return placement_utils.parse_rp_inventory_defaults(inventory)
def parse(self): """Parses device_mappings and exclude_devices. Parse and validate the consistency in both mappings """ self.device_mappings = helpers.parse_mappings( cfg.CONF.SRIOV_NIC.physical_device_mappings, unique_keys=False) self.exclude_devices = config.parse_exclude_devices( cfg.CONF.SRIOV_NIC.exclude_devices) self.rp_bandwidths = place_utils.parse_rp_bandwidths( cfg.CONF.SRIOV_NIC.resource_provider_bandwidths) self.rp_inventory_defaults = place_utils.parse_rp_inventory_defaults( cfg.CONF.SRIOV_NIC.resource_provider_inventory_defaults) self._validate()
def parse(self): """Parses device_mappings and exclude_devices. Parse and validate the consistency in both mappings """ self.device_mappings = helpers.parse_mappings( cfg.CONF.SRIOV_NIC.physical_device_mappings, unique_keys=False) self.exclude_devices = config.parse_exclude_devices( cfg.CONF.SRIOV_NIC.exclude_devices) self.rp_bandwidths = place_utils.parse_rp_bandwidths( cfg.CONF.SRIOV_NIC.resource_provider_bandwidths) self.rp_inventory_defaults = place_utils.parse_rp_inventory_defaults( cfg.CONF.SRIOV_NIC.resource_provider_inventory_defaults) self._validate()
def _parse_inventory_defaults(cms_options): for cms_option in cms_options: if ovn_const.RP_INVENTORY_DEFAULTS in cms_option: inv_defaults = cms_option.split('=')[1] break else: return if not inv_defaults: return inventory = {} for inv_default in inv_defaults.split(';'): for key in placement_constants.INVENTORY_OPTIONS: if key in inv_default: inventory[key] = inv_default.split(':')[1] return placement_utils.parse_rp_inventory_defaults(inventory)