diff options
author | Ramesh Nachimuthu <rnachimu@redhat.com> | 2014-05-05 16:14:50 +0530 |
---|---|---|
committer | Sahina Bose <sabose@redhat.com> | 2014-05-12 02:58:51 -0700 |
commit | fdc74de01faf52114578b64481c44d58abc06405 (patch) | |
tree | 19b93c999377ce19083e9e5a97049d0fa99322ce /plugins/config_generator.py | |
parent | 9605a7b9f60369f72ad5f7f142c37802edf9db3f (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.py | 22 |
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 |