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: lib by andrew from
([email protected])
4. Linux-HA CVS: crm by andrew from
([email protected])
----------------------------------------------------------------------
Message: 1
Date: Mon, 27 Mar 2006 08:51:58 -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/pengine
Modified Files:
unpack.c
Log Message:
Dont derstoy the params list when checking for changed parameters
Keep processing when rc == OCF_RUNNING_MASTER
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/pengine/unpack.c,v
retrieving revision 1.169
retrieving revision 1.170
diff -u -3 -r1.169 -r1.170
--- unpack.c 27 Mar 2006 05:44:24 -0000 1.169
+++ unpack.c 27 Mar 2006 15:51:58 -0000 1.170
@@ -1,4 +1,4 @@
-/* $Id: unpack.c,v 1.169 2006/03/27 05:44:24 andrew Exp $ */
+/* $Id: unpack.c,v 1.170 2006/03/27 15:51:58 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
*
@@ -1128,7 +1128,7 @@
static gboolean
check_action_definition(resource_t *rsc, node_t *node, crm_data_t *xml_op,
- pe_working_set_t *data_set)
+ pe_working_set_t *data_set)
{
int lpc = 0;
gboolean did_change = FALSE;
@@ -1143,7 +1143,7 @@
TRUE, FALSE, data_set);
crm_data_t *params = find_xml_node(xml_op, XML_TAG_PARAMS, TRUE);
-
+ crm_data_t *local_params = copy_xml(params);
const char *attr_filter[] = {
XML_ATTR_TE_TARGET_RC,
@@ -1199,10 +1199,10 @@
for(lpc = 0; lpc < DIMOF(attr_filter); lpc++) {
xml_remove_prop(pnow, attr_filter[lpc]);
- xml_remove_prop(params, attr_filter[lpc]);
+ xml_remove_prop(local_params, attr_filter[lpc]);
}
- pdiff = diff_xml_object(params, pnow, TRUE);
+ pdiff = diff_xml_object(local_params, pnow, TRUE);
if(pdiff != NULL) {
did_change = TRUE;
crm_info("Parameters to %s action changed", id);
@@ -1216,6 +1216,7 @@
crm_free(action);
free_xml(pnow);
free_xml(pdiff);
+ free_xml(local_params);
g_hash_table_destroy(local_rsc_params);
@@ -1267,9 +1268,9 @@
/* safe to ignore these */
return TRUE;
}
-
+
crm_debug_2("Unpacking task %s/%s (call_id=%s, status=%s) on %s
(role=%s)",
- rsc->id, task, task_id, task_status, node->details->uname,
+ id, task, task_id, task_status, node->details->uname,
role2text(rsc->role));
if(params != NULL) {
@@ -1379,7 +1380,7 @@
if(params != NULL) {
target_rc = crm_element_value(params, XML_ATTR_TE_TARGET_RC);
}
-
+
actual_rc = crm_element_value(xml_op, XML_LRM_ATTR_RC);
CRM_CHECK(actual_rc != NULL, return FALSE);
@@ -1406,7 +1407,6 @@
rsc->role = RSC_ROLE_MASTER;
if(safe_str_eq(task, CRMD_ACTION_STATUS)) {
crm_info("%s: resource %s is a master", id, rsc->id);
- return TRUE;
}
} else if(EXECRA_FAILED_MASTER == actual_rc_i) {
------------------------------
Message: 2
Date: Mon, 27 Mar 2006 08:53:10 -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:
Master/slave is now tested and apparently works
------------------------------
Message: 3
Date: Mon, 27 Mar 2006 08:53:10 -0700 (MST)
From: [email protected]
Subject: [Linux-ha-cvs] Linux-HA CVS: lib by andrew from
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>
linux-ha CVS committal
Author : andrew
Host :
Project : linux-ha
Module : lib
Dir : linux-ha/lib/plugins/lrm
Modified Files:
raexecocf.c
Log Message:
Master/slave is now tested and apparently works
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/lib/plugins/lrm/raexecocf.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -3 -r1.55 -r1.56
--- raexecocf.c 20 Oct 2005 16:34:44 -0000 1.55
+++ raexecocf.c 27 Mar 2006 15:53:10 -0000 1.56
@@ -193,7 +193,7 @@
* no actual mapping except validating, which ensure the return code
* will be in the range 0 to 7. Too strict?
*/
- if (ret_execra < 0 || ret_execra > 7) {
+ if (ret_execra < 0 || ret_execra > 9) {
cl_log(LOG_WARNING, "mapped the invalid return code %d."
, ret_execra);
ret_execra = EXECRA_UNKNOWN_ERROR;
------------------------------
Message: 4
Date: Mon, 27 Mar 2006 08:53:10 -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/pengine
Modified Files:
native.c regression.sh
Log Message:
Master/slave is now tested and apparently works
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/pengine/native.c,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -3 -r1.119 -r1.120
--- native.c 27 Mar 2006 10:03:55 -0000 1.119
+++ native.c 27 Mar 2006 15:53:10 -0000 1.120
@@ -1,4 +1,4 @@
-/* $Id: native.c,v 1.119 2006/03/27 10:03:55 andrew Exp $ */
+/* $Id: native.c,v 1.120 2006/03/27 15:53:10 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
*
@@ -387,6 +387,7 @@
char *key = NULL;
const char *name = NULL;
const char *value = NULL;
+ const char *interval = NULL;
const char *node_uname = NULL;
int interval_ms = 0;
@@ -401,25 +402,15 @@
xml_child_iter_filter(
rsc->ops_xml, operation, "op",
-
+
name = crm_element_value(operation, "name");
- value = crm_element_value(operation, "interval");
- interval_ms = crm_get_msec(value);
+ interval = crm_element_value(operation, "interval");
+ interval_ms = crm_get_msec(interval);
if(interval_ms <= 0) {
continue;
}
- value = crm_element_value(operation, "role");
- if(start != NULL && value != NULL
- && text2role(value) != start->rsc->next_role) {
- crm_debug_2("Skipping action %s::%s(%s) : %s",
- start->rsc->id, name, value,
- role2text(start->rsc->next_role));
- continue;
- }
-
-
key = generate_op_key(rsc->graph_name, name, interval_ms);
if(start != NULL) {
crm_debug_3("Marking %s %s due to %s",
@@ -437,6 +428,40 @@
is_optional = FALSE;
crm_debug_3("Marking %s manditory: not active", key);
}
+
+ value = crm_element_value(operation, "role");
+ if((rsc->next_role == RSC_ROLE_MASTER && value == NULL)
+ || (value != NULL && text2role(value) != rsc->next_role)) {
+ int log_level = LOG_DEBUG_2;
+ const char *foo = "Ignoring";
+ if(is_optional) {
+ log_level = LOG_INFO;
+ foo = "Cancelling";
+ /* its running : cancel it */
+
+ mon = custom_action(
+ rsc, crm_strdup(key),
CRMD_ACTION_CANCEL, node,
+ FALSE, TRUE, data_set);
+
+ mon->task = CRMD_ACTION_CANCEL;
+ add_hash_param(mon->extra, "interval",
interval);
+ add_hash_param(mon->extra, "task", name);
+
+ custom_action_order(
+ rsc, NULL, mon,
+ rsc, promote_key(rsc), NULL,
+ pe_ordering_optional, data_set);
+
+ mon = NULL;
+ }
+
+ crm_log_maybe(log_level, "%s action %s (%s vs. %s)",
+ foo , key,
value?value:role2text(RSC_ROLE_SLAVE),
+ role2text(rsc->next_role));
+ crm_free(key);
+ key = NULL;
+ continue;
+ }
mon = custom_action(rsc, key, name, node,
is_optional, TRUE, data_set);
@@ -461,9 +486,20 @@
} else if(mon->optional == FALSE) {
crm_notice("%s\t %s", crm_str(node_uname),mon->uuid);
}
+
custom_action_order(rsc, start_key(rsc), NULL,
NULL, crm_strdup(key), mon,
pe_ordering_restart, data_set);
+
+ if(rsc->next_role == RSC_ROLE_MASTER) {
+ char *running_master = crm_itoa(EXECRA_RUNNING_MASTER);
+ add_hash_param(mon->extra, XML_ATTR_TE_TARGET_RC,
running_master);
+ custom_action_order(
+ rsc, promote_key(rsc), NULL,
+ rsc, NULL, mon,
+ pe_ordering_optional, data_set);
+ crm_free(running_master);
+ }
);
}
@@ -961,13 +997,15 @@
desc?": ":"", desc?desc:"");
} else {
- status_print("%s%s (%s%s%s:%s):\t%s%s",
+ status_print("%s%s (%s%s%s:%s):\t%s %s%s",
pre_text?pre_text:"", rsc->id,
prov?prov:"", prov?"::":"",
crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS),
crm_element_value(rsc->xml, XML_ATTR_TYPE),
- (rsc->variant!=pe_native)?"":node==NULL?"NOT
ACTIVE":node->details->uname,
+ (rsc->variant!=pe_native)?"":role2text(rsc->role),
+
(rsc->variant!=pe_native)?"":node!=NULL?node->details->uname:"",
rsc->is_managed?"":" (unmanaged) ");
+
#if CURSES_ENABLED
if(options & pe_print_ncurses) {
move(-1, 0);
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/crm/pengine/regression.sh,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -3 -r1.73 -r1.74
--- regression.sh 8 Mar 2006 22:30:42 -0000 1.73
+++ regression.sh 27 Mar 2006 15:53:10 -0000 1.74
@@ -57,6 +57,9 @@
do_test master-1 "Stopped -> Promote"
do_test master-2 "Stopped -> Promote : notify"
do_test master-3 "Stopped -> Promote : master location"
+do_test master-4 "Started -> Promote : master location"
+do_test master-5 "Promoted -> Promoted"
+do_test master-6 "Promoted -> Promoted (2)"
echo ""
do_test rsc_dep1 "Must not "
------------------------------
_______________________________________________
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 71
********************************************