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
********************************************

Reply via email to