[VMonG5K] Extra Devices has to be set
In the VMonG5K
provider, one key that can be specified for machine description is extra_devices
. Although it is not a required property, the configuration validation returns an exception if this property is omitted.
Basic example that returns the exception:
from enoslib.infra.enos_vmong5k.configuration import Configuration as Vmong5k_Configuration
from enoslib.infra.enos_vmong5k.provider import VMonG5k
from enoslib.api import discover_networks
import yaml
import logging
logging.basicConfig(level=logging.INFO)
raw_config = """
deployment:
job_name: vmong5k
image: "/grid5000/virt-images/debian10-x64-base.qcow2"
walltime: "01:00:00"
resources:
machines:
- roles: [dashboard]
cluster: paravance
number: 1
flavour: medium
networks: ["ntw_monitoring"]
"""
config = yaml.safe_load(raw_config)["deployment"]
provider = VMonG5k(Vmong5k_Configuration.from_dictionnary(config))
roles, networks = provider.init(force_deploy=True)
That returns me:
Traceback (most recent call last):
File "vmong5k_test2.py", line 25, in <module>
provider = VMonG5k(Vmong5k_Configuration.from_dictionnary(config))
File "/home/dsaingre/venv/lib/python3.7/site-packages/enoslib/infra/enos_vmong5k/configuration.py", line 61, in from_dictionnary
self.finalize()
File "/home/dsaingre/venv/lib/python3.7/site-packages/enoslib/infra/configuration.py", line 47, in finalize
self.validate(d)
File "/home/dsaingre/venv/lib/python3.7/site-packages/enoslib/infra/configuration.py", line 40, in validate
jsonschema.validate(dictionnary, cls._SCHEMA)
File "/home/dsaingre/venv/lib/python3.7/site-packages/jsonschema/validators.py", line 899, in validate
raise error
jsonschema.exceptions.ValidationError: None is not of type 'string'
Failed validating 'type' in schema['properties']['resources']['properties']['machines']['items']['properties']['extra_devices']:
{'description': 'Libvirt XML description for extra devices (e.g '
'disks).',
'type': 'string'}
On instance['resources']['machines'][0]['extra_devices']:
None
The current fix on my side is to set extra_devices
to empty string (""
).
Libraries version:
- Enoslib v5.2.0
- jsonschema v3.0.2