Compare commits

...

48 Commits
master ... jwt

Author SHA1 Message Date
424273360d verify audience in jwt 2020-01-30 15:46:18 +01:00
ae6dfb2644 add audience claim data to jwt 2020-01-24 15:07:30 +01:00
d78d581c65 implement basicauth and jwt token 2020-01-24 13:43:14 +01:00
52c878b0ab replace all zephir occurence 2020-01-23 14:05:07 +01:00
5666c01bdc update docker 2020-01-23 11:01:38 +01:00
3a9243bfb8 add docker environment 2020-01-20 15:58:04 +01:00
bcd17e1038 set docker 2020-01-20 11:34:16 +01:00
47d5ed77d5 set requirements 2020-01-17 15:59:48 +01:00
02c38589d4 add role server_rw + role example + deploy 2020-01-15 09:15:15 +01:00
cb2dbe135e add message 2020-01-14 20:05:28 +01:00
cb0e4b5d5d create risotto admin and set rights 2020-01-14 14:11:41 +01:00
722d4894a1 simplify 2020-01-13 19:53:09 +01:00
4020f97db0 insert log in database 2019-12-28 12:29:11 +01:00
a6383f0c2c check_role for event type message 2019-12-27 16:17:34 +01:00
1e223e7b57 add default uri roles 2019-12-27 16:07:29 +01:00
24e5f78668 new users are in 'all' role 2019-12-27 16:06:57 +01:00
5b1cae1567 create a permanent pool instead of 1 per use 2019-12-27 16:03:42 +01:00
1ed86e035b remove public information in message, it's remplace by role 2019-12-27 15:25:44 +01:00
94168554f2 role support 2019-12-27 15:09:38 +01:00
50aa8019ab update tests 2019-12-26 15:33:51 +01:00
1d25d3a582 tiramisu is now async 2019-12-26 11:38:31 +01:00
41af2512b5 extra support 2019-12-22 18:41:35 +01:00
4de9bde691 server>template 2019-12-20 10:58:12 +01:00
6b8a88e103 Temporary fixes for internal default value 2019-12-20 10:37:27 +01:00
9335fbb16e message servermodel.get_by_id 2019-12-20 10:19:49 +01:00
78b7129605 Fixes local paths 2019-12-20 10:17:37 +01:00
b5ddefdaac Compute messages root path against project root dir in development environment 2019-12-20 10:16:12 +01:00
ddd97fb59c can create a server 2019-12-19 17:24:20 +01:00
77ed63784b really create schema 2019-12-19 15:00:24 +01:00
f7a97cf575 source>release>applicationservice>servermodel 2019-12-19 12:25:16 +01:00
a092b597f8 Modify distribution 2019-12-19 09:19:09 +01:00
e19e718e22 import servermodel 2019-12-18 17:11:42 +01:00
b006eda133 Do not raise error if folder exists 2019-12-18 10:08:11 +01:00
62ab525219 Open file in write mode 2019-12-17 17:07:58 +01:00
10969ab1e0 reworks on tests 2019-12-16 17:14:58 +01:00
f0042f2a37 Fetch releases.yml to assert if Source is valid 2019-12-16 16:35:48 +01:00
7f0411da4d local_<servermodel_name> application has to be created in internal source 2019-12-16 16:17:37 +01:00
91aac5399a Add Distribution attributute to releases 2019-12-16 15:49:20 +01:00
b4c48ebc10 add source.list, source.create and source.get messages 2019-12-16 15:13:28 +01:00
b567fd88ac WIP load servermodel with parent 2019-12-13 17:17:07 +01:00
eccc5c4098 WIP2 2019-12-13 16:42:10 +01:00
a7934e37d7 WIP 2019-12-13 13:55:30 +01:00
7dc6ce7845 L’extension doit être créée pour la base de données risotto 2019-12-09 16:28:47 +01:00
84850182f6 Activation de l’extension hstore 2019-12-09 16:22:13 +01:00
dcaf7da3bc Test d’un service utilisant une base de données. 2019-12-09 14:28:13 +01:00
8c91e01a2b Vocabulary 2019-12-09 14:28:13 +01:00
3b31f092bd add session tests 2019-12-07 16:21:20 +01:00
3c5285a7d2 add test for config's service 2019-12-06 07:14:24 +01:00
146 changed files with 4452 additions and 1292 deletions

View File

@ -18,3 +18,56 @@ echo "127.0.0.1 auth.example.com manager.example.com test1.example.com test2.exa
docker run -d --add-host reload.example.com:127.0.0.1 -p 80:80 coudot/lemonldap-ng
```
Démarrer un serveur postgresql de test
```
docker run -dt -p 5432:5432 --name postgres postgres:11-alpine
docker exec -ti postgres bash
psql -U postgres -h localhost -c "CREATE ROLE risotto WITH LOGIN PASSWORD 'risotto';"
psql -U postgres -h localhost -c "CREATE DATABASE risotto;"
psql -U postgres -h localhost -c "GRANT ALL ON DATABASE risotto TO risotto;"
psql -U postgres -h localhost -c "CREATE EXTENSION hstore;"
psql -U postgres -h localhost -c "CREATE EXTENSION pgcrypto;"
```
Gestion de la base de données avec Sqitch
```
cpanm --quiet --notest App::Sqitch
sqitch init risotto --uri https://forge.cadoles.com/Infra/risotto --engine pg
```
Commande :
# Empty database:
su - postgres
psql -U postgres risotto
drop table log; drop table userrole; drop table release; drop table source; drop table server; drop table servermodel; drop table applicationservice; drop table roleuri; drop table risottouser; drop table uri;
# Import EOLE
./script/cucchiaiata source.create -n eole -u http://localhost
./script/cucchiaiata source.release.create -s eole -n 2.7.1.1 -d last
./script/cucchiaiata applicationservice.dataset.updated -s eole -r last
./script/cucchiaiata servermodel.dataset.updated -s eole -r last
# Create a server
./script/cucchiaiata server.create -s test -d description -m eolebase -n eole -r last
# Configure the server
./script/cucchiaiata session.server.start -s test
S=xxxxxxxxxxxxxxxxxxxxxx
./script/cucchiaiata session.server.configure -s $S --creole.reseau.unbound_ip_address_cidr 192.168.1.1/24 --creole.reseau.unbound_route_address 192.168.1.2 --creole.serveur_dns.unbound_allowed_client_cidr 192.168.1.0/24 --creole.serveur_dns.unbound_local_zones cadoles.com
./script/cucchiaiata session.server.configure -s $S --creole.reseau.unbound_domain_name test.cadoles.com
./script/cucchiaiata session.server.filter -s $S -n unbound
./script/cucchiaiata session.server.configure -s $S --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.hostname_cadoles_com toto titi --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.ip_cadoles_com 0 192.168.1.25 --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.type_cadoles_com 1 CNAME --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.cname_cadoles_com 1 toto.cadoles.com
./script/cucchiaiata session.server.validate -s $S
./script/cucchiaiata session.server.stop -s $S -a
# Generate configuration
./script/cucchiaiata config.configuration.server.deploy -s test
./script/cucchiaiata template.generate -s test
# Create a new user and set role 'server_rw' for this server
./script/cucchiaiata user.create -l gnunux -n gnunux -s gnunux
./script/cucchiaiata user.role.create -u gnunux -n 'server_rw' -a 'Server.ServerName' -v test

29
docker/Dockerfile Normal file
View File

@ -0,0 +1,29 @@
FROM python:3.7
# Requirements
ARG TIRAMISU_REPO_URL=https://framagit.org/tiramisu/tiramisu.git
ARG RISOTTO_REPO_URL=https://forge.cadoles.com/Infra/risotto.git
ARG ROUGAIL_REPO_URL=https://forge.cadoles.com/Infra/rougail.git
RUN apt-get update && apt-get install -y \
vim \
curl \
git \
jq \
&& apt-get clean
RUN git clone --branch develop ${TIRAMISU_REPO_URL} /srv/src/tiramisu
RUN git clone --branch docker ${RISOTTO_REPO_URL} /srv/src/risotto
RUN git clone --branch master ${ROUGAIL_REPO_URL} /srv/src/rougail
RUN ln -s /srv/src/tiramisu/tiramisu /usr/local/lib/python3.7
RUN ln -s /srv/src/rougail/src/rougail /usr/local/lib/python3.7
RUN ln -s /srv/src/risotto/src/risotto /usr/local/lib/python3.7
RUN pip install Cheetah3 PyJWT
RUN cd /srv/src/risotto && pip install -r requirements.txt
# Installation
RUN cp -r /srv/src/risotto/messages/ /usr/local/lib/
RUN mkdir -p /var/cache/risotto/servermodel
RUN mkdir -p /var/cache/risotto/database

14
docker/README.md Normal file
View File

@ -0,0 +1,14 @@
Docker
```
cd docker
docker build -t cadoles/risotto .
docker run -t -d --name risotto cadoles/risotto
docker exec -ti risotto bash
```
Docker-Compose
```
cd docker
docker-compose up
```

View File

@ -0,0 +1,29 @@
version: '2.2'
services:
risotto:
build:
context: ../
dockerfile: docker/Dockerfile
volumes:
- ../.:/srv/src/risotto
- ../messages:/usr/local/lib/messages
ports:
- "8080:8080"
depends_on:
- postgres
links:
- postgres
#command: tail -F /var/log
command: python -u /srv/src/risotto/script/server.py
restart: on-failure
postgres:
image: postgres:11-alpine
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
PGDATA: /data/postgres
volumes:
- ./postgres-init/:/docker-entrypoint-initdb.d/
ports:
- "5432:5432"
restart: unless-stopped

View File

@ -0,0 +1,105 @@
#!/bin/bash
set -e
psql --username "$POSTGRES_USER" <<-EOSQL
CREATE ROLE risotto WITH LOGIN PASSWORD 'risotto';
CREATE DATABASE risotto;
GRANT ALL ON DATABASE risotto TO risotto;
\c risotto
CREATE EXTENSION hstore;
CREATE EXTENSION pgcrypto;
EOSQL
psql --username "risotto" --password "risotto" <<-EOSQL
-- Création de la table Source
CREATE TABLE Source (
SourceId SERIAL PRIMARY KEY,
SourceName VARCHAR(255) NOT NULL UNIQUE,
SourceURL TEXT
);
-- Création de la table Release
CREATE TABLE Release (
ReleaseId SERIAL PRIMARY KEY,
ReleaseName VARCHAR(255) NOT NULL,
ReleaseSourceId INTEGER NOT NULL,
ReleaseDistribution VARCHAR(20) CONSTRAINT releasedistribution_choice CHECK (ReleaseDistribution IN ('last', 'n-1', 'n-2')),
UNIQUE (ReleaseName, ReleaseSourceId),
UNIQUE (ReleaseDistribution, ReleaseSourceId),
FOREIGN KEY (ReleaseSourceId) REFERENCES Source(SourceId)
);
-- Création de la table Servermodel
CREATE TABLE Servermodel (
ServermodelId SERIAL PRIMARY KEY,
ServermodelName VARCHAR(255) NOT NULL,
ServermodelDescription VARCHAR(255) NOT NULL,
ServermodelParentsId INTEGER [] DEFAULT '{}',
ServermodelReleaseId INTEGER NOT NULL,
ServermodelApplicationServiceId INTEGER NOT NULL,
ServermodelUsers hstore,
UNIQUE (ServermodelName, ServermodelReleaseId)
);
-- Création de la table ApplicationService
CREATE TABLE ApplicationService (
ApplicationServiceId SERIAL PRIMARY KEY,
ApplicationServiceName VARCHAR(255) NOT NULL,
ApplicationServiceDescription VARCHAR(255) NOT NULL,
ApplicationServiceReleaseId INTEGER NOT NULL,
ApplicationServiceDependencies JSON,
UNIQUE (ApplicationServiceName, ApplicationServiceReleaseId)
);
-- Server table creation
CREATE TABLE Server (
ServerId SERIAL PRIMARY KEY,
ServerName VARCHAR(255) NOT NULL UNIQUE,
ServerDescription VARCHAR(255) NOT NULL,
ServerServermodelId INTEGER NOT NULL
);
-- User, Role and ACL table creation
CREATE TABLE RisottoUser (
UserId SERIAL PRIMARY KEY,
UserLogin VARCHAR(100) NOT NULL UNIQUE,
UserPassword TEXT NOT NULL,
UserName VARCHAR(100) NOT NULL,
UserSurname VARCHAR(100) NOT NULL
);
CREATE TABLE UserRole (
RoleId SERIAL PRIMARY KEY,
RoleUserId INTEGER NOT NULL,
RoleName VARCHAR(255) NOT NULL,
RoleAttribute VARCHAR(255),
RoleAttributeValue VARCHAR(255),
FOREIGN KEY (RoleUserId) REFERENCES RisottoUser(UserId)
);
CREATE TABLE URI (
URIId SERIAL PRIMARY KEY,
URIName VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE RoleURI (
RoleName VARCHAR(255) NOT NULL,
URIId INTEGER NOT NULL,
FOREIGN KEY (URIId) REFERENCES URI(URIId),
PRIMARY KEY (RoleName, URIId)
);
-- Log table creation
CREATE TABLE log(
Msg VARCHAR(255) NOT NULL,
Level VARCHAR(10) NOT NULL,
Path VARCHAR(255),
Username VARCHAR(100) NOT NULL,
Data JSON,
Date timestamp DEFAULT current_timestamp
);
EOSQL

View File

@ -0,0 +1,33 @@
---
uri: applicationservice.create
description: |
Créé un service applicatif.
pattern: rpc
parameters:
applicationservice_name:
type: String
shortarg: n
description: |
Nom du service applicatif à créer.
applicationservice_description:
type: String
shortarg: d
description: |
Description du service applicatif à créer.
applicationservice_dependencies:
type: '[]Number'
shortarg: a
description: ID des services applicatif donc dépendant le service applicatif.
default: []
release_id:
type: Number
shortarg: r
description: |
Identifiant de la version associée au service applicatif.
response:
type: ApplicationService
description: Informations sur le service applicatif créé.

View File

@ -0,0 +1,20 @@
uri: applicationservice.dataset.updated
description: |
Les services applicatifs sont mis à jour.
pattern: rpc
parameters:
source_name:
type: String
shortarg: s
description: Nom de la source.
release_distribution:
type: String
shortarg: r
description: Distribution de la source.
response:
type: ReturnStatus
description: Code de retour sur linjection des services applicatifs en base.

View File

@ -0,0 +1,23 @@
---
uri: applicationservice.describe
description: |
Décrit un service applicatif.
pattern: rpc
parameters:
applicationservice_name:
type: String
shortarg: n
description: |
Nom du service applicatif à créer.
release_id:
type: Number
shortarg: r
description: |
Identifiant de la version associée au service applicatif.
response:
type: ApplicationService
description: Informations sur le service applicatif.

View File

@ -0,0 +1,34 @@
---
uri: applicationservice.get_by_id
description: |
Retourne un service applicatif suivant l'identifiant.
pattern: rpc
parameters:
applicationservice_id:
type: Number
shortarg: i
description: |
ID du service applicatif à créer.
response:
type: ApplicationService
description: Informations sur le service applicatif créé.
errors:
- uri: servermodel.create.error.database_not_available
- uri: servermodel.create.error.duplicate_servermodel
- uri: servermodel.create.error.invalid_parentservermodel_id
- uri: servermodel.create.error.invalid_source_id
- uri: servermodel.create.error.unknown_parentservermodel_id
- uri: servermodel.create.error.unknown_source_id
- uri: servermodel.create.error.servermodelname_not_provided
related:
- servermodel.list
- servermodel.describe
- servermodel.update
- servermodel.delete
- servermodel.event

View File

@ -1,19 +1,17 @@
---
uri: config.configuration.server.deploy
description: |
Déployer la configuration d'un serveur.
description: Déployer la configuration d'un serveur.
sampleuse: ~
pattern: event
public: false
domain: config-domain
pattern: rpc
parameters:
server_id:
type: Number
description: |
Identifiant du serveur.
server_name:
type: String
ref: Server.ServerName
shortarg: s
description: Nom du serveur.
response:
type: Deploy
description: La configuration du serveur est déployée.

View File

@ -4,23 +4,17 @@ uri: config.configuration.server.get
description: |
Récupère le contenu de la configuration.
sampleuse: ~
pattern: rpc
public: false
domain: config-domain
parameters:
server_id:
type: Number
ref: Server.ServerId
description: |
Identifiant du serveur.
deploy:
server_name:
type: String
ref: Server.ServerName
description: Nom du serveur.
deployed:
type: Boolean
description: Configuration de type déployée.
default: true
response:
type: ConfigConfiguration

View File

@ -4,19 +4,18 @@ uri: config.configuration.server.updated
description: |
Une configuration de serveur a été mise à jour.
sampleuse: ~
pattern: event
public: false
domain: config-domain
parameters:
server_id:
type: Number
description: |
Identifiant du serveur.
deploy:
server_name:
type: String
ref: Server.ServerName
shortarg: s
description: Nom du serveur.
deployed:
type: Boolean
description: Configuration de type déployée.

View File

@ -5,7 +5,7 @@ description: |
Retourne des informations sur la session HTTP courante de l'utilisateur.
sampleuse: |
zephir-client identity.session-user.get
cucchiaiata identity.session-user.get
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne les préférences de l'utilisateur spécifié.
sampleuse: |
zephir-client identity.settings.get -u yo
cucchiaiata identity.settings.get -u yo
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Enregistre des préférences pour l'utilisateur spécifié.
sampleuse: |
zephir-client identity.settings.set -u yo
cucchiaiata identity.settings.set -u yo
pattern: rpc

View File

@ -1,54 +0,0 @@
---
uri: server.create
description: |
Crée un serveur.
sampleuse: |
zephir-client server.create -s MonJoliServeur -d "un bien joli serveur" -m 1 -p MyPassPhrase
pattern: rpc
public: true
domain: server-domain
parameters:
servername:
type: String
shortarg: s
description: |
Nom du serveur.
serverdescription:
type: String
shortarg: d
description: |
Description du serveur.
servermodelid:
type: Number
shortarg: m
ref: Servermodel.ServermodelId
description: |
Identifiant du modèle de serveur.
serverpassphrase:
type: String
shortarg: p
description: |
Phrase secrète de la clef privé.
response:
type: Server
description: Description du serveur créé.
errors:
- uri: server.error.database-not-available
- uri: server.error.db-connection
- uri: server.error.invalid-servermodel-id
- uri: server.error.unknown-servermodel-id
- uri: server.error.servername-not-provided
related:
- server.list
- server.describe
- server.update
- server.delete

View File

@ -11,7 +11,7 @@ pattern: rpc
domain: server-domain
sampleuse: |
zephir-client server.delete -s 1
cucchiaiata server.delete -s 1
parameters:
serverid:

View File

@ -1,49 +0,0 @@
---
uri: server.describe
description: |
Retourne les attributs détaillés dun serveur.
sampleuse: |
zephir-client server.describe -s 1
pattern: rpc
public: true
domain: server-domain
parameters:
serverid:
type: Number
ref: Server.ServerId
description: Identifiant du serveur.
shortarg: s
configuration:
type: Boolean
description: Inclure les valeurs de configuration.
default: false
environment:
type: Boolean
description: Inclure les variables d'environement.
default: false
peering:
type: Boolean
description: Inclure la clé d'appairage.
default: false
response:
type: ServerDescribe
description: Description du serveur.
errors:
- uri: server.error.database-not-available
- uri: server.error.db-connection
- uri: server.error.invalid-server-id
- uri: server.error.unknown-server-id
related:
- server.list
- server.create
- server.update
- server.delete

View File

@ -5,7 +5,7 @@ description: |
Transmet une commande à exécuter sur un serveur donné.
sampleuse: |
zephir-client server.exec.command -s 1 -c reconfigure
cucchiaiata server.exec.command -s 1 -c reconfigure
domain: server-domain

View File

@ -5,7 +5,7 @@ description: |
Déploie la configuration sur un serveur donné.
sampleuse: |
zephir-client server.exec.deploy -s 1
cucchiaiata server.exec.deploy -s 1
domain: server-domain

View File

@ -5,7 +5,7 @@ description: |
Liste les commandes exécuté pour un identifiant de tâche.
sampleuse: |
zephir-client server.exec.list -j 1
cucchiaiata server.exec.list -j 1
domain: execution-domain

View File

@ -5,7 +5,7 @@ description: |
Liste les commandes exécutées sur un serveur donné.
sampleuse: |
zephir-client server.exec.list -s 1
cucchiaiata server.exec.list -s 1
domain: execution-domain

View File

@ -5,7 +5,7 @@ description: |
Retourne la liste des sélections de serveurs d'un serveur
sampleuse: |
zephir-client server.serverselection.list
cucchiaiata server.serverselection.list
pattern: rpc

View File

@ -7,7 +7,7 @@ description: |
public: true
sampleuse: |
zephir-client server.update -s 1 -n toto -d "server description"
cucchiaiata server.update -s 1 -n toto -d "server description"
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Associe un service applicatif à un modèle de serveur.
sampleuse: |
zephir-client servermodel.applicationservice.join -m 1 -s 1
cucchiaiata servermodel.applicationservice.join -m 1 -s 1
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne la liste des applications service.
sampleuse: |
zephir-client servermodel.applicationservice.list -s 6
cucchiaiata servermodel.applicationservice.list -s 6
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Crée un modèle de serveur.
sampleuse: |
zephir-client servermodel.create -p 1 -n "MonServeurModele" -d "Ma description" -s 1
cucchiaiata servermodel.create -p 1 -n "MonServeurModele" -d "Ma description" -s 1
pattern: rpc

View File

@ -1,18 +0,0 @@
---
uri: servermodel.source.list
description: |
Retourne la liste des sources.
sampleuse: |
zephir-client servermodel.source.list
pattern: rpc
public: true
domain: servermodel-domain
response:
type: '[]Dict'
description: Liste des sources disponibles.

View File

@ -5,7 +5,7 @@ description: |
Retourne la liste des subreleases.
sampleuse: |
zephir-client servermodel.subrelease.list
cucchiaiata servermodel.subrelease.list
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Crée un sélection de serveurs.
sampleuse: |
zephir-client serverselection.create -n Select1 -d "Ma description"
cucchiaiata serverselection.create -n Select1 -d "Ma description"
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Supprime une sélection de serveurs.
sampleuse: |
zephir-client serverselection.delete -s 1
cucchiaiata serverselection.delete -s 1
pattern: rpc

View File

@ -6,7 +6,7 @@ description: |
sampleuse: |
zephir-client serverselection.describe -s 1
cucchiaiata serverselection.describe -s 1
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Transmet une commande à exécuter sur une sélection de serveurs.
sampleuse: |
zephir-client serverselection.exec.command -s 1 -c reconfigure
cucchiaiata serverselection.exec.command -s 1 -c reconfigure
domain: server-domain

View File

@ -5,7 +5,7 @@ description: |
Déploie la configuration sur les serveurs d'une sélection de serveurs.
sampleuse: |
zephir-client serverselection.exec.deploy -s 1
cucchiaiata serverselection.exec.deploy -s 1
domain: server-domain

View File

@ -5,7 +5,7 @@ description: |
Retourne la liste des sélections de serveurs.
sampleuse: |
zephir-client serverselection.list
cucchiaiata serverselection.list
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Ajoute un serveur à une sélection de serveurs.
sampleuse: |
zephir-client serverselection.add.server -s 1 -i 1
cucchiaiata serverselection.add.server -s 1 -i 1
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Supprime un serveur d'une sélection de serveurs.
sampleuse: |
zephir-client serverselection.remove.server -s 1 -i 1
cucchiaiata serverselection.remove.server -s 1 -i 1
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Renseigne une liste de serveur dans une sélection de serveurs.
sampleuse: |
zephir-client serverselection.server.set -s 1 -i 1
cucchiaiata serverselection.server.set -s 1 -i 1
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Modifie une sélection de serveur.
sampleuse: |
zephir-client serverselection.update -s 1 -n Select1 -d "Ma description"
cucchiaiata serverselection.update -s 1 -n Select1 -d "Ma description"
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Associe un utilisateur à une sélection de serveurs.
sampleuse: |
zephir-client serverselection.add.user -s 1 -u yo -r admin
cucchiaiata serverselection.add.user -s 1 -u yo -r admin
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne la sélection de serveurs par défaut de l'utilisateur.
sampleuse: |
zephir-client serverselection.user.default
cucchiaiata serverselection.user.default
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne les sélections de serveurs dont l'utilisateur fait parti.
sampleuse: |
zephir-client serverselection.user.list
cucchiaiata serverselection.user.list
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Dissocie un utilisateur d'une sélection de serveurs.
sampleuse: |
zephir-client serverselection.remove.user -s 1 -u yo
cucchiaiata serverselection.remove.user -s 1 -u yo
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne le rôle d'utilisateur sur une selection de serveurs.
sampleuse: |
zephir-client serverselection.user.role.get -d '{}'
cucchiaiata serverselection.user.role.get -d '{}'
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Retourne le rôle d'un utlisateur sur un serveur.
sampleuse: |
zephir-client serverselection.user.role.server.get -d '{}'
cucchiaiata serverselection.user.role.server.get -d '{}'
pattern: rpc

View File

@ -5,7 +5,7 @@ description: |
Modifie le rôle d'un utilisateur pour une sélection de serveurs.
sampleuse: |
zephir-client serverselection.update.user -s 1 -u yo -r admin
cucchiaiata serverselection.update.user -s 1 -u yo -r admin
pattern: rpc

View File

@ -0,0 +1,35 @@
---
uri: server.create
description: Crée un serveur.
pattern: rpc
parameters:
server_name:
type: String
shortarg: s
description: Nom du serveur.
server_description:
type: String
shortarg: d
description: Description du serveur.
servermodel_name:
type: String
shortarg: m
ref: Servermodel.ServermodelName
description: Nom du modèle de serveur.
source_name:
type: String
shortarg: n
ref: Source.SourceName
description: Nom de la source.
release_distribution:
type: String
shortarg: r
ref: Source.ReleaseDistribution
description: Nom de la sous-version.
response:
type: Server
description: Description du serveur créé.

View File

@ -5,10 +5,6 @@ description: Un serveur a été créé.
pattern: event
public: false
domain: server-domain
parameters:
type: Server
description: Description du serveur.

View File

@ -1,17 +1,11 @@
---
uri: server.deleted
sampleuse: ~
description: |
Un serveur a été supprimé.
pattern: event
public: false
domain: server-domain
parameters:
server_id:
type: Number

View File

@ -0,0 +1,17 @@
---
uri: server.describe
description: Retourne les attributs détaillés dun serveur.
pattern: rpc
parameters:
server_name:
type: String
shortarg: s
ref: Server.ServerName
description: Nom du serveur.
response:
type: Server
description: Description du serveur.

View File

@ -4,15 +4,8 @@ uri: server.list
description: |
Liste les serveurs disponibles.
sampleuse: |
zephir-client server.list
public: true
pattern: rpc
domain: server-domain
response:
type: '[]Server'
description: Retourne la liste des serveurs.

View File

@ -5,11 +5,6 @@ description: Des modèles de serveur ont été créés.
pattern: event
public: false
domain: servermodel-domain
parameters:
servermodels:
type: '[]Servermodel'
description: Informations sur les modèles de serveur créés.
type: Servermodel
description: Informations sur les modèles de serveur créés.

View File

@ -0,0 +1,20 @@
uri: servermodel.dataset.updated
description: |
Initialise la table pour les modèles de serveur.
pattern: rpc
parameters:
source_name:
type: String
shortarg: s
description: Nom de la source.
release_distribution:
type: String
shortarg: r
description: Distribution de la version.
response:
type: ReturnStatus
description: Code de retour sur linjection des modèles de serveur en base.

View File

@ -4,64 +4,25 @@ uri: servermodel.describe
description: |
Retourne les attributs détaillés d'un modèle de serveur.
sampleuse: |
zephir-client servermodel.describe -s 1
pattern: rpc
public: true
domain: servermodel-domain
parameters:
servermodelid:
type: Number
servermodel_name:
type: String
shortarg: s
description: Identifiant du modèle de serveur à récupérer.
ref: Servermodel.ServermodelId
inheritance:
type: Boolean
shortarg: i
description: Inclure les données héritées des modèles de serveur parents.
default: true
resolvdepends:
type: Boolean
source_name:
type: String
shortarg: n
description: Nom de la source.
ref: Source.SourceName
release_distribution:
type: String
shortarg: r
description: Résoudre les dépendances de services.
default: true
schema:
type: Boolean
shortarg: c
description: Inclure le schema de configuration (réaggrège les données provenant du datasource).
default: false
probes:
type: Boolean
shortarg: p
description: Inclure les informations sur les sondes de la configuration.
default: false
creolefuncs:
type: Boolean
shortarg: o
description: Inclure les fonctions Creole.
default: false
conffiles:
type: Boolean
shortarg: f
description: Inclure les fichier creole au format tar encodé en base64
default: false
description: Nom de la distribution.
ref: Source.ReleaseDistribution
response:
type: Servermodel
description: Description du modèle de serveur.
errors:
- uri: servermodel.describe.error.database_not_available
- uri: servermodel.describe.error.invalid_servermodel_id
- uri: servermodel.describe.error.unknown_servermodel_id
related:
- servermodel.list
- servermodel.create
- servermodel.update
- servermodel.delete
- servermodel.event

View File

@ -0,0 +1,17 @@
---
uri: servermodel.get_by_id
description: Retourne les attributs détaillés d'un modèle de serveur suivant son identifiant.
pattern: rpc
parameters:
servermodel_id:
type: Number
shortarg: s
description: Identifiant du modèle de serveur à récupérer.
ref: Servermodel.ServermodelId
response:
type: Servermodel
description: Description du modèle de serveur.

View File

@ -4,17 +4,10 @@ uri: servermodel.list
description: |
Retourne la liste des modèles de serveur disponibles.
sampleuse: |
zephir-client servermodel.list
pattern: rpc
public: true
domain: servermodel-domain
parameters:
sourceid:
source_id:
type: Number
shortarg: s
description: |
@ -24,13 +17,3 @@ parameters:
response:
type: '[]Servermodel'
description: Liste des modèles de serveur disponibles.
errors:
- uri: servermodel.list.error.database_not_available
related:
- servermodel.describe
- servermodel.create
- servermodel.update
- servermodel.delete
- servermodel.event

View File

@ -5,11 +5,6 @@ description: Des modèles de serveur ont été modifiés.
pattern: event
public: false
domain: servermodel-domain
parameters:
servermodels:
type: '[]Servermodel'
description: Informations sur les modèles de serveur modifiés.
type: 'Servermodel'
description: Informations sur les modèles de serveur modifiés.

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String

View File

@ -2,20 +2,21 @@
uri: session.server.get
description: |
Configure le server.
Récupérer la configuration du server.
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String
ref: Config.SessionId
shortarg: s
description: Identifiant de la configuration.
name:
type: String
shortarg: n
description: Nom de la variable.
default: null
response:
type: Session

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
response:
type: '[]Session'
description: |

View File

@ -6,17 +6,12 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
id:
type: Number
ref: Server.ServerId
shortarg: c
description: |
Identifiant de la configuration.
server_name:
type: String
ref: Server.ServerName
shortarg: s
description: Nom du serveur.
response:
type: Session

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
ref: Config.SessionId

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
ref: Config.SessionId
@ -18,6 +14,6 @@ parameters:
description: Identifiant de la session.
response:
type: SessionConfigurationStatus
type: Session
description: Statut de la configuration.

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String

View File

@ -6,16 +6,17 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
type: String
ref: Config.SessionId
shortarg: s
description: Identifiant de la configuration.
name:
type: String
shortarg: n
description: Nom de la variable.
default: null
response:
type: Session

View File

@ -5,10 +5,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
response:
type: '[]Session'
description: |

View File

@ -5,17 +5,22 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
id:
type: Number
ref: Servermodel.ServermodelId
shortarg: c
description: |
Identifiant de la configuration.
servermodel_name:
type: String
ref: Servermodel.ServermodelName
shortarg: s
description: Nom du serveurmodel.
source_name:
type: String
shortarg: n
description: Nom de la source.
ref: Source.SourceName
release_distribution:
type: String
shortarg: r
description: Nom de la distribution.
ref: Source.ReleaseDistribution
response:
type: Session

View File

@ -5,10 +5,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
ref: Config.SessionId

View File

@ -6,10 +6,6 @@ description: |
pattern: rpc
public: true
domain: session-domain
parameters:
session_id:
ref: Config.SessionId
@ -18,6 +14,6 @@ parameters:
description: Identifiant de la session.
response:
type: SessionConfigurationStatus
type: Session
description: Statut de la configuration.

View File

@ -0,0 +1,23 @@
---
uri: source.create
description: |
Créer une source.
pattern: rpc
parameters:
source_name:
type: String
shortarg: n
description: |
Nom de la source.
source_url:
type: String
shortarg: u
description: |
URL de téléchargement de la source.
response:
type: 'Source'
description: Information sur la source.

View File

@ -0,0 +1,20 @@
uri: source.dataset.update
description: |
Initialise la table pour les versions.
pattern: rpc
parameters:
source_id:
type: Number
shortarg: s
description: ID de la source.
release_name:
type: String
shortarg: r
description: Nom de la version.
response:
type: Release
description: Informations sur la version injectée en base.

View File

@ -0,0 +1,18 @@
---
uri: source.describe
description: |
Retourne une source.
pattern: rpc
parameters:
source_name:
type: String
shortarg: n
description: |
Nom de la source.
response:
type: 'Source'
description: Information sur la source.

View File

@ -0,0 +1,11 @@
---
uri: source.list
description: |
Retourne la liste des sources.
pattern: rpc
response:
type: '[]Source'
description: Liste des sources disponibles.

View File

@ -0,0 +1,27 @@
---
uri: source.release.create
description: |
Créer une version.
pattern: rpc
parameters:
source_name:
type: String
shortarg: s
description: Nom de la source.
release_name:
type: String
shortarg: n
description: |
Nom de la version.
release_distribution:
type: String
shortarg: d
description: |
Distribution de la version.
response:
type: 'Release'
description: Information sur la version.

View File

@ -0,0 +1,21 @@
---
uri: source.release.describe
description: |
Retourne la sous-version.
pattern: rpc
parameters:
source_name:
type: String
shortarg: s
description: Nom de la source.
release_distribution:
type: String
shortarg: r
description: Nom de la sous-version
response:
type: 'Release'
description: Sous-version.

View File

@ -0,0 +1,22 @@
---
uri: source.release.get_by_distribution
description: |
Retourne version suivant le nom de la distribution.
pattern: rpc
parameters:
source_id:
type: Number
shortarg: s
description: ID de la source.
release_distribution:
type: String
shortarg: r
description: Distribution de la version.
response:
type: 'Release'
description: La version disponibles.

View File

@ -0,0 +1,17 @@
---
uri: source.release.get_by_id
description: |
Retourne version suivant l'identifiant.
pattern: rpc
parameters:
release_id:
type: Number
shortarg: r
description: ID de la version.
response:
type: 'Release'
description: La version disponibles.

View File

@ -0,0 +1,17 @@
---
uri: source.release.list
description: |
Retourne la liste des versions.
pattern: rpc
parameters:
source_name:
type: String
shortarg: s
description: Nom de la source.
response:
type: '[]Release'
description: Liste des versions disponibles.

View File

@ -4,21 +4,14 @@ uri: template.generate
description: |
Génère et récupère les templates générés.
sampleuse: ~
pattern: rpc
public: true
domain: template-domain
parameters:
server_id:
type: Number
ref: Server.ServerId
server_name:
type: String
ref: Server.ServerName
shortarg: s
description: |
Identifiant du serveur.
description: Nom du serveur.
response:
type: Template

View File

@ -0,0 +1,22 @@
---
uri: uri.role.join
description: Crée un rôle utilisateur.
pattern: rpc
parameters:
role_name:
type: String
shortarg: r
description: Nom du rôle.
ref: User.RoleName
uri_name:
type: String
shortarg: u
description: Nom du message.
response:
type: URIRole
description: Association de rôle créé.

View File

@ -0,0 +1,11 @@
---
uri: uri.role.list
description: Liste des associations d'URI et de rôle.
pattern: rpc
response:
type: '[]URIRole'
description: Liste des associations.

View File

@ -0,0 +1,29 @@
---
uri: user.create
description: Crée un utilisateur.
pattern: rpc
parameters:
user_login:
type: String
shortarg: l
description: Login de l'utilisateur.
ref: User.Login
user_password:
type: String
shortarg: p
description: Password de l'utilisateur.
user_name:
type: String
shortarg: n
description: Nom de l'utilisateur.
user_surname:
type: String
shortarg: s
description: Nom de famille de l'utilisateur.
response:
type: User
description: Description de l'utilisateur créé.

View File

@ -0,0 +1,18 @@
---
uri: user.delete
description: Supprimer un utilisateur.
pattern: rpc
parameters:
user_login:
type: String
shortarg: l
description: Login de l'utilisateur.
ref: User.Login
response:
type: User
description: Description de l'utilisateur supprimé.

View File

@ -0,0 +1,11 @@
---
uri: user.list
description: |
Liste les utilisateurs disponibles.
pattern: rpc
response:
type: '[]User'
description: Retourne la liste des utilisateurs.

View File

@ -0,0 +1,32 @@
---
uri: user.role.create
description: Crée un rôle utilisateur.
pattern: rpc
parameters:
user_login:
type: String
shortarg: u
description: Login de l'utilisateur.
ref: User.UserLogin
role_name:
type: String
shortarg: n
description: Nom du rôle.
ref: User.RoleName
role_attribute:
type: String
shortarg: a
description: Attribut contrôlé.
default: null
role_attribute_value:
type: String
shortarg: v
description: Valeur de l'attribut contrôlé.
default: null
response:
type: Role
description: Description du rôle créé.

View File

@ -0,0 +1,19 @@
---
uri: user.role.list
description: |
Liste les rôles disponibles.
pattern: rpc
parameters:
user_login:
type: String
shortarg: l
description: Login de l'utilisateur associé.
ref: User.RoleName
default: null
response:
type: '[]Role'
description: Retourne la liste des rôles.

View File

@ -0,0 +1,28 @@
---
title: ApplicationService
type: object
description: Description d'un modèle de serveur.
properties:
applicationservice_id:
type: number
description: ID du service applicatif.
applicationservice_name:
type: string
description: Nom du service applicatif.
applicationservice_description:
type: string
description: Description du service applicatif.
applicationservice_release_id:
type: number
ref: Version.ReleaseId
description: Version du service applicatif.
applicationservice_dependencies:
type: array
items:
type: number
description: Liste des services applicatifs déclarés en dépendance de ce service applicatif.
required:
- applicationservice_id
- applicationservice_name
- applicationservice_release_id

View File

@ -3,8 +3,15 @@ title: ConfigConfiguration
type: object
description: Description de la configuration.
properties:
server_name:
type: string
description: Nom du serveur.
ref: Server.ServerName
deployed:
type: boolean
description: La configuration est déployée.
configuration:
type: File
type: object
description: Détail de la configuration au format JSON.
required:
- configuration

View File

@ -0,0 +1,20 @@
---
title: Deploy
type: object
description: État de déploiement de la configuration.
properties:
server_id:
type: number
description: ID du serveur.
ref: Server.ServerID
server_name:
type: string
ref: Server.ServerName
description: Nom du server.
deployed:
type: boolean
description: État de déploiement.
required:
- server_id
- server_name
- deployed

View File

@ -0,0 +1,14 @@
---
title: ReturnStatus
type: object
description: Résultat dune commande.
properties:
retcode:
type: number
description: Code de retour de la commande.
returns:
type: string
description: Retour de la commande.
required:
- retcode
- returns

View File

@ -0,0 +1,28 @@
---
title: Release
type: object
description: Description de la version.
properties:
release_id:
type: number
description: Identifiant de la version.
release_name:
type: string
description: Le nom de la version.
release_distribution:
type: string
description: Le nom de la distribution de la version.
source_url:
type: string
description: URL de la source.
ref: Source.ReleaseId
source_name:
type: string
description: Le nom de la source.
required:
- release_id
- release_name
- release_distribution
- source_name
- source_url

View File

@ -0,0 +1,26 @@
---
title: Role
type: object
description: Description du rôle.
properties:
role_id:
type: number
description: Identifiant de l'utilisateur.
ref: User.RoleUserId
user_login:
type: string
description: Login du l'utilisateur.
ref: User.Login
role_name:
type: string
description: Nom du rôle.
role_attribute:
type: string
description: Nom de l'utilisateur.
role_attribute_value:
type: string
description: Valeur de l'attribut contrôlé.
required:
- role_id
- role_name

View File

@ -1,44 +0,0 @@
---
title: ServerDescribe
type: object
description: Description du serveur.
properties:
serverid:
type: number
description: Identifiant du serveur.
ref: Server.ServerId
servername:
type: string
description: Nom du serveur.
serverdescription:
type: string
description: Description du serveur.
servermodelid:
type: number
description: Identifiant du modèle de serveur.
ref: Servermodel.ServermodelId
zoneid:
type: number
description: Identifiant de la zone.
ref: Zone.ZoneId
machineid:
type: number
description: Identifiant de la machine.
ref: Zone.MachineId
configuration:
type: file
description: Valeurs de configuration.
serverenvironment:
type: object
description: Variables d'environnement du serveur.
peering:
type: object
description: Clé d'appairage.
lastpeerconnection:
type: string
description: Timestamp de la dernière connexion avec le serveur.
required:
- serverid
- servername
- serverdescription
- servermodelid

View File

@ -7,33 +7,18 @@ properties:
type: number
description: Identifiant du serveur.
ref: Server.ServerId
servername:
server_name:
type: string
description: Nom du serveur.
serverdescription:
server_description:
type: string
description: Description du serveur.
servermodelid:
server_servermodel_id:
type: number
description: Identifiant du modèle de serveur.
ref: Servermodel.ServermodelId
zoneid:
type: number
description: Identifiant de la zone.
ref: Zone.ZoneId
machineid:
type: number
description: Identifiant de la machine.
ref: Zone.MachineId
automation:
type: string
description: Moteur d'exécution.
ref: Server.automation
lastpeerconnection:
type: string
description: Timestamp de la dernière connexion avec le serveur.
required:
- server_id
- servername
- serverdescription
- servermodelid
- server_name
- server_description
- server_servermodel_id

View File

@ -3,16 +3,16 @@ title: ServermodelSource
type: object
description: Description de la source.
properties:
sourceid:
source_id:
type: number
description: ID de la source.
sourcename:
source_name:
type: string
description: Nom de la source.
sourceurl:
source_url:
type: string
description: URL de la source.
required:
- sourceid
- sourcename
- sourceurl
- source_id
- source_name
- source_url

View File

@ -3,55 +3,28 @@ title: Servermodel
type: object
description: Description d'un modèle de serveur.
properties:
servermodelid:
servermodel_id:
type: number
description: ID du modèle de serveur.
ref: Servermodel.ServermodelId
servermodelname:
servermodel_name:
type: string
description: Nom du modèle de serveur.
servermodeldescription:
servermodel_description:
type: string
description: Description du modèle de serveur.
servermodelparentsid:
servermodel_parents_id:
type: array
items:
type: number
ref: Servermodel.ServermodelId
description: ID du modèle de serveur parent.
subreleaseid:
release_id:
type: number
ref: Servermodel.SubreleaseId
description: Version du modèle de serveur.
subreleasename:
type: string
ref: SubRelease.SubReleaseName
description: Nom de la sous-version.
sourceid:
type: number
ref: ServermodelId.SourceId
description: ID de la sous-version.
services:
type: array
items:
type: object
description: Liste des services applicatifs déclarés pour ce modèle de serveur.
schema:
type: File
description: Contenu du schema.
probes:
type: File
description: Informations sur les sondes.
creolefuncs:
type: File
description: Fonctions Creole.
conffiles:
type: File
description: Fichiers creole au format tar encodé base64
required:
- servermodelid
- servermodelname
- servermodeldescription
- servermodelsubreleaseid
- sourceid
- subreleasename
- servermodel_id
- servermodel_name
- servermodel_description
- release_id

View File

@ -1,24 +0,0 @@
---
title: SessionConfigurationStatus
type: object
description: Statut de la configuration.
properties:
session_id:
type: string
description: ID de la session.
ref: Config.SessionId
status:
type: string
description: Statut de la configuration (peut être ok, error, incomplete)
message:
type: string
description: Message d'erreur si la configuration a le statut error.
mandatories:
type: array
items:
type: string
description: Liste des variables obligatoires non renseignées si la configuration a le statut incomplete.
required:
- session_id
- status

View File

@ -12,9 +12,6 @@ properties:
index:
type: number
description: Index de la variable a modifier.
status:
type: string
description: Status de la modification.
message:
type: string
description: Message d'erreur.

Some files were not shown because too many files have changed in this diff Show More