Modified client to support lastStatus fetching

Change-Id: I7c529eb9ed811f99d3d5aa5b093ba3ddfca0abea
This commit is contained in:
Alexander Tivelkov 2013-07-18 16:57:20 +04:00
parent 265807d9e9
commit 0e8a2f913f
3 changed files with 21 additions and 48 deletions

View File

@ -23,6 +23,14 @@ class Environment(base.Resource):
return self.manager.data(self, **kwargs)
class Status(base.Resource):
def __repr__(self):
return '<Status %s>' % self._info
def data(self, **kwargs):
return self.manager.data(self, **kwargs)
class EnvironmentManager(base.Manager):
resource_class = Environment
@ -46,3 +54,16 @@ class EnvironmentManager(base.Manager):
headers = {}
return self._get("environments/{id}".format(id=environment_id),
headers=headers)
def last_status(self, environment_id, session_id):
headers = {'X-Configuration-Session': session_id}
path = 'environments/{id}/lastStatus'
path = path.format(id=environment_id)
status_dict = self._get(path, return_raw=True,
response_key='lastStatuses',
headers=headers)
result = {}
for k, v in status_dict.iteritems():
if v:
result[k] = Status(self, v, loaded=True)
return result

View File

@ -23,14 +23,6 @@ class Session(base.Resource):
return self.manager.data(self, **kwargs)
class Status(base.Resource):
def __repr__(self):
return '<Status %s>' % self._info
def data(self, **kwargs):
return self.manager.data(self, **kwargs)
class SessionManager(base.Manager):
resource_class = Session
@ -48,17 +40,6 @@ class SessionManager(base.Manager):
path.format(id=environment_id,
session_id=session_id))
def reports(self, environment_id, session_id, service_id=None):
path = 'environments/{id}/sessions/{session_id}/reports'
path = path.format(id=environment_id, session_id=session_id)
if service_id:
path += '?service_id={0}'.format(service_id)
resp, body = self.api.json_request('GET', path)
data = body.get('reports', [])
return [Status(self, res, loaded=True) for res in data if res]
def delete(self, environment_id, session_id):
return self._delete("environments/{id}/sessions/{session_id}".
format(id=environment_id, session_id=session_id))

View File

@ -204,32 +204,3 @@ class UnitTestsForClassesAndFunctions(unittest.TestCase):
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_reports(self):
manager = sessions.SessionManager(api)
result = manager.reports('datacenter1', '1')
assert result == []
def test_session_manager_reports_with_named_parameters(self):
manager = sessions.SessionManager(api)
result = manager.reports(environment_id='datacenter1',
session_id='1')
assert result == []
def test_session_manager_reports_negative_with_one_parameter(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.reports('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_reports_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.reports()
except TypeError:
pass
assert result == 'Exception'