|
 |
0240e4 |
From 0a883a90eeeee4c9b156023da693d4ff93a9d69a Mon Sep 17 00:00:00 2001
|
|
 |
0240e4 |
From: Andrew Beekhof <andrew@beekhof.net>
|
|
 |
0240e4 |
Date: Wed, 6 Jan 2016 15:17:06 +1100
|
|
 |
0240e4 |
Subject: [PATCH 108/108] Feature: crmd: Set the shutdown transient attribute
|
|
 |
0240e4 |
in response to LRMD_IPC_OP_SHUTDOWN_REQ from remote nodes
|
|
 |
0240e4 |
|
|
 |
0240e4 |
---
|
|
 |
0240e4 |
crmd/lrm_state.c | 22 ++++++++++++++--------
|
|
 |
0240e4 |
1 file changed, 14 insertions(+), 8 deletions(-)
|
|
 |
0240e4 |
|
|
 |
0240e4 |
diff --git a/crmd/lrm_state.c b/crmd/lrm_state.c
|
|
 |
0240e4 |
index 5ee5b83..7833ebb 100644
|
|
 |
0240e4 |
--- a/crmd/lrm_state.c
|
|
 |
0240e4 |
+++ b/crmd/lrm_state.c
|
|
 |
0240e4 |
@@ -478,17 +478,23 @@ remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg)
|
|
 |
0240e4 |
CRM_CHECK(op != NULL, return);
|
|
 |
0240e4 |
CRM_CHECK(session != NULL, return);
|
|
 |
0240e4 |
|
|
 |
0240e4 |
+ crm_element_value_int(msg, F_LRMD_IPC_MSG_ID, &msg_id);
|
|
 |
0240e4 |
+ /* This is msg from remote ipc client going to real ipc server */
|
|
 |
0240e4 |
+
|
|
 |
0240e4 |
if (safe_str_eq(op, LRMD_IPC_OP_SHUTDOWN_REQ)) {
|
|
 |
0240e4 |
- crm_warn("Graceful proxy shutdown not yet supported");
|
|
 |
0240e4 |
- /* TODO: uncomment this, then put node in standby: */
|
|
 |
0240e4 |
- /* remote_proxy_ack_shutdown(lrmd); */
|
|
 |
0240e4 |
- return;
|
|
 |
0240e4 |
- }
|
|
 |
0240e4 |
+ char *now_s = NULL;
|
|
 |
0240e4 |
+ time_t now = time(NULL);
|
|
 |
0240e4 |
|
|
 |
0240e4 |
- crm_element_value_int(msg, F_LRMD_IPC_MSG_ID, &msg_id);
|
|
 |
0240e4 |
+ crm_warn("Graceful proxy shutdown of %s not yet tested", lrm_state->node_name);
|
|
 |
0240e4 |
|
|
 |
0240e4 |
- /* This is msg from remote ipc client going to real ipc server */
|
|
 |
0240e4 |
- if (safe_str_eq(op, LRMD_IPC_OP_NEW)) {
|
|
 |
0240e4 |
+ now_s = crm_itoa(now);
|
|
 |
0240e4 |
+ update_attrd(lrm_state->node_name, XML_CIB_ATTR_SHUTDOWN, now_s, NULL, FALSE);
|
|
 |
0240e4 |
+ free(now_s);
|
|
 |
0240e4 |
+
|
|
 |
0240e4 |
+ remote_proxy_ack_shutdown(lrmd);
|
|
 |
0240e4 |
+ return;
|
|
 |
0240e4 |
+
|
|
 |
0240e4 |
+ } else if (safe_str_eq(op, LRMD_IPC_OP_NEW)) {
|
|
 |
0240e4 |
const char *channel = crm_element_value(msg, F_LRMD_IPC_IPC_SERVER);
|
|
 |
0240e4 |
|
|
 |
0240e4 |
CRM_CHECK(channel != NULL, return);
|
|
 |
0240e4 |
--
|
|
 |
0240e4 |
1.8.3.1
|
|
 |
0240e4 |
|