diff options
author | Thomas Haller <thaller@redhat.com> | 2023-02-16 10:13:22 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-02-16 10:17:48 +0100 |
commit | 69d72492447090f5f69a8e96a21cf9de677c96d5 (patch) | |
tree | 40adc4687787499f0636f5fd1bda9c7d03df2edf | |
parent | 004464cfbdd98a0c18861d4001ca3bacef73e4f3 (diff) | |
download | NetworkManager-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-x | examples/python/gi/ovs-external-ids.py | 41 |
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 |