diff --git a/README.md b/README.md index de7da92..bdd12f4 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ El presente documento detalla los endpoints de la API, con sus respectivos pará --- ### Obtener Información de Estado de ogRepository -Se devolverá informacion de CPU, memoria RAM, disco duro y el estado de ciertos servicios y procesos de ogRepository, en formato JSON. +Se devolverá informacion de CPU, memoria RAM, disco duro, el estado de ciertos servicios y procesos de ogRepository, y el estado de instalación de ogGit, en formato JSON. Se puede utilizar el script "**getRepoStatus.py**, que debe ser llamado por el endpoint. **NOTA**: En los apartados "services" y "processes" he especificado los servicios y procesos que me han parecido interesantes, pero se puede añadir o eliminar los que se desee. @@ -98,6 +98,9 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat - **Contenido:** Información de estado en formato JSON. ```json { + "oggit": { + "installed": "True" + }, "cpu": { "used_percentage": "35%" }, diff --git a/api/README.md b/api/README.md index 15d9b90..a6a899b 100644 --- a/api/README.md +++ b/api/README.md @@ -33,7 +33,7 @@ El presente documento detalla los endpoints de la API, con sus respectivos pará --- ### Obtener Información de Estado de ogRepository -Se devolverá informacion de CPU, memoria RAM, disco duro y el estado de ciertos servicios y procesos de ogRepository, en formato JSON. +Se devolverá informacion de CPU, memoria RAM, disco duro, el estado de ciertos servicios y procesos de ogRepository, y el estado de instalación de ogGit, en formato JSON. Se puede utilizar el script "**getRepoStatus.py**, que debe ser llamado por el endpoint. **NOTA**: En los apartados "services" y "processes" he especificado los servicios y procesos que me han parecido interesantes, pero se puede añadir o eliminar los que se desee. @@ -52,6 +52,9 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat - **Contenido:** Información de estado en formato JSON. ```json { + "oggit": { + "installed": "True" + }, "cpu": { "used_percentage": "35%" }, diff --git a/api/swagger.yaml b/api/swagger.yaml index 91a06a0..78a042b 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -29,7 +29,7 @@ paths: summary: "Obtener Información de Estado de ogRepository" description: > Este endpoint ejecuta el script "**getRepoStatus.py**" y devuelve su salida en formato JSON, - incluyendo información sobre la CPU, memoria RAM, disco duro, servicios, y procesos específicos de ogRepository. + incluyendo información sobre la CPU, memoria RAM, disco duro, servicios, y procesos específicos de ogRepository, e instalación de ogGit. tags: - "Estado de ogRepository" responses: @@ -44,6 +44,12 @@ paths: output: type: object properties: + oggit: + type: object + properties: + installed: + type: string + example: "True" cpu: type: object properties: diff --git a/bin/getRepoStatus.py b/bin/getRepoStatus.py index cd6316c..ffaaf79 100644 --- a/bin/getRepoStatus.py +++ b/bin/getRepoStatus.py @@ -3,6 +3,7 @@ """ Este script devuelve información de CPU, memoria RAM, disco duro y el estado de ciertos servicios y procesos de ogRepository, en formato json. +También comprueba si ogGit está instalado en el repositorio, y devuelve dicha información. No recibe ningún parámetro. Librerías Python requeridas: "psutil" (se puede instalar con "sudo apt install python3-psutil". o "pip install psutil") @@ -18,11 +19,29 @@ import json import subprocess +# -------------------------------------------------------------------------------------------- +# VARIABLES +# -------------------------------------------------------------------------------------------- + +config_file = '/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg' + + # -------------------------------------------------------------------------------------------- # FUNCTIONS # -------------------------------------------------------------------------------------------- +def get_oggit_info(): + """ Obtiene el valor asociado a la variable "oggit", desde el archivo '/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg'. + Retorna el valor asociado capitalizado ("True" o "False"). + """ + with open(config_file, 'r') as file: + for line in file: + if line.startswith('oggit'): + oggit_info = line.split('=')[1].strip() + return oggit_info.capitalize() + + def get_cpu_info(): """ Obtiene y retorna información de la CPU. """ @@ -74,6 +93,9 @@ def get_process_status(process): def main(): """ """ + # Comprobamos si ogGit está instalado en el repositorio o no: + oggit_installed = get_oggit_info() + # Obtenemos información de la CPU: cpu_percent = get_cpu_info() @@ -93,6 +115,9 @@ def main(): # Creamos un diccionario con toda la información obtenida: data_dict = { + 'oggit': { + 'installed': oggit_installed + }, 'cpu': { 'used_percentage': f"{int(cpu_percent)}%" },