Fix exception when passing empty string as config option

Change-Id: I98c9b89cc27befa3caf6792d034e93f2fd4d2e0e
This commit is contained in:
Aurelien Lourot 2022-03-17 10:00:26 +01:00
parent b641f6aaf6
commit 114115d106
2 changed files with 15 additions and 0 deletions

View File

@ -155,6 +155,10 @@ def set_principal_unit_relation_data(relation_data_to_be_set, config,
vgpu_device_mappings_str = config.get('vgpu-device-mappings')
if vgpu_device_mappings_str is not None:
vgpu_device_mappings = YAML().load(vgpu_device_mappings_str)
if vgpu_device_mappings is None: # happens when passing an empty str
vgpu_device_mappings = {}
logging.debug('vgpu-device-mappings={}'.format(vgpu_device_mappings))
nova_conf = json.dumps({

View File

@ -168,6 +168,17 @@ class TestCharmUtils(unittest.TestCase):
'nvidia-vgpu-ubuntu-470',
relation_data_to_be_set['releases-packages-map'])
relation_data_to_be_set = {}
charm_config = {
'vgpu-device-mappings': ''
}
charm_utils.set_principal_unit_relation_data(
relation_data_to_be_set, charm_config, charm_services)
self.assertEquals(
'{"nova": {"/etc/nova/nova.conf": {"sections": {"devices": '
'[["enabled_mdev_types", ""]]}}}}',
relation_data_to_be_set['subordinate_configuration'])
@patch('charm_utils.file_hash')
def test_path_and_hash_nvidia_resource(self, file_hash_mock):
file_hash_mock.return_value = 'nvidia-software-hash'