File bz561413-17-Clean-up-MIB-add-missing-notification.patch of Package clustermon

From 895346abd38571ea2495d48b28f3ccfb3abd4368 Mon Sep 17 00:00:00 2001
From: Lon Hohberger <lhh@redhat.com>
Date: Tue, 18 May 2010 13:50:35 -0400
Subject: [PATCH 2/2] modclusterd: Clean up MIB & add missing notifications

Resolves: bz561413

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 ricci/modules/cluster/clumon/REDHAT-CLUSTER-MIB    |  147 ++++++++++++--------
 .../clumon/src/snmp-agent/clusterMonitorSnmp.cpp   |   26 ++--
 2 files changed, 98 insertions(+), 75 deletions(-)

diff --git a/ricci/modules/cluster/clumon/REDHAT-CLUSTER-MIB b/ricci/modules/cluster/clumon/REDHAT-CLUSTER-MIB
index 21fa811..154bd60 100644
--- a/ricci/modules/cluster/clumon/REDHAT-CLUSTER-MIB
+++ b/ricci/modules/cluster/clumon/REDHAT-CLUSTER-MIB
@@ -29,10 +29,10 @@ redhatCluster MODULE-IDENTITY
 
 
 
+rhcNotifications	OBJECT IDENTIFIER ::= { redhatCluster 0 }
 rhcMIBInfo		OBJECT IDENTIFIER ::= { redhatCluster 1 }
 rhcCluster		OBJECT IDENTIFIER ::= { redhatCluster 2 }
 rhcTables		OBJECT IDENTIFIER ::= { redhatCluster 3 }
-rhcNotifications	OBJECT IDENTIFIER ::= { redhatCluster 0 }
 
 rhcConformance		OBJECT IDENTIFIER ::= { redhatCluster 8 }
 
@@ -53,7 +53,7 @@ rhcMIBVersion OBJECT-TYPE
 --  #####  Cluster  #####  --
 
 rhcClusterName OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -78,7 +78,7 @@ rhcClusterStatusCode OBJECT-TYPE
 	::= { rhcCluster 2 }
 
 rhcClusterStatusDesc OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -121,7 +121,7 @@ rhcClusterNodesNum OBJECT-TYPE
 	::= { rhcCluster 7 }
 
 rhcClusterNodesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -137,7 +137,7 @@ rhcClusterAvailNodesNum OBJECT-TYPE
 	::= { rhcCluster 9 }
 
 rhcClusterAvailNodesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -153,7 +153,7 @@ rhcClusterUnavailNodesNum OBJECT-TYPE
 	::= { rhcCluster 11 }
 
 rhcClusterUnavailNodesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -170,7 +170,7 @@ rhcClusterServicesNum OBJECT-TYPE
 	::= { rhcCluster 13 }
 
 rhcClusterServicesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -186,7 +186,7 @@ rhcClusterRunningServicesNum OBJECT-TYPE
 	::= { rhcCluster 15 }
 
 rhcClusterRunningServicesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -202,7 +202,7 @@ rhcClusterStoppedServicesNum OBJECT-TYPE
 	::= { rhcCluster 17 }
 
 rhcClusterStoppedServicesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -218,7 +218,7 @@ rhcClusterFailedServicesNum OBJECT-TYPE
 	::= { rhcCluster 19 }
 
 rhcClusterFailedServicesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -233,6 +233,8 @@ rhcClusterConfigurationVersion OBJECT-TYPE
 	"Cluster configuration version"
 	::= { rhcCluster 21 }
 
+
+
 --  ##### nodes #####  --
 
 
@@ -285,7 +287,7 @@ rhcNodeStatusCode OBJECT-TYPE
 	::= { rhcNodeEntry 2 }
 
 rhcNodeStatusDesc OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -301,7 +303,7 @@ rhcNodeRunningServicesNum OBJECT-TYPE
 	::= { rhcNodeEntry 4 }
 
 rhcNodeRunningServicesNames OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -368,7 +370,7 @@ rhcServiceStatusCode OBJECT-TYPE
 	::= { rhcServiceEntry 2 }
 
 rhcServiceStatusDesc OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -376,7 +378,7 @@ rhcServiceStatusDesc OBJECT-TYPE
 	::= { rhcServiceEntry 3 }
 
 rhcServiceStartMode OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -384,7 +386,7 @@ rhcServiceStartMode OBJECT-TYPE
 	::= { rhcServiceEntry 4 }
 
 rhcServiceRunningOnNode OBJECT-TYPE
-	SYNTAX      OCTET STRING (SIZE(0..64))
+	SYNTAX      OCTET STRING
 	MAX-ACCESS  read-only
 	STATUS      current
 	DESCRIPTION
@@ -399,6 +401,30 @@ rhcConfigUpdate NOTIFICATION-TYPE
 	DESCRIPTION "Cluster configuration update"
         ::= { rhcNotifications 1 }
 
+rhcQuorumUpdate NOTIFICATION-TYPE
+        OBJECTS { rhcClusterQuorate }
+	STATUS current
+	DESCRIPTION "Quorum state change"
+        ::= { rhcNotifications 2 }
+
+rhcNodeStatusUpdate NOTIFICATION-TYPE
+        OBJECTS { rhcClusterNodesNames,
+		  rhcNodeStatusCode,
+		  rhcNodeID
+		}
+	STATUS current
+	DESCRIPTION "Cluster node state change"
+        ::= { rhcNotifications 3 }
+
+rhcServiceStatusUpdate NOTIFICATION-TYPE
+        OBJECTS { rhcClusterServicesNames,
+		  rhcServiceStatusDesc,
+		  rhcServiceRunningOnNode
+		}
+	STATUS current
+	DESCRIPTION "Cluster service state change"
+        ::= { rhcNotifications 4 }
+
 
 
 -- CONFORMANCE
@@ -408,60 +434,59 @@ rhcCompliances OBJECT IDENTIFIER ::= { rhcConformance 1 }
 rhcGroups OBJECT IDENTIFIER ::= { rhcConformance 2 }
 
 rhcCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION "Red Hat Clustering Compliance Information"
-    MODULE     -- this module
-    MANDATORY-GROUPS { rhcObjectGroup, rhcNotificationGroup }
-
-    ::= { rhcCompliances 1 }
+	STATUS      current
+	DESCRIPTION "Red Hat Clustering Compliance Information"
+	MODULE     -- this module
+	MANDATORY-GROUPS { rhcObjectGroup, rhcNotificationGroup }
+	::= { rhcCompliances 1 }
 
 rhcObjectGroup OBJECT-GROUP
-    OBJECTS {
-	rhcMIBVersion,
-	rhcClusterName,
-	rhcClusterStatusCode,
-	rhcClusterStatusDesc,
-	rhcClusterVotesNeededForQuorum,
-	rhcClusterVotes,
-	rhcClusterQuorate,
-	rhcClusterNodesNum,
-	rhcClusterNodesNames,
-	rhcClusterAvailNodesNum,
-	rhcClusterAvailNodesNames,
-	rhcClusterUnavailNodesNum,
-	rhcClusterUnavailNodesNames,
-	rhcClusterServicesNum,
-	rhcClusterServicesNames,
-	rhcClusterRunningServicesNum,
-	rhcClusterRunningServicesNames,
-	rhcClusterStoppedServicesNum,
-	rhcClusterStoppedServicesNames,
-	rhcClusterFailedServicesNum,
-	rhcClusterFailedServicesNames,
-	rhcClusterConfigurationVersion,
-	rhcNodeStatusCode,
-	rhcNodeStatusDesc,
-	rhcNodeRunningServicesNum,
-	rhcNodeRunningServicesNames,
-	rhcNodeID,
-	rhcServiceStatusCode,
-	rhcServiceStatusDesc,
-	rhcServiceStartMode,
-	rhcServiceRunningOnNode
-    }
-    STATUS      current
-    DESCRIPTION "Red Hat Clustering Objects"
-    ::= { rhcGroups 1 }
+	OBJECTS { rhcMIBVersion,
+		  rhcClusterName,
+		  rhcClusterStatusCode,
+		  rhcClusterStatusDesc,
+		  rhcClusterVotesNeededForQuorum,
+		  rhcClusterVotes,
+		  rhcClusterQuorate,
+		  rhcClusterNodesNum,
+		  rhcClusterNodesNames,
+		  rhcClusterAvailNodesNum,
+		  rhcClusterAvailNodesNames,
+		  rhcClusterUnavailNodesNum,
+		  rhcClusterUnavailNodesNames,
+		  rhcClusterServicesNum,
+		  rhcClusterServicesNames,
+		  rhcClusterRunningServicesNum,
+		  rhcClusterRunningServicesNames,
+		  rhcClusterStoppedServicesNum,
+		  rhcClusterStoppedServicesNames,
+		  rhcClusterFailedServicesNum,
+		  rhcClusterFailedServicesNames,
+		  rhcClusterConfigurationVersion,
+		  rhcNodeStatusCode,
+		  rhcNodeStatusDesc,
+		  rhcNodeRunningServicesNum,
+		  rhcNodeRunningServicesNames,
+		  rhcNodeID,
+		  rhcServiceStatusCode,
+		  rhcServiceStatusDesc,
+		  rhcServiceStartMode,
+		  rhcServiceRunningOnNode
+    		}
+	STATUS      current
+	DESCRIPTION "Red Hat Clustering Objects"
+	::= { rhcGroups 1 }
 
 rhcNotificationGroup NOTIFICATION-GROUP
-    NOTIFICATIONS {
-	rhcConfigUpdate
-    }
+	NOTIFICATIONS { rhcConfigUpdate,
+			rhcQuorumUpdate,
+			rhcNodeStatusUpdate,	
+			rhcServiceStatusUpdate
+		      }
     STATUS	current
     DESCRIPTION "Red Hat Clustering Notifications"
     ::= { rhcGroups 2 }
 
-
 END
 
 
diff --git a/ricci/modules/cluster/clumon/src/snmp-agent/clusterMonitorSnmp.cpp b/ricci/modules/cluster/clumon/src/snmp-agent/clusterMonitorSnmp.cpp
index aeb27af..8949595 100644
--- a/ricci/modules/cluster/clumon/src/snmp-agent/clusterMonitorSnmp.cpp
+++ b/ricci/modules/cluster/clumon/src/snmp-agent/clusterMonitorSnmp.cpp
@@ -84,7 +84,6 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 	int found = 0;
 
 	/* Uses table/name; dunno if this is legit */
-	oid rhcNodeName_oid[] =   { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 1, 1 };
 	oid rhcNodeStatus_oid[]	= { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 1, 2 };
 	oid rhcNodeID_oid[] =     { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 1, 6 };
 
@@ -108,8 +107,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 
 			Trap trap(rhcNodeState_trap, rhcNodeState_len);
 
-			trap.Add(rhcNodeName_oid,
-				 OID_LENGTH(rhcNodeName_oid),
+			trap.Add(rhcClusterNodesNames_oid,
+				 OID_LENGTH(rhcClusterNodesNames_len),
 				 (*x)->name());
 			trap.Add(rhcNodeStatus_oid,
 				 OID_LENGTH(rhcNodeStatus_oid),
@@ -123,8 +122,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 		if (!found) {
 			/* present in old but not new; advertise as offline */
 			Trap trap(rhcNodeState_trap, rhcNodeState_len);
-			trap.Add(rhcNodeName_oid,
-				 OID_LENGTH(rhcNodeName_oid),
+			trap.Add(rhcClusterNodesNames_oid,
+				 OID_LENGTH(rhcClusterNodesNames_len),
 				 (*x)->name());
 			trap.Add(rhcNodeStatus_oid,
 				 OID_LENGTH(rhcNodeStatus_oid), 2);
@@ -154,8 +153,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 				continue;
 
 			Trap trap(rhcNodeState_trap, rhcNodeState_len);
-			trap.Add(rhcNodeName_oid,
-				 OID_LENGTH(rhcNodeName_oid),
+			trap.Add(rhcClusterNodesNames_oid,
+				 OID_LENGTH(rhcClusterNodesNames_len),
 				 (*x)->name());
 			trap.Add(rhcNodeStatus_oid,
 				 OID_LENGTH(rhcNodeStatus_oid), 2);
@@ -172,7 +171,6 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 	list<counting_auto_ptr<Service> > svcs = cluster->services();
 
 	/* Uses table/name; dunno if this is legit */
-	oid rhcSvcName_oid[]   = { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 2, 1 };
 	oid rhcSvcStatus_oid[] = { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 2, 3 };
 	oid rhcSvcOwner_oid[] =  { 1, 3, 6, 1, 4, 1, 2312, 8, 3, 2, 5 };
 
@@ -200,8 +198,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 
 			Trap trap(rhcServiceState_trap, rhcServiceState_len);
 
-			trap.Add(rhcSvcName_oid,
-				 OID_LENGTH(rhcSvcName_oid),
+			trap.Add(rhcClusterServicesNames_oid,
+				 OID_LENGTH(rhcClusterServicesNames_len),
 				 (*y)->name());
 			trap.Add(rhcSvcStatus_oid,
 				 OID_LENGTH(rhcSvcStatus_oid),
@@ -216,8 +214,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 			/* present in old but not new; set status as unknown */
 			Trap trap(rhcServiceState_trap, rhcServiceState_len);
 
-			trap.Add(rhcSvcName_oid,
-				 OID_LENGTH(rhcSvcName_oid),
+			trap.Add(rhcClusterServicesNames_oid,
+				 OID_LENGTH(rhcClusterServicesNames_len),
 				 (*x)->name());
 			trap.Add(rhcSvcStatus_oid,
 				 OID_LENGTH(rhcSvcStatus_oid), 
@@ -245,8 +243,8 @@ check_cluster_state(unsigned int clientreg, void *clientarg)
 			int code = getServiceStatusCode((*x));
 
 			Trap trap(rhcServiceState_trap, rhcServiceState_len);
-			trap.Add(rhcSvcName_oid,
-				 OID_LENGTH(rhcSvcName_oid),
+			trap.Add(rhcClusterServicesNames_oid,
+				 OID_LENGTH(rhcClusterServicesNames_len),
 				 (*x)->name());
 			trap.Add(rhcSvcStatus_oid,
 				 OID_LENGTH(rhcSvcStatus_oid),
-- 
1.6.2.5

openSUSE Build Service is sponsored by