# agents
# Global variables
**Descripción**
Las siguientes variables pueden modificarse de modo global.
**Nombre** | **Descripción** | **Valor por defecto** |
| Grupo de destino de Pandora FMS | '' |
| Intervalo de monitorización del agente | 300 |
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** |
config | dict | Si | Un diccionario que contiene las claves de configuración y sus nuevos valores |
**Versión**
**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** |
dict | Un diccionario que contiene los ajustes de configuración actuales |
**Versión**
**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** |
module | dict | Si | Un diccionario que contiene información sobre el módulo |
**Return**
**Versión**
**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\_name | str | Si | El nombre del módulo a eliminar |
**Return**
**Versión**
**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\_name | str | Si | El nombre del módulo a actualizar |
module | dict | Si | Un diccionario que contiene la información actualizada del módulo |
**Return**
**Versión**
**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\_name | str | SI | El nombre del módulo a recuperar |
**Return**
**Tipo** | **Descripción** |
dict | Un diccionario que contiene información del módulo si se encuentra, de lo contrario un diccionario vacío |
**Versión**
**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** |
dict | Un diccionario que contiene las definiciones de todos los módulos añadidos |
**Versión**
**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\_module | dict | Si | Un diccionario que contiene información sobre el módulo de registro |
**Return**
**Versión**
**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**
**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\_flag | bool | SI | Una bandera que indica si imprimir la representación XML |
**Return**
**Tipo** | **Descripción** |
str | La representación XML del agente |
**Versión**
**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\_name | str | Si | Nombre de la variable a establecer |
value | None | Si | Valor a asignar a la variable |
**Return**
**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\_name | str | Si | Nombre de la variable a establecer |
**Return**
**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** |
str | Sistema 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** |
dict | dict | No | Diccionario 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** |
agent | dict | Si | Diccionario con la configuración del agente |
modules | list | Si | Lista de módulos |
log\_modules | list | No | Sirve para añadir módulos de log. Por defecto None |
| | | Sirve para mostrar el XML de los módulos en STDOUT. Por defecto None |
**Return**
**Tipo** | **Descripción** |
str | Devuelve 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)
```