|
|
a85faa |
From 91ed0449e96051cde51625c8cacecfd5760abd31 Mon Sep 17 00:00:00 2001
|
|
|
a85faa |
From: Beniamino Galvani <bgalvani@redhat.com>
|
|
|
a85faa |
Date: Tue, 30 Aug 2016 15:22:04 +0200
|
|
|
a85faa |
Subject: [PATCH 1/3] Revert "libnm-core/team: normalize invalid config to
|
|
|
a85faa |
NULL"
|
|
|
a85faa |
|
|
|
a85faa |
It's better to fail the validation of any invalid configuration
|
|
|
a85faa |
instead of silently ignoring it.
|
|
|
a85faa |
|
|
|
a85faa |
This reverts commit 476810c29016d569ac3885542a6c91e7af8a7f6d.
|
|
|
a85faa |
|
|
|
a85faa |
(cherry picked from commit 39ad134b0ca1918084b2b1fc5856cc0b7a6becfc)
|
|
|
a85faa |
(cherry picked from commit 4f5059306be98748d2bede9cb5f011e889c81805)
|
|
|
a85faa |
---
|
|
|
a85faa |
libnm-core/nm-connection.c | 5 ++---
|
|
|
a85faa |
libnm-core/nm-setting-team-port.c | 12 ++----------
|
|
|
a85faa |
libnm-core/nm-setting-team.c | 12 ++----------
|
|
|
a85faa |
3 files changed, 6 insertions(+), 23 deletions(-)
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c
|
|
|
a85faa |
index f39d41c..57f9640 100644
|
|
|
a85faa |
--- a/libnm-core/nm-connection.c
|
|
|
a85faa |
+++ b/libnm-core/nm-connection.c
|
|
|
a85faa |
@@ -28,7 +28,6 @@
|
|
|
a85faa |
#include "nm-connection.h"
|
|
|
a85faa |
#include "nm-connection-private.h"
|
|
|
a85faa |
#include "nm-utils.h"
|
|
|
a85faa |
-#include "nm-utils-private.h"
|
|
|
a85faa |
#include "nm-setting-private.h"
|
|
|
a85faa |
#include "nm-core-internal.h"
|
|
|
a85faa |
|
|
|
a85faa |
@@ -916,7 +915,7 @@ _normalize_team_config (NMConnection *self, GHashTable *parameters)
|
|
|
a85faa |
if (s_team) {
|
|
|
a85faa |
const char *config = nm_setting_team_get_config (s_team);
|
|
|
a85faa |
|
|
|
a85faa |
- if (config && !_nm_utils_check_valid_json (config, NULL)) {
|
|
|
a85faa |
+ if (config && !*config) {
|
|
|
a85faa |
g_object_set (s_team, NM_SETTING_TEAM_CONFIG, NULL, NULL);
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
@@ -932,7 +931,7 @@ _normalize_team_port_config (NMConnection *self, GHashTable *parameters)
|
|
|
a85faa |
if (s_team_port) {
|
|
|
a85faa |
const char *config = nm_setting_team_port_get_config (s_team_port);
|
|
|
a85faa |
|
|
|
a85faa |
- if (config && !_nm_utils_check_valid_json (config, NULL)) {
|
|
|
a85faa |
+ if (config && !*config) {
|
|
|
a85faa |
g_object_set (s_team_port, NM_SETTING_TEAM_PORT_CONFIG, NULL, NULL);
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
index 0d175d5..123304f 100644
|
|
|
a85faa |
--- a/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
+++ b/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
@@ -122,19 +122,11 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|
|
a85faa |
"%s.%s: ",
|
|
|
a85faa |
NM_SETTING_TEAM_PORT_SETTING_NAME,
|
|
|
a85faa |
NM_SETTING_TEAM_PORT_CONFIG);
|
|
|
a85faa |
- /* for backward compatibility, we accept invalid json and normalize it */
|
|
|
a85faa |
- if (!priv->config[0]) {
|
|
|
a85faa |
- /* be more forgiving to "" and let it verify() as valid because
|
|
|
a85faa |
- * at least anaconda used to write such configs */
|
|
|
a85faa |
- return NM_SETTING_VERIFY_NORMALIZABLE;
|
|
|
a85faa |
- }
|
|
|
a85faa |
- return NM_SETTING_VERIFY_NORMALIZABLE_ERROR;
|
|
|
a85faa |
+ /* We treat an empty string as no config for compatibility. */
|
|
|
a85faa |
+ return *priv->config ? FALSE : NM_SETTING_VERIFY_NORMALIZABLE;
|
|
|
a85faa |
}
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
- /* NOTE: normalizable/normalizable-errors must appear at the end with decreasing severity.
|
|
|
a85faa |
- * Take care to properly order statements with priv->config above. */
|
|
|
a85faa |
-
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-setting-team.c b/libnm-core/nm-setting-team.c
|
|
|
a85faa |
index a559e0d..df89694 100644
|
|
|
a85faa |
--- a/libnm-core/nm-setting-team.c
|
|
|
a85faa |
+++ b/libnm-core/nm-setting-team.c
|
|
|
a85faa |
@@ -94,19 +94,11 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|
|
a85faa |
"%s.%s: ",
|
|
|
a85faa |
NM_SETTING_TEAM_SETTING_NAME,
|
|
|
a85faa |
NM_SETTING_TEAM_CONFIG);
|
|
|
a85faa |
- /* for backward compatibility, we accept invalid json and normalize it */
|
|
|
a85faa |
- if (!priv->config[0]) {
|
|
|
a85faa |
- /* be more forgiving to "" and let it verify() as valid because
|
|
|
a85faa |
- * at least anaconda used to write such configs */
|
|
|
a85faa |
- return NM_SETTING_VERIFY_NORMALIZABLE;
|
|
|
a85faa |
- }
|
|
|
a85faa |
- return NM_SETTING_VERIFY_NORMALIZABLE_ERROR;
|
|
|
a85faa |
+ /* We treat an empty string as no config for compatibility. */
|
|
|
a85faa |
+ return *priv->config ? FALSE : NM_SETTING_VERIFY_NORMALIZABLE;
|
|
|
a85faa |
}
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
- /* NOTE: normalizable/normalizable-errors must appear at the end with decreasing severity.
|
|
|
a85faa |
- * Take care to properly order statements with priv->config above. */
|
|
|
a85faa |
-
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
--
|
|
|
a85faa |
2.5.5
|
|
|
a85faa |
|
|
|
a85faa |
From f1e9f50ebe20b32a3f5903b6b07c437c23bd5ac1 Mon Sep 17 00:00:00 2001
|
|
|
a85faa |
From: Beniamino Galvani <bgalvani@redhat.com>
|
|
|
a85faa |
Date: Tue, 30 Aug 2016 15:21:16 +0200
|
|
|
a85faa |
Subject: [PATCH 2/3] team: normalize invalid configuration during load
|
|
|
a85faa |
|
|
|
a85faa |
Now that we validate the JSON syntax of a team/team-port
|
|
|
a85faa |
configuration, any existing connection with invalid JSON configuration
|
|
|
a85faa |
would fail to load and disappear upon upgrade. Instead, modify the
|
|
|
a85faa |
setting plugins to emit a warning but still load the connection with
|
|
|
a85faa |
empty configuration.
|
|
|
a85faa |
|
|
|
a85faa |
(cherry picked from commit d6ec009afd7dadf925d5bb8e5dd855c493dd0104)
|
|
|
a85faa |
(cherry picked from commit 67f064f11ba3858ea9429f0989b81feeaaa9d8bb)
|
|
|
a85faa |
---
|
|
|
a85faa |
libnm-core/nm-core-internal.h | 5 +++
|
|
|
a85faa |
libnm-core/nm-keyfile-reader.c | 26 ++++++++++++
|
|
|
a85faa |
libnm-core/nm-utils-private.h | 3 --
|
|
|
a85faa |
libnm-core/tests/test-keyfile.c | 49 ++++++++++++++++++++++
|
|
|
a85faa |
src/settings/plugins/ifcfg-rh/reader.c | 7 ++++
|
|
|
a85faa |
.../ifcfg-rh/tests/network-scripts/Makefile.am | 1 +
|
|
|
a85faa |
.../network-scripts/ifcfg-test-team-master-invalid | 4 ++
|
|
|
a85faa |
.../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 26 ++++++++++++
|
|
|
a85faa |
8 files changed, 118 insertions(+), 3 deletions(-)
|
|
|
a85faa |
create mode 100644 src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
|
|
|
a85faa |
index 94e473d..e491bce 100644
|
|
|
a85faa |
--- a/libnm-core/nm-core-internal.h
|
|
|
a85faa |
+++ b/libnm-core/nm-core-internal.h
|
|
|
a85faa |
@@ -326,4 +326,9 @@ gboolean _nm_setting_bond_option_supported (const char *option, NMBondMode mode)
|
|
|
a85faa |
|
|
|
a85faa |
gboolean _nm_utils_inet6_is_token (const struct in6_addr *in6addr);
|
|
|
a85faa |
|
|
|
a85faa |
+/***********************************************************/
|
|
|
a85faa |
+
|
|
|
a85faa |
+gboolean _nm_utils_check_valid_json (const char *json, GError **error);
|
|
|
a85faa |
+gboolean _nm_utils_team_config_equal (const char *conf1, const char *conf2, gboolean port);
|
|
|
a85faa |
+
|
|
|
a85faa |
#endif
|
|
|
a85faa |
diff --git a/libnm-core/nm-keyfile-reader.c b/libnm-core/nm-keyfile-reader.c
|
|
|
a85faa |
index 54a694e..16f0c22 100644
|
|
|
a85faa |
--- a/libnm-core/nm-keyfile-reader.c
|
|
|
a85faa |
+++ b/libnm-core/nm-keyfile-reader.c
|
|
|
a85faa |
@@ -1167,6 +1167,24 @@ parity_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key)
|
|
|
a85faa |
g_object_set (setting, key, parity, NULL);
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
+static void
|
|
|
a85faa |
+team_config_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key)
|
|
|
a85faa |
+{
|
|
|
a85faa |
+ const char *setting_name = nm_setting_get_name (setting);
|
|
|
a85faa |
+ gs_free char *conf = NULL;
|
|
|
a85faa |
+ gs_free_error GError *error = NULL;
|
|
|
a85faa |
+
|
|
|
a85faa |
+ conf = nm_keyfile_plugin_kf_get_string (info->keyfile, setting_name, key, NULL);
|
|
|
a85faa |
+ if (conf && conf[0] && !_nm_utils_check_valid_json (conf, &error)) {
|
|
|
a85faa |
+ handle_warn (info, key, NM_KEYFILE_WARN_SEVERITY_WARN,
|
|
|
a85faa |
+ _("ignoring invalid team configuration: %s"),
|
|
|
a85faa |
+ error->message);
|
|
|
a85faa |
+ g_clear_pointer (&conf, g_free);
|
|
|
a85faa |
+ }
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_object_set (G_OBJECT (setting), key, conf, NULL);
|
|
|
a85faa |
+}
|
|
|
a85faa |
+
|
|
|
a85faa |
typedef struct {
|
|
|
a85faa |
const char *setting_name;
|
|
|
a85faa |
const char *key;
|
|
|
a85faa |
@@ -1285,6 +1303,14 @@ static KeyParser key_parsers[] = {
|
|
|
a85faa |
NM_SETTING_SERIAL_PARITY,
|
|
|
a85faa |
TRUE,
|
|
|
a85faa |
parity_parser },
|
|
|
a85faa |
+ { NM_SETTING_TEAM_SETTING_NAME,
|
|
|
a85faa |
+ NM_SETTING_TEAM_CONFIG,
|
|
|
a85faa |
+ TRUE,
|
|
|
a85faa |
+ team_config_parser },
|
|
|
a85faa |
+ { NM_SETTING_TEAM_PORT_SETTING_NAME,
|
|
|
a85faa |
+ NM_SETTING_TEAM_CONFIG,
|
|
|
a85faa |
+ TRUE,
|
|
|
a85faa |
+ team_config_parser },
|
|
|
a85faa |
{ NULL, NULL, FALSE }
|
|
|
a85faa |
};
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-utils-private.h b/libnm-core/nm-utils-private.h
|
|
|
a85faa |
index bd54756..fab3803 100644
|
|
|
a85faa |
--- a/libnm-core/nm-utils-private.h
|
|
|
a85faa |
+++ b/libnm-core/nm-utils-private.h
|
|
|
a85faa |
@@ -31,9 +31,6 @@
|
|
|
a85faa |
gboolean _nm_utils_string_slist_validate (GSList *list,
|
|
|
a85faa |
const char **valid_values);
|
|
|
a85faa |
|
|
|
a85faa |
-gboolean _nm_utils_check_valid_json (const char *json, GError **error);
|
|
|
a85faa |
-gboolean _nm_utils_team_config_equal (const char *conf1, const char *conf2, gboolean port);
|
|
|
a85faa |
-
|
|
|
a85faa |
/* D-Bus transform funcs */
|
|
|
a85faa |
|
|
|
a85faa |
GVariant *_nm_utils_hwaddr_cloned_get (NMSetting *setting,
|
|
|
a85faa |
diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c
|
|
|
a85faa |
index ecb7cd5..4ec6b80 100644
|
|
|
a85faa |
--- a/libnm-core/tests/test-keyfile.c
|
|
|
a85faa |
+++ b/libnm-core/tests/test-keyfile.c
|
|
|
a85faa |
@@ -27,6 +27,7 @@
|
|
|
a85faa |
#include "nm-setting-connection.h"
|
|
|
a85faa |
#include "nm-setting-wired.h"
|
|
|
a85faa |
#include "nm-setting-8021x.h"
|
|
|
a85faa |
+#include "nm-setting-team.h"
|
|
|
a85faa |
|
|
|
a85faa |
#include "nm-utils/nm-test-utils.h"
|
|
|
a85faa |
|
|
|
a85faa |
@@ -518,6 +519,52 @@ test_8021x_cert_read (void)
|
|
|
a85faa |
CLEAR (&con, &keyfile);
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
+static void
|
|
|
a85faa |
+test_team_conf_read_valid (void)
|
|
|
a85faa |
+{
|
|
|
a85faa |
+ GKeyFile *keyfile = NULL;
|
|
|
a85faa |
+ gs_unref_object NMConnection *con = NULL;
|
|
|
a85faa |
+ NMSettingTeam *s_team;
|
|
|
a85faa |
+
|
|
|
a85faa |
+ con = nmtst_create_connection_from_keyfile (
|
|
|
a85faa |
+ "[connection]\n"
|
|
|
a85faa |
+ "type=team\n"
|
|
|
a85faa |
+ "interface-name=nm-team1\n"
|
|
|
a85faa |
+ "[team]\n"
|
|
|
a85faa |
+ "config={\"foo\":\"bar\"}",
|
|
|
a85faa |
+ "/test_team_conf_read/valid", NULL);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_assert (con);
|
|
|
a85faa |
+ s_team = nm_connection_get_setting_team (con);
|
|
|
a85faa |
+ g_assert (s_team);
|
|
|
a85faa |
+ g_assert_cmpstr (nm_setting_team_get_config (s_team), ==, "{\"foo\":\"bar\"}");
|
|
|
a85faa |
+
|
|
|
a85faa |
+ CLEAR (&con, &keyfile);
|
|
|
a85faa |
+}
|
|
|
a85faa |
+
|
|
|
a85faa |
+static void
|
|
|
a85faa |
+test_team_conf_read_invalid (void)
|
|
|
a85faa |
+{
|
|
|
a85faa |
+ GKeyFile *keyfile = NULL;
|
|
|
a85faa |
+ gs_unref_object NMConnection *con = NULL;
|
|
|
a85faa |
+ NMSettingTeam *s_team;
|
|
|
a85faa |
+
|
|
|
a85faa |
+ con = nmtst_create_connection_from_keyfile (
|
|
|
a85faa |
+ "[connection]\n"
|
|
|
a85faa |
+ "type=team\n"
|
|
|
a85faa |
+ "interface-name=nm-team1\n"
|
|
|
a85faa |
+ "[team]\n"
|
|
|
a85faa |
+ "config={foobar}",
|
|
|
a85faa |
+ "/test_team_conf_read/invalid", NULL);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_assert (con);
|
|
|
a85faa |
+ s_team = nm_connection_get_setting_team (con);
|
|
|
a85faa |
+ g_assert (s_team);
|
|
|
a85faa |
+ g_assert (nm_setting_team_get_config (s_team) == NULL);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ CLEAR (&con, &keyfile);
|
|
|
a85faa |
+}
|
|
|
a85faa |
+
|
|
|
a85faa |
/******************************************************************************/
|
|
|
a85faa |
|
|
|
a85faa |
NMTST_DEFINE ();
|
|
|
a85faa |
@@ -528,6 +575,8 @@ int main (int argc, char **argv)
|
|
|
a85faa |
|
|
|
a85faa |
g_test_add_func ("/core/keyfile/test_8021x_cert", test_8021x_cert);
|
|
|
a85faa |
g_test_add_func ("/core/keyfile/test_8021x_cert_read", test_8021x_cert_read);
|
|
|
a85faa |
+ g_test_add_func ("/core/keyfile/test_team_conf_read/valid", test_team_conf_read_valid);
|
|
|
a85faa |
+ g_test_add_func ("/core/keyfile/test_team_conf_read/invalid", test_team_conf_read_invalid);
|
|
|
a85faa |
|
|
|
a85faa |
return g_test_run ();
|
|
|
a85faa |
}
|
|
|
a85faa |
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c
|
|
|
a85faa |
index d1ea597..afc9238 100644
|
|
|
a85faa |
--- a/src/settings/plugins/ifcfg-rh/reader.c
|
|
|
a85faa |
+++ b/src/settings/plugins/ifcfg-rh/reader.c
|
|
|
a85faa |
@@ -4238,6 +4238,7 @@ bond_connection_from_ifcfg (const char *file,
|
|
|
a85faa |
static char *
|
|
|
a85faa |
read_team_config (shvarFile *ifcfg, const char *key, GError **error)
|
|
|
a85faa |
{
|
|
|
a85faa |
+ gs_free_error GError *local_error = NULL;
|
|
|
a85faa |
char *value;
|
|
|
a85faa |
size_t l;
|
|
|
a85faa |
|
|
|
a85faa |
@@ -4258,6 +4259,12 @@ read_team_config (shvarFile *ifcfg, const char *key, GError **error)
|
|
|
a85faa |
return NULL;
|
|
|
a85faa |
}
|
|
|
a85faa |
svUnescape (value);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ if (value && value[0] && !_nm_utils_check_valid_json (value, &local_error)) {
|
|
|
a85faa |
+ PARSE_WARNING ("ignoring invalid team configuration: %s", local_error->message);
|
|
|
a85faa |
+ g_clear_pointer (&value, g_free);
|
|
|
a85faa |
+ }
|
|
|
a85faa |
+
|
|
|
a85faa |
return value;
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am
|
|
|
a85faa |
index 7531ec0..de9c1ed 100644
|
|
|
a85faa |
--- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am
|
|
|
a85faa |
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am
|
|
|
a85faa |
@@ -134,6 +134,7 @@ EXTRA_DIST = \
|
|
|
a85faa |
ifcfg-test-fcoe-vn2vn \
|
|
|
a85faa |
ifcfg-test-team-master-1 \
|
|
|
a85faa |
ifcfg-test-team-master-2 \
|
|
|
a85faa |
+ ifcfg-test-team-master-invalid \
|
|
|
a85faa |
ifcfg-test-team-port-1 \
|
|
|
a85faa |
ifcfg-test-team-port-2 \
|
|
|
a85faa |
ifcfg-test-team-port-empty-config \
|
|
|
a85faa |
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid
|
|
|
a85faa |
new file mode 100644
|
|
|
a85faa |
index 0000000..4534882
|
|
|
a85faa |
--- /dev/null
|
|
|
a85faa |
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid
|
|
|
a85faa |
@@ -0,0 +1,4 @@
|
|
|
a85faa |
+DEVICE=team0
|
|
|
a85faa |
+ONBOOT=no
|
|
|
a85faa |
+BOOTPROTO=dhcp
|
|
|
a85faa |
+TEAM_CONFIG="{ foobar }"
|
|
|
a85faa |
diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
|
|
|
a85faa |
index 3e3f7ca..9ed48be 100644
|
|
|
a85faa |
--- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
|
|
|
a85faa |
+++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
|
|
|
a85faa |
@@ -8454,6 +8454,31 @@ test_read_team_master (gconstpointer user_data)
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
static void
|
|
|
a85faa |
+test_read_team_master_invalid (gconstpointer user_data)
|
|
|
a85faa |
+{
|
|
|
a85faa |
+ const char *const PATH_NAME = user_data;
|
|
|
a85faa |
+ NMConnection *connection;
|
|
|
a85faa |
+ NMSettingConnection *s_con;
|
|
|
a85faa |
+ NMSettingTeam *s_team;
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_test_expect_message ("NetworkManager", G_LOG_LEVEL_MESSAGE, "*ignoring invalid team configuration*");
|
|
|
a85faa |
+ connection = _connection_from_file (PATH_NAME, NULL, TYPE_ETHERNET, NULL);
|
|
|
a85faa |
+ g_test_assert_expected_messages ();
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_assert_cmpstr (nm_connection_get_interface_name (connection), ==, "team0");
|
|
|
a85faa |
+
|
|
|
a85faa |
+ s_con = nm_connection_get_setting_connection (connection);
|
|
|
a85faa |
+ g_assert (s_con);
|
|
|
a85faa |
+ g_assert_cmpstr (nm_setting_connection_get_connection_type (s_con), ==, NM_SETTING_TEAM_SETTING_NAME);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ s_team = nm_connection_get_setting_team (connection);
|
|
|
a85faa |
+ g_assert (s_team);
|
|
|
a85faa |
+ g_assert (nm_setting_team_get_config (s_team) == NULL);
|
|
|
a85faa |
+
|
|
|
a85faa |
+ g_object_unref (connection);
|
|
|
a85faa |
+}
|
|
|
a85faa |
+
|
|
|
a85faa |
+static void
|
|
|
a85faa |
test_write_team_master (void)
|
|
|
a85faa |
{
|
|
|
a85faa |
NMConnection *connection, *reread;
|
|
|
a85faa |
@@ -9050,6 +9075,7 @@ int main (int argc, char **argv)
|
|
|
a85faa |
|
|
|
a85faa |
g_test_add_data_func (TPATH "team/read-master-1", TEST_IFCFG_DIR"/network-scripts/ifcfg-test-team-master-1", test_read_team_master);
|
|
|
a85faa |
g_test_add_data_func (TPATH "team/read-master-2", TEST_IFCFG_DIR"/network-scripts/ifcfg-test-team-master-2", test_read_team_master);
|
|
|
a85faa |
+ g_test_add_data_func (TPATH "team/read-master-invalid", TEST_IFCFG_DIR"/network-scripts/ifcfg-test-team-master-invalid", test_read_team_master_invalid);
|
|
|
a85faa |
g_test_add_func (TPATH "team/write-master", test_write_team_master);
|
|
|
a85faa |
g_test_add_data_func (TPATH "team/read-port-1", TEST_IFCFG_DIR"/network-scripts/ifcfg-test-team-port-1", test_read_team_port);
|
|
|
a85faa |
g_test_add_data_func (TPATH "team/read-port-2", TEST_IFCFG_DIR"/network-scripts/ifcfg-test-team-port-2", test_read_team_port);
|
|
|
a85faa |
--
|
|
|
a85faa |
2.5.5
|
|
|
a85faa |
|
|
|
a85faa |
From 875d750a9329e4478f3dec107d77041d51a12742 Mon Sep 17 00:00:00 2001
|
|
|
a85faa |
From: Beniamino Galvani <bgalvani@redhat.com>
|
|
|
a85faa |
Date: Tue, 30 Aug 2016 16:37:54 +0200
|
|
|
a85faa |
Subject: [PATCH 3/3] libnm: restore verify() comments in team/team-port
|
|
|
a85faa |
settings
|
|
|
a85faa |
|
|
|
a85faa |
Restore the comments removed in commit
|
|
|
a85faa |
a524091966afb884cdb8db48067d5599a685a8eb.
|
|
|
a85faa |
|
|
|
a85faa |
(cherry picked from commit d06279f3db794f5c7177d85b4dd5e732d6a90364)
|
|
|
a85faa |
(cherry picked from commit bf422e972abe9c14b385401ad72b01f3fcef8d40)
|
|
|
a85faa |
---
|
|
|
a85faa |
libnm-core/nm-setting-team-port.c | 3 +++
|
|
|
a85faa |
libnm-core/nm-setting-team.c | 3 +++
|
|
|
a85faa |
2 files changed, 6 insertions(+)
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
index 123304f..e3ddbda 100644
|
|
|
a85faa |
--- a/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
+++ b/libnm-core/nm-setting-team-port.c
|
|
|
a85faa |
@@ -127,6 +127,9 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|
|
a85faa |
}
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
+ /* NOTE: normalizable/normalizable-errors must appear at the end with decreasing severity.
|
|
|
a85faa |
+ * Take care to properly order statements with priv->config above. */
|
|
|
a85faa |
+
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
diff --git a/libnm-core/nm-setting-team.c b/libnm-core/nm-setting-team.c
|
|
|
a85faa |
index df89694..5bf11ed 100644
|
|
|
a85faa |
--- a/libnm-core/nm-setting-team.c
|
|
|
a85faa |
+++ b/libnm-core/nm-setting-team.c
|
|
|
a85faa |
@@ -99,6 +99,9 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
|
|
|
a85faa |
}
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
+ /* NOTE: normalizable/normalizable-errors must appear at the end with decreasing severity.
|
|
|
a85faa |
+ * Take care to properly order statements with priv->config above. */
|
|
|
a85faa |
+
|
|
|
a85faa |
return TRUE;
|
|
|
a85faa |
}
|
|
|
a85faa |
|
|
|
a85faa |
--
|
|
|
a85faa |
2.5.5
|
|
|
a85faa |
|