refs #1681 - Add ogGit install status #25

Merged
ggil merged 1 commits from add_python_scripts into main 2025-03-10 11:08:34 +01:00
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 ### 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. 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. **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. - **Contenido:** Información de estado en formato JSON.
```json ```json
{ {
"oggit": {
"installed": "True"
},
"cpu": { "cpu": {
"used_percentage": "35%" "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 ### 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. 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. **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. - **Contenido:** Información de estado en formato JSON.
```json ```json
{ {
"oggit": {
"installed": "True"
},
"cpu": { "cpu": {
"used_percentage": "35%" "used_percentage": "35%"
}, },

View File

@ -29,7 +29,7 @@ paths:
summary: "Obtener Información de Estado de ogRepository" summary: "Obtener Información de Estado de ogRepository"
description: > description: >
Este endpoint ejecuta el script "**getRepoStatus.py**" y devuelve su salida en formato JSON, 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: tags:
- "Estado de ogRepository" - "Estado de ogRepository"
responses: responses:
@ -44,6 +44,12 @@ paths:
output: output:
type: object type: object
properties: properties:
oggit:
type: object
properties:
installed:
type: string
example: "True"
cpu: cpu:
type: object type: object
properties: 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. 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. No recibe ningún parámetro.
Librerías Python requeridas: "psutil" (se puede instalar con "sudo apt install python3-psutil". o "pip install psutil") 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 import subprocess
# --------------------------------------------------------------------------------------------
# VARIABLES
# --------------------------------------------------------------------------------------------
config_file = '/opt/opengnsys/ogrepository/etc/ogAdmRepo.cfg'
# -------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------
# FUNCTIONS # 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(): def get_cpu_info():
""" Obtiene y retorna información de la CPU. """ Obtiene y retorna información de la CPU.
""" """
@ -74,6 +93,9 @@ def get_process_status(process):
def main(): def main():
""" """
""" """
# Comprobamos si ogGit está instalado en el repositorio o no:
oggit_installed = get_oggit_info()
# Obtenemos información de la CPU: # Obtenemos información de la CPU:
cpu_percent = get_cpu_info() cpu_percent = get_cpu_info()
@ -93,6 +115,9 @@ def main():
# Creamos un diccionario con toda la información obtenida: # Creamos un diccionario con toda la información obtenida:
data_dict = { data_dict = {
'oggit': {
'installed': oggit_installed
},
'cpu': { 'cpu': {
'used_percentage': f"{int(cpu_percent)}%" 'used_percentage': f"{int(cpu_percent)}%"
}, },