Ipam service
I think the main functionality regarding the ipam service (NAT-152) is implemented so I'm sending the PR. Since the last call, I added support for list of containers per service, support for extattrs, and added an endpoint to get status and usage fields of hosts in a network.
The service is implemented in this directory: https://gitlab.geant.org/goat/gap/geant-service-orchestrator/-/tree/ipam-service/gso/services
A configuration file is needed based on this template exported as OSS_PARAMS_FILENAME
: https://gitlab.geant.org/goat/gap/geant-service-orchestrator/-/blob/ipam-service/gso/oss-params-example.json
There is still some polishing to do regarding error checking/propagation and how to expose some functionality to WFO (if needed) such as constraints for extensible atributes, different modes for allocating things, host/network deletion, etc. but maybe it's better to tinker with the IPAM service from WFO to see how to handle these things according to the workflows.
I kept a dummy menu in _ipam.py
and a dummy entry point in ipam.py
that are useful for testing. Can be deleted later.