summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_config_generator.py14
-rw-r--r--tests/test_discovery.py93
2 files changed, 101 insertions, 6 deletions
diff --git a/tests/test_config_generator.py b/tests/test_config_generator.py
index d2bc2a1..aa9db1b 100644
--- a/tests/test_config_generator.py
+++ b/tests/test_config_generator.py
@@ -17,6 +17,8 @@
#
from plugins import config_generator
+from plugins.config_generator import GLUSTER_AUTO_CONFIG
+from plugins.config_generator import HOST_SERVICES
from glusternagios.glustercli import HostStatus
from testrunner import PluginsTestCase as TestCaseBase
@@ -49,10 +51,10 @@ class TestGlusterNagiosConfManager(TestCaseBase):
def _verifyHostServices(self, hostConfig, hostData):
for brick in hostData['bricks']:
self._checkServiceExists("Brick - %s" % brick['brickpath'],
- hostConfig['host_services'])
+ hostConfig[HOST_SERVICES])
self._checkServiceExists(
"Brick Utilization - %s" % brick['brickpath'],
- hostConfig['host_services'])
+ hostConfig[HOST_SERVICES])
def _verifyClusterConfig(self, config, clusterData):
self.assertEqual(config['host_name'], clusterData['name'])
@@ -69,17 +71,17 @@ class TestGlusterNagiosConfManager(TestCaseBase):
def _verifyClusterServices(self, clusterConfig, clusterData):
totalServices = 0
- services = clusterConfig['host_services']
+ services = clusterConfig[HOST_SERVICES]
self._checkServiceExists("Cluster - Quorum", services)
- self._checkServiceExists("Cluster Auto Config", services)
+ self._checkServiceExists(GLUSTER_AUTO_CONFIG, services)
self._checkServiceExists("Cluster Utilization", services)
totalServices += 3
for volume in clusterData['volumes']:
totalServices += self._verifyVolumeServices(
- clusterConfig['host_services'], volume)
- self.assertEqual(len(clusterConfig['host_services']), totalServices)
+ clusterConfig[HOST_SERVICES], volume)
+ self.assertEqual(len(clusterConfig[HOST_SERVICES]), totalServices)
def _verifyVolumeServices(self, serviceList, volume):
serviceDesc = 'Volume Utilization - %s' % (volume['name'])
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index a3d1347..68d3cbd 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -16,7 +16,17 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#
+from pynag import Model
+
from plugins import discovery, server_utils
+from plugins.config_generator import GLUSTER_AUTO_CONFIG
+from plugins.config_generator import HOST_SERVICES
+from plugins.config_generator import VOL_NAME
+from plugins.config_generator import CHANGE_MODE
+from plugins.config_generator import CHANGE_MODE_ADD
+from plugins.config_generator import CHANGE_MODE_REMOVE
+from plugins.config_generator import CHANGE_MODE_UPDATE
+from plugins.config_generator import NOTES
from glusternagios.glustercli import HostStatus
from testrunner import PluginsTestCase as TestCaseBase
@@ -103,3 +113,86 @@ class TestDiscovery(TestCaseBase):
clusterName,
timeout=None)
self._verifyClusterData(clusterdata, clusterName, host)
+
+ def mockFindDeletedServices(self, hostConfig):
+ return [{'service_description': 'Brick - /bricks/v1-deleted',
+ CHANGE_MODE: CHANGE_MODE_REMOVE}]
+
+ def mockGetServiceConfig(self, serviceDesc, hostName):
+ if serviceDesc == 'Brick - /bricks/v1-no-change':
+ return self.fillServiceModel({'service_description': serviceDesc,
+ 'host_name': hostName,
+ 'use':
+ 'gluster-brick-status-service',
+ VOL_NAME: 'V1'})
+ elif serviceDesc == 'Brick - /bricks/v1-new':
+ return None
+ elif serviceDesc == 'Brick - /bricks/v1-update':
+ return self.fillServiceModel({'service_description': serviceDesc,
+ 'host_name': hostName,
+ 'use':
+ 'gluster-brick-status-service',
+ VOL_NAME: 'V1',
+ NOTES: 'Volume Type : Replicate'})
+ elif serviceDesc == GLUSTER_AUTO_CONFIG:
+ return self.fillServiceModel({'service_description': serviceDesc,
+ 'host_name': hostName,
+ 'use': 'gluster-service',
+ 'check_command':
+ 'gluster_auto_discovery!'
+ '10.70.43.0!10.70.43.57'})
+
+ def fillServiceModel(self, values):
+ serviceModel = Model.Service()
+ for key, value in values.iteritems():
+ serviceModel[key] = value
+ return serviceModel
+
+ def testFindServiceDelta(self):
+ server_utils.getServiceConfig = self.mockGetServiceConfig
+ discovery.findDeletedServices = self.mockFindDeletedServices
+ serviceDelta = discovery.findServiceDelta(self.getDummyHostConfig())
+ self.assertEqual(len(serviceDelta), 4)
+ service = discovery.findServiceInList(
+ serviceDelta, 'Brick - /bricks/v1-no-change')
+ self.assertEqual(service, None)
+ service = discovery.findServiceInList(
+ serviceDelta, 'Brick - /bricks/v1-new')
+ self.assertEqual(service[CHANGE_MODE], CHANGE_MODE_ADD)
+ service = discovery.findServiceInList(
+ serviceDelta, 'Brick - /bricks/v1-update')
+ self.assertEqual(service[CHANGE_MODE], CHANGE_MODE_UPDATE)
+ self.assertEqual(service[VOL_NAME], 'V2')
+ service = discovery.findServiceInList(
+ serviceDelta, 'Brick - /bricks/v1-deleted')
+ self.assertEqual(service[CHANGE_MODE], CHANGE_MODE_REMOVE)
+ service = discovery.findServiceInList(
+ serviceDelta, GLUSTER_AUTO_CONFIG)
+ self.assertEqual(service[CHANGE_MODE], CHANGE_MODE_UPDATE)
+ self.assertEqual(service['check_command'],
+ 'gluster_auto_discovery!10.70.43.57!10.70.43.57')
+
+ def getDummyHostConfig(self):
+ hostServices = []
+ hostServices.append({'service_description':
+ 'Brick - /bricks/v1-no-change',
+ 'host_name': 'host-1',
+ 'use': 'gluster-brick-status-service',
+ VOL_NAME: 'V1'})
+ hostServices.append({'service_description': 'Brick - /bricks/v1-new',
+ 'host_name': 'host-1',
+ 'use': 'gluster-brick-status-service',
+ VOL_NAME: 'V1'})
+ hostServices.append({'service_description':
+ 'Brick - /bricks/v1-update',
+ 'host_name': 'host-1',
+ 'use': 'gluster-brick-status-service',
+ VOL_NAME: 'V2',
+ NOTES: 'Volume Type : Replicate'})
+ hostServices.append({'service_description': GLUSTER_AUTO_CONFIG,
+ 'host_name': 'host-1',
+ 'use': 'gluster-service',
+ 'check_command':
+ 'gluster_auto_discovery!10.70.43.57!10.70.43.57'})
+ hostConfig = {HOST_SERVICES: hostServices}
+ return hostConfig