X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_nbi%2Futils.py;h=9b48ee8be0597e80c04f6f64bba37dfe28dd62a7;hb=79276b21b9c1b57a16cb3d000ae2c1dc055d3f46;hp=bb9e33e7fec4615ee04b9e4ac3d30f16bed20ae2;hpb=7cbd03c5c21202fff473ae943e75dd49a18f2516;p=osm%2FNBI.git diff --git a/osm_nbi/utils.py b/osm_nbi/utils.py index bb9e33e..9b48ee8 100644 --- a/osm_nbi/utils.py +++ b/osm_nbi/utils.py @@ -21,6 +21,8 @@ # For those usages not covered by the Apache License, Version 2.0 please # contact: fbravo@whitestack.com or agarcia@whitestack.com ## +from cefevent import CEFEvent +from osm_nbi import version def find_in_list(the_list, condition_lambda): @@ -31,9 +33,62 @@ def find_in_list(the_list, condition_lambda): return None +def filter_in_list(the_list, condition_lambda): + ret = [] + for item in the_list: + if condition_lambda(item): + ret.append(item) + return ret + + def find_index_in_list(the_list, condition_lambda): for index, item in enumerate(the_list): if condition_lambda(item): return index else: return -1 + + +def deep_update_dict(data, updated_data): + if isinstance(data, list): + processed_items_data = [] + for index, item in enumerate(data): + processed_items_data.append(deep_update_dict(item, updated_data[index])) + return processed_items_data + + if isinstance(data, dict): + for key in data.keys(): + if key in updated_data: + if not isinstance(data[key], dict) and not isinstance(data[key], list): + data[key] = updated_data[key] + else: + data[key] = deep_update_dict(data[key], updated_data[key]) + return data + + return data + + +def cef_event(cef_logger, cef_fields): + for key, value in cef_fields.items(): + cef_logger.set_field(key, value) + + +def cef_event_builder(config): + cef_logger = CEFEvent() + cef_fields = { + "version": config["version"], + "deviceVendor": config["deviceVendor"], + "deviceProduct": config["deviceProduct"], + "deviceVersion": get_version(), + "message": "CEF Logger", + "sourceUserName": "admin", + "severity": 1, + } + cef_event(cef_logger, cef_fields) + cef_logger.build_cef() + return cef_logger + + +def get_version(): + osm_version = version.split("+") + return osm_version[0]