refs #386. Crear documentacion para despliegue de entorno de desarrollo

pull/3/head^2
Manuel Aranda Rosales 2024-05-21 09:56:54 +02:00
parent 48358fe008
commit 4e99ad241d
3 changed files with 515 additions and 56 deletions

View File

@ -0,0 +1,168 @@
openapi: 3.0.3
info:
title: Core - ogBoot - OpenAPI 3.0
description: |-
API for ogBOOT service. Used by OGweb.
Some useful links:
- [The ogBOOT repository](https://ognproject.evlt.uma.es/gitea/opengnsys/ogboot)
contact:
name: ogn-qindel
email: seguimiento-ogn-quindel@listas.unizar.es
version: 1.0.0
paths:
/opengnsys3/rest/core/clients:
get:
summary: Obtener Lista de Clientes
description: Obtiene la lista de clientes registrados en el sistema.
responses:
'200':
description: Lista de clientes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Client'
'401':
description: No autorizado
/opengnsys3/rest/core/wol:
post:
summary: Encender Equipos Remotamente (Wake-on-LAN)
description: Envía comandos de encendido remoto a uno o varios equipos utilizando Wake-on-LAN.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WOLRequest'
responses:
'200':
description: Comando de encendido enviado correctamente
'401':
description: No autorizado
/opengnsys3/rest/core/session:
post:
summary: Gestión de Sesión
description: Gestiona las sesiones de usuario en el sistema.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SessionRequest'
responses:
'200':
description: Sesión gestionada correctamente
'401':
description: No autorizado
/opengnsys3/rest/core/poweroff:
post:
summary: Apagar Equipos
description: Envía comandos de apagado a uno o varios equipos.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PowerOffRequest'
responses:
'200':
description: Comando de apagado enviado correctamente
'401':
description: No autorizado
/opengnsys3/rest/core/reboot:
post:
summary: Reiniciar Equipos
description: Envía comandos de reinicio a uno o varios equipos.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RebootRequest'
responses:
'200':
description: Comando de reinicio enviado correctamente
'401':
description: No autorizado
/opengnsys3/rest/core/stop:
post:
summary: Detener Operaciones en Curso
description: Detiene las operaciones en curso en los equipos.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StopRequest'
responses:
'200':
description: Operaciones detenidas correctamente
'401':
description: No autorizado
components:
schemas:
Client:
type: object
properties:
id:
type: integer
description: ID del cliente
name:
type: string
description: Nombre del cliente
ip_address:
type: string
description: Dirección IP del cliente
mac_address:
type: string
description: Dirección MAC del cliente
WOLRequest:
type: object
properties:
type:
type: string
description: Tipo de envío de paquetes Wake-on-LAN
clients:
type: array
items:
$ref: '#/components/schemas/Client'
SessionRequest:
type: object
properties:
clients:
type: array
items:
type: string
description: Direcciones IP de los clientes
disk:
type: string
description: Número del disco duro
partition:
type: string
description: Número de la partición
PowerOffRequest:
type: object
properties:
clients:
type: array
items:
type: string
description: Direcciones IP de los clientes
RebootRequest:
type: object
properties:
clients:
type: array
items:
type: string
description: Direcciones IP de los clientes
StopRequest:
type: object
properties:
clients:
type: array
items:
type: string
description: Direcciones IP de los clientes

View File

@ -0,0 +1,346 @@
openapi: 3.0.3
info:
title: Core - ogDHCP - OpenAPI 3.0
description: |-
API for DHCP service. Used by OGweb.
Some useful links:
- [The ogDHCP repository](https://ognproject.evlt.uma.es/gitea/opengnsys/ogdhcp)
contact:
name: ogn-qindel
email: seguimiento-ogn-quindel@listas.unizar.es
version: 1.0.0
paths:
/opengnsys3/rest/core/subnets:
get:
operationId: 8f92a1cbcb8cd176bdc4ae272b3ad303
responses:
'200':
description: Devuelve todas las subredes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Subnet'
'400':
description: Error al obtener las subredes
post:
summary: Add a new DHCP subnet
operationId: 88949bae5e7784ce2721ffafe7c88c0a
requestBody:
description: JSON payload
required: true
content:
application/json:
schema:
properties:
subnetId:
type: integer
example: 2
mask:
type: string
example: 255.255.255.0
address:
type: string
example: 192.168.1.0
nextServer:
type: string
example: 192.168.1.1
bootFileName:
type: string
example: pxelinux.0
type: object
responses:
'200':
description: Subnet added successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
/opengnsys3/rest/core/subnets/{subnetId}:
put:
summary: Modify a DHCP subnet
operationId: 548b55fc0e1ad59ea5b5c909dfd07c71
parameters:
- name: subnetId
in: path
description: ID of the subnet to modify
required: true
schema:
type: integer
requestBody:
description: Data to modify the subnet
required: true
content:
application/json:
schema:
properties:
mask:
type: string
address:
type: string
nextServer:
type: string
bootFileName:
type: string
type: object
responses:
'200':
description: Subnet modified successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
delete:
summary: Delete a DHCP subnet
operationId: c1c1c34729bdd85857b22e6e2bdc41de
parameters:
- name: subnetId
in: path
description: ID of the subnet to delete
required: true
schema:
type: integer
responses:
'200':
description: Subnet deleted successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
/opengnsys3/rest/core/subnets/{subnetId}/hosts:
get:
summary: Get all hosts in a subnet
operationId: 0989ca622a6a7e23f5af8e3bdd6f6b05
parameters:
- name: subnetId
in: path
description: The ID of the subnet
required: true
schema:
type: integer
responses:
'200':
description: List of hosts in the subnet
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Host'
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
'500':
description: Server error
content:
application/json:
schema:
properties:
error:
type: string
type: object
put:
summary: Update a DHCP host
operationId: 1541441cd53685aaf6df45ab48befaa8
parameters:
- name: subnetId
in: path
description: The ID of the subnet
required: true
schema:
type: integer
requestBody:
description: Data for the host to update
required: true
content:
application/json:
schema:
properties:
host:
type: string
example: pc11
oldMacAddress:
type: string
example: 56:6f:c7:4f:00:4f
oldAddress:
type: string
example: 192.168.1.11
macAddress:
type: string
example: 56:6f:c7:4f:01:01
address:
type: string
example: 192.168.1.11
type: object
responses:
'200':
description: Host updated successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
post:
summary: Add a DHCP host to a subnet
operationId: 3f897dcd7c04787ac9c42ddbb57cb800
parameters:
- name: subnetId
in: path
description: ID of the subnet to add the host to
required: true
schema:
type: integer
requestBody:
description: Data for the new host
required: true
content:
application/json:
schema:
properties:
host:
type: string
example: pc11
macAddress:
type: string
example: 56:6f:c7:4f:00:4f
address:
type: string
example: 172.30.4.11
type: object
responses:
'200':
description: Host added successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
delete:
summary: Delete a DHCP host from a specific subnet
operationId: f652c52b39d57d283401df66a7930b5f
parameters:
- name: subnetId
in: path
description: The ID of the subnet
required: true
schema:
type: integer
responses:
'200':
description: Host deleted successfully
content:
application/json:
schema:
properties:
success:
type: string
type: object
'400':
description: Error occurred
content:
application/json:
schema:
properties:
error:
type: string
type: object
components:
schemas:
Subnet:
properties:
id:
description: The ID of the subnet
type: integer
subnet:
description: The name of the subnet
type: string
next-server:
description: The next server in the subnet
type: string
boot-file-name:
description: The boot file name for the subnet
type: string
reservations:
type: array
items:
description: The reservations in the subnet
type: object
type: object
Host:
properties:
host:
type: string
example: pc11
macAddress:
type: string
example: 56:6f:c7:4f:00:4f
address:
type: string
example: 172.30.4.11
type: object

View File

@ -1,56 +1 @@
# OgCore Project
## Descripción
ogCore es el servicio central de OpenGnsys, diseñado para proporcionar funcionalidades a través de una API RESTful. Esta herramienta utiliza tecnología PHP, aprovechando el framework Symfony y el ORM Doctrine para gestionar la base de datos.
A continuación, se detallan los pasos necesarios para desplegar el proyecto en un entorno de desarrollo.
## Requisitos
Antes de comenzar, asegúrate de tener los siguientes requisitos:
- Docker
- Docker compose
## Instalación
### Desplegar contenedores
Para que no haya conflictos entre los puertos, asegúrate de que no tienes ningún servicio corriendo en los puertos 8080 y 3306.
```sh
docker compose up --build -d
```
Comprobamos que se han levantado correctamente bien los 3 contenedores de la aplicación:
```sh
docker ps
```
Y deberiamos ver algo parecido a :
- ogcore-nginx-1
- ogcore-php-1
- ogcore-database-1
Comprobamos, que el contenedor de Nginx, tiene el puerto 8080 levantado correctamente, asi que tan solo tendremos que
acceder a la siguiente URL:
```sh
http://127.0.0.1:8080/api/docs
```
Si todo ha ido bien, deberiamos ver la documentación de la API de ogCore.
Para poder actualizar la base de datos:
Para inicializar la base de datos:
```sh
docker exec ogcore-php symfony console doctrine:migrations:migrate --no-interaction
```
```sh
docker exec ogcore-php symfony console doctrine:fixtures:load --no-interaction
```
ogCore es el servicio central de OpenGnsys, diseñado para proporcionar funcionalidades a través de una API RESTful. Esta herramienta utiliza tecnología PHP, aprovechando el framework Symfony y el ORM Doctrine para gestionar la base de datos.