Skip to content
This repository has been archived by the owner on May 27, 2020. It is now read-only.

Commit

Permalink
Merge pull request #110 from skalenetwork/develop
Browse files Browse the repository at this point in the history
New beta release (fixed watchdog metrics)
  • Loading branch information
cstrangedk committed Feb 19, 2020
2 parents b6e1d58 + 39f6607 commit 7ed7e97
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 19 deletions.
8 changes: 4 additions & 4 deletions bounty/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
docker==3.2.1
skale-py==2.1dev14
docker==4.2.0
skale-py==2.1.dev16
schedule==0.6.0
tenacity==6.0.0
mysqlclient==1.4.5
peewee==3.7.1
mysqlclient==1.4.6
peewee==3.13.1
apscheduler==3.6.3
15 changes: 9 additions & 6 deletions sla/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,15 +101,18 @@ def get_containers_healthcheck(host):
logger.info(f'Request failed, status code: {response.status_code}')
return 1

json = response.json()
if json['res'] != 1:
for error in response.json()['errors']:
logger.info(error)
res = response.json()
if res.get('error') is not None:
logger.info(res['error'])
return 1
else:
data = json['data']
data = res.get('data')
if data is None:
logger.info(f'No data found checking {url}')
return 1

for container in data:
if not container['state']['Running'] or container['state']['Paused']:
logger.info(f'{container["name"]} is not running or paused')
return 1
return 0

Expand Down
8 changes: 4 additions & 4 deletions sla/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
docker==3.2.1
docker==4.2.0
skale-py==2.1dev14
pingparsing==0.13.2
pingparsing==0.18.2
schedule==0.6.0
tenacity==6.0.0
mysqlclient==1.4.5
peewee==3.11.2
mysqlclient==1.4.6
peewee==3.13.1
14 changes: 9 additions & 5 deletions tests/unit/test_healthcheck.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,17 @@ def json(self):
data_bad2 = [{'name': 'container_name', 'state': {'Running': False, 'Paused': True}}]

if args[0] == get_test_url('url_ok1'):
return MockResponse({'res': 1, 'data': data_ok1}, 200)
return MockResponse({'error': None, 'data': data_ok1}, 200)
elif args[0] == get_test_url('url_bad1'):
return MockResponse({'res': 1, 'data': data_bad1}, 200)
return MockResponse({'error': None, 'data': data_bad1}, 200)
elif args[0] == get_test_url('url_bad2'):
return MockResponse({'res': 0, 'data': data_ok1, 'errors': ["Error1"]}, 200)
return MockResponse({'error': 'any_error', 'data': data_ok1}, 200)
elif args[0] == get_test_url('url_bad3'):
return MockResponse({'res': 1, 'data': data_ok1}, 500)
return MockResponse({'error': None, 'data': data_ok1}, 500)
elif args[0] == get_test_url('url_bad4'):
return MockResponse({'res': 1, 'data': data_bad2}, 200)
return MockResponse({'error': None, 'data': data_bad2}, 200)
elif args[0] == get_test_url('url_bad5'):
return MockResponse({'error': None}, 200)

return MockResponse(None, 404)

Expand Down Expand Up @@ -83,6 +85,8 @@ def test_healthcheck_neg(mock_get):
assert res == 1
res = get_containers_healthcheck('url_bad5')
assert res == 1
res = get_containers_healthcheck('url_bad6')
assert res == 1


@mock.patch('sla.metrics.requests.get', side_effect=connection_error)
Expand Down

0 comments on commit 7ed7e97

Please sign in to comment.