Commit da6ee2a6 authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Merge branch 'staging' into OCF91-create-robot-test-for-apistatus

parents 8c4ca516 ee40d3de
Loading
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -107,8 +107,7 @@ class InvokerManagementOperations(Resource):
        if res.status_code == 201:
            current_app.logger.info("Invoker Created")
            RedisEvent("API_INVOKER_ONBOARDED",
                       ["apiInvokerIds"],
                       [[str(api_invoker_id)]]).send_event()
                       api_invoker_ids=[str(api_invoker_id)]).send_event()
        return res

    def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail):
@@ -154,8 +153,7 @@ class InvokerManagementOperations(Resource):
            if res.status_code == 200:
                current_app.logger.info("Invoker Updated")
                RedisEvent("API_INVOKER_UPDATED",
                           ["apiInvokerIds"],
                           [[onboard_id]]).send_event()
                           api_invoker_ids=[onboard_id]).send_event()
            return res

        except Exception as e:
@@ -183,8 +181,7 @@ class InvokerManagementOperations(Resource):
            if res.status_code == 204:
                current_app.logger.info("Invoker Removed")
                RedisEvent("API_INVOKER_OFFBOARDED",
                           ["apiInvokerIds"],
                           [[onboard_id]]).send_event()
                           api_invoker_ids=[onboard_id]).send_event()
                RedisInternalEvent("INVOKER-REMOVED",
                                   "invokerId",
                                   {
+10 −10
Original line number Diff line number Diff line
@@ -41,13 +41,13 @@ class Subscriber():
                        api_id = security_context_information.get('api_id')
                        self.invoker_ops.remove_services_list(
                            api_invoker_id, api_id)
                elif internal_redis_event.get('event') == "INVOKER-REMOVED":
                    api_invoker_id = internal_redis_event.get(
                        'information', {"api_invoker_id": None}).get('api_invoker_id')
                    if api_invoker_id is not None:
                        self.acls_ops.remove_invoker_acl(api_invoker_id)
                elif internal_redis_event.get('event') == "PROVIDER-REMOVED":
                    aef_ids = internal_redis_event.get(
                        'information', {"aef_ids": []}).get('aef_ids')
                    if len(aef_ids) > 0:
                        self.acls_ops.remove_provider_acls(aef_ids[0])
                # elif internal_redis_event.get('event') == "INVOKER-REMOVED":
                #     api_invoker_id = internal_redis_event.get(
                #         'information', {"api_invoker_id": None}).get('api_invoker_id')
                #     if api_invoker_id is not None:
                #         self.acls_ops.remove_invoker_acl(api_invoker_id)
                # elif internal_redis_event.get('event') == "PROVIDER-REMOVED":
                #     aef_ids = internal_redis_event.get(
                #         'information', {"aef_ids": []}).get('aef_ids')
                #     if len(aef_ids) > 0:
                #         self.acls_ops.remove_provider_acls(aef_ids[0])
+25 −4
Original line number Diff line number Diff line
@@ -6,7 +6,14 @@ publisher_ops = Publisher()


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 = [
            'SERVICE_API_AVAILABLE',
            'SERVICE_API_UNAVAILABLE',
@@ -27,9 +34,23 @@ class RedisEvent():
        self.redis_event = {
            "event": event
        }
        if event_detail_key != None and information != None:
            self.redis_event['key'] = event_detail_key
            self.redis_event['information'] = information
        # Add event filter keys to an auxiliary object
        event_detail = {
            "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):
        return json.dumps(self.redis_event, cls=JSONEncoder)
+2 −1
Original line number Diff line number Diff line
@@ -42,4 +42,5 @@ class Subscriber():
                    aef_ids = internal_redis_event.get(
                        'information', {"aef_ids": []}).get('aef_ids')
                    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)
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ class InternalServiceOps(Resource):
                "apiInvokerPolicies": inserted_service_acls_camel['apiInvokerPolicies']
            }
            RedisEvent("ACCESS_CONTROL_POLICY_UPDATE",
                       ["accCtrlPolList"], [accCtrlPolListExt]).send_event()
                       acc_ctrl_pol_list=accCtrlPolListExt).send_event()

        current_app.logger.info(
            f"Invoker ACL added for invoker: {invoker_id} for service: {service_id}")
Loading