Most of them are outdated, but provide historical design context.
They are not user documentation and should not be treated as such.
Documentation is available here.
getRoute should return name of a device assigned to given IP address.
- Name: Petr Horacek (phoracek)
- Email: firstname.lastname@example.org
During deployment of a new host, Engine needs to know which of the host’s interfaces is used to connect to Engine.
Currently, this is exposed by the
lastClientIface element of
getVdsCaps verb. However, this approach is problematic, as we plant to remove the requirement
of direct Engine-Vdsm TCP connection, without which, Vdsm cannot compute this element.
Instead, it is suggested that Vdsm would expose the output of
ip route get <addr>, so that Engine would be able to guess which on top of which host should it configure the management network.
Note that this would only be a guess, as Vdsm may sit behind NAT with no route to Engine. In that case, automatic deployment of the management network would be skipped.
Overview: Currently, the engine stores a host’s “Active NIC”, and uses it to decide on which interface it should set up the management network as part of the “Install Host” flow.
This “Active NIC” is reported by VDSM as part of
getVdsCaps (in the
With the introduction of the
getRoute verb, the engine could use it for VDSM versions compatible with cluster >= 3.6 instead of the mentioned entry in
Details: This can be done by wrapping
getRoute in its own
VdsCommand class (e.g.
and run that as part of
CollectVdsNetworkDataAfterInstallationVDSCommand.executeVdsBrokerCommand() if the host’s reported versions are compatible - then call
with the result. Similarly, the code setting the active NIC in
VdsBrokerObjectBuilder.updateNetworkData() may be made dependent on older VDSM versions
(this is likely optional - it might just be stored as null and overwritten later according to the result of
getRoute), and removed when that API is officially deprecated.
To implement this new verb we could use
netinfo.getRouteDeviceTo(ip_address) function, which uses
ipwrapper to do route handling.