Skip to content

Commit b0d0f9e

Browse files
authored
Merge pull request #80 from Helene/cap_metrics
Workaround for capacity metrics
2 parents 889c94f + 64bdd54 commit b0d0f9e

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

source/queryHandler/Query.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ class Query(object):
4949
"operation", "protocol", "waiters_time_threshold", "export",
5050
"nodegroup", "account", "filesystem", "tct_csap", "tct_operation", "cloud_nodeclass"])
5151

52+
DISK_CAP_METRICS = set(["gpfs_disk_disksize", "gpfs_disk_free_fullkb", "gpfs_disk_free_fragkb",
53+
"gpfs_pool_disksize", "gpfs_pool_free_fragkb", "gpfs_pool_free_fullkb",
54+
"gpfs_fs_inode_used", "gpfs_fs_inode_free", "gpfs_fs_inode_alloc", "gpfs_fs_inode_max"])
55+
5256
def __init__(self, metrics=None, bucketsize=1, filters=None, groupby=None, includeDiskData=False):
5357
'''
5458
Constructor, filters and groupby must be preformmated
@@ -184,7 +188,11 @@ def addMeasurement(self, meassure):
184188
def __str__(self):
185189
# dd = '-a' if self.includeDiskData else ''
186190
# Workaround for RTC Defect 280368: Zimon capacity query does not return all results (seen on CNSA)
187-
if (self.metrics and any('gpfs_disk_' in metric for metric in self.metrics)) or (self.sensor and self.sensor == "GPFSDiskCap"):
191+
if (self.metrics and
192+
any(str(metric) in self.DISK_CAP_METRICS for metric in self.metrics)
193+
) or (self.sensor and
194+
self.sensor in ("GPFSDiskCap","GPFSPoolCap", "GPFSInodeCap")
195+
):
188196
dd = '-ar'
189197
elif self.includeDiskData:
190198
dd = '-a'

tests/test_query.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from source.queryHandler.Query import Query
2+
from source.__version__ import __version__ as version
3+
from nose2.tools.decorators import with_setup
4+
5+
6+
def my_setup():
7+
global metrics, metrics1, capSensors
8+
metrics = ['cpu_user']
9+
metrics1 = ['gpfs_fs_inode_used']
10+
capSensors = ['GPFSDiskCap','GPFSPoolCap', 'GPFSInodeCap']
11+
12+
@with_setup(my_setup)
13+
def test_case01():
14+
query = Query(metrics)
15+
assert len(str(query)) > 0
16+
assert "cpu_user" in str(query)
17+
assert "-ar" not in str(query)
18+
19+
@with_setup(my_setup)
20+
def test_case02():
21+
query = Query(metrics1)
22+
assert "-ar" in str(query)
23+
query.addMetric('cpu_user')
24+
assert "-ar" in str(query)
25+
26+
@with_setup(my_setup)
27+
def test_case03():
28+
for sensor in capSensors:
29+
query = Query()
30+
query.sensor = sensor
31+
assert "-ar" in str(query)
32+
query = Query()
33+
query.sensor = 'CPU'
34+
assert "-ar" not in str(query)
35+
assert "group" in str(query)
36+
query = Query(includeDiskData=True)
37+
query.sensor = 'GPFSDiskCap'
38+
assert "-ar" in str(query)

0 commit comments

Comments
 (0)