jenkins-bot has submitted this change and it was merged.
Change subject: Add warning for badly configured pools.
......................................................................
Add warning for badly configured pools.
Change-Id: Ib0b3c139a5187f6a18ff2551f24ffa60f14b4b20
---
M pybal/instrumentation.py
M pybal/test/test_instrumentation.py
2 files changed, 22 insertions(+), 11 deletions(-)
Approvals:
Giuseppe Lavagetto: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pybal/instrumentation.py b/pybal/instrumentation.py
index 21b5e16..7edddc1 100644
--- a/pybal/instrumentation.py
+++ b/pybal/instrumentation.py
@@ -56,20 +56,27 @@
def render_GET(self, request):
critPools = {}
+ resp = {'status': 'ok', 'msg': ''}
+
for pool, crd in PoolsRoot._pools.items():
pooledDown = len(crd.pooledDownServers)
if pooledDown:
slist = ", ".join(crd.pooledDownServers)
critPools[pool] = "Servers %s are marked down but pooled" %
slist
- if critPools == {}:
- return "OK"
- else:
- if wantJson(request):
- return json.dumps(critPools)
- else:
- return "; ".join(["%s - %s" % (k, v)
- for k, v in critPools.items()])
+ elif not crd.canDepool():
+ resp['status'] = 'warning'
+ resp['msg'] += "Pool %s is too small to allow depooling. " %
crd.lvsservice.name
+ if critPools != {}:
+ resp['status'] = 'critical'
+ resp['msg'] = "; ".join(["%s: %s" % (k, v)
+ for k, v in critPools.items()])
+ if resp['status'] == 'ok':
+ resp['msg'] = 'All pools are healthy'
+ if wantJson(request):
+ return json.dumps(resp)
+ else:
+ return "%s - %s" % (resp['status'].upper(), resp['msg'])
class PoolsRoot(Resource):
"""Pools base resource.
diff --git a/pybal/test/test_instrumentation.py
b/pybal/test/test_instrumentation.py
index 4c1d16a..df09071 100644
--- a/pybal/test/test_instrumentation.py
+++ b/pybal/test/test_instrumentation.py
@@ -82,11 +82,16 @@
def test_render(self):
"""Test case for `PoolsRoot.render_GET`"""
+ self.request.requestHeaders.getRawHeaders.return_value = 'text/http'
crd = self.coordinators[0]
r = Alerts()
- self.assertEquals("OK", r.render_GET(self.request))
+ self.assertEquals("OK - All pools are healthy",
+ r.render_GET(self.request))
+ crd.canDepool = mock.MagicMock(return_value=False)
+ self.assertEquals('WARNING - Pool test_pool0 is too small to allow
depooling. ',
+ r.render_GET(self.request))
crd.pooledDownServers = ['mw1001', 'mw1002']
- self.assertEquals('{"test_pool0": "Servers mw1001, mw1002 are marked
down but pooled"}',
+ self.assertEquals('CRITICAL - test_pool0: Servers mw1001, mw1002 are
marked down but pooled',
r.render_GET(self.request))
@@ -96,7 +101,6 @@
def test_getChild(self):
"""Test case for `PoolsRoot.getChild`"""
-
r = PoolsRoot()
self.assertEquals(r, r.getChild("", self.request))
res = r.getChild('test_pool0', self.request)
--
To view, visit https://gerrit.wikimedia.org/r/261193
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib0b3c139a5187f6a18ff2551f24ffa60f14b4b20
Gerrit-PatchSet: 2
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits