diff --git a/pandora_server/extras/pandoraPlugintools/agents.py b/pandora_server/extras/pandoraPlugintools/agents.py index f560677588..658c1a0bb4 100644 --- a/pandora_server/extras/pandoraPlugintools/agents.py +++ b/pandora_server/extras/pandoraPlugintools/agents.py @@ -12,7 +12,7 @@ from .transfer import write_xml # Its values can be changed. ######################################################################################### -global_variables = { +GLOBAL_VARIABLES = { 'agents_group_name' : '', 'interval' : 300 } @@ -41,13 +41,13 @@ def set_global_variable( value ): """ - Sets the value of a global variable in the 'global_variables' dictionary. + Sets the value of a global variable in the 'GLOBAL_VARIABLES' dictionary. Args: variable_name (str): Name of the variable to set. value (any): Value to assign to the variable. """ - set_dict_key_value(global_variables, variable_name, value) + set_dict_key_value(GLOBAL_VARIABLES, variable_name, value) #### # Agent class @@ -92,8 +92,8 @@ def init_agent( "os_version" : "", "timestamp" : now(), "address" : "", - "group" : global_variables['agents_group_name'], - "interval" : global_variables['interval'], + "group" : GLOBAL_VARIABLES['agents_group_name'], + "interval" : GLOBAL_VARIABLES['interval'], "agent_mode" : "1", } diff --git a/pandora_server/extras/pandoraPlugintools/discovery.py b/pandora_server/extras/pandoraPlugintools/discovery.py index 589c07bf42..22dfb9d3f4 100644 --- a/pandora_server/extras/pandoraPlugintools/discovery.py +++ b/pandora_server/extras/pandoraPlugintools/discovery.py @@ -5,52 +5,10 @@ import json # Define some global variables ######################################################################################### -output = {} -error_level = 0 -summary = {} -info = "" -monitoring_data = [] - -#### -# Set fixed value to summary key -######################################################################################### -def set_summary_value( - key: str = "", - value = "" - ): - """ - Sets a fixed value for a key in the 'summary' dictionary. - - Args: - key (str): Key to set the value for. - value (any): Value to assign to the key. - """ - global summary - - summary[key] = value - -#### -# Add value to summary key -######################################################################################### -def add_summary_value( - key: str = "", - value = "" - ): - """ - Adds a value to a key in the 'summary' dictionary. - - If the key already exists, the value will be incremented. Otherwise, a new key will be created. - - Args: - key (str): Key to add the value to. - value (any): Value to add to the key. - """ - global summary - - if key in summary: - summary[key] += value - else: - set_summary_value(key, value) +ERROR_LEVEL = 0 +SUMMARY = {} +INFO = "" +MONITORING_DATA = [] #### # Set error level to value @@ -64,44 +22,98 @@ def set_error_level( Args: value (int, optional): The error level value. Default is 0. """ - global error_level + global ERROR_LEVEL - error_level = value + ERROR_LEVEL = value #### -# Add data to info +# Set fixed value to summary key ######################################################################################### -def add_info_value( - data: str = "" +def set_summary_value( + key: str = "", + value = "" ): """ - Adds data to the 'info' variable. + Sets a fixed value for a key in the 'SUMMARY' dictionary. Args: - data (str, optional): The data to add to the 'info' variable. Default is an empty string. + key (str): Key to set the value for. + value (any): Value to assign to the key. """ - global info + global SUMMARY - info += data + SUMMARY[key] = value + +#### +# Add value to summary key +######################################################################################### +def add_summary_value( + key: str = "", + value = "" + ): + """ + Adds a value to a key in the 'SUMMARY' dictionary. + + If the key already exists, the value will be incremented. Otherwise, a new key will be created. + + Args: + key (str): Key to add the value to. + value (any): Value to add to the key. + """ + global SUMMARY + + if key in SUMMARY: + SUMMARY[key] += value + else: + set_summary_value(key, value) #### # Set fixed value to info ######################################################################################### def set_info_value( - data: str = "" + value: str = "" ): """ - Sets a fixed value to the 'info' variable. + Sets a fixed value to the 'INFO' variable. Args: - data (str, optional): The value to set in the 'info' variable. Default is an empty string. + data (str, optional): The value to set in the 'INFO' variable. Default is an empty string. """ - global info + global INFO - info = data + INFO = value #### -# Set fixed value to info +# Add data to info +######################################################################################### +def add_info_value( + value: str = "" + ): + """ + Adds data to the 'INFO' variable. + + Args: + data (str, optional): The data to add to the 'INFO' variable. Default is an empty string. + """ + global INFO + + INFO += value + +#### +# Set fixed value to monitoring data +######################################################################################### +def set_monitoring_data( + data: list = [] + ): + """ + TODO: Add comments + """ + global MONITORING_DATA + + MONITORING_DATA = data + +#### +# Add value to monitoring data ######################################################################################### def add_monitoring_data( data: dict = {} @@ -109,9 +121,9 @@ def add_monitoring_data( """ TODO: Add comments """ - global monitoring_data + global MONITORING_DATA - monitoring_data.append(data) + MONITORING_DATA.append(data) #### # Print JSON output and exit script @@ -120,28 +132,27 @@ def print_output(): """ Prints the JSON output and exits the script. - The function uses the global variables 'output', 'error_level', 'summary', and 'info' + The function uses the global variables 'ERROR_LEVEL', 'SUMMARY', and 'info' to create the JSON output. It then prints the JSON string and exits the script with - the 'error_level' as the exit code. + the 'ERROR_LEVEL' as the exit code. """ - global output - global error_level - global summary - global info - global monitoring_data + global ERROR_LEVEL + global SUMMARY + global INFO + global MONITORING_DATA - output={} - if summary: - output["summary"] = summary + OUTPUT={} + if SUMMARY: + OUTPUT["summary"] = SUMMARY - if info: - output["info"] = info + if INFO: + OUTPUT["info"] = INFO - if monitoring_data: - output["monitoring_data"] = monitoring_data + if MONITORING_DATA: + OUTPUT["monitoring_data"] = MONITORING_DATA - json_string = json.dumps(output) + json_string = json.dumps(OUTPUT) print(json_string) - sys.exit(error_level) + sys.exit(ERROR_LEVEL) diff --git a/pandora_server/extras/pandoraPlugintools/threads.py b/pandora_server/extras/pandoraPlugintools/threads.py index 93c36b1cf5..8e3a5dfa09 100644 --- a/pandora_server/extras/pandoraPlugintools/threads.py +++ b/pandora_server/extras/pandoraPlugintools/threads.py @@ -7,9 +7,9 @@ from multiprocessing import Pool, Manager # Define multi-processing internal global variables. ######################################################################################### -_manager = Manager() -_shared_dict = _manager.dict() -_shared_dict_lock = _manager.Lock() +_MANAGER = Manager() +_SHARED_DICT = _MANAGER.dict() +_SHARED_DICT_LOCK = _MANAGER.Lock() #### # Internal use only: Run a given function in a thread @@ -110,11 +110,11 @@ def set_shared_dict_value( Set a given value to a key in the internal shared dict. Used by all parallel processes. """ - global _shared_dict + global _SHARED_DICT if key is not None: - with _shared_dict_lock: - _shared_dict[key] = value + with _SHARED_DICT_LOCK: + _SHARED_DICT[key] = value #### # Add a given value to a key in the internal shared dict. @@ -128,12 +128,12 @@ def add_shared_dict_value( Add a given value to a key in the internal shared dict. Used by all parallel processes. """ - global _shared_dict + global _SHARED_DICT if key is not None: - with _shared_dict_lock: - if key in _shared_dict: - _shared_dict[key] += value + with _SHARED_DICT_LOCK: + if key in _SHARED_DICT: + _SHARED_DICT[key] += value else: set_shared_dict_value(key, value) @@ -148,11 +148,11 @@ def get_shared_dict_value( Get the value of a key in the internal shared dict. Used by all parallel processes. """ - global _shared_dict + global _SHARED_DICT - with _shared_dict_lock: - if key in _shared_dict and key is not None: - return _shared_dict[key] + with _SHARED_DICT_LOCK: + if key in _SHARED_DICT and key is not None: + return _SHARED_DICT[key] else: return None diff --git a/pandora_server/extras/pandoraPlugintools/transfer.py b/pandora_server/extras/pandoraPlugintools/transfer.py index e06b6a8765..ebe35daf0f 100644 --- a/pandora_server/extras/pandoraPlugintools/transfer.py +++ b/pandora_server/extras/pandoraPlugintools/transfer.py @@ -12,7 +12,7 @@ from .agents import print_agent # Its values can be changed. ######################################################################################### -global_variables = { +GLOBAL_VARIABLES = { 'transfer_mode' : 'tentacle', 'temporal' : '/tmp', 'data_dir' : '/var/spool/pandora/data_in/', @@ -30,13 +30,13 @@ def set_global_variable( value ): """ - Sets the value of a global variable in the 'global_variables' dictionary. + Sets the value of a global variable in the 'GLOBAL_VARIABLES' dictionary. Args: variable_name (str): Name of the variable to set. value (any): Value to assign to the variable. """ - set_dict_key_value(global_variables, variable_name, value) + set_dict_key_value(GLOBAL_VARIABLES, variable_name, value) #### # Sends file using tentacle protocol @@ -44,7 +44,7 @@ def set_global_variable( def tentacle_xml( data_file: str = "", tentacle_ops: dict = {}, - tentacle_path: str = global_variables['tentacle_client'], + tentacle_path: str = GLOBAL_VARIABLES['tentacle_client'], debug: int = 0, print_errors: bool = True ) -> bool: @@ -63,11 +63,11 @@ def tentacle_xml( if data_file is not None : if not 'address' in tentacle_ops: - tentacle_ops['address'] = global_variables['tentacle_ip'] + tentacle_ops['address'] = GLOBAL_VARIABLES['tentacle_ip'] if not 'port' in tentacle_ops: - tentacle_ops['port'] = global_variables['tentacle_port'] + tentacle_ops['port'] = GLOBAL_VARIABLES['tentacle_port'] if not 'extra_opts' in tentacle_ops: - tentacle_ops['extra_opts'] = global_variables['tentacle_extra_opts'] + tentacle_ops['extra_opts'] = GLOBAL_VARIABLES['tentacle_extra_opts'] if tentacle_ops['address'] is None : if print_errors: @@ -108,11 +108,11 @@ def tentacle_xml( ######################################################################################### def transfer_xml( file: str = "", - transfer_mode: str = global_variables['transfer_mode'], - tentacle_ip: str = global_variables['tentacle_ip'], - tentacle_port: int = global_variables['tentacle_port'], - tentacle_extra_opts: str = global_variables['tentacle_extra_opts'], - data_dir: str = global_variables['data_dir'] + transfer_mode: str = GLOBAL_VARIABLES['transfer_mode'], + tentacle_ip: str = GLOBAL_VARIABLES['tentacle_ip'], + tentacle_port: int = GLOBAL_VARIABLES['tentacle_port'], + tentacle_extra_opts: str = GLOBAL_VARIABLES['tentacle_extra_opts'], + data_dir: str = GLOBAL_VARIABLES['data_dir'] ): """ @@ -120,10 +120,10 @@ def transfer_xml( Args: file (str): Path to file to send. - transfer_mode (str, optional): Transfer mode. Default is global_variables['transfer_mode']. - tentacle_ip (str, optional): IP address for Tentacle. Default is global_variables['tentacle_ip']. - tentacle_port (str, optional): Port for Tentacle. Default is global_variables['tentacle_port']. - data_dir (str, optional): Path to data dir with local transfer mode. Default is global_variables['data_dir']. + transfer_mode (str, optional): Transfer mode. Default is GLOBAL_VARIABLES['transfer_mode']. + tentacle_ip (str, optional): IP address for Tentacle. Default is GLOBAL_VARIABLES['tentacle_ip']. + tentacle_port (str, optional): Port for Tentacle. Default is GLOBAL_VARIABLES['tentacle_port']. + data_dir (str, optional): Path to data dir with local transfer mode. Default is GLOBAL_VARIABLES['data_dir']. """ if file is not None: if transfer_mode != "local": @@ -142,7 +142,7 @@ def transfer_xml( def write_xml( xml: str = "", agent_name: str = "", - data_dir: str = global_variables['temporal'] + data_dir: str = GLOBAL_VARIABLES['temporal'] ) -> str: """ Creates a agent .data file in the specified data_dir folder