Skip to content

Commit 65a6e56

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 75f474c + 31f6392 commit 65a6e56

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

Changelog.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
0.2.0
2+
=====
3+
* added changelog
4+
* switched legacy, unsupported maintenance window getter to supported rest
5+
api method

pypingdom/client.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,23 @@ def update_check(self, check, changes):
7777
return check
7878

7979
def get_maintenances(self, filters=None):
80+
"""Return a list of mainenance windows."""
8081
if filters is None:
8182
filters = {}
82-
self.gui.login()
83-
url = "https://my.pingdom.com/newims/maintenance/xhr?limit=10000&page_id=1&_=1489571119019"
84-
response = self.gui.send("get", url)
8583
res = []
86-
for obj in response.json()['events']:
84+
for mw in (Maintenance(self, json=x) for x in self.api.send('get', 'maintenance')['maintenance']):
8785
if "checks" in filters:
8886
wanted_ids = [check._id for check in filters['checks']]
89-
got_ids = [int(x['compound_id']) for x in obj['checks']]
87+
got_ids = [x._id for x in mw.checks]
9088
if len(set(wanted_ids).intersection(set(got_ids))) == 0:
9189
continue
92-
window = Maintenance(self, json=obj)
93-
if "names" in filters and window.name not in filters['names']:
90+
if "names" in filters and mw.description not in filters['names']:
9491
continue
95-
if "after" in filters and filters["after"] >= window.start:
92+
if "after" in filters and filters["after"] >= mw.start:
9693
continue
97-
if "before" in filters and filters["before"] <= window.stop:
94+
if "before" in filters and filters["before"] <= mw.stop:
9895
continue
99-
res.append(window)
96+
res.append(mw)
10097
return res
10198

10299
def create_maintenance(self, obj):

pypingdom/maintenance.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ def to_json(self):
5454
def from_json(self, obj):
5555
self._id = int(obj['id'])
5656
self.name = obj["description"]
57-
self.start = datetime.datetime.fromtimestamp(obj['start'])
58-
self.stop = datetime.datetime.fromtimestamp(obj['end'])
59-
self.checks = [self.client.get_check(_id=int(x['compound_id'])) for x in obj['checks']]
57+
self.start = datetime.datetime.fromtimestamp(obj['from'])
58+
self.stop = datetime.datetime.fromtimestamp(obj['to'])
59+
self.checks = [self.client.get_check(_id=int(x)) for x in obj['checks']['uptime']]
6060

6161
def from_obj(self, obj):
6262
self.name = obj["name"]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515

1616
setup(name='pypingdom',
17-
version="0.1.5",
17+
version="0.2.0",
1818
description='Client for Pingdom Services',
1919
long_description=README,
2020
author='Paolo Sechi',

0 commit comments

Comments
 (0)