diff --git a/portas/portas/api/v1/__init__.py b/portas/portas/api/v1/__init__.py index 2cb29e7..f71dd4b 100644 --- a/portas/portas/api/v1/__init__.py +++ b/portas/portas/api/v1/__init__.py @@ -1,12 +1,16 @@ -from portas.db.models import Session +from portas.db.models import Session, Environment from portas.db.session import get_session -def get_draft(session_id): +def get_draft(environment_id, session_id): unit = get_session() - session = unit.query(Session).get(session_id) - - return session.description + #TODO: When session is deployed should be returned env.description + if session_id: + session = unit.query(Session).get(session_id) + return session.description + else: + environment = unit.query(Environment).get(environment_id) + return environment.description def save_draft(session_id, draft): diff --git a/portas/portas/api/v1/active_directories.py b/portas/portas/api/v1/active_directories.py index 01d75f1..2f84cfe 100644 --- a/portas/portas/api/v1/active_directories.py +++ b/portas/portas/api/v1/active_directories.py @@ -8,17 +8,10 @@ log = logging.getLogger(__name__) class Controller(object): - @utils.verify_session def index(self, request, environment_id): log.debug(_('ActiveDirectory:Index '.format(environment_id))) - draft = get_draft(request.context.session) - - if not draft.has_key('services'): - return dict() - - if not draft['services'].has_key('activeDirectories'): - return dict() + draft = prepare_draft(get_draft(environment_id, request.context.session)) return {'activeDirectories': draft['services']['activeDirectories']} diff --git a/portas/portas/api/v1/webservers.py b/portas/portas/api/v1/webservers.py index 70e7da8..16ff4c8 100644 --- a/portas/portas/api/v1/webservers.py +++ b/portas/portas/api/v1/webservers.py @@ -8,17 +8,10 @@ log = logging.getLogger(__name__) class Controller(object): - @utils.verify_session def index(self, request, environment_id): log.debug(_('WebServer:List '.format(environment_id))) - draft = get_draft(request.context.session) - - if not draft.has_key('services'): - return dict() - - if not draft['services'].has_key('webServers'): - return dict() + draft = prepare_draft(get_draft(environment_id, request.context.session)) return {'webServers': draft['services']['webServers']} diff --git a/python-portasclient/portasclient/v1/services.py b/python-portasclient/portasclient/v1/services.py index 84a76f1..fe2a16d 100644 --- a/python-portasclient/portasclient/v1/services.py +++ b/python-portasclient/portasclient/v1/services.py @@ -27,8 +27,12 @@ class ActiveDirectory(base.Resource): class ActiveDirectoryManager(base.Manager): resource_class = ActiveDirectory - def list(self, environment_id, session_id): - headers = {'X-Configuration-Session': session_id} + def list(self, environment_id, session_id=None): + if session_id: + headers = {'X-Configuration-Session': session_id} + else: + headers = {} + return self._list('environments/{id}/activeDirectories'.format(id=environment_id), 'activeDirectories', headers=headers) @@ -56,8 +60,12 @@ class WebServer(base.Resource): class WebServerManager(base.Manager): resource_class = WebServer - def list(self, environment_id, session_id): - headers = {'X-Configuration-Session': session_id} + def list(self, environment_id, session_id=None): + if session_id: + headers = {'X-Configuration-Session': session_id} + else: + headers = {} + return self._list('environments/{id}/webServers'.format(id=environment_id), 'webServers', headers=headers)