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 @@ -107,8 +107,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 201: if res.status_code == 201: current_app.logger.info("Invoker Created") current_app.logger.info("Invoker Created") RedisEvent("API_INVOKER_ONBOARDED", RedisEvent("API_INVOKER_ONBOARDED", ["apiInvokerIds"], api_invoker_ids=[str(api_invoker_id)]).send_event() [[str(api_invoker_id)]]).send_event() return res return res def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): Loading Loading @@ -154,8 +153,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 200: if res.status_code == 200: current_app.logger.info("Invoker Updated") current_app.logger.info("Invoker Updated") RedisEvent("API_INVOKER_UPDATED", RedisEvent("API_INVOKER_UPDATED", ["apiInvokerIds"], api_invoker_ids=[onboard_id]).send_event() [[onboard_id]]).send_event() return res return res except Exception as e: except Exception as e: Loading Loading @@ -183,8 +181,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 204: if res.status_code == 204: current_app.logger.info("Invoker Removed") current_app.logger.info("Invoker Removed") RedisEvent("API_INVOKER_OFFBOARDED", RedisEvent("API_INVOKER_OFFBOARDED", ["apiInvokerIds"], api_invoker_ids=[onboard_id]).send_event() [[onboard_id]]).send_event() RedisInternalEvent("INVOKER-REMOVED", RedisInternalEvent("INVOKER-REMOVED", "invokerId", "invokerId", { { Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/consumer_messager.py +10 −10 Original line number Original line Diff line number Diff line Loading @@ -41,13 +41,13 @@ class Subscriber(): api_id = security_context_information.get('api_id') api_id = security_context_information.get('api_id') self.invoker_ops.remove_services_list( self.invoker_ops.remove_services_list( api_invoker_id, api_id) api_invoker_id, api_id) elif internal_redis_event.get('event') == "INVOKER-REMOVED": # elif internal_redis_event.get('event') == "INVOKER-REMOVED": api_invoker_id = internal_redis_event.get( # api_invoker_id = internal_redis_event.get( 'information', {"api_invoker_id": None}).get('api_invoker_id') # 'information', {"api_invoker_id": None}).get('api_invoker_id') if api_invoker_id is not None: # if api_invoker_id is not None: self.acls_ops.remove_invoker_acl(api_invoker_id) # self.acls_ops.remove_invoker_acl(api_invoker_id) elif internal_redis_event.get('event') == "PROVIDER-REMOVED": # elif internal_redis_event.get('event') == "PROVIDER-REMOVED": aef_ids = internal_redis_event.get( # aef_ids = internal_redis_event.get( 'information', {"aef_ids": []}).get('aef_ids') # 'information', {"aef_ids": []}).get('aef_ids') if len(aef_ids) > 0: # if len(aef_ids) > 0: self.acls_ops.remove_provider_acls(aef_ids[0]) # self.acls_ops.remove_provider_acls(aef_ids[0]) services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py +25 −4 Original line number Original line Diff line number Diff line Loading @@ -6,7 +6,14 @@ publisher_ops = Publisher() class RedisEvent(): class RedisEvent(): def __init__(self, event, event_detail_key=None, information=None) -> None: def __init__(self, event, service_api_descriptions=None, api_ids=None, api_invoker_ids=None, acc_ctrl_pol_list=None, invocation_logs=None, api_topo_hide=None) -> None: self.EVENTS_ENUM = [ self.EVENTS_ENUM = [ 'SERVICE_API_AVAILABLE', 'SERVICE_API_AVAILABLE', 'SERVICE_API_UNAVAILABLE', 'SERVICE_API_UNAVAILABLE', Loading @@ -27,9 +34,23 @@ class RedisEvent(): self.redis_event = { self.redis_event = { "event": event "event": event } } if event_detail_key != None and information != None: # Add event filter keys to an auxiliary object self.redis_event['key'] = event_detail_key event_detail = { self.redis_event['information'] = information "serviceAPIDescriptions": service_api_descriptions, "apiIds": api_ids, "apiInvokerIds": api_invoker_ids, "accCtrlPolList": acc_ctrl_pol_list, "invocationLogs": invocation_logs, "apiTopoHide": api_topo_hide } # Filter keys with not None values filtered_event_detail = {k: v for k, v in event_detail.items() if v is not None} # If there are valid values then add to redis event. if filtered_event_detail: self.redis_event["event_detail"] = filtered_event_detail def to_string(self): def to_string(self): return json.dumps(self.redis_event, cls=JSONEncoder) return json.dumps(self.redis_event, cls=JSONEncoder) Loading services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/consumer_messager.py +2 −1 Original line number Original line Diff line number Diff line Loading @@ -42,4 +42,5 @@ class Subscriber(): aef_ids = internal_redis_event.get( aef_ids = internal_redis_event.get( 'information', {"aef_ids": []}).get('aef_ids') 'information', {"aef_ids": []}).get('aef_ids') if len(aef_ids) > 0: if len(aef_ids) > 0: self.acls_ops.remove_provider_acls(aef_ids[0]) for aef_id in aef_ids: self.acls_ops.remove_provider_acls(aef_id) services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/internal_service_ops.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -59,7 +59,7 @@ class InternalServiceOps(Resource): "apiInvokerPolicies": inserted_service_acls_camel['apiInvokerPolicies'] "apiInvokerPolicies": inserted_service_acls_camel['apiInvokerPolicies'] } } RedisEvent("ACCESS_CONTROL_POLICY_UPDATE", RedisEvent("ACCESS_CONTROL_POLICY_UPDATE", ["accCtrlPolList"], [accCtrlPolListExt]).send_event() acc_ctrl_pol_list=accCtrlPolListExt).send_event() current_app.logger.info( current_app.logger.info( f"Invoker ACL added for invoker: {invoker_id} for service: {service_id}") f"Invoker ACL added for invoker: {invoker_id} for service: {service_id}") Loading 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 @@ -107,8 +107,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 201: if res.status_code == 201: current_app.logger.info("Invoker Created") current_app.logger.info("Invoker Created") RedisEvent("API_INVOKER_ONBOARDED", RedisEvent("API_INVOKER_ONBOARDED", ["apiInvokerIds"], api_invoker_ids=[str(api_invoker_id)]).send_event() [[str(api_invoker_id)]]).send_event() return res return res def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): Loading Loading @@ -154,8 +153,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 200: if res.status_code == 200: current_app.logger.info("Invoker Updated") current_app.logger.info("Invoker Updated") RedisEvent("API_INVOKER_UPDATED", RedisEvent("API_INVOKER_UPDATED", ["apiInvokerIds"], api_invoker_ids=[onboard_id]).send_event() [[onboard_id]]).send_event() return res return res except Exception as e: except Exception as e: Loading Loading @@ -183,8 +181,7 @@ class InvokerManagementOperations(Resource): if res.status_code == 204: if res.status_code == 204: current_app.logger.info("Invoker Removed") current_app.logger.info("Invoker Removed") RedisEvent("API_INVOKER_OFFBOARDED", RedisEvent("API_INVOKER_OFFBOARDED", ["apiInvokerIds"], api_invoker_ids=[onboard_id]).send_event() [[onboard_id]]).send_event() RedisInternalEvent("INVOKER-REMOVED", RedisInternalEvent("INVOKER-REMOVED", "invokerId", "invokerId", { { Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/consumer_messager.py +10 −10 Original line number Original line Diff line number Diff line Loading @@ -41,13 +41,13 @@ class Subscriber(): api_id = security_context_information.get('api_id') api_id = security_context_information.get('api_id') self.invoker_ops.remove_services_list( self.invoker_ops.remove_services_list( api_invoker_id, api_id) api_invoker_id, api_id) elif internal_redis_event.get('event') == "INVOKER-REMOVED": # elif internal_redis_event.get('event') == "INVOKER-REMOVED": api_invoker_id = internal_redis_event.get( # api_invoker_id = internal_redis_event.get( 'information', {"api_invoker_id": None}).get('api_invoker_id') # 'information', {"api_invoker_id": None}).get('api_invoker_id') if api_invoker_id is not None: # if api_invoker_id is not None: self.acls_ops.remove_invoker_acl(api_invoker_id) # self.acls_ops.remove_invoker_acl(api_invoker_id) elif internal_redis_event.get('event') == "PROVIDER-REMOVED": # elif internal_redis_event.get('event') == "PROVIDER-REMOVED": aef_ids = internal_redis_event.get( # aef_ids = internal_redis_event.get( 'information', {"aef_ids": []}).get('aef_ids') # 'information', {"aef_ids": []}).get('aef_ids') if len(aef_ids) > 0: # if len(aef_ids) > 0: self.acls_ops.remove_provider_acls(aef_ids[0]) # self.acls_ops.remove_provider_acls(aef_ids[0])
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py +25 −4 Original line number Original line Diff line number Diff line Loading @@ -6,7 +6,14 @@ publisher_ops = Publisher() class RedisEvent(): class RedisEvent(): def __init__(self, event, event_detail_key=None, information=None) -> None: def __init__(self, event, service_api_descriptions=None, api_ids=None, api_invoker_ids=None, acc_ctrl_pol_list=None, invocation_logs=None, api_topo_hide=None) -> None: self.EVENTS_ENUM = [ self.EVENTS_ENUM = [ 'SERVICE_API_AVAILABLE', 'SERVICE_API_AVAILABLE', 'SERVICE_API_UNAVAILABLE', 'SERVICE_API_UNAVAILABLE', Loading @@ -27,9 +34,23 @@ class RedisEvent(): self.redis_event = { self.redis_event = { "event": event "event": event } } if event_detail_key != None and information != None: # Add event filter keys to an auxiliary object self.redis_event['key'] = event_detail_key event_detail = { self.redis_event['information'] = information "serviceAPIDescriptions": service_api_descriptions, "apiIds": api_ids, "apiInvokerIds": api_invoker_ids, "accCtrlPolList": acc_ctrl_pol_list, "invocationLogs": invocation_logs, "apiTopoHide": api_topo_hide } # Filter keys with not None values filtered_event_detail = {k: v for k, v in event_detail.items() if v is not None} # If there are valid values then add to redis event. if filtered_event_detail: self.redis_event["event_detail"] = filtered_event_detail def to_string(self): def to_string(self): return json.dumps(self.redis_event, cls=JSONEncoder) return json.dumps(self.redis_event, cls=JSONEncoder) Loading
services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/consumer_messager.py +2 −1 Original line number Original line Diff line number Diff line Loading @@ -42,4 +42,5 @@ class Subscriber(): aef_ids = internal_redis_event.get( aef_ids = internal_redis_event.get( 'information', {"aef_ids": []}).get('aef_ids') 'information', {"aef_ids": []}).get('aef_ids') if len(aef_ids) > 0: if len(aef_ids) > 0: self.acls_ops.remove_provider_acls(aef_ids[0]) for aef_id in aef_ids: self.acls_ops.remove_provider_acls(aef_id)
services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/internal_service_ops.py +1 −1 Original line number Original line Diff line number Diff line Loading @@ -59,7 +59,7 @@ class InternalServiceOps(Resource): "apiInvokerPolicies": inserted_service_acls_camel['apiInvokerPolicies'] "apiInvokerPolicies": inserted_service_acls_camel['apiInvokerPolicies'] } } RedisEvent("ACCESS_CONTROL_POLICY_UPDATE", RedisEvent("ACCESS_CONTROL_POLICY_UPDATE", ["accCtrlPolList"], [accCtrlPolListExt]).send_event() acc_ctrl_pol_list=accCtrlPolListExt).send_event() current_app.logger.info( current_app.logger.info( f"Invoker ACL added for invoker: {invoker_id} for service: {service_id}") f"Invoker ACL added for invoker: {invoker_id} for service: {service_id}") Loading