Bug 1785147

Summary: RFE: add NM_CAPABILITY_OVS to report OVS plugin status
Product: Red Hat Enterprise Linux 8 Reporter: Fernando F. Mancera <ferferna>
Component: NetworkManagerAssignee: Thomas Haller <thaller>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: ---CC: atragler, bgalvani, fpokryvk, lrintel, pasik, rkhan, sukulkar, thaller, vbenes
Target Milestone: rcKeywords: FutureFeature
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 16:54:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fernando F. Mancera 2019-12-19 09:31:01 UTC
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):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:

The element in NM_CAPABILITY for OVS does not exist.


Expected results:

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.

Additional info:

Comment 2 Thomas Haller 2019-12-24 13:58:16 UTC
also backported to nm-1-22 branch [1] and will be part of 1.24.0 and 1.22.2 upstream releases.

[1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/0766d7bb0cce8c85ec49b165ca607dc49008b44a

Comment 3 Thomas Haller 2020-01-07 10:55:50 UTC
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[0]["/org/freedesktop/NetworkManager"]["org.freedesktop.NetworkManager"]["Capabilities"]' | less
{
  "type": "au",
  "data": [
    1,
    2
  ]
}



(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:


>>>
#!/bin/python

import gi
gi.require_version('NM', '1.0')
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))
<<<

Prints:

nm_client_get_capabilities() => [1, 2]
NMClient::capabilities = [1, 2]
Capability.TEAM = 1
Capability.OVS  = 2

Comment 7 errata-xmlrpc 2020-04-28 16:54:11 UTC
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.

https://access.redhat.com/errata/RHBA-2020:1847