Compare commits
No commits in common. "3a9243bfb88237dbd8ff1b648fb421ea12378f20" and "47d5ed77d536747b821dabcf5bbcc2a89e28bd79" have entirely different histories.
3a9243bfb8
...
47d5ed77d5
@ -20,8 +20,8 @@ docker run -d --add-host reload.example.com:127.0.0.1 -p 80:80 coudot/lemonldap-
|
|||||||
|
|
||||||
Démarrer un serveur postgresql de test
|
Démarrer un serveur postgresql de test
|
||||||
```
|
```
|
||||||
docker run -dt -p 5432:5432 --name postgres postgres:11-alpine
|
podman pull docker.io/library/postgres:11-alpine
|
||||||
docker exec -ti postgres bash
|
podman run -dt -p 5432:5432 postgres:11-alpine
|
||||||
|
|
||||||
psql -U postgres -h localhost -c "CREATE ROLE risotto WITH LOGIN PASSWORD 'risotto';"
|
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 "CREATE DATABASE risotto;"
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
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
|
|
||||||
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
|
|
@ -1,14 +0,0 @@
|
|||||||
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
|
|
||||||
```
|
|
@ -1,28 +0,0 @@
|
|||||||
version: '2.2'
|
|
||||||
services:
|
|
||||||
risotto:
|
|
||||||
build:
|
|
||||||
context: ../
|
|
||||||
dockerfile: docker/Dockerfile
|
|
||||||
volumes:
|
|
||||||
- ../.:/srv/src/risotto
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
depends_on:
|
|
||||||
- postgres
|
|
||||||
links:
|
|
||||||
- postgres
|
|
||||||
#command: tail -F /var/log
|
|
||||||
command: python /srv/src/risotto/script/server.py
|
|
||||||
restart: unless-stopped
|
|
||||||
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
|
|
@ -1,103 +0,0 @@
|
|||||||
#!/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;
|
|
||||||
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,
|
|
||||||
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
|
|
@ -97,15 +97,7 @@ CREATE TABLE log(
|
|||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
db_conf = get_config().get('database')
|
db_conf = get_config().get('database')
|
||||||
#asyncpg.connect('postgresql://postgres@localhost/test')
|
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
||||||
engine = db_conf.get('engine')
|
|
||||||
host = db_conf.get('host')
|
|
||||||
dbname = db_conf.get('dbname')
|
|
||||||
dbuser = db_conf.get('user')
|
|
||||||
dbpassword = db_conf.get('password')
|
|
||||||
dbport = db_conf.get('port')
|
|
||||||
cfg = "{}://{}:{}@{}:{}/{}".format(engine, dbuser, dbpassword, host, dbport, dbname)
|
|
||||||
pool = await asyncpg.create_pool(cfg)
|
|
||||||
async with pool.acquire() as connection:
|
async with pool.acquire() as connection:
|
||||||
async with connection.transaction():
|
async with connection.transaction():
|
||||||
returns = await connection.execute(VERSION_INIT)
|
returns = await connection.execute(VERSION_INIT)
|
||||||
@ -114,4 +106,3 @@ if __name__ == '__main__':
|
|||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
loop.run_until_complete(main())
|
loop.run_until_complete(main())
|
||||||
# asyncio.run(main())
|
# asyncio.run(main())
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
MESSAGE_ROOT_PATH = 'messages'
|
MESSAGE_ROOT_PATH = 'messages'
|
||||||
DATABASE_DIR = '/var/cache/risotto/database'
|
DATABASE_DIR = 'database'
|
||||||
INTERNAL_USER = 'internal'
|
INTERNAL_USER = 'internal'
|
||||||
CONFIGURATION_DIR = 'configurations'
|
CONFIGURATION_DIR = 'configurations'
|
||||||
TEMPLATE_DIR = 'templates'
|
TEMPLATE_DIR = 'templates'
|
||||||
@ -12,8 +12,7 @@ from pathlib import PurePosixPath
|
|||||||
CURRENT_PATH = PurePosixPath(__file__)
|
CURRENT_PATH = PurePosixPath(__file__)
|
||||||
|
|
||||||
def get_config():
|
def get_config():
|
||||||
return {'database': {'engine': 'postgres',
|
return {'database': {'host': 'localhost',
|
||||||
'host': 'postgres',
|
|
||||||
'port': 5432,
|
'port': 5432,
|
||||||
'dbname': 'risotto',
|
'dbname': 'risotto',
|
||||||
'user': 'risotto',
|
'user': 'risotto',
|
||||||
@ -31,4 +30,3 @@ def get_config():
|
|||||||
'source': {'root_path': '/srv/seed'},
|
'source': {'root_path': '/srv/seed'},
|
||||||
'cache': {'root_path': '/var/cache/risotto'}
|
'cache': {'root_path': '/var/cache/risotto'}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,15 +248,7 @@ class RegisterDispatcher:
|
|||||||
async def load(self):
|
async def load(self):
|
||||||
# valid function's arguments
|
# valid function's arguments
|
||||||
db_conf = get_config().get('database')
|
db_conf = get_config().get('database')
|
||||||
|
self.pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
||||||
engine = db_conf.get('engine')
|
|
||||||
host = db_conf.get('host')
|
|
||||||
dbname = db_conf.get('dbname')
|
|
||||||
dbuser = db_conf.get('user')
|
|
||||||
dbpassword = db_conf.get('password')
|
|
||||||
dbport = db_conf.get('port')
|
|
||||||
cfg = "{}://{}:{}@{}:{}/{}".format(engine, dbuser, dbpassword, host, dbport, dbname)
|
|
||||||
self.pool = await asyncpg.create_pool(cfg)
|
|
||||||
async with self.pool.acquire() as connection:
|
async with self.pool.acquire() as connection:
|
||||||
async with connection.transaction():
|
async with connection.transaction():
|
||||||
for version, messages in self.messages.items():
|
for version, messages in self.messages.items():
|
||||||
@ -279,4 +271,3 @@ class RegisterDispatcher:
|
|||||||
module_name)
|
module_name)
|
||||||
await self.insert_message(connection,
|
await self.insert_message(connection,
|
||||||
f'{version}.{message}')
|
f'{version}.{message}')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user