Módulo de bitácoras de gesitión de OpenStack¶
Este es un módulo administrativo que le permite al administrador de Moodle consultar las bitácoras generadas al realizar la integración con OpenStack. El administrador puede descargar las bitácoras o eliminarlas al filtrar por fechas. Este módulo no puede ser desactivado y es parte fundamental de la extensión del plugin de OpenStack. Este módulo requiere que esté activado la opción de servidores BBB en demanda.
Con este módulo es posible:
- Generar bitácoras sobre todas las acciones que ejecuta el cron job de integración con OpenStack.
- Guardar en un archivo de disco los errores relacionados con la ejecución del cron job de integración con OpenStack.
- Habilitar o desactivar la opción de bitácora como archivo en disco.
- Descargar o eliminar información relacionada a las reservaciones de los usuarios de Moodle.
Cambios a nivel de base de datos¶
A continuación se describen los cambios a nivel de base de datos:
Creación de tabla mdl_bigbluebutton_os_logs
Esta tabla es la encargada de registrar los eventos relacionados con la integración de OpenStack.
| Campo | Contenido | Tipo de dato |
|---|---|---|
| id | Identificador dentro de la tabla | bigint |
| event_time | Timestamp del momento en que se registra el evento | bigint |
| stack_name | Nombre del stack dentro de OpenStack | char(256) |
| meetingid | ID de la conferencia de BBB asociada | char(256) |
| log_level* | Nivel de severidad: emergency, alert, critical, error, warning, notice, information, debug | char(256) |
| component | Componenente relacionado: plugin de BBB, Openstack, conexión con OpenStack, Moodle | char(256) |
| conference_name | Nombre de la videoconferencia asociada | char(256) |
| user_name | Nombre del usuario que creó la videoconferencia | char(256) |
| course_name | Nombre del curso asociado a la videoconferencia | char(256) |
| event | Nombre del evento que se registra | text |
| event_details | Descripción del evento, incluyendo mensajes de error. | text |
Cambios a nivel de código¶
Los cambios a nivel de código necesarios para el funcionamiento de este módulo se relacionan con la lógica del módulo, con base de datos, interfaz del módulo y con nuevas configuraciones del plugin.
Lógica del módulo
El funcionamiento del módulo se basa en ingresar un resgistro en la tabla mdl_bigbluebutton_os_logs cada vez que una videoconferencia
creada bajo la modalidad de servidores en demanada es afectada (principalmente cada vez que se ejecuta el cron job de integración con OpenStack)
y generar una entrada en el archivo de bitácora de disco cada vez que se genera un error en el proceso de gestión de la videoconferencia con OpenStack.
Los eventos de la bitácora se registran de acuerdo a su nivel de severidad:
- ADD_BBB_CONFERENCE: Creación de una conferencia por parte del usuario (Information)
- UPDATE_BBB_CONFERENCE: Edición de una conferencia por parte del usuairo (Information)
- USER_DELETED_CONFERENCE: Eliminación de una conferencia por parte del usuario antes de iniciar la creación del servidor de BBB (Information)
- CANT_ACCESS_OPENSTACK: Conexión con el servicio de Orquestación fallida (Alert)
- Solicitud de creación de servidor de BBB:
- CREATION_STARTED: Solicitud de creación aceptada (Information)
- CREATION_REQUEST_FAILED: Solicitud de creación rechazada (Error)
- Cambio en el estado de servidor de BBB:
- BBB_SERVER_READY: Servidor de BBB listo (Information)
- CREATION_FAILED: Fallló la creación de servidor de BBB (Error)
- Solicitud de eliminación de servidor de BBB:
- DELETION_STARTED: Se acepta la solicitud de eliminación (Information)
- DELETION_START_FAILED: Se rechaza la solicitud de eliminación (Error)
Los bitácoras pueden ser accesadas o eliminadas desde la interfaz del administrador de Moodle. Es importante aclarar que actualmente la bitácora en disco
se almacena en la ruta log/openstack_errors dentro del directorio del plugin, por lo cual se recomienda cambiar esto.
Se crearon bitácoras propias debido a que las proveídas por el API de Moodle no se ajustaban a los estándares deseados para la implementación de servicio ya que carecen de un nivel aceptable de personalización.
Se modificaron los siguientes archivos:
- En
lib.phpse agrega una función existente:bigbluebuttonbn_add_openstack_event: función encargada de agregar los eventos relacionados con las bitácoras de gesitión de OpenStack a la tablamdl_bigbluebutton_os_logs.
- En
lib.phpse modifican dos funciones existentes para crear los llamados a la función de inserción en las bitácoras de gesitión de OpenStack:bigbluebuttonbn_delete_instance: función existente encargada de manejar el proceso de eliminación de videoconferencias.bigbluebuttonbn_process_post_save: función existente encargada de agregar y editar videoconferencias.
- En
classes/openstack/moodle_bbb_openstack_stacks_management_tasks: se hacen múltiples llamados para registrar en las bitácoras de gesitión de OpenStack los eventos del cron job de integración con OpenStack. - En
lang: se agregan ‘’strings’’ relacionados con la interfaz administrativa de OpenStack para descargar y eliminar los registros relacionados al módulo de bitácoras.
Se agregaron los siguientes archivos:
classes/openstack/interfaces/exception_handler.php: interfaz de clase para ser implementada. Define las funciones básicas de manejo de excepciones.clases/opensatack/archive_log_exception_handler: Implementación de la interfazexeception_handler.php. Aquí se define donde se guardará el archivo de texto plano con bitácoras de errores.
Creación de interfaz administrativa
Se crean funciones en el directorio openstack_interface/ que contiene todo el código que maneja las interfaces administrativas del módulo de reservaciones. También
se crearon funciones en locallib.php para el manejo de los registros, estas se encuentran en la sección //----Admin interface records management.
Cambios en base de datos
Se modificaron los archivos db/instal.xml, db/upgrade.php y version.php para realizar los cambios a nivel de base de datos.
Nuevas configuraciones del plugin
Se agregó las siguientes configuraciones administrativas:
bigbluebuttonbn_error_log_file_enabled: Habilitación o deshabilitación del archivo de bitácoras en disco.
Para esto se modificó tanto el archivo settings.php, db/lang/ y el archivo lib.php en la sección //----Admin settings.