Send Linux-ha-cvs mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Linux-ha-cvs digest..."
Today's Topics:
1. Linux-HA CVS: crm by andrew from
([email protected])
2. Linux-HA CVS: crm by andrew from
([email protected])
3. Linux-HA CVS: crm by andrew from
([email protected])
----------------------------------------------------------------------
Message: 1
Date: Sat, 18 Mar 2006 10:17:20 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: crm by andrew from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : andrew
Host :
Project : linux-ha
Module : crm
Dir : linux-ha/crm/admin
Modified Files:
crm_mon.c
Log Message:
There is no reason to display *stopped* orphaned resources in the cluster
monitoring tools. One could make the argument that once the resource
is deleted it shouldn't show up at all, but I think thats going too far
(for now anyway).
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/admin/crm_mon.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- crm_mon.c 3 Feb 2006 08:29:21 -0000 1.18
+++ crm_mon.c 18 Mar 2006 17:17:19 -0000 1.19
@@ -1,4 +1,4 @@
-/* $Id: crm_mon.c,v 1.18 2006/02/03 08:29:21 andrew Exp $ */
+/* $Id: crm_mon.c,v 1.19 2006/03/18 17:17:19 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
@@ -427,6 +427,9 @@
if(group_by_node == FALSE || inactive_resources) {
print_as("\n");
slist_iter(rsc, resource_t, data_set.resources, lpc2,
+ if(rsc->orphan) {
+ continue;
+ }
rsc->fns->print(rsc, NULL, print_opts, stdout);
);
}
------------------------------
Message: 2
Date: Sat, 18 Mar 2006 10:19:41 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: crm by andrew from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : andrew
Host :
Project : linux-ha
Module : crm
Dir : linux-ha/crm/admin
Modified Files:
crm_resource.c
Log Message:
Provide the crm version for crm_resource generated delete events
- prevents an assert failure in the crm which expects it to be present
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/admin/crm_resource.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- crm_resource.c 17 Mar 2006 18:14:34 -0000 1.18
+++ crm_resource.c 18 Mar 2006 17:19:40 -0000 1.19
@@ -1,4 +1,4 @@
-/* $Id: crm_resource.c,v 1.18 2006/03/17 18:14:34 andrew Exp $ */
+/* $Id: crm_resource.c,v 1.19 2006/03/18 17:19:40 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
@@ -271,6 +271,7 @@
HA_Message *cmd = NULL;
crm_data_t *msg_data = NULL;
crm_data_t *rsc = NULL;
+ HA_Message *params = NULL;
char *key = crm_concat(crm_system_name, our_pid, '-');
CRM_DEV_ASSERT(rsc_id != NULL);
@@ -280,6 +281,9 @@
rsc = create_xml_node(msg_data, XML_CIB_TAG_RESOURCE);
crm_xml_add(rsc, XML_ATTR_ID, rsc_id);
+
+ params = create_xml_node(msg_data, XML_TAG_ATTRS);
+ crm_xml_add(params, XML_ATTR_CRM_VERSION, CRM_FEATURE_SET);
cmd = create_request(CRM_OP_LRM_DELETE, msg_data, host_uname,
CRM_SYSTEM_CRMD, crm_system_name, our_pid);
------------------------------
Message: 3
Date: Sat, 18 Mar 2006 10:20:39 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: crm by andrew from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : andrew
Host :
Project : linux-ha
Module : crm
Dir : linux-ha/crm/crmd
Modified Files:
lrm.c
Log Message:
Route the reply to the delete request to the place that originated it
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/crmd/lrm.c,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -3 -r1.172 -r1.173
--- lrm.c 17 Mar 2006 00:43:29 -0000 1.172
+++ lrm.c 18 Mar 2006 17:20:38 -0000 1.173
@@ -73,7 +73,8 @@
lrm_op_t *construct_op(
crm_data_t *rsc_op, const char *rsc_id, const char *operation);
-void send_direct_ack(lrm_op_t* op, const char *rsc_id);
+void send_direct_ack(const char *to_host, const char *to_sys,
+ lrm_op_t* op, const char *rsc_id);
void free_recurring_op(gpointer value);
@@ -418,13 +419,16 @@
#if CRM_DEPRECATED_SINCE_2_0_3
caller_version = g_hash_table_lookup(op->params, XML_ATTR_CRM_VERSION);
if(compare_version("1.0.3", caller_version) > 0) {
- CRM_DEV_ASSERT(CRM_DEV_BUILD == 0/*constant condition*/);
- fail_state = generate_transition_magic_v202(op->user_data,
op->op_status);
+ CRM_CHECK(FALSE, ; );
+ fail_state = generate_transition_magic_v202(
+ op->user_data, op->op_status);
} else {
- fail_state = generate_transition_magic(op->user_data,
op->op_status, op->rc);
+ fail_state = generate_transition_magic(
+ op->user_data, op->op_status, op->rc);
}
#else
- fail_state = generate_transition_magic(op->user_data, op->op_status,
op->rc);
+ fail_state = generate_transition_magic(
+ op->user_data, op->op_status, op->rc);
#endif
crm_xml_add(xml_op, XML_ATTR_TRANSITION_KEY, op->user_data);
@@ -606,15 +610,17 @@
op->op_type, the_rsc->id, op->op_status,
op->rc);
if(max_call_id < op->call_id) {
- build_operation_update(xml_rsc, op,
__FUNCTION__, llpc);
+ build_operation_update(
+ xml_rsc, op, __FUNCTION__, llpc);
} else if(max_call_id > op->call_id) {
crm_err("Bad call_id in list=%d. Previous
call_id=%d",
op->call_id, max_call_id);
} else {
- crm_debug("Skipping duplicate entry for
call_id=%d",
- op->call_id);
+ crm_warn("lrm->get_cur_state() returned"
+ " duplicate entries for call_id=%d",
+ op->call_id);
}
max_call_id = op->call_id;
found_op = TRUE;
@@ -739,12 +745,20 @@
fsa_data_t *msg_data)
{
const char *crm_op = NULL;
+ const char *from_sys = NULL;
+ const char *from_host = NULL;
const char *operation = NULL;
enum crmd_fsa_input next_input = I_NULL;
ha_msg_input_t *input = fsa_typed_data(fsa_dt_ha_msg);
- crm_op = cl_get_string(input->msg, F_CRM_TASK);
-
+ crm_op = cl_get_string(input->msg, F_CRM_TASK);
+ from_sys = cl_get_string(input->msg, F_CRM_SYS_FROM);
+ if(safe_str_neq(from_sys, CRM_SYSTEM_TENGINE)) {
+ from_host = cl_get_string(input->msg, F_CRM_HOST_FROM);
+ }
+
+ crm_debug_2("LRM command from: %s", from_sys);
+
if(safe_str_eq(crm_op, CRM_OP_LRM_DELETE)) {
operation = CRMD_ACTION_DELETE;
@@ -847,7 +861,7 @@
op->op_status = LRM_OP_DONE;
op->rc = EXECRA_OK;
- send_direct_ack(op, id_from_cib);
+ send_direct_ack(from_host, from_sys, op, id_from_cib);
free_lrm_op(op);
} else if(safe_str_eq(operation, CRMD_ACTION_DELETE)) {
@@ -876,7 +890,7 @@
}
}
- send_direct_ack(op, id_from_cib);
+ send_direct_ack(from_host, from_sys, op, id_from_cib);
free_lrm_op(op);
} else {
@@ -932,12 +946,6 @@
return op;
}
- transition = crm_element_value(rsc_op, XML_ATTR_TRANSITION_KEY);
- CRM_ASSERT(transition != NULL);
-
- op->user_data = crm_strdup(transition);
- op->user_data_len = 1+strlen(op->user_data);
-
op->params = xml2list(rsc_op);
#if CRM_DEPRECATED_SINCE_2_0_3
if(g_hash_table_lookup(op->params, XML_ATTR_CRM_VERSION) == NULL) {
@@ -950,10 +958,12 @@
CRM_DEV_ASSERT(safe_str_eq(CRMD_ACTION_STOP, operation));
}
- op->interval =
crm_parse_int(g_hash_table_lookup(op->params,"interval"),"0");
- op->timeout = crm_parse_int(g_hash_table_lookup(op->params,
"timeout"),"0");
- op->start_delay = crm_parse_int(g_hash_table_lookup(
- op->params,"start_delay"),"0");
+ op->interval = crm_parse_int(
+ g_hash_table_lookup(op->params, "interval"), "0");
+ op->timeout = crm_parse_int(
+ g_hash_table_lookup(op->params, "timeout"), "0");
+ op->start_delay = crm_parse_int(
+ g_hash_table_lookup(op->params, "start_delay"), "0");
/* sanity */
if(op->interval < 0) {
@@ -972,11 +982,17 @@
op->params, crm_strdup("start_delay"), crm_strdup("0"));
}
+ transition = crm_element_value(rsc_op, XML_ATTR_TRANSITION_KEY);
+ CRM_CHECK(transition != NULL, return op);
+
+ op->user_data = crm_strdup(transition);
+ op->user_data_len = 1+strlen(op->user_data);
+
if(safe_str_eq(operation, CRMD_ACTION_START)
|| safe_str_eq(operation, CRMD_ACTION_STOP)) {
char *interval_s = g_hash_table_lookup(op->params, "interval");
- CRM_DEV_ASSERT(op->interval == 0);
- CRM_DEV_ASSERT(interval_s == NULL);
+ CRM_CHECK(op->interval == 0, return NULL);
+ CRM_CHECK(interval_s == NULL, return NULL);
}
crm_debug_2("Constructed %s op for %s: interval=%d",
@@ -986,12 +1002,13 @@
}
void
-send_direct_ack(lrm_op_t* op, const char *rsc_id)
+send_direct_ack(const char *to_host, const char *to_sys,
+ lrm_op_t* op, const char *rsc_id)
{
HA_Message *reply = NULL;
crm_data_t *update, *iter;
crm_data_t *fragment;
-
+
CRM_DEV_ASSERT(op != NULL);
if(crm_assert_failed) {
return;
@@ -1000,7 +1017,9 @@
CRM_DEV_ASSERT(rsc_id != NULL);
op->rsc_id = crm_strdup(rsc_id);
}
-
+ if(to_sys == NULL) {
+ to_sys = CRM_SYSTEM_TENGINE;
+ }
crm_info("ACK'ing resource op: %s for %s", op->op_type, op->rsc_id);
update = create_node_state(
@@ -1015,8 +1034,8 @@
build_operation_update(iter, op, __FUNCTION__, 0);
fragment = create_cib_fragment(update, XML_CIB_TAG_STATUS);
- reply = create_request(CRM_OP_INVOKE_LRM, fragment, NULL,
- CRM_SYSTEM_TENGINE, CRM_SYSTEM_LRMD, NULL);
+ reply = create_request(CRM_OP_INVOKE_LRM, fragment, to_host,
+ to_sys, CRM_SYSTEM_LRMD, NULL);
crm_debug("Sending ACK: %s", cl_get_string(reply, XML_ATTR_REFERENCE));
@@ -1127,7 +1146,7 @@
fsa_state2string(fsa_state));
op->rc = 99;
op->op_status = LRM_OP_ERROR;
- send_direct_ack(op, rsc->id);
+ send_direct_ack(NULL, NULL, op, rsc->id);
free_lrm_op(op);
crm_free(op_id);
return I_NULL;
------------------------------
_______________________________________________
Linux-ha-cvs mailing list
[email protected]
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
End of Linux-ha-cvs Digest, Vol 28, Issue 39
********************************************