refs #1681 - Add ogGit install status

pull/25/head
Gerardo GIl Elizeire 2025-03-10 11:07:02 +01:00
parent f5cf0ce0ec
commit d1501e7b02
4 changed files with 40 additions and 3 deletions

View File

@ -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%"
},

View File

@ -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%"
},

View File

@ -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:

View File

@ -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)}%"
},