summaryrefslogtreecommitdiffstats
path: root/plugins/config_generator.py
diff options
context:
space:
mode:
authorRamesh Nachimuthu <rnachimu@redhat.com>2014-05-05 16:14:50 +0530
committerSahina Bose <sabose@redhat.com>2014-05-12 02:58:51 -0700
commitfdc74de01faf52114578b64481c44d58abc06405 (patch)
tree19b93c999377ce19083e9e5a97049d0fa99322ce /plugins/config_generator.py
parent9605a7b9f60369f72ad5f7f142c37802edf9db3f (diff)
autoconf: don't remove disconnected hosts from nagios
Currently auto-config removes all the hosts with disconnected status in 'peer status' from nagios configuration. But that is not correct as a host can goto disconnected status for many differnt reasons and we should not remove the configuration. Similarly disconnected hosts need not be added to nagios configuration during auto discovery. Fixing this by ingnoring all the disconnected hosts in delta calculation. Note: Host name can't be used to identify disconnected hosts as we may not be able to communicate the disconnected host to get the host name. Hence Host UUID in peer status is used to intentify the host. Bug-Url: https://bugzilla.redhat.com/1091170 Change-Id: I3fe730d2545f8cbc8224c576712b09bb4c16e712 Signed-off-by: Ramesh Nachimuthu <rnachimu@redhat.com> Reviewed-on: http://review.gluster.org/7677 Reviewed-by: Sahina Bose <sabose@redhat.com>
Diffstat (limited to 'plugins/config_generator.py')
-rw-r--r--plugins/config_generator.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/plugins/config_generator.py b/plugins/config_generator.py
index 465eb61..ed32912 100644
--- a/plugins/config_generator.py
+++ b/plugins/config_generator.py
@@ -21,6 +21,7 @@
from pynag import Model
import server_utils
+from glusternagios.glustercli import HostStatus
"""
Change mode helps to identify the change in the defintion.
@@ -41,7 +42,7 @@ class GlusterNagiosConfManager:
#Create nagios host configuration with the given attributes
def createHost(self, hostName, alias, template,
- address, hostGroups, checkCommand, services):
+ address, hostGroups, checkCommand, services, uuid):
host = {}
host['host_name'] = hostName
host['alias'] = alias
@@ -55,6 +56,8 @@ class GlusterNagiosConfManager:
#aggregate all the host services under the host
if services:
host['host_services'] = services
+ if uuid:
+ host['_HOST_UUID'] = uuid
return host
def __createVolumeUtilizationService(self, volume, clusterName):
@@ -230,18 +233,19 @@ class GlusterNagiosConfManager:
#Create host config for Gluster cluster with volume related services
clusterHostConfig = self.createHost(
cluster['name'], cluster['name'], "gluster-cluster",
- cluster['name'], None, None, clusterServices)
+ cluster['name'], None, None, clusterServices, None)
hostsConfigs.append(clusterHostConfig)
#Create host config for all hosts in the cluster with brick related
#services
for host in cluster['hosts']:
- brickServices = self.createBrickServices(host)
- hostGroups = "gluster_hosts,%s" % (cluster['name'])
- hostConfig = self.createHost(
- host['hostname'], host['hostname'], "gluster-host",
- host['hostip'], hostGroups, None, brickServices)
- hostsConfigs.append(hostConfig)
-
+ if host['status'] == HostStatus.CONNECTED:
+ brickServices = self.createBrickServices(host)
+ hostGroups = "gluster_hosts,%s" % (cluster['name'])
+ hostConfig = self.createHost(
+ host['hostname'], host['hostname'], "gluster-host",
+ host['hostip'], hostGroups, None, brickServices,
+ host.get('uuid'))
+ hostsConfigs.append(hostConfig)
hostGroup["_hosts"] = hostsConfigs
return hostGroup