File bz561413-06-Fix-config_version-presentation.patch of Package clustermon

From 0699234b0790df82bb67411f7bf0e1e5603762f2 Mon Sep 17 00:00:00 2001
From: Lon Hohberger <lhh@redhat.com>
Date: Wed, 12 May 2010 14:22:50 -0400
Subject: [PATCH 06/16] modclusterd: Fix config_version presentation

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 .../modules/cluster/clumon/src/common/Cluster.cpp  |   14 ++++++++++-
 .../modules/cluster/clumon/src/daemon/Monitor.cpp  |    4 +-
 ricci/modules/cluster/clumon/src/include/Cluster.h |   26 +++++++++++--------
 .../cluster/clumon/src/snmp-agent/clusterMIB.cpp   |    2 +-
 4 files changed, 31 insertions(+), 15 deletions(-)

diff --git a/ricci/modules/cluster/clumon/src/common/Cluster.cpp b/ricci/modules/cluster/clumon/src/common/Cluster.cpp
index 0562c70..5e3c8e1 100644
--- a/ricci/modules/cluster/clumon/src/common/Cluster.cpp
+++ b/ricci/modules/cluster/clumon/src/common/Cluster.cpp
@@ -36,10 +36,12 @@ using namespace ClusterMonitoring;
 Cluster::Cluster(	const String &name,
 					const String &alias,
 					const String &cluster_version,
+					unsigned int config_version,
 					unsigned int minQuorum) :
 	_name(name),
 	_alias(alias),
 	_cl_version(cluster_version),
+	_config_version(config_version),
 	_minQuorum(minQuorum)
 {
 	// add no-node node
@@ -68,6 +70,12 @@ Cluster::version()
 }
 
 unsigned int
+Cluster::config_version()
+{
+	return _config_version;
+}
+
+unsigned int
 Cluster::votes()
 {
 	cman_handle_t ch = cman_init(NULL);
@@ -291,6 +299,9 @@ ClusterMonitoring::cluster2xml(Cluster& cluster)
 	clu.set_attr("alias", cluster.alias());
 	clu.set_attr("cluster_version", cluster.version());
 
+	snprintf(buff, sizeof(buff), "%u", cluster.config_version());
+	clu.set_attr("config_version", buff);
+
 	snprintf(buff, sizeof(buff), "%u", cluster.votes());
 	clu.set_attr("votes", buff);
 
@@ -361,8 +372,9 @@ ClusterMonitoring::xml2cluster(const String& xml)
 
 	String alias = clu.get_attr("alias");
 	String cl_version = clu.get_attr("cluster_version");
+	String config_version = clu.get_attr("config_version");
 
-	counting_auto_ptr<Cluster> cluster(new Cluster(name, alias, cl_version, minQuorum));
+	counting_auto_ptr<Cluster> cluster(new Cluster(name, alias, cl_version, atoi(config_version.c_str()), minQuorum));
 
 	// nodes
 	for (list<XMLObject>::const_iterator
diff --git a/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp b/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp
index 761fa03..435e28a 100644
--- a/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp
+++ b/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp
@@ -444,9 +444,9 @@ Monitor::merge_data(const String& clustername)
 
 	if (sscanf(cluster.get_attr("minQuorum").c_str(), "%u", &minQuorum) != 1) {
 		cluster_ret =
-			counting_auto_ptr<Cluster> (new Cluster(name, alias, clu_version));
+			counting_auto_ptr<Cluster> (new Cluster(name, alias, clu_version, config_version));
 	} else {
-		cluster_ret = counting_auto_ptr<Cluster> (new Cluster(name, alias, clu_version, minQuorum));
+		cluster_ret = counting_auto_ptr<Cluster> (new Cluster(name, alias, clu_version, config_version, minQuorum));
 	}
 
 	// nodes
diff --git a/ricci/modules/cluster/clumon/src/include/Cluster.h b/ricci/modules/cluster/clumon/src/include/Cluster.h
index a9040d5..e505ec1 100644
--- a/ricci/modules/cluster/clumon/src/include/Cluster.h
+++ b/ricci/modules/cluster/clumon/src/include/Cluster.h
@@ -45,29 +45,31 @@ class Cluster
 {
 	public:
 		Cluster(const String& name,
-				const String& alias,
-				const String& cluster_version,
-				unsigned int minQuorum=0);
+			const String& alias,
+			const String& cluster_version,
+			unsigned int config_version,
+			unsigned int minQuorum=0);
 		virtual ~Cluster();
 
 		String name();
 		String alias();
+		unsigned int config_version();
 		String version();
 		unsigned int votes();
 		unsigned int minQuorum();
 		bool quorate();
 
 		counting_auto_ptr<Node> addNode(const String& name,
-										unsigned int votes,
-										bool online,
-										bool clustered,
-										const String& uptime);
+						unsigned int votes,
+						bool online,
+						bool clustered,
+						const String& uptime);
 
 		counting_auto_ptr<Service> addService(	const String& name,
-										const String& nodeName,
-										bool failed,
-										bool autostart,
-										const String& time_since_transition);
+							const String& nodeName,
+							bool failed,
+							bool autostart,
+							const String& time_since_transition);
 
 		std::list<counting_auto_ptr<Node> > nodes();
 		std::list<counting_auto_ptr<Node> > clusteredNodes();
@@ -82,6 +84,7 @@ class Cluster
 		String _name;
 		String _alias;
 		String _cl_version;
+		unsigned int _config_version;
 		unsigned int _minQuorum;
 		std::map<String, counting_auto_ptr<Node> > _nodes;
 };
@@ -117,6 +120,7 @@ class Node
 		bool _online;
 		bool _clustered; // available to cluster
 		String _uptime;
+		String _config_version;
 
 		std::map<String, counting_auto_ptr<Service> > _services;
 };
diff --git a/ricci/modules/cluster/clumon/src/snmp-agent/clusterMIB.cpp b/ricci/modules/cluster/clumon/src/snmp-agent/clusterMIB.cpp
index 76c9497..115d256 100644
--- a/ricci/modules/cluster/clumon/src/snmp-agent/clusterMIB.cpp
+++ b/ricci/modules/cluster/clumon/src/snmp-agent/clusterMIB.cpp
@@ -868,7 +868,7 @@ handle_rhcClusterConfigVersion(netsnmp_mib_handler *handler,
       return SNMP_ERR_NOERROR;
     }
 
-    unsigned int config_version = atoi(cluster->version().c_str());
+    unsigned int config_version = cluster->config_version();
 
     /*
      * We are never called for a GETNEXT if it's registered as a
-- 
1.6.2.5

openSUSE Build Service is sponsored by