summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/mounts.txt21
-rw-r--r--tests/test_disk.py187
-rw-r--r--tests/test_mounts.py380
4 files changed, 403 insertions, 187 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index cdf62d4..1994d43 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -24,6 +24,7 @@ test_modules = \
check_proc_test_data.py \
test_cpu.py \
test_cpu_dataFile.py \
+ test_mounts.py \
test_gluster_proc.py \
test_memory.py \
test_memory_dataFile.py \
@@ -37,6 +38,7 @@ test_modules = \
dist_glusternagiosaddonstests_DATA = \
getLatestStat_exception.xml \
getLatestStat_success.xml \
+ mounts.txt \
$(NULL)
dist_glusternagiosaddonstests_PYTHON = \
diff --git a/tests/mounts.txt b/tests/mounts.txt
new file mode 100644
index 0000000..41c43c8
--- /dev/null
+++ b/tests/mounts.txt
@@ -0,0 +1,21 @@
+rootfs / rootfs rw 0 0
+proc /proc proc rw,relatime 0 0
+sysfs /sys sysfs rw,relatime 0 0
+devtmpfs /dev devtmpfs rw,relatime,size=1016068k,nr_inodes=254017,mode=755 0 0
+devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
+tmpfs /dev/shm tmpfs rw,relatime 0 0
+/dev/mapper/vg_dhcp42149-lv_root / ext4 rw,relatime,barrier=1,data=ordered 0 0
+/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
+/dev/vda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
+/dev/mapper/vg_dhcp42149-lv_home /home ext4 rw,relatime,barrier=1,data=ordered 0 0
+none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
+cgroup /cgroup/cpuset cgroup rw,relatime,cpuset 0 0
+cgroup /cgroup/cpu cgroup rw,relatime,cpu 0 0
+cgroup /cgroup/cpuacct cgroup rw,relatime,cpuacct 0 0
+cgroup /cgroup/memory cgroup rw,relatime,memory 0 0
+cgroup /cgroup/devices cgroup rw,relatime,devices 0 0
+cgroup /cgroup/freezer cgroup rw,relatime,freezer 0 0
+cgroup /cgroup/net_cls cgroup rw,relatime,net_cls 0 0
+cgroup /cgroup/blkio cgroup rw,relatime,blkio 0 0
+/dev/mapper/mygroup-thinv1 /bricks/brick1 xfs rw,relatime,attr2,delaylog,logbsize=64k,sunit=128,swidth=128,noquota 0 0
+/dev/mapper/mygroup-thinv2 /bricks/brick2 xfs rw,relatime,attr2,delaylog,logbsize=64k,sunit=128,swidth=128,noquota 0 0
diff --git a/tests/test_disk.py b/tests/test_disk.py
deleted file mode 100644
index b41d3bf..0000000
--- a/tests/test_disk.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#
-# Copyright 2014 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Refer to the README and COPYING files for full details of the license
-#
-
-import os
-import commands
-from testrunner import PluginsTestCase as TestCaseBase
-from plugins import check_disk_and_inode as checkDisk
-
-
-class TestDisk(TestCaseBase):
- def mock_osaccess(self, path=None, osflag=None):
- return True
-
- def mock_getstatusoutput(self, i):
- out = [
- "Filesystem Size Used Avail Use% Mounted on",
- "/dev/sda1 290G 174G 102G 64% /",
- "/dev/sdb1 3.9G 0 3.9G 0% /var",
- "/dev/sdc1 290G 200G 100G 40% /mnt1",
- "/dev/mapper/vg_test1-lv_one "
- "35852 1774 32257 85% /lvm1",
- "- 994 1 994 1% /dev",
- "/dev/mapper/vg_demonode2-lv1 "
- "50G 11G 36G 24% /mnt/lv4",
- "/dev/vda1 485M 36M 424M 8% /mnt/abc1",
- "/dev/mapper/vg_demonode2-lv_2 "
- "5.5G 4.3G 933M 83% /mnt/abc2",
- "none 0 0 0 - "
- "/proc/sys/fs/binfmt_misc",
- "10.70.43.190:/exports/abc 50G 11G 36G 24% /mnt",
- "10.70.43.190:vol3 50G 11G 36G 24% /mnt/vol3",
- "10.70.43.190:vol2 52846MB 23228MB 26934MB 47% /mnt/vol2"]
-
- if type(i) is str:
- disk = i.split()[-1]
- for diskDetail in out:
- if diskDetail.find(disk) >= 0:
- return 0, diskDetail
- else:
- return 0, out[0] + out[i]
- return 0, ""
-
- def mock_open(self, fileName):
- out = ["/dev/mapper/vg_demonode2-lv_1 /mnt/abc1 ext4 rw 0 0",
- "proc /proc proc rw 0 0",
- "sysfs /sys sysfs rw 0 0",
- "devpts /dev/pts devpts rw,gid=5,mode=620 0 0",
- "tmpfs /dev/shm tmpfs rw 0 0",
- "/dev/sda1 /boot ext4 rw 0 0",
- "/dev/mapper/vg_demonode2-lv_2 /mnt/abc2 ext4 rw 0 0",
- "none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0",
- "sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0",
- "10.70.43.190:/exports/abc /mnt nfs rw,vers=4,addr=10.70.43.190"
- ",clientaddr=10.70.43.190 0 0",
- "10.70.43.190:vol2 /mnt/vol2 nfs rw,addr=10.70.43.190 0 0",
- "10.70.43.190:vol3 /mnt/vol3 nfs rw,addr=10.70.43.190 0 0"]
-
- class file():
- def readlines(self):
- return out
-
- def close(self):
- return None
- return file()
-
- def test_getUsageAndFree(self):
- commands.getstatusoutput = self.mock_getstatusoutput
- os.access = self.mock_osaccess
- disk = checkDisk.getUsageAndFree(1, "", 80, 90, "")
- self.assertEqual(disk['usePcent'], 64)
- self.assertEqual(disk['availPcent'], 36)
- self.assertEqual(disk['used'], 174)
- self.assertEqual(disk['avail'], 102)
- self.assertEqual(disk['path'], '/')
-
- disk = checkDisk.getUsageAndFree(2, "", 80, 90, "")
- self.assertEqual(disk['usePcent'], 0)
- self.assertEqual(disk['availPcent'], 100)
- self.assertEqual(disk['used'], 0)
- self.assertEqual(disk['avail'], 3.0)
- self.assertEqual(disk['path'], '/var')
-
- disk = checkDisk.getUsageAndFree(3, "", 80, 90, "")
- self.assertEqual(disk['usePcent'], 40)
- self.assertEqual(disk['availPcent'], 60)
- self.assertEqual(disk['used'], 200)
- self.assertEqual(disk['avail'], 100)
- self.assertEqual(disk['path'], '/mnt1')
-
- disk = checkDisk.getUsageAndFree(4, "", 80, 90, "")
- self.assertEqual(disk['usePcent'], 85)
- self.assertEqual(disk['availPcent'], 15)
- self.assertEqual(disk['used'], 1774)
- self.assertEqual(disk['avail'], 32257)
- self.assertEqual(disk['path'], '/lvm1')
-
- def test_getMounts(self):
- checkDisk.open = self.mock_open
- mounts = checkDisk.getMounts("/", [])
- self.assertEqual(mounts[0], "/dev/mapper/vg_demonode2-lv_1")
- self.assertEqual(mounts[1], "/dev/sda1")
- self.assertEqual(mounts[2], "/dev/mapper/vg_demonode2-lv_2")
-
- mounts = checkDisk.getMounts("/dev/mapper", [])
- self.assertEqual(mounts[0], "/dev/mapper/vg_demonode2-lv_1")
- self.assertEqual(mounts[1], "/dev/mapper/vg_demonode2-lv_2")
-
- mounts = checkDisk.getMounts("", [])
- self.assertEqual(len(mounts), 12)
-
- def test_diskUsage(self):
- commands.getstatusoutput = self.mock_getstatusoutput
- checkDisk.open = self.mock_open
- os.access = self.mock_osaccess
- mounts = checkDisk.getMounts("/", [])
-
- self.assertEqual(checkDisk.showDiskUsage(80,
- 90,
- [mounts[1]],
- True,
- usage='BGB'),
- (0, '64.0% used (174.0BGB out of 290.0BGB)\n'
- ':mount(s): (/dev/sda1=/)',
- ['/=174.0BGB;232.0;261.0;0;290.0 '
- '/=174.0;139.2;156.6;0;290.0']))
-
- self.assertEqual(checkDisk.showDiskUsage(80,
- 90,
- [mounts[1]],
- True),
- (0, '64.0% used (174.0GB out of 290.0GB)\n'
- ':mount(s): (/dev/sda1=/)',
- ['/=64.00%;80;90;0;290.0GB '
- '/=64.00%;80;90;0;290.0']))
-
- self.assertEqual(checkDisk.showDiskUsage(80,
- 90,
- [mounts[1]], True),
- (0, '64.0% used (174.0GB out of 290.0GB)\n'
- ':mount(s): (/dev/sda1=/)',
- ['/=64.00%;80;90;0;290.0GB '
- '/=64.00%;80;90;0;290.0']))
-
- self.assertEqual(checkDisk.showDiskUsage(80,
- 90,
- ["/mnt/vol2"], True),
- (0, '47.0% used (22.68359375TB out of '
- '51.607421875TB)\n'
- ':mount(s): (10.70.43.190:vol2=/mnt/vol2)',
- ['/mnt/vol2=47.00%;80;90;0;52846.0GB '
- '/mnt/vol2=47.00%;80;90;0;52846.0']))
-
- self.assertEqual(checkDisk.showDiskUsage(10,
- 20,
- ["/mnt/vol2"], True),
- (2, '47.0% used (22.68359375TB out of '
- '51.607421875TB)\n'
- ':mount(s): (10.70.43.190:vol2=/mnt/vol2)',
- ['/mnt/vol2=47.00%;10;20;0;52846.0GB '
- '/mnt/vol2=47.00%;10;20;0;52846.0']))
-
- # negative test
- self.assertEqual(checkDisk.showDiskUsage(1,
- 100,
- ["/mnt/vol2"], True),
- (1, '47.0% used (22.68359375TB out of '
- '51.607421875TB)\n'
- ':mount(s): (10.70.43.190:vol2=/mnt/vol2)',
- ['/mnt/vol2=47.00%;1;100;0;52846.0GB '
- '/mnt/vol2=47.00%;1;100;0;52846.0']))
diff --git a/tests/test_mounts.py b/tests/test_mounts.py
new file mode 100644
index 0000000..5503e50
--- /dev/null
+++ b/tests/test_mounts.py
@@ -0,0 +1,380 @@
+#
+# Copyright 2014 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Refer to the README and COPYING files for full details of the license
+#
+
+import mock
+import os
+
+from testrunner import PluginsTestCase as TestCaseBase
+from plugins import check_mounts
+
+
+class diskTests(TestCaseBase):
+ def mock_getMountPoint(self, mount):
+ return mount
+
+ def mock_open(self, filename, mode):
+ return open('mounts.txt', 'r')
+
+ def test_parseProcMounts(self):
+ check_mounts.open = self.mock_open
+ expected = {
+ '/bricks/brick2': {
+ 'device': '/dev/mapper/mygroup-thinv2',
+ 'mountOptions': 'rw,relatime,attr2,delaylog,'
+ 'logbsize=64k,sunit=128,swidth=128,noquota',
+ 'fsType': 'xfs'},
+ '/bricks/brick1': {
+ 'device': '/dev/mapper/mygroup-thinv1',
+ 'mountOptions': 'rw,relatime,attr2,delaylog,'
+ 'logbsize=64k,sunit=128,swidth=128,noquota',
+ 'fsType': 'xfs'},
+ '/home': {
+ 'device': '/dev/mapper/vg_dhcp42149-lv_home',
+ 'mountOptions': 'rw,relatime,barrier=1,'
+ 'data=ordered',
+ 'fsType': 'ext4'},
+ '/boot': {
+ 'device': '/dev/vda1',
+ 'mountOptions': 'rw,relatime,barrier=1,'
+ 'data=ordered',
+ 'fsType': 'ext4'},
+ '/': {
+ 'device': '/dev/mapper/vg_dhcp42149-lv_root',
+ 'mountOptions': 'rw,relatime,barrier=1,data=ordered',
+ 'fsType': 'ext4'},
+ '/proc/bus/usb': {
+ 'device': '/proc/bus/usb',
+ 'mountOptions': 'rw,relatime',
+ 'fsType': 'usbfs'}
+ }
+ actual = check_mounts._parseProcMounts()
+ self.assertEquals(expected, actual)
+
+ def mock_os_statvfs(self):
+ f_bsize = 4096
+ f_frsize = 4096
+ f_blocks = 12868767
+ f_bfree = 11503139
+ f_bavail = 10847779
+ f_files = 3276800
+ f_ffree = 3220784
+ f_favail = 3220784
+ f_flag = 4096
+ f_namemax = 255
+ return os.statvfs_result((f_bsize, f_frsize,
+ f_blocks, f_bfree,
+ f_bavail, f_files,
+ f_ffree, f_favail,
+ f_flag, f_namemax))
+
+ @mock.patch('plugins.check_mounts.os.statvfs')
+ def test_getStats(self, mock_os_statvfs):
+ mock_os_statvfs.return_value = self.mock_os_statvfs()
+ expected = {'used_percent': 10.611956840931228,
+ 'used': 5.2094573974609375,
+ 'free_inode': 3220784,
+ 'used_inode': 56016,
+ 'total_inode': 3276800,
+ 'used_percent_inode': 1.70947265625,
+ 'total': 49.090450286865234,
+ 'free': 43.8809928894043}
+ actual = check_mounts._getStats("mount_point")
+ self.assertEquals(expected, actual)
+
+ def mock_utils_execCommand(self):
+ rc = 0
+ out = [' LVM2_LV_UUID=jTHoCy-qFBS-K1FS-WSUp-SG8J-4R7W-2hI01n$LVM2_LV'
+ '_NAME=mythinpool$LVM2_DATA_PERCENT=1.09$LVM2_POOL_LV=$LVM2_LV'
+ '_ATTR=twi-a-tz--$LVM2_LV_SIZE=1024.00$LVM2_LV_PATH=$LVM2_LV_'
+ 'METADATA_SIZE=4.00$LVM2_METADATA_PERCENT=1.07$LVM2_VG_NAME='
+ 'mygroup']
+ err = []
+ return rc, out, err
+
+ @mock.patch('plugins.check_mounts.utils.execCmd')
+ def test_getLvs(self, mock_utils_execCmd):
+ mock_utils_execCmd.return_value = self.mock_utils_execCommand()
+ expected = {
+ 'mygroup/mythinpool': {
+ 'LVM2_LV_PATH': '',
+ 'LVM2_DATA_PERCENT': '1.09',
+ 'LVM2_LV_ATTR': 'twi-a-tz--',
+ 'LVM2_POOL_LV': '',
+ 'LVM2_LV_NAME': 'mythinpool',
+ 'LVM2_METADATA_PERCENT': '1.07',
+ 'LVM2_VG_NAME': 'mygroup',
+ 'LVM2_LV_SIZE': '1024.00',
+ 'LVM2_LV_UUID': 'jTHoCy-qFBS-K1FS-WSUp-SG8J-4R7W-2hI01n',
+ 'LVM2_LV_METADATA_SIZE': '4.00'}
+ }
+ actual = check_mounts.getLvs()
+ self.assertEquals(expected, actual)
+
+ def mock_getStats(self):
+ return {'used_percent': 3.194726947731752,
+ 'used': 0.031635284423828125,
+ 'free_inode': 1048562,
+ 'used_inode': 14,
+ 'total_inode': 1048576,
+ 'used_percent_inode': 1,
+ 'total': 0.990234375,
+ 'free': 0.9585990905761719}
+
+ def mock_parseProcMounts(self):
+ return {
+ '/brick/brk1': {
+ 'device': '/dev/mapper/mygroup-thinv1',
+ 'mountOptions': 'rw,seclabel,relatime,'
+ 'attr2,inode64,noquota',
+ 'fsType': 'xfs'},
+ '/': {
+ 'device': '/dev/mapper/fedora_dhcp43--63-root',
+ 'mountOptions': 'rw,seclabel,relatime,data=ordered',
+ 'fsType': 'ext4'}
+ }
+
+ def mock_getLvs(self):
+ return {
+ '/dev/mygroup/lvol0': {
+ 'LVM2_LV_PATH': '/dev/mygroup/lvol0',
+ 'LVM2_DATA_PERCENT': '',
+ 'LVM2_LV_ATTR': '-wi-------',
+ 'LVM2_POOL_LV': '',
+ 'LVM2_LV_NAME': 'lvol0',
+ 'LVM2_METADATA_PERCENT': '',
+ 'LVM2_VG_NAME': 'mygroup',
+ 'LVM2_LV_SIZE': '4.00',
+ 'LVM2_LV_UUID': 'NDYC4q-Z57a-DKY3-FQt1-FT63-BuHd-ZScwJZ',
+ 'LVM2_LV_METADATA_SIZE': ''},
+ 'mygroup/mythinpool': {
+ 'LVM2_LV_PATH': '/dev/mygroup/mythinpool',
+ 'LVM2_DATA_PERCENT': '1.21',
+ 'LVM2_LV_ATTR': 'twi-a-tz--',
+ 'LVM2_POOL_LV': '',
+ 'LVM2_LV_NAME': 'mythinpool',
+ 'LVM2_METADATA_PERCENT': '1.37',
+ 'LVM2_VG_NAME': 'mygroup',
+ 'LVM2_LV_SIZE': '1536.00',
+ 'LVM2_LV_UUID': 'viQeR0-JHrs-5g27-vVTp-WoOw-bWFy-goaJfO',
+ 'LVM2_LV_METADATA_SIZE': '4.00'},
+ '/dev/dm-7': {
+ 'LVM2_LV_PATH': '/dev/mygroup/thinv1',
+ 'LVM2_DATA_PERCENT': '1.04',
+ 'LVM2_LV_ATTR': 'Vwi-aotz--',
+ 'LVM2_POOL_LV': 'mythinpool',
+ 'LVM2_LV_NAME': 'thinv1',
+ 'LVM2_METADATA_PERCENT': '',
+ 'LVM2_VG_NAME': 'mygroup',
+ 'LVM2_LV_SIZE': '1024.00',
+ 'LVM2_LV_UUID': 'am1XA3-AgYh-IKL4-LfeB-7XR7-dm8U-vbX2Fr',
+ 'LVM2_LV_METADATA_SIZE': ''}
+ }
+
+ def mock_getThinpoolStat(self):
+ return {'metadata_used': 5.351562500000018e-05,
+ 'thinpool_used_percent': 1.21,
+ 'thinpool_used': 0.01814999999999989,
+ 'metadata_used_percent': 1.37,
+ 'metadata_size': 0.00390625,
+ 'metadata_free': 0.003852734375,
+ 'thinpool_size': 1.5,
+ 'thinpool_free': 1.4818500000000001}
+
+ @mock.patch('plugins.check_mounts.getLvs')
+ @mock.patch('plugins.check_mounts._getStats')
+ @mock.patch('plugins.check_mounts.os.path.realpath')
+ @mock.patch('plugins.check_mounts._parseProcMounts')
+ @mock.patch('plugins.check_mounts._getMountPoint')
+ def test_getMountStats(self, mock_getMountPoint, mock_parseProcMounts,
+ mock_os_path_realpath,
+ mock_getStats, mock_getLvs):
+ mock_getMountPoint.return_value = '/brick/brk1'
+ mock_os_path_realpath.return_value = '/dev/dm-7'
+ mock_parseProcMounts.return_value = self.mock_parseProcMounts()
+ mock_getLvs.return_value = self.mock_getLvs()
+ mock_getStats.return_value = self.mock_getStats()
+ expected = {'/brick/brk1': {
+ 'used_percent': 3.194726947731752,
+ 'used': 0.031635284423828125,
+ 'free_inode': 1048562,
+ 'used_inode': 14,
+ 'free': 0.9585990905761719,
+ 'total_inode': 1048576,
+ 'mount_point': '/brick/brk1',
+ 'metadata_used_percent': 1.37,
+ 'total': 0.990234375,
+ 'thinpool_free': 1.4818500000000001,
+ 'metadata_used': 5.351562500000018e-05,
+ 'thinpool_used_percent': 1.21,
+ 'used_percent_inode': 1,
+ 'thinpool_used': 0.01814999999999989,
+ 'metadata_size': 0.00390625,
+ 'metadata_free': 0.003852734375,
+ 'thinpool_size': 1.5}
+ }
+ include = ['/brick/brk1']
+ exclude = []
+ actual = check_mounts.getMountStats(exclude, include)
+ self.assertEquals(expected, actual)
+
+ def _getDetail(self):
+ return {'used_percent': 3.194726947731752,
+ 'used': 0.031635284423828125,
+ 'free_inode': 1048562,
+ 'used_inode': 14,
+ 'free': 0.9585990905761719,
+ 'total_inode': 1048576,
+ 'mount_point': '/run/gluster/snaps/680bdbbeed47'
+ '44a9bcba941580a5feed/brick1',
+ 'metadata_used_percent': 1.37,
+ 'total': 0.990234375,
+ 'thinpool_free': 1.4818500000000001,
+ 'metadata_used': 5.351562500000018e-05,
+ 'thinpool_used_percent': 1.21,
+ 'used_percent_inode': 1,
+ 'thinpool_used': 0.01814999999999989,
+ 'metadata_size': 0.00390625,
+ 'metadata_free': 0.003852734375,
+ 'thinpool_size': 1.5}
+
+ def test_getOutputTest(self):
+ detail = self._getDetail()
+ actual = check_mounts._getOutputText(detail)
+ expected = "/run/gluster/snaps/680bdbbeed4744a9bcba941580a5feed/" \
+ "brick1 - {space - free: 0.959 GiB, used: 3.195%}, " \
+ "{inode - free: 1048562 , used: 1.000%}, {thinpool-data " \
+ "- free: 1.482 GiB, used: 1.210%}, {thinpool-metadata " \
+ "- free: 0.004 GiB, used: 1.370%}"
+ self.assertEquals(actual, expected)
+
+ def test_getPerfdata(self):
+ detail = self._getDetail()
+ warn = 80
+ crit = 90
+ actual = check_mounts._getPerfdata(detail, warn, crit)
+ expected = "/run/gluster/snaps/680bdbbeed4744a9bcba941580a5feed/" \
+ "brick1=3.195%;80;90;0;0.990 /run/gluster/snaps/" \
+ "680bdbbeed4744a9bcba941580a5feed/brick1.inode=1.000%;80;" \
+ "90;0;1048576 /run/gluster/snaps/680bdbbeed4744a9bcba941" \
+ "580a5feed/brick1.thinpool=1.210%;80;90;0;1.500 /run/" \
+ "gluster/snaps/680bdbbeed4744a9bcba941580a5feed/brick1." \
+ "metadata=1.370%;80;90;0;0.004"
+ self.assertEquals(actual, expected)
+
+ def test_getStatusInfo(self):
+ detail = self._getDetail()
+ warn = 2
+ crit = 4
+ actual = check_mounts._getStatusInfo(detail, warn, crit)
+ expected = ('WARNING',
+ "mount point /run/gluster/snaps/"
+ "680bdbbeed4744a9bcba941580a5feed/brick1 "
+ "{space used 0.032 / 0.990 GiB}")
+ self.assertEquals(actual, expected)
+
+ def test_getPrintableStatus(self):
+ mountDetail = {
+ '/home': {
+ 'used_percent': 0.24067115853902976,
+ 'used': 0.0429229736328125,
+ 'free_inode': 1196017,
+ 'used_inode': 15,
+ 'free': 17.79177474975586,
+ 'total_inode': 1196032,
+ 'mount_point': '/home',
+ 'metadata_used_percent': None,
+ 'total': 17.834697723388672,
+ 'thinpool_free': None,
+ 'metadata_used': None,
+ 'thinpool_used_percent': None,
+ 'used_percent_inode': 1,
+ 'thinpool_used': None,
+ 'metadata_size': None,
+ 'metadata_free': None,
+ 'thinpool_size': None},
+ '/boot': {
+ 'used_percent': 13.709776644000229,
+ 'used': 0.06375885009765625,
+ 'free_inode': 127662,
+ 'used_inode': 354,
+ 'free': 0.4013023376464844,
+ 'total_inode': 128016,
+ 'mount_point': '/boot',
+ 'metadata_used_percent': None,
+ 'total': 0.4650611877441406,
+ 'thinpool_free': None,
+ 'metadata_used': None,
+ 'thinpool_used_percent': None,
+ 'used_percent_inode': 1,
+ 'thinpool_used': None,
+ 'metadata_size': None,
+ 'metadata_free': None,
+ 'thinpool_size': None},
+ '/brick/brk1': {
+ 'used_percent': 3.194726947731752,
+ 'used': 0.031635284423828125,
+ 'free_inode': 1048562,
+ 'used_inode': 14,
+ 'free': 0.9585990905761719,
+ 'total_inode': 1048576,
+ 'mount_point': '/brick/brk1',
+ 'metadata_used_percent': 1.37,
+ 'total': 0.990234375,
+ 'thinpool_free': 1.4818500000000001,
+ 'metadata_used': 5.351562500000018e-05,
+ 'thinpool_used_percent': 1.21,
+ 'used_percent_inode': 1,
+ 'thinpool_used': 0.01814999999999989,
+ 'metadata_size': 0.00390625,
+ 'metadata_free': 0.003852734375,
+ 'thinpool_size': 1.5
+ }
+ }
+ expRc = 'CRITICAL'
+ expMsg = ['mount point /boot {space used 0.064 / 0.465 GiB}',
+ 'mount point /brick/brk1 '
+ '{space used 0.032 / 0.990 GiB}']
+ expOut = ['/boot - {space - free: 0.401 GiB, used: 13.710%},'
+ ' {inode - free: 127662 , used: 1.000%}',
+ '/brick/brk1 - {space - free: 0.959 GiB, used: 3.195%},'
+ ' {inode - free: 1048562 , used: 1.000%}, '
+ '{thinpool-data - free: 1.482 GiB, used: 1.210%},'
+ ' {thinpool-metadata - free: 0.004 GiB, used: 1.370%}',
+ '/home - {space - free: 17.792 GiB, used: 0.241%},'
+ ' {inode - free: 1196017 , used: 1.000%}']
+ expPerfData = ['/boot=13.710%;2;4;0;0.465 /boot.inode='
+ '1.000%;2;4;0;128016',
+ '/brick/brk1=3.195%;2;4;0;0.990 '
+ '/brick/brk1.inode=1.000%;2;4;0;1048576 '
+ '/brick/brk1.thinpool=1.210%;2;4;0;1.500 '
+ '/brick/brk1.metadata=1.370%;2;4;0;0.004',
+ '/home=0.241%;2;4;0;17.835 '
+ '/home.inode=1.000%;2;4;0;1196032']
+ warning = 2
+ critical = 4
+ actRc, actMsg, actOut, actPerfData = check_mounts.getPrintableStatus(
+ mountDetail,
+ warning,
+ critical
+ )
+ self.assertEquals(actRc, expRc)
+ self.assertEquals(actMsg, expMsg)
+ self.assertEquals(actOut, expOut)
+ self.assertEquals(actPerfData, expPerfData)