Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py +2 −7 Original line number Original line Diff line number Diff line Loading @@ -104,18 +104,13 @@ def onboarded_invokers_post(body): # noqa: E501 """ """ identity = get_jwt_identity() identity = get_jwt_identity() username, role = identity.split() username, uuid = identity.split() if role != "invoker": prob = ProblemDetails(title="Unauthorized", status=401, detail="Role not authorized for this API route", cause="User role must be invoker") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype='application/json') if connexion.request.is_json: if connexion.request.is_json: body = APIInvokerEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 current_app.logger.info("Creating Invoker") current_app.logger.info("Creating Invoker") res = invoker_operations.add_apiinvokerenrolmentdetail(body, username) res = invoker_operations.add_apiinvokerenrolmentdetail(body, username, uuid) if res.status_code == 201: if res.status_code == 201: current_app.logger.info("Invoker Created") current_app.logger.info("Invoker Created") publisher_ops.publish_message("events", "API_INVOKER_ONBOARDED") publisher_ops.publish_message("events", "API_INVOKER_ONBOARDED") Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py +3 −6 Original line number Original line Diff line number Diff line Loading @@ -52,13 +52,11 @@ class InvokerManagementOperations(Resource): self.config = Config().get_config() self.config = Config().get_config() def add_apiinvokerenrolmentdetail(self, apiinvokerenrolmentdetail, username): def add_apiinvokerenrolmentdetail(self, apiinvokerenrolmentdetail, username, uuid): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) #try: #try: current_app.logger.debug("Creating invoker resource") current_app.logger.debug("Creating invoker resource") res = mycol.find_one({'onboarding_information.api_invoker_public_key': apiinvokerenrolmentdetail.onboarding_information.api_invoker_public_key}) res = mycol.find_one({'onboarding_information.api_invoker_public_key': apiinvokerenrolmentdetail.onboarding_information.api_invoker_public_key}) Loading @@ -83,9 +81,10 @@ class InvokerManagementOperations(Resource): # Onboarding Date Record # Onboarding Date Record invoker_dict = apiinvokerenrolmentdetail.to_dict() invoker_dict = apiinvokerenrolmentdetail.to_dict() invoker_dict["onboarding_date"] = datetime.now() invoker_dict["onboarding_date"] = datetime.now() invoker_dict["username"]=username invoker_dict["uuid"]=uuid mycol.insert_one(apiinvokerenrolmentdetail.to_dict()) mycol.insert_one(apiinvokerenrolmentdetail.to_dict()) register.update_one({'username':username}, {"$push":{'list_invokers':api_invoker_id}}) current_app.logger.debug("Invoker inserted in database") current_app.logger.debug("Invoker inserted in database") current_app.logger.debug("Netapp onboarded sucessfuly") current_app.logger.debug("Netapp onboarded sucessfuly") Loading Loading @@ -141,7 +140,6 @@ class InvokerManagementOperations(Resource): def remove_apiinvokerenrolmentdetail(self, onboard_id): def remove_apiinvokerenrolmentdetail(self, onboard_id): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) try: try: current_app.logger.debug("Removing invoker resource") current_app.logger.debug("Removing invoker resource") result = self.__check_api_invoker_id(onboard_id) result = self.__check_api_invoker_id(onboard_id) Loading @@ -150,7 +148,6 @@ class InvokerManagementOperations(Resource): return result return result mycol.delete_one({'api_invoker_id':onboard_id}) mycol.delete_one({'api_invoker_id':onboard_id}) register.update_one({'list_invokers':onboard_id}, {"$pull":{'list_invokers':onboard_id}}) self.auth_manager.remove_auth_invoker(onboard_id) self.auth_manager.remove_auth_invoker(onboard_id) current_app.logger.debug("Invoker resource removed from database") current_app.logger.debug("Invoker resource removed from database") Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/db/db.py +1 −27 Original line number Original line Diff line number Diff line Loading @@ -15,7 +15,6 @@ class MongoDatabse(): def __init__(self): def __init__(self): self.config = Config().get_config() self.config = Config().get_config() self.db = self.__connect() self.db = self.__connect() self.register = self.__connect_register() self.invoker_enrolment_details = self.config['mongo']['col'] self.invoker_enrolment_details = self.config['mongo']['col'] self.capif_users = self.config['mongo']['capif_users_col'] self.capif_users = self.config['mongo']['capif_users_col'] self.service_col = self.config['mongo']["service_col"] self.service_col = self.config['mongo']["service_col"] Loading @@ -25,10 +24,6 @@ class MongoDatabse(): def get_col_by_name(self, name): def get_col_by_name(self, name): return self.db[name].with_options(codec_options=CodecOptions(tz_aware=True)) return self.db[name].with_options(codec_options=CodecOptions(tz_aware=True)) def get_col_by_name_register(self, name): return self.register[name].with_options(codec_options=CodecOptions(tz_aware=True)) def __connect(self, max_retries=3, retry_delay=1): def __connect(self, max_retries=3, retry_delay=1): retries = 0 retries = 0 Loading @@ -49,28 +44,7 @@ class MongoDatabse(): time.sleep(retry_delay) time.sleep(retry_delay) return None return None def __connect_register(self, max_retries=3, retry_delay=1): retries = 0 while retries < max_retries: try: uri = f"mongodb://{self.config['mongo_register']['user']}:{self.config['mongo_register']['password']}@" \ f"{self.config['mongo_register']['host']}:{self.config['mongo_register']['port']}" client = MongoClient(uri) mydb = client[self.config['mongo_register']['db']] mydb.command("ping") return mydb except AutoReconnect: retries += 1 print(f"Reconnecting... Retry {retries} of {max_retries}") time.sleep(retry_delay) return None def close_connection(self): def close_connection(self): if self.db.client: if self.db.client: self.db.client.close() self.db.client.close() if self.register.client: self.register.client.close() services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py +2 −7 Original line number Original line Diff line number Diff line Loading @@ -59,20 +59,15 @@ def registrations_post(body): # noqa: E501 """ """ identity = get_jwt_identity() identity = get_jwt_identity() username, role = identity.split() username, uuid = identity.split() current_app.logger.info("Registering Provider Domain") current_app.logger.info("Registering Provider Domain") if role != "provider": prob = ProblemDetails(title="Unauthorized", status=401, detail="Role not authorized for this API route", cause="User role must be provider") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype='application/json') if connexion.request.is_json: if connexion.request.is_json: body = APIProviderEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 body = APIProviderEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 res = provider_management_ops.register_api_provider_enrolment_details(body, username) res = provider_management_ops.register_api_provider_enrolment_details(body, username, uuid) return res return res Loading services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py +4 −6 Original line number Original line Diff line number Diff line Loading @@ -31,10 +31,9 @@ class ProviderManagementOperations(Resource): Resource.__init__(self) Resource.__init__(self) self.auth_manager = AuthManager() self.auth_manager = AuthManager() def register_api_provider_enrolment_details(self, api_provider_enrolment_details, username): def register_api_provider_enrolment_details(self, api_provider_enrolment_details, username, uuid): try: try: mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) current_app.logger.debug("Creating api provider domain") current_app.logger.debug("Creating api provider domain") search_filter = {'reg_sec': api_provider_enrolment_details.reg_sec} search_filter = {'reg_sec': api_provider_enrolment_details.reg_sec} Loading @@ -58,9 +57,10 @@ class ProviderManagementOperations(Resource): # Onboarding Date Record # Onboarding Date Record provider_dict = api_provider_enrolment_details.to_dict() provider_dict = api_provider_enrolment_details.to_dict() provider_dict["onboarding_date"] = datetime.now() provider_dict["onboarding_date"] = datetime.now() provider_dict["username"] = username provider_dict["uuid"] = uuid mycol.insert_one(provider_dict) mycol.insert_one(provider_dict) register.update_one({'username':username}, {"$push":{'list_providers':api_provider_enrolment_details.api_prov_dom_id}}) current_app.logger.debug("Provider inserted in database") current_app.logger.debug("Provider inserted in database") Loading @@ -76,7 +76,6 @@ class ProviderManagementOperations(Resource): def delete_api_provider_enrolment_details(self, api_prov_dom_id): def delete_api_provider_enrolment_details(self, api_prov_dom_id): try: try: mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) current_app.logger.debug("Deleting provider domain") current_app.logger.debug("Deleting provider domain") result = self.__check_api_provider_domain(api_prov_dom_id) result = self.__check_api_provider_domain(api_prov_dom_id) Loading @@ -89,7 +88,6 @@ class ProviderManagementOperations(Resource): amf_id = [ provider_func['api_prov_func_id'] for provider_func in result["api_prov_funcs"] if provider_func['api_prov_func_role'] == 'AMF' ] amf_id = [ provider_func['api_prov_func_id'] for provider_func in result["api_prov_funcs"] if provider_func['api_prov_func_role'] == 'AMF' ] mycol.delete_one({'api_prov_dom_id': api_prov_dom_id}) mycol.delete_one({'api_prov_dom_id': api_prov_dom_id}) register.update_one({'list_providers':api_prov_dom_id}, {"$pull":{'list_providers':api_prov_dom_id}}) out = "The provider matching apiProvDomainId " + api_prov_dom_id + " was offboarded." out = "The provider matching apiProvDomainId " + api_prov_dom_id + " was offboarded." current_app.logger.debug("Removed provider domain from database") current_app.logger.debug("Removed provider domain from database") Loading Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py +2 −7 Original line number Original line Diff line number Diff line Loading @@ -104,18 +104,13 @@ def onboarded_invokers_post(body): # noqa: E501 """ """ identity = get_jwt_identity() identity = get_jwt_identity() username, role = identity.split() username, uuid = identity.split() if role != "invoker": prob = ProblemDetails(title="Unauthorized", status=401, detail="Role not authorized for this API route", cause="User role must be invoker") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype='application/json') if connexion.request.is_json: if connexion.request.is_json: body = APIInvokerEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 current_app.logger.info("Creating Invoker") current_app.logger.info("Creating Invoker") res = invoker_operations.add_apiinvokerenrolmentdetail(body, username) res = invoker_operations.add_apiinvokerenrolmentdetail(body, username, uuid) if res.status_code == 201: if res.status_code == 201: current_app.logger.info("Invoker Created") current_app.logger.info("Invoker Created") publisher_ops.publish_message("events", "API_INVOKER_ONBOARDED") publisher_ops.publish_message("events", "API_INVOKER_ONBOARDED") Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py +3 −6 Original line number Original line Diff line number Diff line Loading @@ -52,13 +52,11 @@ class InvokerManagementOperations(Resource): self.config = Config().get_config() self.config = Config().get_config() def add_apiinvokerenrolmentdetail(self, apiinvokerenrolmentdetail, username): def add_apiinvokerenrolmentdetail(self, apiinvokerenrolmentdetail, username, uuid): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) #try: #try: current_app.logger.debug("Creating invoker resource") current_app.logger.debug("Creating invoker resource") res = mycol.find_one({'onboarding_information.api_invoker_public_key': apiinvokerenrolmentdetail.onboarding_information.api_invoker_public_key}) res = mycol.find_one({'onboarding_information.api_invoker_public_key': apiinvokerenrolmentdetail.onboarding_information.api_invoker_public_key}) Loading @@ -83,9 +81,10 @@ class InvokerManagementOperations(Resource): # Onboarding Date Record # Onboarding Date Record invoker_dict = apiinvokerenrolmentdetail.to_dict() invoker_dict = apiinvokerenrolmentdetail.to_dict() invoker_dict["onboarding_date"] = datetime.now() invoker_dict["onboarding_date"] = datetime.now() invoker_dict["username"]=username invoker_dict["uuid"]=uuid mycol.insert_one(apiinvokerenrolmentdetail.to_dict()) mycol.insert_one(apiinvokerenrolmentdetail.to_dict()) register.update_one({'username':username}, {"$push":{'list_invokers':api_invoker_id}}) current_app.logger.debug("Invoker inserted in database") current_app.logger.debug("Invoker inserted in database") current_app.logger.debug("Netapp onboarded sucessfuly") current_app.logger.debug("Netapp onboarded sucessfuly") Loading Loading @@ -141,7 +140,6 @@ class InvokerManagementOperations(Resource): def remove_apiinvokerenrolmentdetail(self, onboard_id): def remove_apiinvokerenrolmentdetail(self, onboard_id): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) try: try: current_app.logger.debug("Removing invoker resource") current_app.logger.debug("Removing invoker resource") result = self.__check_api_invoker_id(onboard_id) result = self.__check_api_invoker_id(onboard_id) Loading @@ -150,7 +148,6 @@ class InvokerManagementOperations(Resource): return result return result mycol.delete_one({'api_invoker_id':onboard_id}) mycol.delete_one({'api_invoker_id':onboard_id}) register.update_one({'list_invokers':onboard_id}, {"$pull":{'list_invokers':onboard_id}}) self.auth_manager.remove_auth_invoker(onboard_id) self.auth_manager.remove_auth_invoker(onboard_id) current_app.logger.debug("Invoker resource removed from database") current_app.logger.debug("Invoker resource removed from database") Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/db/db.py +1 −27 Original line number Original line Diff line number Diff line Loading @@ -15,7 +15,6 @@ class MongoDatabse(): def __init__(self): def __init__(self): self.config = Config().get_config() self.config = Config().get_config() self.db = self.__connect() self.db = self.__connect() self.register = self.__connect_register() self.invoker_enrolment_details = self.config['mongo']['col'] self.invoker_enrolment_details = self.config['mongo']['col'] self.capif_users = self.config['mongo']['capif_users_col'] self.capif_users = self.config['mongo']['capif_users_col'] self.service_col = self.config['mongo']["service_col"] self.service_col = self.config['mongo']["service_col"] Loading @@ -25,10 +24,6 @@ class MongoDatabse(): def get_col_by_name(self, name): def get_col_by_name(self, name): return self.db[name].with_options(codec_options=CodecOptions(tz_aware=True)) return self.db[name].with_options(codec_options=CodecOptions(tz_aware=True)) def get_col_by_name_register(self, name): return self.register[name].with_options(codec_options=CodecOptions(tz_aware=True)) def __connect(self, max_retries=3, retry_delay=1): def __connect(self, max_retries=3, retry_delay=1): retries = 0 retries = 0 Loading @@ -49,28 +44,7 @@ class MongoDatabse(): time.sleep(retry_delay) time.sleep(retry_delay) return None return None def __connect_register(self, max_retries=3, retry_delay=1): retries = 0 while retries < max_retries: try: uri = f"mongodb://{self.config['mongo_register']['user']}:{self.config['mongo_register']['password']}@" \ f"{self.config['mongo_register']['host']}:{self.config['mongo_register']['port']}" client = MongoClient(uri) mydb = client[self.config['mongo_register']['db']] mydb.command("ping") return mydb except AutoReconnect: retries += 1 print(f"Reconnecting... Retry {retries} of {max_retries}") time.sleep(retry_delay) return None def close_connection(self): def close_connection(self): if self.db.client: if self.db.client: self.db.client.close() self.db.client.close() if self.register.client: self.register.client.close()
services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py +2 −7 Original line number Original line Diff line number Diff line Loading @@ -59,20 +59,15 @@ def registrations_post(body): # noqa: E501 """ """ identity = get_jwt_identity() identity = get_jwt_identity() username, role = identity.split() username, uuid = identity.split() current_app.logger.info("Registering Provider Domain") current_app.logger.info("Registering Provider Domain") if role != "provider": prob = ProblemDetails(title="Unauthorized", status=401, detail="Role not authorized for this API route", cause="User role must be provider") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype='application/json') if connexion.request.is_json: if connexion.request.is_json: body = APIProviderEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 body = APIProviderEnrolmentDetails.from_dict(connexion.request.get_json()) # noqa: E501 res = provider_management_ops.register_api_provider_enrolment_details(body, username) res = provider_management_ops.register_api_provider_enrolment_details(body, username, uuid) return res return res Loading
services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py +4 −6 Original line number Original line Diff line number Diff line Loading @@ -31,10 +31,9 @@ class ProviderManagementOperations(Resource): Resource.__init__(self) Resource.__init__(self) self.auth_manager = AuthManager() self.auth_manager = AuthManager() def register_api_provider_enrolment_details(self, api_provider_enrolment_details, username): def register_api_provider_enrolment_details(self, api_provider_enrolment_details, username, uuid): try: try: mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) current_app.logger.debug("Creating api provider domain") current_app.logger.debug("Creating api provider domain") search_filter = {'reg_sec': api_provider_enrolment_details.reg_sec} search_filter = {'reg_sec': api_provider_enrolment_details.reg_sec} Loading @@ -58,9 +57,10 @@ class ProviderManagementOperations(Resource): # Onboarding Date Record # Onboarding Date Record provider_dict = api_provider_enrolment_details.to_dict() provider_dict = api_provider_enrolment_details.to_dict() provider_dict["onboarding_date"] = datetime.now() provider_dict["onboarding_date"] = datetime.now() provider_dict["username"] = username provider_dict["uuid"] = uuid mycol.insert_one(provider_dict) mycol.insert_one(provider_dict) register.update_one({'username':username}, {"$push":{'list_providers':api_provider_enrolment_details.api_prov_dom_id}}) current_app.logger.debug("Provider inserted in database") current_app.logger.debug("Provider inserted in database") Loading @@ -76,7 +76,6 @@ class ProviderManagementOperations(Resource): def delete_api_provider_enrolment_details(self, api_prov_dom_id): def delete_api_provider_enrolment_details(self, api_prov_dom_id): try: try: mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) mycol = self.db.get_col_by_name(self.db.provider_enrolment_details) register = self.db.get_col_by_name_register(self.db.capif_users) current_app.logger.debug("Deleting provider domain") current_app.logger.debug("Deleting provider domain") result = self.__check_api_provider_domain(api_prov_dom_id) result = self.__check_api_provider_domain(api_prov_dom_id) Loading @@ -89,7 +88,6 @@ class ProviderManagementOperations(Resource): amf_id = [ provider_func['api_prov_func_id'] for provider_func in result["api_prov_funcs"] if provider_func['api_prov_func_role'] == 'AMF' ] amf_id = [ provider_func['api_prov_func_id'] for provider_func in result["api_prov_funcs"] if provider_func['api_prov_func_role'] == 'AMF' ] mycol.delete_one({'api_prov_dom_id': api_prov_dom_id}) mycol.delete_one({'api_prov_dom_id': api_prov_dom_id}) register.update_one({'list_providers':api_prov_dom_id}, {"$pull":{'list_providers':api_prov_dom_id}}) out = "The provider matching apiProvDomainId " + api_prov_dom_id + " was offboarded." out = "The provider matching apiProvDomainId " + api_prov_dom_id + " was offboarded." current_app.logger.debug("Removed provider domain from database") current_app.logger.debug("Removed provider domain from database") Loading