From ee939d94e09a2943bc04aa1982f80fca029115c1 Mon Sep 17 00:00:00 2001 From: Serg Melikyan Date: Mon, 27 May 2013 18:44:53 +0400 Subject: [PATCH] Resolve issues with requestion list of services Change-Id: I02c4ea4e184a58389c5f15e473f6eacbe3bd3796 --- muranoapi/api/v1/active_directories.py | 2 - muranoapi/api/v1/aspNetApps.py | 55 +++++++------------------ muranoapi/api/v1/webservers.py | 2 - muranoapi/db/services/systemservices.py | 33 +++++++++++++++ 4 files changed, 47 insertions(+), 45 deletions(-) diff --git a/muranoapi/api/v1/active_directories.py b/muranoapi/api/v1/active_directories.py index 284a78542..5c37cd82d 100644 --- a/muranoapi/api/v1/active_directories.py +++ b/muranoapi/api/v1/active_directories.py @@ -32,8 +32,6 @@ class Controller(object): get = SystemServices.get_services services = get(environment_id, 'activeDirectories', session_id) - services = [srv.to_dict() for srv in services] - return {'activeDirectories': services} @utils.verify_session diff --git a/muranoapi/api/v1/aspNetApps.py b/muranoapi/api/v1/aspNetApps.py index 0b483cde1..35bc9a9bb 100644 --- a/muranoapi/api/v1/aspNetApps.py +++ b/muranoapi/api/v1/aspNetApps.py @@ -13,9 +13,8 @@ # under the License.from oslo.config import cfg from muranoapi import utils -from muranoapi.api.v1 import save_draft, get_draft, get_service_status -from muranoapi.common import uuidutils -from muranoapi.openstack.common import wsgi, timeutils +from muranoapi.db.services.systemservices import SystemServices +from muranoapi.openstack.common import wsgi from muranoapi.openstack.common import log as logging log = logging.getLogger(__name__) @@ -25,60 +24,34 @@ class Controller(object): def index(self, request, environment_id): log.debug(_('AspNetApps:List '.format(environment_id))) - draft = prepare_draft(get_draft(environment_id, - request.context.session)) + session_id = None + if hasattr(request, 'context') and request.context.session: + session_id = request.context.session - for dc in draft['services']['aspNetApps']: - dc['status'] = get_service_status(environment_id, - request.context.session, dc) + get = SystemServices.get_services - return {'aspNetApps': draft['services']['aspNetApps']} + services = get(environment_id, 'aspNetApps', session_id) + return {'aspNetApps': services} @utils.verify_session def create(self, request, environment_id, body): log.debug(_('AspNetApps:Create '. format(environment_id, body))) - draft = get_draft(session_id=request.context.session) + session_id = request.context.session + create = SystemServices.create_asp_application - aspNetApp = body.copy() - aspNetApp['id'] = uuidutils.generate_uuid() - aspNetApp['created'] = str(timeutils.utcnow()) - aspNetApp['updated'] = str(timeutils.utcnow()) - - unit_count = 0 - for unit in aspNetApp['units']: - unit_count += 1 - unit['id'] = uuidutils.generate_uuid() - unit['name'] = aspNetApp['name'] + '_instance_' + str(unit_count) - - draft = prepare_draft(draft) - draft['services']['aspNetApps'].append(aspNetApp) - save_draft(request.context.session, draft) - - return aspNetApp + return create(body.copy(), session_id, environment_id) @utils.verify_session def delete(self, request, environment_id, app_id): log.debug(_('AspNetApps:Delete '. format(environment_id, app_id))) - draft = get_draft(session_id=request.context.session) + session_id = request.context.session + delete = SystemServices.delete_service - elements = [service for service in draft['services']['aspNetApps'] if - service['id'] != app_id] - draft['services']['aspNetApps'] = elements - save_draft(request.context.session, draft) - - -def prepare_draft(draft): - if not 'services' in draft: - draft['services'] = {} - - if not 'aspNetApps' in draft['services']: - draft['services']['aspNetApps'] = [] - - return draft + delete(app_id, 'aspNetApps', session_id, environment_id) def create_resource(): diff --git a/muranoapi/api/v1/webservers.py b/muranoapi/api/v1/webservers.py index 8f024a23a..b0d98c249 100644 --- a/muranoapi/api/v1/webservers.py +++ b/muranoapi/api/v1/webservers.py @@ -31,8 +31,6 @@ class Controller(object): get = SystemServices.get_services services = get(environment_id, 'webServers', session_id) - services = [srv.to_dict() for srv in services] - return {'webServers': services} @utils.verify_session diff --git a/muranoapi/db/services/systemservices.py b/muranoapi/db/services/systemservices.py index 99cca3457..49764b139 100644 --- a/muranoapi/db/services/systemservices.py +++ b/muranoapi/db/services/systemservices.py @@ -175,6 +175,39 @@ class SystemServices(object): return web_server + @staticmethod + def create_asp_application(params, session_id, environment_id): + """ + Creates ASP.NET Application service and saves it in specified session + :param params: Params as Dict + :param session_id: Session + """ + env_description = EnvironmentServices.get_environment_description( + environment_id, session_id) + + aspApp = params + aspApp['id'] = uuidutils.generate_uuid() + aspApp['created'] = str(timeutils.utcnow()) + aspApp['updated'] = str(timeutils.utcnow()) + + unit_count = 0 + for unit in aspApp['units']: + unit_count += 1 + unit['id'] = uuidutils.generate_uuid() + unit['name'] = aspApp['name'] + '_instance_' + str(unit_count) + + if not 'services' in env_description: + env_description['services'] = {} + + if not 'webServers' in env_description['services']: + env_description['services']['aspNetApps'] = [] + + env_description['services']['aspNetApps'].append(aspApp) + EnvironmentServices.save_environment_description(session_id, + env_description) + + return aspApp + @staticmethod def delete_service(service_id, service_type, session_id, environment_id): env_description = EnvironmentServices.get_environment_description(