Skip to content
Snippets Groups Projects
Commit a78904e8 authored by torrespel's avatar torrespel
Browse files

fix events redis

parent 9b544ad2
No related branches found
No related tags found
2 merge requests!99Merge Latest changes from staging to main,!78Fix enhanced events
Pipeline #10371 failed
......@@ -17,6 +17,7 @@ from multiprocessing import Process
from threading import Thread
from flask_executor import Executor
from flask_apscheduler import APScheduler
from datetime import datetime
from logging.handlers import RotatingFileHandler
from config import Config
import os
......@@ -144,18 +145,24 @@ if monitoring_value == "true":
config = Config()
executor = Executor(app.app)
subscriber = Subscriber()
# scheduler = APScheduler()
# scheduler.init_app(app.app)
scheduler = APScheduler()
scheduler.init_app(app.app)
scheduler.start()
# @app.app.before_first_request
# def create_listener_message():
# executor.submit(subscriber.listen)
first = True
# first = True
@app.app.before_request
def create_listener_message():
global first
if first:
executor.submit(subscriber.listen)
first = False
@scheduler.task('date', id='listener', next_run_time=datetime.now())
def up_listener():
with scheduler.app.app_context():
executor.submit(subscriber.listen())
# @app.app.before_request
# def create_listener_message():
# global first
# if first:
# executor.submit(subscriber.listen)
# first = False
......@@ -54,12 +54,12 @@ class EventSubscriptionsOperations(Resource):
current_app.logger.error("Bad url format")
return bad_request_error(detail="Bad Param", cause = "Detected Bad formar of param", invalid_params=[{"param": "notificationDestination", "reason": "Not valid URL format"}])
if event_subscription.supportedFeatures is None:
return bad_request_error(
detail="supportedFeatures must be present in this request",
cause="supportedFeatures missed",
invalid_params=[{"param": "supportedFeatures", "reason": "not defined"}]
)
# if event_subscription.supported_features is None:
# return bad_request_error(
# detail="supportedFeatures must be present in this request",
# cause="supportedFeatures missed",
# invalid_params=[{"param": "supportedFeatures", "reason": "not defined"}]
# )
## Verify that this subscriberID exist in publishers or invokers
......@@ -132,12 +132,12 @@ class EventSubscriptionsOperations(Resource):
current_app.logger.debug("Updating event subscription")
if event_subscription.supportedFeatures is None:
return bad_request_error(
detail="supportedFeatures must be present in this request",
cause="supportedFeatures missed",
invalid_params=[{"param": "supportedFeatures", "reason": "not defined"}]
)
# if event_subscription.supported_features is None:
# return bad_request_error(
# detail="supportedFeatures must be present in this request",
# cause="supportedFeatures missed",
# invalid_params=[{"param": "supportedFeatures", "reason": "not defined"}]
# )
result = self.__check_subscriber_id(subscriber_id)
......
......@@ -33,25 +33,27 @@ class Notifications():
current_app.logger.debug(url)
data = EventNotification(sub["subscription_id"], events=redis_event.get('event'))
if redis_event.get('key', None) != None and redis_event.get('information', None) != None:
if EventSubscription.return_supp_feat_dict(sub["supported_features"])["EnhancedEventReport"]:
event_detail={}
# if EventSubscription.return_supp_feat_dict(sub["supported_features"])["EnhancedEventReport"]:
event_detail={}
for pos, key in enumerate(redis_event.get('key', None)):
current_app.logger.debug(f"information: {redis_event.get('information', None)[pos]}")
if redis_event.get('event', None) in ["SERVICE_API_AVAILABLE", "SERVICE_API_UNAVAILABLE"]:
event_detail["apiIds"]=redis_event.get('information', None)["apiIds"]
if EventSubscription.return_supp_feat_dict(sub["supported_features"])["ApiStatusMonitoring"] and "serviceAPIDescriptions" in redis_event.get('key', None):
event_detail["serviceAPIDescriptions"]=redis_event.get('information', None)["serviceAPIDescription"]
event_detail["apiIds"]=[redis_event.get('information', None)[pos]]
# if EventSubscription.return_supp_feat_dict(sub["supported_features"])["ApiStatusMonitoring"] and "serviceAPIDescriptions" in information:
# event_detail["serviceAPIDescriptions"]=information["serviceAPIDescription"]
elif redis_event.get('event', None) in ["SERVICE_API_UPDATE"]:
event_detail["serviceAPIDescriptions"]=redis_event.get('information', None)["serviceAPIDescription"]
event_detail["serviceAPIDescriptions"]=redis_event.get('information', None)[pos]
elif redis_event.get('event', None) in ["API_INVOKER_ONBOARDED", "API_INVOKER_OFFBOARDED", "API_INVOKER_UPDATED"]:
event_detail["apiInvokerIds"]=redis_event.get('information', None)["apiInvokerIds"]
event_detail["apiInvokerIds"]=redis_event.get('information', None)[pos]
elif redis_event.get('event', None) in ["ACCESS_CONTROL_POLICY_UPDATE"]:
event_detail["accCtrlPolList"]=redis_event.get('information', None)["accCtrlPolList"]
event_detail["accCtrlPolList"]=redis_event.get('information', None)[pos]
elif redis_event.get('event', None) in ["SERVICE_API_INVOCATION_SUCCESS", "SERVICE_API_INVOCATION_FAILURE"]:
event_detail["invocationLogs"]=redis_event.get('information', None)["invocationLogs"]
event_detail["invocationLogs"]=redis_event.get('information', None)[pos]
elif redis_event.get('event', None) in ["API_TOPOLOGY_HIDING_CREATED", "API_TOPOLOGY_HIDING_REVOKED"]:
event_detail["apiTopoHide"]=redis_event.get('information', None)["apiTopoHide"]
event_detail["apiTopoHide"]=redis_event.get('information', None)[pos]
current_app.logger.debug(event_detail)
data.event_detail=event_detail
current_app.logger.debug(event_detail)
data.event_detail=event_detail
current_app.logger.debug(json.dumps(data.to_dict(),cls=CustomJSONEncoder))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment