# agents # Global variables **Descripción** Las siguientes variables pueden modificarse de modo global.
**Nombre****Descripción****Valor por defecto**
agents_group_name
Grupo de destino de Pandora FMS''
interval
Intervalo de monitorización del agente300
Para modificar las variables globales use la función : [set\_global\_variable](https://pandorafms.com/guides/public/books/plugintools/page/set-global-variable) **Versión** - 1.0.0 # class Agent **Descripción** Clase básica de agente. Requiere parámetros de agente (config {diccionario}) y definición de módulo (modules\_def \[lista de diccionarios\]) **Ejemplo** ``` import pandoraPlugintools as pt # Create an instance of the Agent class agent_instance = pt.agents.Agent() ``` ### **Funciones** ##### **update\_config**
**Descripción** Actualiza los ajustes de configuración con nuevos valores. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
configdictSiUn diccionario que contiene las claves de configuración y sus nuevos valores
**Versión**
- 1.0.0
**Ejemplo** ``` # Update agent configuration new_config = { "agent_name": "UpdatedAgentName", "description": "Updated agent description" } agent_instance.update_config(new_config) ``` ##### **get\_config** **Descripción** Recupera los ajustes de configuración actuales. **Return**
**Tipo****Descripción**
dictUn diccionario que contiene los ajustes de configuración actuales
**Versión**
- 1.0.0
**Ejemplo** ``` # Get current agent configuration current_config = agent_instance.get_config() print("Current Agent Configuration:", current_config) ``` ##### **add\_module** **Descripción** Añade un nuevo módulo a la lista de módulos. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
moduledictSiUn diccionario que contiene información sobre el módulo
**Return**
**Tipo**
None
**Versión**
- 1.0.0
**Ejemplo** ``` # Define a module and add it to the agent module_data = { "name": "HostAlive", "type": "generic_proc", "value": 1 } agent_instance.add_module(module_data) ``` ##### **del\_module** **Descripción** Elimina un módulo basándose en su nombre **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
module\_namestrSiEl nombre del módulo a eliminar
**Return**
**Tipo**
None
**Versión**
- 1.0.0
**Ejemplo** ``` # Delete a module based on its name module_name_to_delete = "HostAlive" agent_instance.del_module(module_name_to_delete) ``` **update\_module** **Descripción** Actualiza un módulo basándose en su nombre **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
module\_namestrSiEl nombre del módulo a actualizar
moduledictSiUn diccionario que contiene la información actualizada del módulo
**Return**
**Tipo**
None
**Versión**
- 1.0.0
**Ejemplo** ``` # Update a module based on its name module_name_to_update = "HostAlive" updated_module_data = { "type": "generic_data", "value": 1 } agent_instance.update_module(module_name_to_update, updated_module_data) ``` ##### **get\_module** **Descripción** Recupera información del módulo en base a su nombre **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
module\_namestrSIEl nombre del módulo a recuperar
**Return**
**Tipo****Descripción**
dictUn diccionario que contiene información del módulo si se encuentra, de lo contrario un diccionario vacío
**Versión**
- 1.0.0
**Ejemplo** ``` # Get module information by name module_info = agent_instance.get_module("HostAlive") print("Module Information:", module_info) ``` ##### **get\_modules\_def** **Descripción** Recupera las definiciones de todos los módulos añadidos. **Return**
**Tipo****Descripción**
dictUn diccionario que contiene las definiciones de todos los módulos añadidos
**Versión**
- 1.0.0
**Ejemplo** ``` # Get definitions of all added modules all_module_defs = agent_instance.get_modules_def() print("All Module Definitions:", all_module_defs) ``` ##### **add\_log\_module** **Descripción** Añade un nuevo módulo de registro a la lista de módulos de registro. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
log\_moduledictSiUn diccionario que contiene información sobre el módulo de registro
**Return**
**Tipo**
None
**Versión**
- 1.0.0
**Ejemplo** ``` # Define a log module and add it to the agent log_module_data = { "source": "LogSource", "type": "log", "value": "El host no es accesible" } agent_instance.add_log_module(log_module_data) ``` ##### **get\_log\_modules\_def** **Descripción**
Recupera las definiciones de todos los módulos de registro añadidos
**Return**
**Tipo****Descripción**
dict Un diccionario que contiene las definiciones de todos los módulos de registro añadidos
**Versión**
- 1.0.0
**Ejemplo** ``` # Get definitions of all added log modules all_log_module_defs = agent_instance.get_log_modules_def() print("All Log Module Definitions:", all_log_module_defs) ``` ##### **print\_xml** **Descripción** Genera y opcionalmente imprime la representación XML del agente. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
print\_flagboolSIUna bandera que indica si imprimir la representación XML
**Return**
**Tipo****Descripción**
strLa representación XML del agente
**Versión**
- 1.0.0
**Ejemplo** ``` # Generate and optionally print the XML representation of the agent xml_representation = agent_instance.print_xml(print_flag=True) print("Agent XML Representation:\n", xml_representation) ``` # set_global_variable **Descripción** Establece el valor de una variable global en el diccionario 'global\_variables'. **Parámetros**
**Nombre** **Tipo****Requerido****Descripción**
variable\_namestrSiNombre de la variable a establecer
valueNoneSiValor a asignar a la variable
**Return**
**Tipo**
None
**Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt variable_name = "agents_group_name" value = "Servers" pt.agents.set_global_variable(variable_name, value) print(pt.agents._GLOBAL_VARIABLES) ``` # get_global_variable **Descripción** Establece el valor de una variable global en el diccionario 'global\_variables'. **Parámetros**
**Nombre** **Tipo****Requerido****Descripción**
variable\_namestrSiNombre de la variable a establecer
**Return**
**Tipo**
None
**Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt variable_name = "agents_group_name" value = pt.agents.get_global_variable(variable_name) print(f"{variable_name}: {value}") ``` # get_os **Descripción** Detecta el sistema operativo del sistema. **Return**
**Tipo****Descripción**
strSistema operativo del sistema
**Requisitos** - os **Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt os_name = pt.agents.get_os() print("Operating System:", os_name) ``` # init_agent **Descripción** Inicializa una plantilla de agente con valores por defecto. **Return**
**Nombre****Tipo****Requerido****Descripción**
dictdictNoDiccionario que representa la plantilla de agente con valores por defecto
**Requisitos** - datetime.datetime **Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt # Example: Initializing an agent template with default values and custom values custom_defaults = { "agent_name": "RockyLinux", "description": "Linux system", "address": "192.168.1.100" } agent_template = pt.agents.init_agent(default_values=custom_defaults) print("Agent Template:", agent_template) ``` # print_agent **Descripción** Imprime el XML del agente. **Parámetros**
**Nombre****Tipo****Requerido****Descripción**
agentdictSiDiccionario con la configuración del agente
moduleslistSiLista de módulos
log\_moduleslistNoSirve para añadir módulos de log. Por defecto None
print_flag
bool
No
Sirve para mostrar el XML de los módulos en STDOUT. Por defecto None
**Return**
**Tipo****Descripción**
strDevuelve una cadena en formato XML
**Requisitos** - modules.print\_module - modules.print\_log\_module **Versión** - 1.0.0 **Ejemplo** ``` import pandoraPlugintools as pt # Example: Creating agent and module data agent_data = { "agent_name": "Debian10", "description": "Linux system", "address": "192.168.1.100" } module_data = { "name": "Ping", "type": "generic_proc", "value": 1, "desc": "Check host alive", } agent_xml_representation = pt.agents.print_agent( agent=agent_data, modules=[module_data], print_flag=True ) print("Agent XML Representation:\n", agent_xml_representation) ```