# general
# _print_debug
**Descripción**
Imprime cualquier lista, dict, string, float o integer como un json
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
| str | Si | Elemento que será imprimido |
| bool | No | Chequeo para pintar errores. |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
device_name = "Router"
device_status = "Active"
device_data = {
"cpu_usage": 80,
"memory_usage": 60
}
information = {
"name": device_name,
"status": device_status,
"data": device_data
}
pt.agents._print_debug(information, print_errors=True)
```
2
# safe_input
**Descripción**
Convierte una cadena de entrada codificada en entidades HTML en una cadena de caracteres claros.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
| str | Si | La cadena de entrada codificada en entidades HTML |
**Return**
str | La cadena de caracteres claros descodificada |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Define an input string with HTML entities
input_string = "<p>Hello, <b>world</b>!</p>"
# Use the safe_input function to decode the HTML entities
decoded_string = pt.general.safe_input(input_string)
# Print the decoded string
print("Decoded string:", decoded_string)
```
# safe_output
**Descripción**
Convierte las entidades HTML a sus caracteres correspondientes en la cadena de entrada.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
input\_string | str | Si | La cadena de caracteres claros descodificada |
**Return**
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Define an input string with HTML entities
input_string = "<p>Hello, <b>world</b>!</p>"
# Use the safe_output function to convert HTML entities back to characters
decoded_string = pt.general.safe_output(input_string)
# Print the decoded string
print("Decoded string:", decoded_string)
```
# set_dict_key_value
**Descripción**
Asignar a una clave de un dict un valor determinado
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
input\_dict | dict | Si | Diccionario |
input\_key | str | Si | Clave del diccionario |
input\_value | None | Si | Valor del diccionario |
**Return**
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Define the dictionary of monitored devices
devices = {
'device1': {
'status': 'online',
'temperature': 25.0,
'humidity': 60.0
},
'device2': {
'status': 'offline',
'temperature': 0.0,
'humidity': 0.0
}
}
# Update the status of a device
pt.general.set_dict_key_value(devices['device1'], 'status', 'offline')
# Update the temperature of another device
pt.general.set_dict_key_value(devices['device2'], 'temperature', 22.5)
# Display the updated dictionary
print("Monitored devices dictionary:", devices)
```
# get_dict_key_value
**Descripción**
Devuelve el valor de una clave en un dict dado.
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample device monitoring data
device_data = {
'device_id': '12345',
'temperature': 28.5,
'status': 'online'
}
# Get the temperature reading from the device data
temperature = pt.general.get_dict_key_value(device_data, 'temperature')
if temperature is not None:
print("Temperature:", temperature, "C")
# Get the status of the device
status = pt.general.get_dict_key_value(device_data, 'status')
if status is not None:
print("Status:", status)
```
# generate_md5
**Descripción**
Genera un hash MD5 para la cadena de entrada dada
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
input\_string | str | Si | La cadena para la que se generará el hash MD5. |
**Return**
str | El hash MD5 de la cadena de entrada como cadena hexadecimal. |
**Requisitos**
- hashlib
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample monitoring data for a Linux system agent
name_agent = "Rocky-linux-master"
# Convert the monitoring data dictionary to a string
data_string = str(linux_system_data)
# Generate MD5 hash for the monitoring data
md5_hash = pt.general.generate_md5(data_string)
print("Linux System Monitoring Data:")
print(linux_system_data)
print("MD5 Hash:", md5_hash)
```
# now
**Descripción**
Devuelve la hora en formato aaaa/mm/dd HH:MM:SS por defecto.
**Parámetros**
| | | **Descripción** |
| | | Sirve para imprimir la hora, de no utilizarse la hora se devolverá. Por defecto None |
| | | Sirve para introducir un utimestamp, por defecto utilizará el actual. |
**Return**
**Nombre** | **Descripción** |
str | Hora en formato aaaa/mm/dd HH:MM:SS |
float | Hora en formato epoch time |
**Requisitos**
- datetime.datetime
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Get the current time in the default format
current_time_default = pt.general.now()
print("Current Time (Default Format):", current_time_default)
# Get the current time in Unix timestamp format
current_time_unix = pt.general.now(utimestamp=True)
print("Current Time (Unix Timestamp):", current_time_unix)
# Get and print the current time with the specified format
current_time_custom_format = pt.general.now(print_flag=True)
```
# translate_macros
**Descripción**
Espera un diccionario de macros clave:valor (nombre\_macro:valor\_macro) y una cadena para reemplazar la macro.
**Parámetros**
| | | **Descripción** |
| | | Diccionario de macros clave:valor (nombre\_macro:valor\_macro) |
| | | String para reemplazar la macro. |
**Return**
str | Devuelve el string parseado |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Define a dictionary of macros and their corresponding values
macros = {
"{DATE}": "2023-08-16",
"{TIME}": "15:30:00",
"{DEVICE}": "Linux Server",
"{USER}": "admin"
}
# Input string with macros
input_data = "The {DEVICE} is operational since {TIME}."
# Replace macros in the input string
translated_data = pt.general.translate_macros(macro_dic=macros, data=input_data)
# Print the translated input string
print("Translated input string:", translated_data)
```
# parse_configuration
**Descripción**
Analiza la configuración. Lee el fichero de configuración y almacena sus datos como dict.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
file | | si | Ruta del fichero de configuración. Por defecto es "/etc/pandora/pandora\_server.conf" |
separator | | no | Separador para la opción y el valor. Por defecto es " " |
default\_values | | no | Diccionario de valores por defecto |
**Return**
dict | Diccionario que contiene todas las claves y valores del fichero |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Specify the path to the configuration file
config_file = "/etc/pandora/pandora_server.conf"
# Specify the separator used in the configuration file
separator = "="
# Define default values for configuration options
default_config = {
"server_port": "8080",
"debug_mode": "false",
"log_file": "/var/log/pandora.log"
}
# Parse the configuration file and get the configuration data
parsed_config = pt.general.parse_configuration(file=config_file, separator=separator, default_values=default_config)
# Print the parsed configuration data
print("Parsed configuration:", parsed_config)
```
# parse_csv_file
**Descripción**
Lee el fichero de configuración y almacena sus datos en un array.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
file | str | Si | Ruta del fichero csv de configuración |
separator | str | No | Separador para la opción y el valor. Por defecto es ";" |
| | | Número mínimo de parámetros que debe tener cada línea. Por defecto Ninguno |
debug | bool | No | Para imprimir errores en las líneas |
**Return**
list | Contiene una lista de valores para cada línea csv |
**Requisitos**
- sys
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Specify the path to the CSV configuration file
csv_file = "data.csv"
# Specify the separator used in the CSV file
separator = ","
# Specify the minimum number of parameters each line should have
min_parameters = 3
# Parse the CSV configuration file and get the data in a list
parsed_csv_data = pt.general.parse_csv_file(file=csv_file, separator=separator, count_parameters=min_parameters, print_errors=True)
# Print the parsed CSV data
print("Parsed CSV data:", parsed_csv_data)
```
# parse_int
**Descripción**
Convierte una variable dada en una cadena.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
var | None | Si | La variable a analizar como cadena. |
**Return**
str | El valor de la cadena analizada. Si el análisis falla, devuelve "". |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample variables to be parsed as integers
var1 = "123"
var2 = "45.67"
var3 = "invalid"
# Parse the variables as integers using the parse_int function
parsed_var1 = pt.general.parse_int(var1)
parsed_var2 = pt.general.parse_int(var2)
parsed_var3 = pt.general.parse_int(var3)
# Print the parsed integer values
print("Parsed var1:", parsed_var1) # Should print: Parsed var1: 123
print("Parsed var2:", parsed_var2) # Should print: Parsed var2: 0 (parsing fails for decimal value)
print("Parsed var3:", parsed_var3) # Should print: Parsed var3: 0 (parsing fails for invalid value)
```
# parse_float
**Descripción**
Convierte una variable dada a float.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
var | None | SI | La variable a convertir en float. |
**Return**
float | El valor de float analizado. Si el análisis falla, devuelve 0. |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample variables to be parsed as floats
var1 = "123.45"
var2 = "invalid"
var3 = 67
# Parse the variables as floats using the parse_float function
parsed_var1 = pt.general.parse_float(var1)
parsed_var2 = pt.general.parse_float(var2)
parsed_var3 = pt.general.parse_float(var3)
# Print the parsed float values
print("Parsed var1:", parsed_var1) # Should print: Parsed var1: 123.45
print("Parsed var2:", parsed_var2) # Should print: Parsed var2: 0.0 (parsing fails for invalid value)
print("Parsed var3:", parsed_var3) # Should print: Parsed var3: 67.0
```
# parse_str
**Descripción**
Convierte una variable dada en una cadena.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
var | None | Si | La variable a analizar como cadena. |
**Return**
str | El valor de la cadena analizada. Si el análisis falla, devuelve "".s |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample variables to be parsed as strings
var1 = 12345
var2 = 3.14159
var3 = True
# Parse the variables as strings using the parse_str function
parsed_var1 = pt.general.parse_str(var1)
parsed_var2 = pt.general.parse_str(var2)
parsed_var3 = pt.general.parse_str(var3)
# Print the parsed string values
print("Parsed var1:", parsed_var1) # Should print: Parsed var1: 12345
print("Parsed var2:", parsed_var2) # Should print: Parsed var2: 3.14159
print("Parsed var3:", parsed_var3) # Should print: Parsed var3: True
```
# parse_bool
**Descripción**
Convierte una variable dada en bool.
**Parámetros**
**Nombre** | **Tipo** | **Requerido** | **Descripción** |
var | None | Si | La variable a convertir en bool. |
**Return**
bool | El valor bool analizado. Si el análisis falla, devuelve False. |
**Versión**
- 1.0.0
**Ejemplo**
```
import pandoraPlugintools as pt
# Sample variables to be parsed as booleans
var1 = "True"
var2 = 1
var3 = "false"
# Parse the variables as booleans using the parse_bool function
parsed_var1 = pt.general.parse_bool(var1)
parsed_var2 = pt.general.parse_bool(var2)
parsed_var3 = pt.general.parse_bool(var3)
# Print the parsed boolean values
print("Parsed var1:", parsed_var1) # Should print: Parsed var1: True
print("Parsed var2:", parsed_var2) # Should print: Parsed var2: True
print("Parsed var3:", parsed_var3) # Should print: Parsed var3: False
```