X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2app%2Fentrypoints%2Fflask_application.py;h=53e7e19ab8c7250349fd33ce7c53d51eb5bdda3a;hb=refs%2Fchanges%2F88%2F9388%2F1;hp=45c0436e74eb2270f126aec9b0900ba4ce1ad5b2;hpb=5e02e76308e1677fb106572b885a366eb6c0fbec;p=pti%2Fo2.git diff --git a/o2app/entrypoints/flask_application.py b/o2app/entrypoints/flask_application.py index 45c0436..53e7e19 100644 --- a/o2app/entrypoints/flask_application.py +++ b/o2app/entrypoints/flask_application.py @@ -1,35 +1,62 @@ -# Copyright (C) 2021 Wind River Systems, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from flask import Flask -from flask_restx import Api - -from o2app import bootstrap -# from o2ims import config -# from o2ims.views.ocloud_route import configure_routes -from o2ims.views import ocloud_route as ims_route -from o2dms.views import dms_route - - -# apibase = config.get_o2ims_api_base() -app = Flask(__name__) -api = Api(app, version='1.0.0', - title='O-Cloud O2 Services', - description='Swagger OpenAPI document for \ - O-Cloud O2 Services', - ) -bus = bootstrap.bootstrap() - -ims_route.configure_namespace(api, bus) -dms_route.configure_namespace(api, bus) +# Copyright (C) 2021-2022 Wind River Systems, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from flask import Flask +from flask_restx import Api + + +from o2app import bootstrap +from o2ims.views import configure_namespace as ims_route_configure_namespace +from o2dms.api import configure_namespace as dms_route_configure_namespace + +from o2ims.adapter.clients.alarm_dict_client import load_alarm_definition +from o2common.authmw import authmiddleware +from o2common.authmw import authprov +from o2common.config.config import get_review_url +from o2common.helper import o2logging + +# apibase = config.get_o2ims_api_base() +auth = True +app = Flask(__name__) +logger = o2logging.get_logger(__name__) + + +def _get_k8s_url(): + try: + token_review_url = get_review_url() + return token_review_url + except Exception: + raise Exception('Get k8s token review url failed') + + +if auth: + # perform service account identity&privilege check. + _get_k8s_url() + ad = authprov.auth_definer('ad') + ad.sanity_check() + app.wsgi_app = authmiddleware.authmiddleware(app.wsgi_app) + +app.config.SWAGGER_UI_DOC_EXPANSION = 'list' +# app.config['RESTX_MASK_HEADER'] = 'fields' +app.config['RESTX_MASK_SWAGGER'] = False +api = Api(app, version='1.0.0', + title='INF O2 Services API', + description='Swagger OpenAPI document for the INF O2 Services', + ) +bus = bootstrap.bootstrap() + +ims_route_configure_namespace(api) +dms_route_configure_namespace(api) + +load_alarm_definition(bus.uow)