|
|
60de42 |
From 73d3531f313e7ff77b524d27c9f0f6012e8fabdd Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 09:32:27 -0500
|
|
|
60de42 |
Subject: [PATCH 01/10] Refactor: libcrmcommon: avoid duplicate variable for
|
|
|
60de42 |
/usr/sbin
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
lib/common/Makefile.am | 3 +--
|
|
|
60de42 |
lib/common/watchdog.c | 2 +-
|
|
|
60de42 |
2 files changed, 2 insertions(+), 3 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/lib/common/Makefile.am b/lib/common/Makefile.am
|
|
|
60de42 |
index 05a0d74..7a68d1f 100644
|
|
|
60de42 |
--- a/lib/common/Makefile.am
|
|
|
60de42 |
+++ b/lib/common/Makefile.am
|
|
|
60de42 |
@@ -17,8 +17,7 @@
|
|
|
60de42 |
#
|
|
|
60de42 |
include $(top_srcdir)/Makefile.common
|
|
|
60de42 |
|
|
|
60de42 |
-AM_CPPFLAGS += -I$(top_builddir)/lib/gnu -I$(top_srcdir)/lib/gnu \
|
|
|
60de42 |
- -DSBINDIR=\"$(sbindir)\"
|
|
|
60de42 |
+AM_CPPFLAGS += -I$(top_builddir)/lib/gnu -I$(top_srcdir)/lib/gnu
|
|
|
60de42 |
|
|
|
60de42 |
## libraries
|
|
|
60de42 |
lib_LTLIBRARIES = libcrmcommon.la
|
|
|
60de42 |
diff --git a/lib/common/watchdog.c b/lib/common/watchdog.c
|
|
|
60de42 |
index a171721..4c4abc1 100644
|
|
|
60de42 |
--- a/lib/common/watchdog.c
|
|
|
60de42 |
+++ b/lib/common/watchdog.c
|
|
|
60de42 |
@@ -216,7 +216,7 @@ pcmk_locate_sbd(void)
|
|
|
60de42 |
|
|
|
60de42 |
/* Look for the pid file */
|
|
|
60de42 |
pidfile = crm_strdup_printf("%s/sbd.pid", HA_STATE_DIR);
|
|
|
60de42 |
- sbd_path = crm_strdup_printf("%s/sbd", SBINDIR);
|
|
|
60de42 |
+ sbd_path = crm_strdup_printf("%s/sbd", SBIN_DIR);
|
|
|
60de42 |
|
|
|
60de42 |
/* Read the pid file */
|
|
|
60de42 |
CRM_ASSERT(pidfile);
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 7642b2c27d074078326b8cc90ed99f1910900a2d Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 09:49:22 -0500
|
|
|
60de42 |
Subject: [PATCH 02/10] Low: libpe_status: use new ID generation functions
|
|
|
60de42 |
|
|
|
60de42 |
Ensures values are sanitized, and fixes a memory leak
|
|
|
60de42 |
---
|
|
|
60de42 |
lib/pengine/container.c | 41 ++++++++++++++++++++---------------------
|
|
|
60de42 |
1 file changed, 20 insertions(+), 21 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/lib/pengine/container.c b/lib/pengine/container.c
|
|
|
60de42 |
index d7d47ad..801d94a 100644
|
|
|
60de42 |
--- a/lib/pengine/container.c
|
|
|
60de42 |
+++ b/lib/pengine/container.c
|
|
|
60de42 |
@@ -88,10 +88,9 @@ create_resource(const char *name, const char *provider, const char *kind)
|
|
|
60de42 |
static void
|
|
|
60de42 |
create_nvp(xmlNode *parent, const char *name, const char *value)
|
|
|
60de42 |
{
|
|
|
60de42 |
- char *id = crm_strdup_printf("%s-%s", ID(parent), name);
|
|
|
60de42 |
xmlNode *xml_nvp = create_xml_node(parent, XML_CIB_TAG_NVPAIR);
|
|
|
60de42 |
|
|
|
60de42 |
- crm_xml_add(xml_nvp, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_nvp, "%s-%s", ID(parent), name);
|
|
|
60de42 |
crm_xml_add(xml_nvp, XML_NVPAIR_ATTR_NAME, name);
|
|
|
60de42 |
crm_xml_add(xml_nvp, XML_NVPAIR_ATTR_VALUE, value);
|
|
|
60de42 |
}
|
|
|
60de42 |
@@ -99,10 +98,9 @@ create_nvp(xmlNode *parent, const char *name, const char *value)
|
|
|
60de42 |
static void
|
|
|
60de42 |
create_op(xmlNode *parent, const char *prefix, const char *task, const char *interval)
|
|
|
60de42 |
{
|
|
|
60de42 |
- char *id = crm_strdup_printf("%s-%s-%s", prefix, task, interval);
|
|
|
60de42 |
xmlNode *xml_op = create_xml_node(parent, "op");
|
|
|
60de42 |
|
|
|
60de42 |
- crm_xml_add(xml_op, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_op, "%s-%s-%s", prefix, task, interval);
|
|
|
60de42 |
crm_xml_add(xml_op, XML_LRM_ATTR_INTERVAL, interval);
|
|
|
60de42 |
crm_xml_add(xml_op, "name", task);
|
|
|
60de42 |
}
|
|
|
60de42 |
@@ -113,13 +111,16 @@ create_ip_resource(
|
|
|
60de42 |
pe_working_set_t * data_set)
|
|
|
60de42 |
{
|
|
|
60de42 |
if(data->ip_range_start) {
|
|
|
60de42 |
- char *id = crm_strdup_printf("%s-ip-%s", data->prefix, tuple->ipaddr);
|
|
|
60de42 |
- xmlNode *xml_ip = create_resource(id, "heartbeat", "IPaddr2");
|
|
|
60de42 |
+ char *id = NULL;
|
|
|
60de42 |
+ xmlNode *xml_ip = NULL;
|
|
|
60de42 |
xmlNode *xml_obj = NULL;
|
|
|
60de42 |
|
|
|
60de42 |
- id = crm_strdup_printf("%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
+ id = crm_strdup_printf("%s-ip-%s", data->prefix, tuple->ipaddr);
|
|
|
60de42 |
+ crm_xml_sanitize_id(id);
|
|
|
60de42 |
+ xml_ip = create_resource(id, "heartbeat", "IPaddr2");
|
|
|
60de42 |
+
|
|
|
60de42 |
xml_obj = create_xml_node(xml_ip, XML_TAG_ATTR_SETS);
|
|
|
60de42 |
- crm_xml_add(xml_obj, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_obj, "%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
|
|
|
60de42 |
create_nvp(xml_obj, "ip", tuple->ipaddr);
|
|
|
60de42 |
if(data->host_network) {
|
|
|
60de42 |
@@ -158,13 +159,16 @@ create_docker_resource(
|
|
|
60de42 |
int doffset = 0, dmax = 1024;
|
|
|
60de42 |
char *dbuffer = calloc(1, dmax+1);
|
|
|
60de42 |
|
|
|
60de42 |
- char *id = crm_strdup_printf("%s-docker-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
- xmlNode *xml_docker = create_resource(id, "heartbeat", "docker");
|
|
|
60de42 |
+ char *id = NULL;
|
|
|
60de42 |
+ xmlNode *xml_docker = NULL;
|
|
|
60de42 |
xmlNode *xml_obj = NULL;
|
|
|
60de42 |
|
|
|
60de42 |
- id = crm_strdup_printf("%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
+ id = crm_strdup_printf("%s-docker-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
+ crm_xml_sanitize_id(id);
|
|
|
60de42 |
+ xml_docker = create_resource(id, "heartbeat", "docker");
|
|
|
60de42 |
+
|
|
|
60de42 |
xml_obj = create_xml_node(xml_docker, XML_TAG_ATTR_SETS);
|
|
|
60de42 |
- crm_xml_add(xml_obj, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_obj, "%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
|
|
|
60de42 |
create_nvp(xml_obj, "image", data->image);
|
|
|
60de42 |
create_nvp(xml_obj, "allow_pull", "true");
|
|
|
60de42 |
@@ -288,16 +292,14 @@ create_remote_resource(
|
|
|
60de42 |
xml_obj = create_xml_node(xml_remote, "operations");
|
|
|
60de42 |
create_op(xml_obj, ID(xml_remote), "monitor", "60s");
|
|
|
60de42 |
|
|
|
60de42 |
- id = crm_strdup_printf("%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
xml_obj = create_xml_node(xml_remote, XML_TAG_ATTR_SETS);
|
|
|
60de42 |
- crm_xml_add(xml_obj, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_obj, "%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
|
|
|
60de42 |
create_nvp(xml_obj, "addr", tuple->ipaddr);
|
|
|
60de42 |
create_nvp(xml_obj, "port", crm_itoa(DEFAULT_REMOTE_PORT));
|
|
|
60de42 |
|
|
|
60de42 |
- id = crm_strdup_printf("%s-meta-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
xml_obj = create_xml_node(xml_remote, XML_TAG_META_SETS);
|
|
|
60de42 |
- crm_xml_add(xml_obj, XML_ATTR_ID, id); free(id);
|
|
|
60de42 |
+ crm_xml_set_id(xml_obj, "%s-meta-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
|
|
|
60de42 |
create_nvp(xml_obj, XML_OP_ATTR_ALLOW_MIGRATE, "false");
|
|
|
60de42 |
|
|
|
60de42 |
@@ -458,13 +460,10 @@ container_unpack(resource_t * rsc, pe_working_set_t * data_set)
|
|
|
60de42 |
xml_resource = create_xml_node(NULL, XML_CIB_TAG_INCARNATION);
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
- value = crm_strdup_printf("%s-%s", container_data->prefix, xml_resource->name);
|
|
|
60de42 |
- crm_xml_add(xml_resource, XML_ATTR_ID, value);
|
|
|
60de42 |
- free(value);
|
|
|
60de42 |
+ crm_xml_set_id(xml_resource, "%s-%s", container_data->prefix, xml_resource->name);
|
|
|
60de42 |
|
|
|
60de42 |
- value = crm_strdup_printf("%s-%s-meta", container_data->prefix, xml_resource->name);
|
|
|
60de42 |
xml_set = create_xml_node(xml_resource, XML_TAG_META_SETS);
|
|
|
60de42 |
- free(value);
|
|
|
60de42 |
+ crm_xml_set_id(xml_resource, "%s-%s-meta", container_data->prefix, xml_resource->name);
|
|
|
60de42 |
|
|
|
60de42 |
create_nvp(xml_set, XML_RSC_ATTR_ORDERED, "true");
|
|
|
60de42 |
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 0e42b7427e71a8336b2b8d3fb3ec4d9470cad1e3 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 09:56:58 -0500
|
|
|
60de42 |
Subject: [PATCH 03/10] Refactor: crmd,lrmd,liblrmd: pass pointer rather than
|
|
|
60de42 |
structure
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
crmd/lrm_state.c | 3 ++-
|
|
|
60de42 |
include/crm_internal.h | 2 +-
|
|
|
60de42 |
lib/lrmd/proxy_common.c | 4 ++--
|
|
|
60de42 |
lrmd/remote_ctl.c | 2 +-
|
|
|
60de42 |
4 files changed, 6 insertions(+), 5 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/crmd/lrm_state.c b/crmd/lrm_state.c
|
|
|
60de42 |
index 83532a5..9a810df 100644
|
|
|
60de42 |
--- a/crmd/lrm_state.c
|
|
|
60de42 |
+++ b/crmd/lrm_state.c
|
|
|
60de42 |
@@ -408,7 +408,8 @@ crmd_remote_proxy_new(lrmd_t *lrmd, const char *node_name, const char *session_i
|
|
|
60de42 |
.dispatch = remote_proxy_dispatch,
|
|
|
60de42 |
.destroy = remote_proxy_disconnected
|
|
|
60de42 |
};
|
|
|
60de42 |
- remote_proxy_t *proxy = remote_proxy_new(lrmd, proxy_callbacks, node_name, session_id, channel);
|
|
|
60de42 |
+ remote_proxy_t *proxy = remote_proxy_new(lrmd, &proxy_callbacks, node_name,
|
|
|
60de42 |
+ session_id, channel);
|
|
|
60de42 |
|
|
|
60de42 |
if (safe_str_eq(channel, CRM_SYSTEM_CRMD)) {
|
|
|
60de42 |
proxy->is_local = TRUE;
|
|
|
60de42 |
diff --git a/include/crm_internal.h b/include/crm_internal.h
|
|
|
60de42 |
index 206ec5f..d2f2f07 100644
|
|
|
60de42 |
--- a/include/crm_internal.h
|
|
|
60de42 |
+++ b/include/crm_internal.h
|
|
|
60de42 |
@@ -380,7 +380,7 @@ typedef struct remote_proxy_s {
|
|
|
60de42 |
} remote_proxy_t;
|
|
|
60de42 |
|
|
|
60de42 |
remote_proxy_t *remote_proxy_new(
|
|
|
60de42 |
- lrmd_t *lrmd, struct ipc_client_callbacks proxy_callbacks,
|
|
|
60de42 |
+ lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks,
|
|
|
60de42 |
const char *node_name, const char *session_id, const char *channel);
|
|
|
60de42 |
|
|
|
60de42 |
int remote_proxy_check(lrmd_t *lrmd, GHashTable *hash);
|
|
|
60de42 |
diff --git a/lib/lrmd/proxy_common.c b/lib/lrmd/proxy_common.c
|
|
|
60de42 |
index 2e9d963..e0f3d87 100644
|
|
|
60de42 |
--- a/lib/lrmd/proxy_common.c
|
|
|
60de42 |
+++ b/lib/lrmd/proxy_common.c
|
|
|
60de42 |
@@ -172,7 +172,7 @@ remote_proxy_disconnected(gpointer userdata)
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
remote_proxy_t *
|
|
|
60de42 |
-remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks proxy_callbacks,
|
|
|
60de42 |
+remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks,
|
|
|
60de42 |
const char *node_name, const char *session_id, const char *channel)
|
|
|
60de42 |
{
|
|
|
60de42 |
remote_proxy_t *proxy = NULL;
|
|
|
60de42 |
@@ -188,7 +188,7 @@ remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks proxy_callbacks,
|
|
|
60de42 |
proxy->node_name = strdup(node_name);
|
|
|
60de42 |
proxy->session_id = strdup(session_id);
|
|
|
60de42 |
|
|
|
60de42 |
- proxy->source = mainloop_add_ipc_client(channel, G_PRIORITY_LOW, 0, proxy, &proxy_callbacks);
|
|
|
60de42 |
+ proxy->source = mainloop_add_ipc_client(channel, G_PRIORITY_LOW, 0, proxy, proxy_callbacks);
|
|
|
60de42 |
proxy->ipc = mainloop_get_ipc_client(proxy->source);
|
|
|
60de42 |
proxy->lrm = lrmd;
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/lrmd/remote_ctl.c b/lrmd/remote_ctl.c
|
|
|
60de42 |
index f3fc24f..4afa337 100644
|
|
|
60de42 |
--- a/lrmd/remote_ctl.c
|
|
|
60de42 |
+++ b/lrmd/remote_ctl.c
|
|
|
60de42 |
@@ -259,7 +259,7 @@ ctl_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg)
|
|
|
60de42 |
.destroy = remote_proxy_disconnected
|
|
|
60de42 |
};
|
|
|
60de42 |
|
|
|
60de42 |
- remote_proxy_new(lrmd, proxy_callbacks, options.node_name, session, channel);
|
|
|
60de42 |
+ remote_proxy_new(lrmd, &proxy_callbacks, options.node_name, session, channel);
|
|
|
60de42 |
|
|
|
60de42 |
} else {
|
|
|
60de42 |
remote_proxy_cb(lrmd, options.node_name, msg);
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 6e0782767bd8b057a363e6bb32327d6881699aae Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 10:50:30 -0500
|
|
|
60de42 |
Subject: [PATCH 04/10] Low: crmd,liblrmd: handle crmd-local proxy requests
|
|
|
60de42 |
properly
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
crmd/lrm_state.c | 14 ++++++++------
|
|
|
60de42 |
lib/lrmd/proxy_common.c | 28 ++++++++++++++++++++--------
|
|
|
60de42 |
2 files changed, 28 insertions(+), 14 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/crmd/lrm_state.c b/crmd/lrm_state.c
|
|
|
60de42 |
index 9a810df..86cedd8 100644
|
|
|
60de42 |
--- a/crmd/lrm_state.c
|
|
|
60de42 |
+++ b/crmd/lrm_state.c
|
|
|
60de42 |
@@ -410,10 +410,6 @@ crmd_remote_proxy_new(lrmd_t *lrmd, const char *node_name, const char *session_i
|
|
|
60de42 |
};
|
|
|
60de42 |
remote_proxy_t *proxy = remote_proxy_new(lrmd, &proxy_callbacks, node_name,
|
|
|
60de42 |
session_id, channel);
|
|
|
60de42 |
-
|
|
|
60de42 |
- if (safe_str_eq(channel, CRM_SYSTEM_CRMD)) {
|
|
|
60de42 |
- proxy->is_local = TRUE;
|
|
|
60de42 |
- }
|
|
|
60de42 |
return proxy;
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
@@ -526,7 +522,7 @@ crmd_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg)
|
|
|
60de42 |
}
|
|
|
60de42 |
return;
|
|
|
60de42 |
|
|
|
60de42 |
- } else if (safe_str_eq(op, LRMD_IPC_OP_REQUEST) && proxy->is_local) {
|
|
|
60de42 |
+ } else if (safe_str_eq(op, LRMD_IPC_OP_REQUEST) && proxy && proxy->is_local) {
|
|
|
60de42 |
/* this is for the crmd, which we are, so don't try
|
|
|
60de42 |
* and connect/send to ourselves over ipc. instead
|
|
|
60de42 |
* do it directly.
|
|
|
60de42 |
@@ -534,9 +530,15 @@ crmd_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg)
|
|
|
60de42 |
int flags = 0;
|
|
|
60de42 |
xmlNode *request = get_message_xml(msg, F_LRMD_IPC_MSG);
|
|
|
60de42 |
|
|
|
60de42 |
+ CRM_CHECK(request != NULL, return);
|
|
|
60de42 |
+#if ENABLE_ACL
|
|
|
60de42 |
+ CRM_CHECK(lrm_state->node_name, return);
|
|
|
60de42 |
+ crm_xml_add(request, XML_ACL_TAG_ROLE, "pacemaker-remote");
|
|
|
60de42 |
+ crm_acl_get_set_user(request, F_LRMD_IPC_USER, lrm_state->node_name);
|
|
|
60de42 |
+#endif
|
|
|
60de42 |
crmd_proxy_dispatch(session, request);
|
|
|
60de42 |
- crm_element_value_int(msg, F_LRMD_IPC_MSG_FLAGS, &flags);
|
|
|
60de42 |
|
|
|
60de42 |
+ crm_element_value_int(msg, F_LRMD_IPC_MSG_FLAGS, &flags);
|
|
|
60de42 |
if (flags & crm_ipc_client_response) {
|
|
|
60de42 |
int msg_id = 0;
|
|
|
60de42 |
xmlNode *op_reply = create_xml_node(NULL, "ack");
|
|
|
60de42 |
diff --git a/lib/lrmd/proxy_common.c b/lib/lrmd/proxy_common.c
|
|
|
60de42 |
index e0f3d87..81796d4 100644
|
|
|
60de42 |
--- a/lib/lrmd/proxy_common.c
|
|
|
60de42 |
+++ b/lib/lrmd/proxy_common.c
|
|
|
60de42 |
@@ -187,15 +187,21 @@ remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks *proxy_callbacks,
|
|
|
60de42 |
|
|
|
60de42 |
proxy->node_name = strdup(node_name);
|
|
|
60de42 |
proxy->session_id = strdup(session_id);
|
|
|
60de42 |
-
|
|
|
60de42 |
- proxy->source = mainloop_add_ipc_client(channel, G_PRIORITY_LOW, 0, proxy, proxy_callbacks);
|
|
|
60de42 |
- proxy->ipc = mainloop_get_ipc_client(proxy->source);
|
|
|
60de42 |
proxy->lrm = lrmd;
|
|
|
60de42 |
|
|
|
60de42 |
- if (proxy->source == NULL) {
|
|
|
60de42 |
- remote_proxy_free(proxy);
|
|
|
60de42 |
- remote_proxy_notify_destroy(lrmd, session_id);
|
|
|
60de42 |
- return NULL;
|
|
|
60de42 |
+ if (safe_str_eq(crm_system_name, CRM_SYSTEM_CRMD)
|
|
|
60de42 |
+ && safe_str_eq(channel, CRM_SYSTEM_CRMD)) {
|
|
|
60de42 |
+ /* The crmd doesn't need to connect to itself */
|
|
|
60de42 |
+ proxy->is_local = TRUE;
|
|
|
60de42 |
+
|
|
|
60de42 |
+ } else {
|
|
|
60de42 |
+ proxy->source = mainloop_add_ipc_client(channel, G_PRIORITY_LOW, 0, proxy, proxy_callbacks);
|
|
|
60de42 |
+ proxy->ipc = mainloop_get_ipc_client(proxy->source);
|
|
|
60de42 |
+ if (proxy->source == NULL) {
|
|
|
60de42 |
+ remote_proxy_free(proxy);
|
|
|
60de42 |
+ remote_proxy_notify_destroy(lrmd, session_id);
|
|
|
60de42 |
+ return NULL;
|
|
|
60de42 |
+ }
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
crm_trace("new remote proxy client established to %s on %s, session id %s",
|
|
|
60de42 |
@@ -237,7 +243,13 @@ remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode *msg)
|
|
|
60de42 |
/* proxy connection no longer exists */
|
|
|
60de42 |
remote_proxy_notify_destroy(lrmd, session);
|
|
|
60de42 |
return;
|
|
|
60de42 |
- } else if ((proxy->is_local == FALSE) && (crm_ipc_connected(proxy->ipc) == FALSE)) {
|
|
|
60de42 |
+ }
|
|
|
60de42 |
+
|
|
|
60de42 |
+ /* crmd requests MUST be handled by the crmd, not us */
|
|
|
60de42 |
+ CRM_CHECK(proxy->is_local == FALSE,
|
|
|
60de42 |
+ remote_proxy_end_session(proxy); return);
|
|
|
60de42 |
+
|
|
|
60de42 |
+ if (crm_ipc_connected(proxy->ipc) == FALSE) {
|
|
|
60de42 |
remote_proxy_end_session(proxy);
|
|
|
60de42 |
return;
|
|
|
60de42 |
}
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From c76c85f7ca5d5fe2127473f13516694882fda603 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 10:51:22 -0500
|
|
|
60de42 |
Subject: [PATCH 05/10] Refactor: libcrmcommon: remove dead code
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
include/crm_internal.h | 8 --------
|
|
|
60de42 |
1 file changed, 8 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/include/crm_internal.h b/include/crm_internal.h
|
|
|
60de42 |
index d2f2f07..cf0f32d 100644
|
|
|
60de42 |
--- a/include/crm_internal.h
|
|
|
60de42 |
+++ b/include/crm_internal.h
|
|
|
60de42 |
@@ -162,10 +162,6 @@ crm_clear_bit(const char *function, int line, const char *target, long long word
|
|
|
60de42 |
{
|
|
|
60de42 |
long long rc = (word & ~bit);
|
|
|
60de42 |
|
|
|
60de42 |
- /* if(bit == 0x00002) { */
|
|
|
60de42 |
- /* crm_err("Bit 0x%.8llx for %s cleared by %s:%d", bit, target, function, line); */
|
|
|
60de42 |
- /* } */
|
|
|
60de42 |
-
|
|
|
60de42 |
if (rc == word) {
|
|
|
60de42 |
/* Unchanged */
|
|
|
60de42 |
} else if (target) {
|
|
|
60de42 |
@@ -182,10 +178,6 @@ crm_set_bit(const char *function, int line, const char *target, long long word,
|
|
|
60de42 |
{
|
|
|
60de42 |
long long rc = (word | bit);
|
|
|
60de42 |
|
|
|
60de42 |
- /* if(bit == 0x00002) { */
|
|
|
60de42 |
- /* crm_err("Bit 0x%.8llx for %s set by %s:%d", bit, target, function, line); */
|
|
|
60de42 |
- /* } */
|
|
|
60de42 |
-
|
|
|
60de42 |
if (rc == word) {
|
|
|
60de42 |
/* Unchanged */
|
|
|
60de42 |
} else if (target) {
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 23cd184c09f2bdb19b9b5d34b8a091cd52d9d142 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 10:58:09 -0500
|
|
|
60de42 |
Subject: [PATCH 06/10] Low: libpe_status: allow more than 254 containers in a
|
|
|
60de42 |
bundle
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
lib/pengine/container.c | 22 +++++++++++++++-------
|
|
|
60de42 |
1 file changed, 15 insertions(+), 7 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/lib/pengine/container.c b/lib/pengine/container.c
|
|
|
60de42 |
index 801d94a..1c70f02 100644
|
|
|
60de42 |
--- a/lib/pengine/container.c
|
|
|
60de42 |
+++ b/lib/pengine/container.c
|
|
|
60de42 |
@@ -32,20 +32,28 @@ void tuple_free(container_grouping_t *tuple);
|
|
|
60de42 |
static char *
|
|
|
60de42 |
next_ip(const char *last_ip)
|
|
|
60de42 |
{
|
|
|
60de42 |
- int oct1 = 0;
|
|
|
60de42 |
- int oct2 = 0;
|
|
|
60de42 |
- int oct3 = 0;
|
|
|
60de42 |
- int oct4 = 0;
|
|
|
60de42 |
+ unsigned int oct1 = 0;
|
|
|
60de42 |
+ unsigned int oct2 = 0;
|
|
|
60de42 |
+ unsigned int oct3 = 0;
|
|
|
60de42 |
+ unsigned int oct4 = 0;
|
|
|
60de42 |
+ int rc = sscanf(last_ip, "%u.%u.%u.%u", &oct1, &oct2, &oct3, &oct4);
|
|
|
60de42 |
|
|
|
60de42 |
- int rc = sscanf(last_ip, "%d.%d.%d.%d", &oct1, &oct2, &oct3, &oct4);
|
|
|
60de42 |
if (rc != 4) {
|
|
|
60de42 |
+ /*@ TODO check for IPv6 */
|
|
|
60de42 |
return NULL;
|
|
|
60de42 |
|
|
|
60de42 |
- } else if(oct4 > 255) {
|
|
|
60de42 |
+ } else if (oct3 > 253) {
|
|
|
60de42 |
return NULL;
|
|
|
60de42 |
+
|
|
|
60de42 |
+ } else if (oct4 > 253) {
|
|
|
60de42 |
+ ++oct3;
|
|
|
60de42 |
+ oct4 = 1;
|
|
|
60de42 |
+
|
|
|
60de42 |
+ } else {
|
|
|
60de42 |
+ ++oct4;
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
- return crm_strdup_printf("%d.%d.%d.%d", oct1, oct2, oct3, oct4+1);
|
|
|
60de42 |
+ return crm_strdup_printf("%u.%u.%u.%u", oct1, oct2, oct3, oct4);
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
static int
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 4751d74fbfb1be557fb2d4fca9db2c4a2b896950 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 11:10:54 -0500
|
|
|
60de42 |
Subject: [PATCH 07/10] Low: libpe_status: avoid memory leaks in bundle
|
|
|
60de42 |
handling
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
lib/pengine/container.c | 16 +++++++++++-----
|
|
|
60de42 |
1 file changed, 11 insertions(+), 5 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/lib/pengine/container.c b/lib/pengine/container.c
|
|
|
60de42 |
index 1c70f02..816e96a 100644
|
|
|
60de42 |
--- a/lib/pengine/container.c
|
|
|
60de42 |
+++ b/lib/pengine/container.c
|
|
|
60de42 |
@@ -88,7 +88,7 @@ create_resource(const char *name, const char *provider, const char *kind)
|
|
|
60de42 |
crm_xml_add(rsc, XML_ATTR_ID, name);
|
|
|
60de42 |
crm_xml_add(rsc, XML_AGENT_ATTR_CLASS, "ocf");
|
|
|
60de42 |
crm_xml_add(rsc, XML_AGENT_ATTR_PROVIDER, provider);
|
|
|
60de42 |
- crm_xml_add(rsc, "type", kind);
|
|
|
60de42 |
+ crm_xml_add(rsc, XML_ATTR_TYPE, kind);
|
|
|
60de42 |
|
|
|
60de42 |
return rsc;
|
|
|
60de42 |
}
|
|
|
60de42 |
@@ -126,6 +126,7 @@ create_ip_resource(
|
|
|
60de42 |
id = crm_strdup_printf("%s-ip-%s", data->prefix, tuple->ipaddr);
|
|
|
60de42 |
crm_xml_sanitize_id(id);
|
|
|
60de42 |
xml_ip = create_resource(id, "heartbeat", "IPaddr2");
|
|
|
60de42 |
+ free(id);
|
|
|
60de42 |
|
|
|
60de42 |
xml_obj = create_xml_node(xml_ip, XML_TAG_ATTR_SETS);
|
|
|
60de42 |
crm_xml_set_id(xml_obj, "%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
@@ -174,6 +175,7 @@ create_docker_resource(
|
|
|
60de42 |
id = crm_strdup_printf("%s-docker-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
crm_xml_sanitize_id(id);
|
|
|
60de42 |
xml_docker = create_resource(id, "heartbeat", "docker");
|
|
|
60de42 |
+ free(id);
|
|
|
60de42 |
|
|
|
60de42 |
xml_obj = create_xml_node(xml_docker, XML_TAG_ATTR_SETS);
|
|
|
60de42 |
crm_xml_set_id(xml_obj, "%s-attributes-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
@@ -203,6 +205,7 @@ create_docker_resource(
|
|
|
60de42 |
}
|
|
|
60de42 |
doffset += snprintf(dbuffer+doffset, dmax-doffset, "%s", source);
|
|
|
60de42 |
offset += snprintf(buffer+offset, max-offset, " -v %s:%s", source, mount->target);
|
|
|
60de42 |
+ free(source);
|
|
|
60de42 |
|
|
|
60de42 |
} else {
|
|
|
60de42 |
offset += snprintf(buffer+offset, max-offset, " -v %s:%s", mount->source, mount->target);
|
|
|
60de42 |
@@ -287,16 +290,19 @@ create_remote_resource(
|
|
|
60de42 |
xmlNode *xml_obj = NULL;
|
|
|
60de42 |
xmlNode *xml_remote = NULL;
|
|
|
60de42 |
char *nodeid = crm_strdup_printf("%s-%d", data->prefix, tuple->offset);
|
|
|
60de42 |
- char *id = strdup(nodeid);
|
|
|
60de42 |
+ char *id = NULL;
|
|
|
60de42 |
|
|
|
60de42 |
- if(remote_id_conflict(id, data_set)) {
|
|
|
60de42 |
+ if (remote_id_conflict(nodeid, data_set)) {
|
|
|
60de42 |
// The biggest hammer we have
|
|
|
60de42 |
id = crm_strdup_printf("pcmk-internal-%s-remote-%d", tuple->child->id, tuple->offset);
|
|
|
60de42 |
+ CRM_ASSERT(remote_id_conflict(id, data_set) == FALSE);
|
|
|
60de42 |
+ } else {
|
|
|
60de42 |
+ id = strdup(nodeid);
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
- CRM_ASSERT(remote_id_conflict(id, data_set) == FALSE);
|
|
|
60de42 |
-
|
|
|
60de42 |
xml_remote = create_resource(id, "pacemaker", "remote");
|
|
|
60de42 |
+ free(id);
|
|
|
60de42 |
+
|
|
|
60de42 |
xml_obj = create_xml_node(xml_remote, "operations");
|
|
|
60de42 |
create_op(xml_obj, ID(xml_remote), "monitor", "60s");
|
|
|
60de42 |
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From ef2cd27bf68b9950cb67872b72c878c995fac479 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 11:14:41 -0500
|
|
|
60de42 |
Subject: [PATCH 08/10] Refactor: libpe_status: rename newly exposed function
|
|
|
60de42 |
with pe_ prefix
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
fencing/main.c | 1 -
|
|
|
60de42 |
include/crm/pengine/internal.h | 3 ++-
|
|
|
60de42 |
lib/pengine/container.c | 3 ++-
|
|
|
60de42 |
lib/pengine/unpack.c | 19 ++++++++++++-------
|
|
|
60de42 |
4 files changed, 16 insertions(+), 10 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/fencing/main.c b/fencing/main.c
|
|
|
60de42 |
index 437c31f..1c61d8b 100644
|
|
|
60de42 |
--- a/fencing/main.c
|
|
|
60de42 |
+++ b/fencing/main.c
|
|
|
60de42 |
@@ -710,7 +710,6 @@ update_done:
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
extern xmlNode *do_calculations(pe_working_set_t * data_set, xmlNode * xml_input, crm_time_t * now);
|
|
|
60de42 |
-extern node_t *create_node(const char *id, const char *uname, const char *type, const char *score, pe_working_set_t * data_set);
|
|
|
60de42 |
|
|
|
60de42 |
/*!
|
|
|
60de42 |
* \internal
|
|
|
60de42 |
diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h
|
|
|
60de42 |
index adafefd..0da02cc 100644
|
|
|
60de42 |
--- a/include/crm/pengine/internal.h
|
|
|
60de42 |
+++ b/include/crm/pengine/internal.h
|
|
|
60de42 |
@@ -286,7 +286,8 @@ void print_rscs_brief(GListPtr rsc_list, const char * pre_text, long options,
|
|
|
60de42 |
void * print_data, gboolean print_all);
|
|
|
60de42 |
void pe_fence_node(pe_working_set_t * data_set, node_t * node, const char *reason);
|
|
|
60de42 |
|
|
|
60de42 |
-node_t *create_node(const char *id, const char *uname, const char *type, const char *score, pe_working_set_t * data_set);
|
|
|
60de42 |
+node_t *pe_create_node(const char *id, const char *uname, const char *type,
|
|
|
60de42 |
+ const char *score, pe_working_set_t * data_set);
|
|
|
60de42 |
bool remote_id_conflict(const char *remote_name, pe_working_set_t *data);
|
|
|
60de42 |
void common_print(resource_t * rsc, const char *pre_text, const char *name, node_t *node, long options, void *print_data);
|
|
|
60de42 |
resource_t *find_container_child(const char *stem, resource_t * rsc, node_t *node);
|
|
|
60de42 |
diff --git a/lib/pengine/container.c b/lib/pengine/container.c
|
|
|
60de42 |
index 816e96a..4dc7594 100644
|
|
|
60de42 |
--- a/lib/pengine/container.c
|
|
|
60de42 |
+++ b/lib/pengine/container.c
|
|
|
60de42 |
@@ -326,7 +326,8 @@ create_remote_resource(
|
|
|
60de42 |
// tuple->docker->fillers = g_list_append(tuple->docker->fillers, child);
|
|
|
60de42 |
|
|
|
60de42 |
// -INFINITY prevents anyone else from running here
|
|
|
60de42 |
- node = create_node(strdup(nodeid), nodeid, "remote", "-INFINITY", data_set);
|
|
|
60de42 |
+ node = pe_create_node(strdup(nodeid), nodeid, "remote", "-INFINITY",
|
|
|
60de42 |
+ data_set);
|
|
|
60de42 |
tuple->node = node_copy(node);
|
|
|
60de42 |
tuple->node->weight = 500;
|
|
|
60de42 |
nodeid = NULL;
|
|
|
60de42 |
diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c
|
|
|
60de42 |
index 2f03493..ef51cd5 100644
|
|
|
60de42 |
--- a/lib/pengine/unpack.c
|
|
|
60de42 |
+++ b/lib/pengine/unpack.c
|
|
|
60de42 |
@@ -303,7 +303,8 @@ destroy_digest_cache(gpointer ptr)
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
node_t *
|
|
|
60de42 |
-create_node(const char *id, const char *uname, const char *type, const char *score, pe_working_set_t * data_set)
|
|
|
60de42 |
+pe_create_node(const char *id, const char *uname, const char *type,
|
|
|
60de42 |
+ const char *score, pe_working_set_t * data_set)
|
|
|
60de42 |
{
|
|
|
60de42 |
node_t *new_node = NULL;
|
|
|
60de42 |
|
|
|
60de42 |
@@ -571,7 +572,7 @@ unpack_nodes(xmlNode * xml_nodes, pe_working_set_t * data_set)
|
|
|
60de42 |
crm_config_err("Must specify id tag in <node>");
|
|
|
60de42 |
continue;
|
|
|
60de42 |
}
|
|
|
60de42 |
- new_node = create_node(id, uname, type, score, data_set);
|
|
|
60de42 |
+ new_node = pe_create_node(id, uname, type, score, data_set);
|
|
|
60de42 |
|
|
|
60de42 |
if (new_node == NULL) {
|
|
|
60de42 |
return FALSE;
|
|
|
60de42 |
@@ -595,7 +596,8 @@ unpack_nodes(xmlNode * xml_nodes, pe_working_set_t * data_set)
|
|
|
60de42 |
|
|
|
60de42 |
if (data_set->localhost && pe_find_node(data_set->nodes, data_set->localhost) == NULL) {
|
|
|
60de42 |
crm_info("Creating a fake local node");
|
|
|
60de42 |
- create_node(data_set->localhost, data_set->localhost, NULL, 0, data_set);
|
|
|
60de42 |
+ pe_create_node(data_set->localhost, data_set->localhost, NULL, 0,
|
|
|
60de42 |
+ data_set);
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
return TRUE;
|
|
|
60de42 |
@@ -649,7 +651,8 @@ unpack_remote_nodes(xmlNode * xml_resources, pe_working_set_t * data_set)
|
|
|
60de42 |
* an expanded node that has already been added to the node list. */
|
|
|
60de42 |
if (new_node_id && pe_find_node(data_set->nodes, new_node_id) == NULL) {
|
|
|
60de42 |
crm_trace("Found baremetal remote node %s in container resource %s", new_node_id, ID(xml_obj));
|
|
|
60de42 |
- create_node(new_node_id, new_node_id, "remote", NULL, data_set);
|
|
|
60de42 |
+ pe_create_node(new_node_id, new_node_id, "remote", NULL,
|
|
|
60de42 |
+ data_set);
|
|
|
60de42 |
}
|
|
|
60de42 |
continue;
|
|
|
60de42 |
}
|
|
|
60de42 |
@@ -668,7 +671,8 @@ unpack_remote_nodes(xmlNode * xml_resources, pe_working_set_t * data_set)
|
|
|
60de42 |
|
|
|
60de42 |
if (new_node_id && pe_find_node(data_set->nodes, new_node_id) == NULL) {
|
|
|
60de42 |
crm_trace("Found guest remote node %s in container resource %s", new_node_id, ID(xml_obj));
|
|
|
60de42 |
- create_node(new_node_id, new_node_id, "remote", NULL, data_set);
|
|
|
60de42 |
+ pe_create_node(new_node_id, new_node_id, "remote", NULL,
|
|
|
60de42 |
+ data_set);
|
|
|
60de42 |
}
|
|
|
60de42 |
continue;
|
|
|
60de42 |
|
|
|
60de42 |
@@ -681,7 +685,8 @@ unpack_remote_nodes(xmlNode * xml_resources, pe_working_set_t * data_set)
|
|
|
60de42 |
|
|
|
60de42 |
if (new_node_id && pe_find_node(data_set->nodes, new_node_id) == NULL) {
|
|
|
60de42 |
crm_trace("Found guest remote node %s in container resource %s which is in group %s", new_node_id, ID(xml_obj2), ID(xml_obj));
|
|
|
60de42 |
- create_node(new_node_id, new_node_id, "remote", NULL, data_set);
|
|
|
60de42 |
+ pe_create_node(new_node_id, new_node_id, "remote", NULL,
|
|
|
60de42 |
+ data_set);
|
|
|
60de42 |
}
|
|
|
60de42 |
}
|
|
|
60de42 |
}
|
|
|
60de42 |
@@ -1661,7 +1666,7 @@ create_fake_resource(const char *rsc_id, xmlNode * rsc_entry, pe_working_set_t *
|
|
|
60de42 |
rsc->is_remote_node = TRUE;
|
|
|
60de42 |
node = pe_find_node(data_set->nodes, rsc_id);
|
|
|
60de42 |
if (node == NULL) {
|
|
|
60de42 |
- node = create_node(rsc_id, rsc_id, "remote", NULL, data_set);
|
|
|
60de42 |
+ node = pe_create_node(rsc_id, rsc_id, "remote", NULL, data_set);
|
|
|
60de42 |
}
|
|
|
60de42 |
link_rsc2remotenode(data_set, rsc);
|
|
|
60de42 |
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From b12bb91ab10166fa20f7ebcc7e48972688c3e8f8 Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 11:20:49 -0500
|
|
|
60de42 |
Subject: [PATCH 09/10] Low: xml: rename bucket to bundle here, too
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
xml/resources-2.8.rng | 6 +++---
|
|
|
60de42 |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/xml/resources-2.8.rng b/xml/resources-2.8.rng
|
|
|
60de42 |
index f41f84d..2e69aba 100644
|
|
|
60de42 |
--- a/xml/resources-2.8.rng
|
|
|
60de42 |
+++ b/xml/resources-2.8.rng
|
|
|
60de42 |
@@ -14,7 +14,7 @@
|
|
|
60de42 |
<ref name="element-group"/>
|
|
|
60de42 |
<ref name="element-clone"/>
|
|
|
60de42 |
<ref name="element-master"/>
|
|
|
60de42 |
- <ref name="element-bucket"/>
|
|
|
60de42 |
+ <ref name="element-bundle"/>
|
|
|
60de42 |
</choice>
|
|
|
60de42 |
</zeroOrMore>
|
|
|
60de42 |
</element>
|
|
|
60de42 |
@@ -66,8 +66,8 @@
|
|
|
60de42 |
</define>
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
- <define name="element-bucket">
|
|
|
60de42 |
- <element name="bucket">
|
|
|
60de42 |
+ <define name="element-bundle">
|
|
|
60de42 |
+ <element name="bundle">
|
|
|
60de42 |
<attribute name="id"><data type="ID"/></attribute>
|
|
|
60de42 |
<optional>
|
|
|
60de42 |
<attribute name="description"><text/></attribute>
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|
|
|
60de42 |
|
|
|
60de42 |
From 5e00b0b0d9df6cc8288f6368ffb1bce1ee24468a Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: Ken Gaillot <kgaillot@redhat.com>
|
|
|
60de42 |
Date: Tue, 21 Mar 2017 13:57:10 -0500
|
|
|
60de42 |
Subject: [PATCH 10/10] Low: tools: update validity regression tests for 2.8
|
|
|
60de42 |
schema
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
tools/regression.validity.exp | 22 ++++++++++++++++++----
|
|
|
60de42 |
1 file changed, 18 insertions(+), 4 deletions(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/tools/regression.validity.exp b/tools/regression.validity.exp
|
|
|
60de42 |
index 1278a09..8fcfcb2 100644
|
|
|
60de42 |
--- a/tools/regression.validity.exp
|
|
|
60de42 |
+++ b/tools/regression.validity.exp
|
|
|
60de42 |
@@ -62,7 +62,11 @@ element rsc_order: Relax-NG validity error : Element constraints has extra conte
|
|
|
60de42 |
element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
( schemas.c:NNN ) trace: update_validation: pacemaker-2.7 validation failed
|
|
|
60de42 |
-Your current configuration pacemaker-1.2 could not validate with any schema in range [pacemaker-1.2, pacemaker-2.7], cannot upgrade to pacemaker-2.0.
|
|
|
60de42 |
+( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (14 of X)
|
|
|
60de42 |
+element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
+element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
+( schemas.c:NNN ) trace: update_validation: pacemaker-2.8 validation failed
|
|
|
60de42 |
+Your current configuration pacemaker-1.2 could not validate with any schema in range [pacemaker-1.2, pacemaker-2.8], cannot upgrade to pacemaker-2.0.
|
|
|
60de42 |
=#=#=#= End test: Run crm_simulate with invalid CIB (enum violation) - Required key not available (126) =#=#=#=
|
|
|
60de42 |
* Passed: crm_simulate - Run crm_simulate with invalid CIB (enum violation)
|
|
|
60de42 |
=#=#=#= Begin test: Try to make resulting CIB invalid (unrecognized validate-with) =#=#=#=
|
|
|
60de42 |
@@ -136,7 +140,10 @@ element cib: Relax-NG validity error : Invalid attribute validate-with for eleme
|
|
|
60de42 |
( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.7' validation (13 of X)
|
|
|
60de42 |
element cib: Relax-NG validity error : Invalid attribute validate-with for element cib
|
|
|
60de42 |
( schemas.c:NNN ) trace: update_validation: pacemaker-2.7 validation failed
|
|
|
60de42 |
-Your current configuration pacemaker-9999.0 could not validate with any schema in range [unknown, pacemaker-2.7], cannot upgrade to pacemaker-2.0.
|
|
|
60de42 |
+( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (14 of X)
|
|
|
60de42 |
+element cib: Relax-NG validity error : Invalid attribute validate-with for element cib
|
|
|
60de42 |
+( schemas.c:NNN ) trace: update_validation: pacemaker-2.8 validation failed
|
|
|
60de42 |
+Your current configuration pacemaker-9999.0 could not validate with any schema in range [unknown, pacemaker-2.8], cannot upgrade to pacemaker-2.0.
|
|
|
60de42 |
=#=#=#= End test: Run crm_simulate with invalid CIB (unrecognized validate-with) - Required key not available (126) =#=#=#=
|
|
|
60de42 |
* Passed: crm_simulate - Run crm_simulate with invalid CIB (unrecognized validate-with)
|
|
|
60de42 |
=#=#=#= Begin test: Try to make resulting CIB invalid, but possibly recoverable (valid with X.Y+1) =#=#=#=
|
|
|
60de42 |
@@ -187,8 +194,11 @@ element tags: Relax-NG validity error : Element configuration has extra content:
|
|
|
60de42 |
( schemas.c:NNN ) debug: update_validation: pacemaker-2.6-style configuration is also valid for pacemaker-2.7
|
|
|
60de42 |
( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.7' validation (13 of X)
|
|
|
60de42 |
( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.7
|
|
|
60de42 |
-( schemas.c:NNN ) trace: update_validation: Stopping at pacemaker-2.7
|
|
|
60de42 |
-( schemas.c:NNN ) info: update_validation: Transformed the configuration from pacemaker-1.2 to pacemaker-2.7
|
|
|
60de42 |
+( schemas.c:NNN ) debug: update_validation: pacemaker-2.7-style configuration is also valid for pacemaker-2.8
|
|
|
60de42 |
+( schemas.c:NNN ) debug: update_validation: Testing 'pacemaker-2.8' validation (14 of X)
|
|
|
60de42 |
+( schemas.c:NNN ) debug: update_validation: Configuration valid for schema: pacemaker-2.8
|
|
|
60de42 |
+( schemas.c:NNN ) trace: update_validation: Stopping at pacemaker-2.8
|
|
|
60de42 |
+( schemas.c:NNN ) info: update_validation: Transformed the configuration from pacemaker-1.2 to pacemaker-2.8
|
|
|
60de42 |
error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
|
|
|
60de42 |
error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
|
|
|
60de42 |
error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
|
|
|
60de42 |
@@ -314,6 +324,8 @@ element rsc_order: Relax-NG validity error : Invalid attribute first-action for
|
|
|
60de42 |
element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
+element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
+element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
=#=#=#= Current cib after: Make resulting CIB invalid, and without validate-with attribute =#=#=#=
|
|
|
60de42 |
<cib epoch="31" num_updates="0" admin_epoch="0" validate-with="none">
|
|
|
60de42 |
<configuration>
|
|
|
60de42 |
@@ -371,6 +383,8 @@ bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Invalid attribute f
|
|
|
60de42 |
bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
+bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Invalid attribute first-action for element rsc_order
|
|
|
60de42 |
+bad-1.2.xml:10: element rsc_order: Relax-NG validity error : Element constraints has extra content: rsc_order
|
|
|
60de42 |
error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
|
|
|
60de42 |
error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
|
|
|
60de42 |
error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
|
|
|
60de42 |
--
|
|
|
60de42 |
1.8.3.1
|
|
|
60de42 |
|