File pacemaker-crmd-set_standby-in-first_join.patch of Package pacemaker
commit 2d87de41730f5b9bc644de90e1a9c47ae97ce00f
Author: Zhuravleva Aleksandra <zhuravleva357@gmail.com>
Date: Sun Mar 26 08:34:19 2017 +0300
set_standby in first_join
diff --git a/crmd/join_client.c b/crmd/join_client.c
index ede9bd103..0ba671daf 100644
--- a/crmd/join_client.c
+++ b/crmd/join_client.c
@@ -251,15 +251,26 @@ do_cl_join_finalize_respond(long long action,
*/
if (first_join && is_not_set(fsa_input_register, R_SHUTDOWN)) {
first_join = FALSE;
+ erase_status_tag(fsa_our_uname, XML_TAG_TRANSIENT_NODEATTRS, 0);
+ update_attrd(fsa_our_uname, "terminate", NULL, NULL, FALSE);
+ update_attrd(fsa_our_uname, XML_CIB_ATTR_SHUTDOWN, "0", NULL, FALSE);
if (start_state) {
- init_transient_attrs(fsa_our_uname, start_state, 0);
- } else {
- erase_status_tag(fsa_our_uname, XML_TAG_TRANSIENT_NODEATTRS, 0);
- }
+ if (safe_str_eq(start_state, "standby")) {
+ crm_notice("Forcing node %s to join in %s state per configured environment", fsa_our_uname, start_state);
+ set_standby(fsa_cib_conn, fsa_our_uuid, NULL, "on");
- update_attrd(fsa_our_uname, "terminate", NULL, NULL, FALSE);
- update_attrd(fsa_our_uname, XML_CIB_ATTR_SHUTDOWN, "0", NULL, FALSE);
+ } else if (safe_str_eq(start_state, "online")) {
+ crm_notice("Forcing node %s to join in %s state per configured environment", fsa_our_uname, start_state);
+ set_standby(fsa_cib_conn, fsa_our_uuid, NULL, "off");
+
+ } else if (safe_str_eq(start_state, "default")) {
+ crm_debug("Not forcing a starting state on node %s", fsa_our_uname);
+
+ } else {
+ crm_warn("Unrecognized start state '%s', using 'default' (%s)", start_state, fsa_our_uname);
+ }
+ }
}
send_cluster_message(crm_get_peer(0, fsa_our_dc), crm_msg_crmd, reply, TRUE);
diff --git a/crmd/te_actions.c b/crmd/te_actions.c
index c41d44d2c..a8ad86f94 100644
--- a/crmd/te_actions.c
+++ b/crmd/te_actions.c
@@ -103,8 +103,6 @@ send_stonith_update(crm_action_t * action, const char *target, const char *uuid)
/* zero out the node-status & remove all LRM status info */
xmlNode *node_state = NULL;
- const char *start_state = daemon_option("node_start_state");
-
CRM_CHECK(target != NULL, return);
CRM_CHECK(uuid != NULL, return);
@@ -153,11 +151,7 @@ send_stonith_update(crm_action_t * action, const char *target, const char *uuid)
/* fsa_cib_conn->cmds->bump_epoch(fsa_cib_conn, cib_quorum_override|cib_scope_local); */
erase_status_tag(peer->uname, XML_CIB_TAG_LRM, cib_scope_local);
- if (start_state) {
- init_transient_attrs(peer->uname, start_state, cib_scope_local);
- } else {
- erase_status_tag(peer->uname, XML_TAG_TRANSIENT_NODEATTRS, cib_scope_local);
- }
+ erase_status_tag(peer->uname, XML_TAG_TRANSIENT_NODEATTRS, cib_scope_local);
free_xml(node_state);
return;