Al igual que en otros muchos aspectos, la Odoo Community Association (OCA) también nos otorga ayuda permitiéndonos probar los módulos de sus diferentes repositorios en Runbot o Runboat. ¿Cómo utilizarlos? ¿Cómo funcionan? A continuación explicaremos en detalle los diferentes puntos a tener en cuenta y daremos a conocer algunos conceptos utilizados en OCA.
Como es costumbre, aquí ofrecemos un pequeño índice para poder navegar rápidamente por esta entrada:
1. Qué es Runbot
Runbot es una instancia que nos permite hacer pruebas de una base de datos sin necesidad de realizar operaciones en un entorno de producción, es decir, es un entorno de prueba.
La OCA tiene en cuenta nuestras necesidades a la hora de probar diferentes módulos. A continuación vamos a explorar y analizar cómo hacer uso de estos servidores.
Nota: Runbot pasará a estar obsoleto, siendo sustituido por Runboat.
1.2 Probar los módulos de OCA
Durante el proceso de desarrollo, aparece un concepto denominado Pull Request. Un Pull Request (o PR) es una petición para incorporar cambios en el repositorio con el que estamos trabajando.
En OCA el ciclo habitual es el siguiente:
1- Creación de PR.
2- Validaciones automáticas establecidas en el repositorio (pre-commit, tests...).
3- Revisión/Validación técnica + Revisión/Validación funcional por parte de otros usuarios.
4- Fusión en la rama solicitada por parte de un PSC del repositorio u otro usuario con permisos suficientes.
Cuando accedemos a un repositorio podemos observar una pestaña llamada Pull requests, en la cual podremos consultar el listado de los diferentes PR que se han realizado para ese repositorio.
Al seleccionar un PR se nos redirigirá a una pantalla donde podremos observar información diversa. En esta entrada nos centraremos en la información facilitada sobre las validaciones, situada en la parte inferior de la pantalla. Esta información la vamos a analizar en 2 partes:
-
Cuadro 1: Como podemos apreciar en la imagen, en este apartado se pasan diferentes validaciones. Entre ellas destacaremos 2: Runbot y Runboat.
-
Cuadro 2: Podemos observar el estado en el que se encuentra Runbot para ese PR. Podemos distinguir 3 estados diferentes:
-
-
Un símbolo similar a una "V" de color verde: Nos indica que Runbot funciona correctamente y podemos acceder para realizar la prueba.
-
Un círculo "O" de color amarillento/dorado: Indica que la instancia está en proceso de construcción y no puede utilizarse todavía.
-
Una "X" de color rojo: El proceso de construcción no ha finalizado correctamente. No puede ser utilizado.
-
1.2.1 Runbot no disponible
Como hemos mencionado anteriormente, cuando un servidor no está disponible aparece una "X" de color rojo en la línea. En este caso, si seleccionamos la opción Details, situada a su derecha, podremos obtener más información.
Al seleccionar esta opción, se nos redirigirá a una pantalla la cual mostrará diversa información que explicaremos a continuación.
1.2.2 Reconstruir una instancia
Una vez nos redirija a la nueva pantalla, podremos observar mucha información, vamos a explicarla a continuación:
Subject: Nombre que se le otorga a un Pull request mediante el commit.
Author: Autor del PR.
Committer: Persona que ha enviado el commit. Un commit siempre debería tener un mensaje descriptivo del trabajo que se está realizando, en este caso sería [15.0][MIG] sale_unreconciled (Migración a versión 15 del módulo sale_unreconciled).
Force Rebuild: Si necesitamos utilizar Runbot, necesitaremos forzar previamente su reconstrucción. Para ello haremos uso de esta opción. Durante este proceso, la línea que anteriormente hemos visto con una X, haciendo referencia al Runbot, pasará a tener un "O" (de color amarillento/dorado), indicando que está en proceso de construcción.
Proceso de reconstrucción
Como hemos mencionado en el apartado anterior, una vez hemos seleccionado la opción Force Rebuild, la línea que hace referencia al Runbot en el PR pasará de tener una X a tener un O en un tono amarillento/dorado. Esto indica que el servidor está en proceso de construcción.
Cuando la reconstrucción finalice, el icono en forma de O pasará a ser el icono de color verde V, indicando que ya está listo.
1.2.3 Runbot en funcionamiento
Otro de los posibles estados de Runbot es disponible. Es identificable mediante una "V" de color verde. Esto indica que se puede hacer uso de Runbot para probar el PR. Para ello es necesario seleccionar la opción Details situada a la derecha de la línea.
Al seleccionar la opción Details nos redirigirá a una nueva pantalla. Ésta será similar a la que hemos visto en el caso anterior, con la diferencia de que sí nos permitirá acceder a Runbot.
Para poder acceder al Runbot en cuestión, es necesario seleccionar un icono similar a una puerta. Este icono destaca por su color azul. Además, no nos aparecerá la opción Force Rebuild.
Una vez seleccionado el icono azul, similar a una puerta, seremos redirigidos al Runbot, teniendo que acceder con los usuarios preestablecidos, ya sea admin o demo. Cómo acceder con los usuarios mencionados será un punto que explicaremos más adelante.
Cabe destacar que siempre habrá pequeñas excepciones. Por ejemplo, que el indicador de Runbot sea el icono en forma de V de color verde, y después de seleccionar la opción Details nos indique que se ha de realizar la reconstrucción (Force rebuild). Este caso, puede ser debido a que el Runbot ha sido cerrado y deberá volver a reconstruirse para su uso.
Probar un módulo OCA en Runbot
Otra opción que nos ofrecen es la de probar un módulo desarrollado por OCA en un Runbot. Para ello, deberemos seleccionar un repositorio y un módulo que pertenezca a éste. Deberemos dirigirnos a la parte inferior de la pantalla, hasta encontrar una opción llamada "runbot Try me". Al seleccionar esta opción se nos redirigirá al acceso de un Runbot, donde deberemos ingresar el usuario y la contraseña.
Una vez hayamos accedido, nos permitirá probar el módulo en cuestión, disponiendo de todas las aplicaciones necesarias instaladas además del módulo.
En un futuro próximo, la opción runbot Try me, nos redirigirá a Runboat en vez de Runbot.
2. Panel Runbot de OCA
Otra manera de probar los diferentes repositorios y módulos mediante un Runbot de OCA es mediante el siguiente enlace. Éste nos llevará a una pantalla donde podremos observar distinta información. Vamos a analizarla a continuación.
La información mostrada la vamos a dividir en:
Instancias.
Botones de acción.
Estado de las instancias.
2.1 Instancias
Las instancias o servidores son las celdas que podemos apreciar en la imagen. En cada celda podemos observar información diversa, pero nos centraremos en el encabezado de cada una, que indica el commit con el que se ha realizado la subida del Pull request (PR).
Debajo de cada commit también se puede apreciar el autor de éstos.
Finalmente en la parte izquierda de la imagen podemos observar las ramas a las que va asociada cada instancia.
2.2 Botones de acción
En la siguiente imagen observaremos varios botones de acción resaltados y con una numeración. Vamos a explicar la funcionalidad de cada uno a continuación.
1. Selector de repositorio: Se trata de un listado desplegable, donde se muestran todos los repositorios contemplados en OCA. Una vez seleccionado uno de ellos, aparecerán las diferentes instancias, en sus diferentes estados. Esto nos permitirá probar los diferentes PR que se han realizado para los módulos que pertenecen al repositorio en cuestión.
2. Filtro: Como su nombre indica, nos permite filtrar según el estado de las instancias.
3. Barra de búsqueda: Nos mostrará las instancias relacionadas con el concepto de búsqueda, por ejemplo, CRM.
2.3 Estado de las instancias
Existen diferentes estados, éstos pueden ser identificados de 2 maneras:
Color: Como podemos observar en la imagen, las instancias están identificadas en diversos colores. Cada color tiene un significado.
Definición de estado: En la parte inferior de cada instancia, se puede observar que hay un concepto como, killed, skipped, un pulgar hacia arriba en verde, etc. Estos conceptos definen o identifican el estado de la instancia en concordancia con el color.
Estas 2 informaciones están relacionadas, por lo que si no sabemos el significado de un color, podemos dirigirnos a la parte inferior de la celda de cada instancia y revisar la información que nos ofrece.
3. Runboat OCA
Runboat ofrece una funcionalidad muy similar a Runbot. Sin embargo, podemos mencionar varias diferencias destacables:
La creación de la instancia de pruebas es más rápida.
El proceso de construcción es diferente ya que se realiza al momento.
Los procesos de carga, en general, son más ágiles.
A continuación, vamos a explicar cómo acceder y utilizarlo.
3.1 Estados de Runboat
Runboat tiene 2 estados destacados:
No disponible.
Disponible.
Vamos a analizar estos 2 estados para saber cómo diferenciarlos y qué proceso seguir.
Nota: Tiene los mismos estados que Runbot. De todas formas, como el proceso de construcción es mucho más ágil, no es habitual encontrarlo en ese estado ( representado con una "O" de color amarillento/dorado).
3.1.1 No disponible
Al igual que Runbot, Runboat puede no estar disponible, no pudiendo ser utilizado para las pruebas. Este estado es identificable, ya que aparecerá el símbolo "X" al comienzo de la línea, tal y como se puede observar en la imagen.
Si intentamos seleccionar la opción Details situada al final de la línea, se nos redirigirá a una pantalla donde nos aparecerá un mensaje de error. Un ejemplo de mensaje de error podría ser "{"detail":"Not Found"}".
3.1.2 Runboat disponible
Al igual que el estado anterior, comparte similitudes con un Runbot. Podemos identificar este estado gracias al icono con forma de "V" situado a la izquierda de la línea.
A diferencia del estado anterior, al seleccionar la opción Details podemos observar que nos redirige a una nueva pantalla, donde podremos lanzar el Runboat.
3.1.3 Construir un Runboat
Como hemos indicado en el apartado anterior, si la línea de Runboat tiene el icono en forma de "V", al seleccionar la opción Details nos redirigirá a una nueva pantalla. En esta pantalla encontraremos la información que se observa en la imagen, dando la oportunidad de montar el servidor para su uso.
Para comenzar con la construcción del servidor es necesario seleccionar la opción Start, lo que iniciará la construcción de la instancia. Una vez seleccionada, el cuadro que se mostraba en color azul, pasará a color gris, indicando que la instancia está en proceso de construcción.
3.1.4 Runboat en funcionamiento
Una vez el proceso de construcción de la instancia haya finalizado, podremos observar que el cuadro gris pasa a verde, indicando que todo está correcto para su uso.
En este cuadro verde podremos observar 3 opciones:
init log / log: Registro detallado de los módulos instalados, las librerías de Python cargadas, actualizaciones, accesos por parte de usuarios, etc.
live: Opción que nos permitirá acceder a la base de datos para poder hacer uso del módulo a probar.
Una vez hemos seleccionado la opción live, ésta nos redirigirá a la pantalla de acceso del Runboat permitiéndonos acceder a la base de datos para probar el PR o el módulo deseado. Para acceder deberemos utilizar el usuario admin o demo.
4. Usuarios y contraseñas
Como hemos mencionado anteriormente, para acceder a las instancias es necesario utilizar un nombre de usuario y una contraseña. Los usuarios y contraseñas que vamos a indicar a continuación son válidos tanto para Runbot como para Runboat.
Usuario admin:
Usuario: admin
Contraseña: admin
Usuario demo:
Usuario: demo
Contraseña: demo
Las diferencias principales entre estos 2 usuarios son sus distintos permisos. El primer usuario, admin, tendrá los permisos de administrador, mientras que el segundo, demo, tendrá permisos mucho más restringidos.
5. Runbot Odoo estándar
Si quieres saber cómo funciona Runbot de Odoo estándar, puedes obtener más información en esta entrada de blog.
En Sygel trabajamos cada día para adaptar a diferentes escenarios las opciones que tanto Odoo como la Odoo Community Association (OCA) ofrecen. Somos conscientes de que cada empresa tiene unas características específicas y, por ello, el trato personalizado se traduce en la implantación del ERP para que cumpla tanto con las expectativas como con las necesidades de nuestros clientes. A la vez, compartimos nuestros avances con el resto de la comunidad, para que cada día se beneficie más gente.