Description of problem:
It is not possible to check if the NetworManager-ovs plugin is enabled using NM_CAPABILITY. There should be an element similar to NM_CAPABILITY_TEAM for OVS.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
The element in NM_CAPABILITY for OVS does not exist.
The element in NM_CAPABILITY for OVS exists and it is possible to use it for checking if the NetworkManager-ovs plugin is enabled or not.
also backported to nm-1-22 branch  and will be part of 1.24.0 and 1.22.2 upstream releases.
How to test:
The change brings two things:
1) on D-Bus, if the OVS plugin is loaded, then this is exposed as part of the capabilities:
# busctl --json pretty call org.freedesktop.NetworkManager /org/freedesktop org.freedesktop.DBus.ObjectManager GetManagedObjects | jq '.data["/org/freedesktop/NetworkManager"]["org.freedesktop.NetworkManager"]["Capabilities"]' | less
(the "1" means that the TEAM plugin is loaded, the "2" that the OVS plugin is loaded). The capability "2" is new, 1 was there before.
2) in libnm there is new API to read the capabilities "nm_client_get_capabilities()" and Capabilities property:
from gi.repository import NM
nmc = NM.Client.new()
print("nm_client_get_capabilities() => %s" % (nmc.get_capabilities()))
print("NMClient::capabilities = %s" % (nmc.props.capabilities))
print("Capability.TEAM = %d" % (NM.Capability.TEAM))
print("Capability.OVS = %d" % (NM.Capability.OVS))
nm_client_get_capabilities() => [1, 2]
NMClient::capabilities = [1, 2]
Capability.TEAM = 1
Capability.OVS = 2
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.