g5k: Missing nodes in roles when using kavlan + multi-sites
When using multiple sites and kavlan networks, the resulting roles returned by init()
are incomplete: only one site is present inside.
Here's a way to reproduce it:
import logging
from pathlib import Path
import enoslib as en
en.init_logging(level=logging.INFO)
job_name = Path(__file__).name
nantes_net = en.G5kNetworkConf(type="kavlan", roles=["nantes"], site="nantes")
rennes_net = en.G5kNetworkConf(type="kavlan", roles=["rennes"], site="rennes")
conf = (
en.G5kConf.from_settings(
job_type=["deploy"],
env_name="debian11-nfs",
job_name=job_name,
walltime="0:50:00",
)
.add_network_conf(nantes_net)
.add_network_conf(rennes_net)
.add_machine(roles=["nantes"], cluster="ecotype", nodes=1,
secondary_networks=[nantes_net])
.add_machine(roles=["rennes"], cluster="paravance", nodes=1,
secondary_networks=[rennes_net])
)
# This will validate the configuration, but not reserve resources yet
provider = en.G5k(conf)
# Get actual resources
roles, networks = provider.init()
print(roles)
This prints:
{'rennes': {Host(address='paravance-9.rennes.grid5000.fr', alias='paravance-9.rennes.grid5000.fr', user='root', keyfile=None, port=None, extra={}, net_devices=set(), _Host__original_extra={})}}
The node from Nantes is missing.