Changes between Initial Version and Version 1 of Reunion260416


Ignore:
Timestamp:
May 10, 2016, 1:49:43 PM (8 years ago)
Author:
irina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Reunion260416

    v1 v1  
     1[[TOC(heading=Índice)]]
     2= Acta videoconferencia del 26 de abril de 2016 =
     3
     4'''Asisten:''' Valencia, Barcelona, Huelva, Málaga y Sevilla  \\
     5'''Próxima reunión:''' 11 de mayo a las 11:30.
     6
     7== Versión 1.0 últimas modificaciones ==
     8
     9=== #740 Clonar disco completo en modo "raw" ===
     10Se crean las funciones para crear la imagen de disco completo. Por ahora no se han incluido en la consola.
     11
     12Habría que probarlas en profundidad, parece que en algunos casos no funcionan bien.
     13
     14=== OGAgent: agente OpenGnsys para sistema operativo  ===
     15
     16Se crea [wiki:DocumentacionUsuario1.1.0/OgAgent documentación sobre el nuevo agente para los sistemas operativos]. Incluye:
     17 * Instalación en los distintos Sistemas Operativos.
     18 * Mensajes entre OpenGnsys Server y OGAgent (API REST)
     19 * Pruebas en los distintos Sistema Operativos.
     20
     21=== Entornos de desarrollo estandarizados ===
     22
     23Se crea la [wiki:DocumentacionUsuario1.1.0/EntornosVagrant documentación para crear entornos de desarrollo estandarizados].
     24
     25La ventaja es que se estandariza el entorno por lo que todos trabajaremos en las mismas condiciones.
     26
     27En Windows no funciona bien vagrant con !VirtualBox: se intenta conectar al la máquina por ssh y no puede. No parece que merezca la pena invertir tiempo en adaptar el fichero, simplemente se tendrán que hacer los desarrollos sobre linux.
     28
     29Teniendo Vagrant y !VirtualBox los ficheros vagrant te permiten crear un entorno de desarrollo de forma automática. Se han creado varios para entornos diferentes.
     30
     31
     32||= Fichero =||= Entorno =||= Recomendado para =||
     33||{{{Vagrantfile-trunk-vbox}}}||Vagrantfile para la versión oficial de OpenGnsys (1.0.x).||Pruebas en general||
     34||{{{Vagrantfile-devel-vbox}}}||Vagrantfile para la versión de desarrollo de OpenGnsys (1.1.x).||Pruebas y desarrollo general||
     35||{{{Vagrantfile-boottools-vbox}}}||Vagrantfile para preparar el entorno de generación del cliente ogLive||Desarrolladores experimentados||
     36||{{{Vagrantfile-browser-vbox}}}||Vagrantfile para preparar el entorno de compilación del Browser del cliente||Miembros del grupo de desarrollo||
     37||{{{Vagrantfile-ogagent-vbox}}}||Vagrantfile para preparar el entorno de desarrollo del agente OGAgent||Miembros del grupo de desarrollo||
     38
     39'''Vagrantfile-boottools-vbox'''
     40
     41Prepara el entorno para crear el minilinux que es el sistema operativo ce OpenGnsys.
     42
     43Crea la máquina virtual con el sistema operativo limpio. Se descarga el código necesario y el script para crear el OGlive, que tiene que ser ejecutado por el usuario de forma que puede modificarlo si fuera necesario.
     44
     45No hay red virtual en estos entornos, por lo que hay que pasar los archivos de cliente de OpenGnsys primero al hipervisor y de allí a donde queramos.
     46
     47'''Vagrantfile-browser-vbox'''
     48
     49Crear el entorno de desarrollo para el browser que utiliza el cliente de OpenGnsys.
     50
     51El browser está hecho en c++ y qt. Al crear el entorno se compila el qt, este proceso tarda unas dos horas en terminar. Luego compila el browser con el código actual de la distribución.
     52
     53Si se quieren realizar pruebas se pueden modificar el código y volver a recompilar.
     54
     55'''Vagrantfile-ogagent-vbox'''
     56
     57La máquina virtual es una distribución de Fedora porque las dependencias del Wine funcionan mejor. (El Wine es necesario para crear el instalador de Windows)
     58
     59Se instala:
     60* Eclipse con las dependencias de python
     61* Entorno gráfico: necesario para Wine, cuando generamos el cliente de Windows hace algunas preguntas interactivas.
     62
     63Hay que definir el proyecto del eclipse en el directorio donde está el código de !OgAgent.
     64
     65
     66
     67=== Modificaciones en el browser. ===
     68
     69Se corrige un error que no permitía utilizar el browser en modo administración. Se debía a que los nuevos kernel utilizan una variable que utilizaba OpenGnsys para pasar la información del modo de trabajo del browser, se ha cambiado la variable por la que se le envía por PXE.
     70
     71Por la necesidad del cambio anterior se crea el archivo Vagrant para automatizar el entorno de trabajo y se hacen las siguientes mejoras:
     72
     73 * Se incluye un reloj digital en la barra de estado.
     74 * Se internacionaliza el browser utilizando '''gettext'''.
     75
     76__Uso del gettext__
     77
     78Se utiliza en todos los mensajes de texto.
     79
     80Para la traducción se crean automáticamente unos archivos de extensión .po donde están los mensajes en el idioma original y debajo deben ponerse en el idioma final. Los textos que no estén traducidos se mostrarán en el idioma de partida.
     81
     82Estos fichero se compilan (.mo) y se guardan en el directorio /lib/locale del cliente que es donde el binario del browser los buscará.
     83
     84Se ha probado y funciona bien.
     85
     86=== #743 Función en el webservice api rest para wakeonlan ===
     87
     88Se obtiene información del repositorio desde el servidor.
     89* repository/poweron: permite solicitar al repositorio que arranque clientes.
     90* repository/images: devuelve las imágenes del repositorio -> se podrá mostrar en la consola de administración.
     91
     92Se ha creado un fichero independiente para la API REST del repositorio: www/rest/repository.php.
     93
     94No ha necesario sido modificar las reglas de reescritura del apache, ha funcionado sin cambios.
     95
     96Se ha introducido un nuevo parámetro "apiToken" en el ogAdmRepo.cfg, de manera que desde la consola web podamos indicar dicho token para comunicación con el repositorio.
     97 * Se ha modificado la consola para mostrar información remota del repositorio siempre que se guarde el token del mismo en las opciones del repositorio.
     98 * Se ha modificado el comando arrancar para que detecte si el ordenador a arrancar pertenece a un repositorio en una red distinta y cuenta con un token, se use el webservice para el comando arrancar.
     99
     100== Versión 2.0: nueva consola ==
     101
     102Se decide implementar la consola web con angularjs, independizándola completamente del servidor y haciendo uso exclusivamente de la api REST proporcionada por opengnsys.
     103
     104Ventajas de angularjs:
     105 * Es un framework de Google, lo utilizaríamos para la parte del cliente.
     106 * La versión movil sería directa, sólo cambiaría la presentación.
     107 * Mejora el mantenimiento.
     108
     109En el caso de procesos que tarden mucho (ej: reestauración) angularjs posee una clase que maneja respuestas asíncronas, cuando llegan devuelve error o la respuesta.
     110
     111La parte de servidor se implementará inicialmente con el mismo framework que se está haciendo la API REST (Slim) y posteriormente puede pasarse a Symfony 2 o cualquier otro framework que se quiera. El único requisito que las rutas sean siempre las mismas y los parámetros de entrada y salida no cambien.
     112
     113De esta forma la consola web, mostrará y modificará  información y ejecutará comandos haciendo uso del webservice, y será el servidor quien realice las operaciones y devuelva el resultado.
     114
     115La API rest del servidor podría sustituir el servicio actual de ogAdmServer.
     116
     117El primer paso sería que implementar todos los "end points" del webservice necesarios para obtener toda la funcionalidad actual de la consola web de opengnsys. Para ello sería necesario ir documentando todas las rutas con sus parámetros de entrada y la salida.
     118
     119Huelva se ofrece a ir solicitando (o incluso implementando) los "end points" del web service que fuesen haciendo falta e ir haciendo la nueva consola web.
     120
     121Para la documentación del la API REST se puede utilizar swagger que partiendo de un fichero yaml y le da un formato adecuado. Si symfony utiliza alguna otra forma de documentar el código se podría mirar para que luego fuera aprovechable.
     122
     123Se integrará el código que hay en la rama de ticket en la de la versión de desarrollo de la 1.1.
     124
     125En la versión 1.1.1 queremos que el !OgAgent nuevo sustituya servicio ogAdmClient que utiliza el cliente de OpenGnsys.
     126
     127
     128
     129== Otros ==
     130
     131=== Borrar Clave de registro ===
     132La función actual para borrar una clave de registro sólo la borra si está vacía. Se creará otra que permita crear una clave con lo que tenga en su interior, manteniendo la existente con el comportamiento actual para evitar errores.
     133
     134Tenemos la función ogDeleteTree que borra un subárbol de directorios, se podría llamar de alguna forma parecida.
     135
     136
     137=== Hardware nuevo: i229 Intel ===
     138
     139No va bien con el cliente actual (que es el mismo que en la 1.0.5).
     140
     141Le falta un driver. Lo tienen el driver compilado, por lo que se puede utilizar existe un script para instalar un script en el OGlive: en '''/opt/opengnsys/bin/installmodule'''
     142
     143La ayuda del script nos muestra su comportamiento:
     144
     145{{{
     146installmodule: installs kernel module into ogLive image (initrd).
     147
     148Format: installmodule moduletarfile
     149
     150moduletarfile must be a tar.gz archive with 2 files:
     151 - *.ko: compiled module
     152 - module.conf: configuration file
     153
     154Configuration file format:
     155        module=ModuleName
     156        file=ModuleFile
     157        path=ModulePath
     158
     159ModuleName must be a single word.
     160ModuleFile must be a kernel compiled module file (*.ko).
     161ModulePath must be the kernel target directory, started by "kernel/".
     162}}}
     163
     164=== Claves de registro ===
     165Cuando la cadena es múltiple no se tratan bien. La función no lo tiene en cuenta, el cambio es complejo.
     166
     167
     168=== Boonding en el servidor de OpenGnsys ===
     169
     170Barcelona quiere utilizar un servidor con bounding para OpenGnsys, en Sevilla se está utilizando y va bien. Sí es necesario configurar el switch para que reconozca esta configuración de la red.
     171
     172=== Bloqueo de disco ===
     173Se ha creado una nueva función para crear un bloqueo el disco. Las funciones de bloqueo de partición lo van a tener en cuenta: si el disco está bloqueado la partición también se considera bloqueada.
     174
     175=== Asistente de particionado: ===
     176
     177Actualmente para particiones GPT siempre se pone la primera tipo EFI aunque el usuario hay a elegido otra cosa. Hay que ver cuales son las restricciones para este tipo de particiones y mostrar un mensaje de aviso en la consola de administración.
     178
     179=== Nuevo OGclient ===
     180Se están probando nuevas versiones de ogclient.
     181
     182La última tiraba al servicio del servidor al arrancar el equipo, se debía a un cambio en el formato en un comando que utiliza el script que obtiene la configuración del cliente.
     183
     184