summaryrefslogtreecommitdiffstats
path: root/tests/test_discovery.py
diff options
context:
space:
mode:
authorRamesh Nachimuthu <rnachimu@redhat.com>2014-05-27 10:10:47 +0530
committerSahina Bose <sabose@redhat.com>2014-05-28 23:08:18 -0700
commite4f07c24305719c15b591c0b0b9bcf042e1c1889 (patch)
tree951b71e709b464eeaa7c11c0b97f32cd02ba182c /tests/test_discovery.py
parentce3518471c4853d1a51cff5a913de479b1b496ea (diff)
autoconfig: refactoring and adding test cases
Refactoring the code to use constants for repeatedly used strings and add some test case. Change-Id: I7c88231a51ceea3b1cc94223018ecc704b657512 Bug-Url: https://bugzilla.redhat.com/1099093 Bug-Url: https://bugzilla.redhat.com/1099328 Signed-off-by: Ramesh Nachimuthu <rnachimu@redhat.com> Reviewed-on: http://review.gluster.org/7883 Reviewed-by: Sahina Bose <sabose@redhat.com>
Diffstat (limited to 'tests/test_discovery.py')
-rw-r--r--tests/test_discovery.py93
1 files changed, 93 insertions, 0 deletions
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