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