summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-02-16 10:13:22 +0100
committerThomas Haller <thaller@redhat.com>2023-02-16 10:17:48 +0100
commit69d72492447090f5f69a8e96a21cf9de677c96d5 (patch)
tree40adc4687787499f0636f5fd1bda9c7d03df2edf
parent004464cfbdd98a0c18861d4001ca3bacef73e4f3 (diff)
downloadNetworkManager-69d72492447090f5f69a8e96a21cf9de677c96d5.tar.gz
examples: support older libnm without NM.SettingOvsOtherConfig in "ovs-external-ids.py"
This example script is used by our NM-ci. Make it work also with libnm versions that don't yet support NM.SettingOvsOtherConfig.
-rwxr-xr-xexamples/python/gi/ovs-external-ids.py41
1 files changed, 24 insertions, 17 deletions
diff --git a/examples/python/gi/ovs-external-ids.py b/examples/python/gi/ovs-external-ids.py
index fe4fbd9dce..0a03c9c562 100755
--- a/examples/python/gi/ovs-external-ids.py
+++ b/examples/python/gi/ovs-external-ids.py
@@ -236,11 +236,13 @@ DataTypeE = DataTypeTuple(
NM.SettingOvsExternalIDs,
NM.SETTING_OVS_EXTERNAL_IDS_DATA,
)
+
+o = getattr(NM, "SettingOvsOtherConfig", None)
DataTypeO = DataTypeTuple(
"other-config",
"ovs-other-config",
- NM.SettingOvsOtherConfig,
- NM.SETTING_OVS_OTHER_CONFIG_DATA,
+ o,
+ NM.SETTING_OVS_OTHER_CONFIG_DATA if o else None,
)
@@ -420,12 +422,13 @@ def ids_select(ids, mode, ids_arg):
def connection_print(connection, mode, ids_arg, dbus_path, prefix=""):
def _num_str(connection, data_type):
+ if data_type.setting_type is None:
+ return "n/a"
sett = connection.get_setting(data_type.setting_type)
- num_str = "none"
- if sett is not None:
- all_ids = list(sett.get_data_keys())
- num_str = "%s" % (len(all_ids))
- return num_str
+ if sett is None:
+ return "none"
+ all_ids = list(sett.get_data_keys())
+ return "%s" % (len(all_ids),)
_print(
"%s%s [e:%s, o:%s]"
@@ -441,18 +444,17 @@ def connection_print(connection, mode, ids_arg, dbus_path, prefix=""):
for data_type in [DataTypeE, DataTypeO]:
+ if data_type.setting_type is None:
+ continue
+
sett = connection.get_setting(data_type.setting_type)
- if sett is not None:
- all_ids = list(sett.get_data_keys())
- keys, requested = ids_select(all_ids, mode, ids_arg)
- else:
- keys = []
- requested = []
+ if sett is None:
+ continue
- if sett is not None:
- dd = sett.get_property(data_type.property_name)
- else:
- dd = {}
+ all_ids = list(sett.get_data_keys())
+ keys, requested = ids_select(all_ids, mode, ids_arg)
+
+ dd = sett.get_property(data_type.property_name)
for k in keys:
v = sett.get_data(k)
assert v is not None
@@ -478,6 +480,11 @@ def sett_update(connection, ids_arg):
else:
data_type = DataTypeE
+ if data_type.setting_type is None:
+ raise Exception(
+ "%s is not supported by this version of libnm" % (data_type.name,)
+ )
+
sett = connection.get_setting(data_type.setting_type)
oldval = None