Send Linux-ha-cvs mailing list submissions to
        linux-ha-cvs@lists.linux-ha.org

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: lib by andrew from 
      (linux-ha-cvs@lists.linux-ha.org)


----------------------------------------------------------------------

Message: 1
Date: Tue, 18 Jul 2006 00:17:34 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
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/crm/pengine


Modified Files:
        unpack.c 


Log Message:
OSDL #1369 - Node status

  * More accurately determin node status
  * Make use of HA node "up" status
  * Filter out stop requests that would require a resource to be added
---
 110 files changed, 269 insertions(+), 249 deletions(-)
 crm/crmd/callbacks.c                    |   35 +++++++------
 crm/crmd/ccm.c                          |    2
 crm/crmd/control.c                      |    2
 crm/crmd/join_dc.c                      |    2
 crm/crmd/lrm.c                          |   22 +++++++-
 crm/crmd/utils.c                        |    6 +-
 crm/pengine/testcases/attrs1.xml        |    4 -
 crm/pengine/testcases/attrs2.xml        |    4 -
 crm/pengine/testcases/attrs3.xml        |    4 -
 crm/pengine/testcases/attrs4.xml        |    4 -
 crm/pengine/testcases/attrs5.xml        |    4 -
 crm/pengine/testcases/attrs6.xml        |    4 -
 crm/pengine/testcases/attrs7.xml        |    4 -
 crm/pengine/testcases/attrs8.xml        |    4 -
 crm/pengine/testcases/bad1.xml          |    4 -
 crm/pengine/testcases/bad2.xml          |    4 -
 crm/pengine/testcases/bad3.xml          |    2
 crm/pengine/testcases/bad4.xml          |    2
 crm/pengine/testcases/bad5.xml          |    2
 crm/pengine/testcases/bad6.xml          |    2
 crm/pengine/testcases/comments.xml      |    4 -
 crm/pengine/testcases/date-1.xml        |    4 -
 crm/pengine/testcases/group1.xml        |    4 -
 crm/pengine/testcases/group11.xml       |    2
 crm/pengine/testcases/group2.xml        |    4 -
 crm/pengine/testcases/group3.xml        |    4 -
 crm/pengine/testcases/group4.xml        |    4 -
 crm/pengine/testcases/group5.xml        |    4 -
 crm/pengine/testcases/group6.xml        |    4 -
 crm/pengine/testcases/group7.xml        |    6 +-
 crm/pengine/testcases/group8.xml        |    2
 crm/pengine/testcases/group9.xml        |    4 -
 crm/pengine/testcases/inc0.xml          |    4 -
 crm/pengine/testcases/inc1.xml          |    4 -
 crm/pengine/testcases/inc2.xml          |    4 -
 crm/pengine/testcases/inc3.xml          |    4 -
 crm/pengine/testcases/inc4.xml          |    4 -
 crm/pengine/testcases/inc5.xml          |    4 -
 crm/pengine/testcases/inc6.xml          |    4 -
 crm/pengine/testcases/inc7.xml          |    6 +-
 crm/pengine/testcases/inc8.xml          |    4 -
 crm/pengine/testcases/inc9.xml          |    4 -
 crm/pengine/testcases/master-0.xml      |    4 -
 crm/pengine/testcases/master-1.xml      |    4 -
 crm/pengine/testcases/master-10.xml     |    4 -
 crm/pengine/testcases/master-2.xml      |    4 -
 crm/pengine/testcases/master-3.xml      |    4 -
 crm/pengine/testcases/mon-rsc-1.xml     |    4 -
 crm/pengine/testcases/mon-rsc-2.xml     |    4 -
 crm/pengine/testcases/mon-rsc-3.xml     |    4 -
 crm/pengine/testcases/mon-rsc-4.xml     |    4 -
 crm/pengine/testcases/multi1.xml        |    4 -
 crm/pengine/testcases/notify-0.xml      |    2
 crm/pengine/testcases/notify-1.xml      |    2
 crm/pengine/testcases/notify-2.xml      |    2
 crm/pengine/testcases/notify-3.xml      |    4 -
 crm/pengine/testcases/order1.xml        |    4 -
 crm/pengine/testcases/order2.xml        |    4 -
 crm/pengine/testcases/order3.xml        |    4 -
 crm/pengine/testcases/order4.xml        |    4 -
 crm/pengine/testcases/order5.xml        |    4 -
 crm/pengine/testcases/order6.xml        |    4 -
 crm/pengine/testcases/order7.xml        |    2
 crm/pengine/testcases/params-2.xml      |    6 +-
 crm/pengine/testcases/quorum-1.xml      |    4 -
 crm/pengine/testcases/quorum-2.xml      |    4 -
 crm/pengine/testcases/quorum-3.xml      |    4 -
 crm/pengine/testcases/rec-node-1.xml    |    2
 crm/pengine/testcases/rec-node-10.xml   |    2
 crm/pengine/testcases/rec-node-11.xml   |    4 -
 crm/pengine/testcases/rec-node-2.xml    |    2
 crm/pengine/testcases/rec-node-3.xml    |    2
 crm/pengine/testcases/rec-node-4.xml    |    2
 crm/pengine/testcases/rec-node-5.xml    |    4 -
 crm/pengine/testcases/rec-node-6.xml    |    4 -
 crm/pengine/testcases/rec-node-7.xml    |    2
 crm/pengine/testcases/rec-node-8.xml    |    2
 crm/pengine/testcases/rec-node-9.xml    |    2
 crm/pengine/testcases/rec-rsc-0.xml     |    4 -
 crm/pengine/testcases/rec-rsc-1.xml     |    4 -
 crm/pengine/testcases/rec-rsc-2.xml     |    4 -
 crm/pengine/testcases/rec-rsc-3.xml     |    4 -
 crm/pengine/testcases/rec-rsc-4.xml     |    4 -
 crm/pengine/testcases/rec-rsc-5.xml     |    4 -
 crm/pengine/testcases/rec-rsc-6.xml     |    4 -
 crm/pengine/testcases/rec-rsc-7.xml     |    4 -
 crm/pengine/testcases/rec-rsc-8.xml     |    4 -
 crm/pengine/testcases/rsc_dep1.xml      |    4 -
 crm/pengine/testcases/rsc_dep10.xml     |    4 -
 crm/pengine/testcases/rsc_dep2.xml      |    4 -
 crm/pengine/testcases/rsc_dep3.xml      |    4 -
 crm/pengine/testcases/rsc_dep4.xml      |    4 -
 crm/pengine/testcases/rsc_dep5.xml      |    4 -
 crm/pengine/testcases/rsc_dep7.xml      |    4 -
 crm/pengine/testcases/rsc_dep8.xml      |    4 -
 crm/pengine/testcases/rsc_dep9.xml      |    4 -
 crm/pengine/testcases/rsc_location1.xml |    4 -
 crm/pengine/testcases/rsc_location2.xml |    4 -
 crm/pengine/testcases/rsc_location3.xml |    4 -
 crm/pengine/testcases/rsc_location4.xml |    4 -
 crm/pengine/testcases/rsc_location5.xml |    4 -
 crm/pengine/testcases/simple1.xml       |    2
 crm/pengine/testcases/simple11.xml      |    4 -
 crm/pengine/testcases/simple12.xml      |    4 -
 crm/pengine/testcases/simple2.xml       |    4 -
 crm/pengine/testcases/simple3.xml       |    2
 crm/pengine/testcases/simple4.xml       |    2
 crm/pengine/testcases/simple6.xml       |    2
 crm/pengine/testcases/simple7.xml       |    2
 crm/pengine/testcases/simple8.xml       |    4 -
 lib/crm/pengine/unpack.c                |   81 ++++++++++++++++----------------
 111 files changed, 275 insertions(+), 251 deletions(-)

===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/lib/crm/pengine/unpack.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- unpack.c    18 Jul 2006 06:14:44 -0000      1.12
+++ unpack.c    18 Jul 2006 06:17:34 -0000      1.13
@@ -1,4 +1,4 @@
-/* $Id: unpack.c,v 1.12 2006/07/18 06:14:44 andrew Exp $ */
+/* $Id: unpack.c,v 1.13 2006/07/18 06:17:34 andrew Exp $ */
 /* 
  * Copyright (C) 2004 Andrew Beekhof <[EMAIL PROTECTED]>
  * 
@@ -386,27 +386,29 @@
 determine_online_status_no_fencing(crm_data_t * node_state, node_t *this_node)
 {
        gboolean online = FALSE;
-       const char *join_state = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_JOINSTATE);
-       const char *crm_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_CRMDSTATE);
-       const char *ccm_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_INCCM);
-       const char *ha_state   = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_HASTATE);
-       const char *exp_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_EXPSTATE);
+       const char *join_state = crm_element_value(node_state, 
XML_CIB_ATTR_JOINSTATE);
+       const char *crm_state  = crm_element_value(node_state, 
XML_CIB_ATTR_CRMDSTATE);
+       const char *ccm_state  = crm_element_value(node_state, 
XML_CIB_ATTR_INCCM);
+       const char *ha_state   = crm_element_value(node_state, 
XML_CIB_ATTR_HASTATE);
+       const char *exp_state  = crm_element_value(node_state, 
XML_CIB_ATTR_EXPSTATE);
 
-       if(!crm_is_true(ccm_state) || safe_str_eq(ha_state,DEADSTATUS)){
+       if(ha_state == NULL) {
+               ha_state = DEADSTATUS;
+       }
+       
+       if(!crm_is_true(ccm_state) || safe_str_eq(ha_state, DEADSTATUS)){
                crm_debug_2("Node is down: ha_state=%s, ccm_state=%s",
                            crm_str(ha_state), crm_str(ccm_state));
                
        } else if(!crm_is_true(ccm_state)
                  || safe_str_eq(ha_state, DEADSTATUS)) {
-               
-       } else if(safe_str_neq(join_state, CRMD_JOINSTATE_DOWN)
-                 && safe_str_eq(crm_state, ONLINESTATUS)) {
-               online = TRUE;
+
+       } else if(safe_str_eq(crm_state, ONLINESTATUS)) {
+               if(safe_str_eq(join_state, CRMD_JOINSTATE_MEMBER)) {
+                       online = TRUE;
+               } else {
+                       crm_debug("Node is not ready to run resources: %s", 
join_state);
+               }
                
        } else if(this_node->details->expected_up == FALSE) {
                crm_debug_2("CRMd is down: ha_state=%s, ccm_state=%s",
@@ -434,40 +436,34 @@
 determine_online_status_fencing(crm_data_t * node_state, node_t *this_node)
 {
        gboolean online = FALSE;
-       const char *join_state = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_JOINSTATE);
-       const char *crm_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_CRMDSTATE);
-       const char *ccm_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_INCCM);
-       const char *ha_state   = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_HASTATE);
-       const char *exp_state  = crm_element_value(node_state,
-                                                  XML_CIB_ATTR_EXPSTATE);
+       const char *join_state = crm_element_value(node_state, 
XML_CIB_ATTR_JOINSTATE);
+       const char *crm_state  = crm_element_value(node_state, 
XML_CIB_ATTR_CRMDSTATE);
+       const char *ccm_state  = crm_element_value(node_state, 
XML_CIB_ATTR_INCCM);
+       const char *ha_state   = crm_element_value(node_state, 
XML_CIB_ATTR_HASTATE);
+       const char *exp_state  = crm_element_value(node_state, 
XML_CIB_ATTR_EXPSTATE);
+
+       if(ha_state == NULL) {
+               ha_state = DEADSTATUS;
+       }
 
        if(crm_is_true(ccm_state)
-          && (ha_state == NULL || safe_str_eq(ha_state, ACTIVESTATUS))
-          && safe_str_eq(crm_state, ONLINESTATUS)
-          && safe_str_eq(join_state, CRMD_JOINSTATE_MEMBER)) {
+          && safe_str_eq(ha_state, ACTIVESTATUS)
+          && safe_str_eq(crm_state, ONLINESTATUS)) {
                online = TRUE;
+               if(safe_str_neq(join_state, CRMD_JOINSTATE_MEMBER)) {
+                       crm_debug("Node is not ready to run resources: %s", 
join_state);
+                       this_node->details->standby = TRUE;
+               }                       
                
        } else if(crm_is_true(ccm_state) == FALSE
-/*               && safe_str_eq(ha_state, DEADSTATUS) */
+                 && safe_str_eq(ha_state, DEADSTATUS)
                  && safe_str_eq(crm_state, OFFLINESTATUS)
                  && this_node->details->expected_up == FALSE) {
                crm_debug("Node %s is down: join_state=%s, expected=%s",
                          this_node->details->uname,
                          crm_str(join_state), crm_str(exp_state));
                
-       } else if(this_node->details->expected_up == FALSE) {
-               crm_info("Node %s is comming up", this_node->details->uname);
-               crm_debug("\tha_state=%s, ccm_state=%s,"
-                         " crm_state=%s, join_state=%s, expected=%s",
-                         crm_str(ha_state), crm_str(ccm_state),
-                         crm_str(crm_state), crm_str(join_state),
-                         crm_str(exp_state));
-
-       } else {
+       } else if(this_node->details->expected_up) {
                /* mark it unclean */
                this_node->details->unclean = TRUE;
                
@@ -478,6 +474,15 @@
                         crm_str(ha_state), crm_str(ccm_state),
                         crm_str(crm_state), crm_str(join_state),
                         crm_str(exp_state));
+
+       } else {
+               crm_info("Node %s is comming up", this_node->details->uname);
+               crm_debug("\tha_state=%s, ccm_state=%s,"
+                         " crm_state=%s, join_state=%s, expected=%s",
+                         crm_str(ha_state), crm_str(ccm_state),
+                         crm_str(crm_state), crm_str(join_state),
+                         crm_str(exp_state));
+
        }
        return online;
 }




------------------------------

_______________________________________________
Linux-ha-cvs mailing list
Linux-ha-cvs@lists.linux-ha.org
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs


End of Linux-ha-cvs Digest, Vol 32, Issue 55
********************************************

Reply via email to