1
1
import itertools
2
2
import time
3
- import urlparse
3
+ import sys
4
4
5
5
try :
6
6
import json
7
7
except ImportError :
8
8
import simplejson as json
9
- try :
10
- from urllib2 import HTTPError
11
- except ImportError :
9
+
10
+ # Support Python 2 & 3
11
+
12
+ if sys .version_info [0 ] == 3 :
13
+ import urllib .parse as urlparse
12
14
from urllib .error import HTTPError
15
+ else :
16
+ import urlparse
17
+ from urllib2 import HTTPError
13
18
14
19
import requests
15
20
import requests .exceptions
@@ -63,7 +68,7 @@ def _do_request(self, method, path, params=None, data=None):
63
68
response = requests .request (method , url , params = params , data = data , headers = headers ,
64
69
auth = self .auth , timeout = self .timeout )
65
70
marathon .log .info ('Got response from %s' , server )
66
- except requests .exceptions .RequestException , e :
71
+ except requests .exceptions .RequestException as e :
67
72
marathon .log .error ('Error while calling %s: %s' , url , e .message )
68
73
69
74
if response is None :
@@ -133,8 +138,8 @@ def list_apps(self, cmd=None, embed_tasks=False, embed_failures=False, **kwargs)
133
138
134
139
response = self ._do_request ('GET' , '/v2/apps' , params = params )
135
140
apps = self ._parse_response (response , MarathonApp , is_list = True , resource_name = 'apps' )
136
- for k , v in kwargs .iteritems ():
137
- apps = filter ( lambda o : getattr (o , k ) == v , apps )
141
+ for k , v in kwargs .items ():
142
+ apps = [ o for o in apps if getattr (o , k ) == v ]
138
143
return apps
139
144
140
145
def get_app (self , app_id , embed_tasks = False ):
@@ -254,8 +259,8 @@ def list_groups(self, **kwargs):
254
259
"""
255
260
response = self ._do_request ('GET' , '/v2/groups' )
256
261
groups = self ._parse_response (response , MarathonGroup , is_list = True , resource_name = 'groups' )
257
- for k , v in kwargs .iteritems ():
258
- groups = filter ( lambda o : getattr (o , k ) == v , groups )
262
+ for k , v in kwargs .items ():
263
+ groups = [ o for o in groups if getattr (o , k ) == v ]
259
264
return groups
260
265
261
266
def get_group (self , group_id ):
@@ -351,8 +356,8 @@ def list_tasks(self, app_id=None, **kwargs):
351
356
352
357
tasks = self ._parse_response (response , MarathonTask , is_list = True , resource_name = 'tasks' )
353
358
[setattr (t , 'app_id' , app_id ) for t in tasks if app_id and t .app_id is None ]
354
- for k , v in kwargs .iteritems ():
355
- tasks = filter ( lambda o : getattr (o , k ) == v , tasks )
359
+ for k , v in kwargs .items ():
360
+ tasks = [ o for o in tasks if getattr (o , k ) == v ]
356
361
357
362
return tasks
358
363
@@ -372,7 +377,7 @@ def batch(iterable, size):
372
377
sourceiter = iter (iterable )
373
378
while True :
374
379
batchiter = itertools .islice (sourceiter , size )
375
- yield itertools .chain ([batchiter . next ()], batchiter )
380
+ yield itertools .chain ([next (batchiter )], batchiter )
376
381
377
382
if batch_size == 0 :
378
383
# Terminate all at once
0 commit comments