Compare commits

..

No commits in common. "develop" and "master" have entirely different histories.

9 changed files with 202 additions and 110 deletions

151
db/gen/create_tables.sql Normal file
View File

@ -0,0 +1,151 @@
-- Deployment
CREATE TABLE Deployment (
DeploymentId SERIAL PRIMARY KEY,
ProviderType VARCHAR(255) NOT NULL,
TargetType VARCHAR(255) NOT NULL,
TargetName VARCHAR(255) NOT NULL,
FactoryCluster VARCHAR(255),
FactoryNodeName VARCHAR(255),
CPU INTEGER,
VCPU INTEGER,
Memory INTEGER,
Labels VARCHAR(255) [] DEFAULT '{}',
UNIQUE (TargetType, TargetName)
);
CREATE INDEX Deployment_FactoryNodeName_index ON Deployment(FactoryNodeName);
-- Cluster
CREATE TABLE FactoryCluster (
ClusterId SERIAL PRIMARY KEY,
ClusterName VARCHAR(255) NOT NULL UNIQUE,
ClusterDescription VARCHAR(255) NOT NULL,
VirtualIp VARCHAR(15) NOT NULL,
ZoneName VARCHAR(255) NOT NULL
);
-- Node in Cluster
CREATE TABLE FactoryClusterNode (
ClusterNodeId SERIAL PRIMARY KEY,
ClusterId INTEGER NOT NULL,
ServerName VARCHAR(255) NOT NULL UNIQUE,
FOREIGN KEY (ClusterId) REFERENCES FactoryCluster(ClusterId)
);
CREATE INDEX FactoryClusterNode_ServerName_index ON FactoryClusterNode(ServerName);
-- Site
CREATE TABLE Site (
SiteId SERIAL PRIMARY KEY,
SiteName VARCHAR(255) NOT NULL UNIQUE,
SiteDescription VARCHAR(255) NOT NULL
);
-- Zone
CREATE TABLE Zone (
ZoneId SERIAL PRIMARY KEY,
ZoneName VARCHAR(255) NOT NULL UNIQUE,
ZoneDescription VARCHAR(255) NOT NULL,
SitesName VARCHAR(255) [] NOT NULL
);
-- Server
CREATE TABLE Server (
ServerId SERIAL PRIMARY KEY,
ServerName VARCHAR(255) NOT NULL UNIQUE,
ServerDescription VARCHAR(255) NOT NULL,
ServerServermodelName VARCHAR(255) NOT NULL,
ReleaseDistribution VARCHAR(255) NOT NULL,
SiteName VARCHAR(255) NOT NULL,
ZonesName VARCHAR(255) [] NOT NULL,
ZonesIP VARCHAR(255) [] NOT NULL
);
-- Source
CREATE TABLE Source (
SourceId SERIAL PRIMARY KEY,
SourceName VARCHAR(255) NOT NULL UNIQUE,
SourceURL TEXT
);
-- 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)
);
-- Servermodel
CREATE TABLE Servermodel (
ServermodelId SERIAL PRIMARY KEY,
ServermodelName VARCHAR(255) NOT NULL,
ServermodelDescription VARCHAR(255) NOT NULL,
Osname VARCHAR(255),
Osversion VARCHAR(255),
ISO VARCHAR(255),
ServermodelParents VARCHAR(255) [] DEFAULT '{}',
SourceName VARCHAR(255) NOT NULL,
ReleaseDistribution VARCHAR(255) NOT NULL,
ServermodelApplicationserviceId INTEGER NOT NULL,
UNIQUE (ServermodelName, SourceName, ReleaseDistribution)
);
CREATE INDEX ServermodelApplicationserviceId_index ON Servermodel (ServermodelApplicationserviceId);
-- Applicationservice
CREATE TABLE Applicationservice (
ApplicationserviceId SERIAL PRIMARY KEY,
ApplicationserviceName VARCHAR(255) NOT NULL,
ApplicationserviceDescription VARCHAR(255) NOT NULL,
ApplicationserviceReleaseId INTEGER NOT NULL,
ApplicationserviceLVIS VARCHAR(255) NOT NULL,
ApplicationserviceLVIP VARCHAR(255) NOT NULL,
ApplicationserviceLVMP VARCHAR(255) NOT NULL,
OS JSON,
UNIQUE (ApplicationserviceName, ApplicationserviceReleaseId)
);
CREATE TABLE ApplicationserviceDependency (
ApplicationserviceId INTEGER NOT NULL,
ApplicationserviceDependencyId INTEGER NOT NULL,
UNIQUE(ApplicationserviceId, ApplicationserviceDependencyId),
FOREIGN KEY (ApplicationserviceId) REFERENCES Applicationservice(ApplicationserviceId),
FOREIGN KEY (ApplicationserviceDependencyId) REFERENCES Applicationservice(ApplicationserviceId)
);
-- Log
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
);
-- User, Role and ACL
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)
);

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<creole>
<variables>
<family name='système'>
<!-- We need to recalculate the variables -->
<variable name='eole_lv_names' redefine='True' remove_check='True' />
<variable name='eole_lv_standard_extends' redefine='True' remove_check='True' />
</family>
</variables>
<constraints>
<!-- Default AmonEcole* logical volumes -->
<auto name='calc_multi_val' target='eole_lv_names'>
<param>root</param>
<param>tmp</param>
</auto>
<auto name='calc_multi_val' target='eole_lv_standard_extends'>
<param type='number'>100</param>
<param type='number'>0</param>
</auto>
</constraints>
<help/>
</creole>
<!-- vim: ts=4 sw=4 expandtab
-->

View File

@ -2,12 +2,10 @@
<creole>
<files>
<service>risotto</service>
<service_access service='risotto'>
<port>8080</port>
</service_access>
<file name='/etc/risotto/risotto.conf' owner="risotto" mkdir='True' rm='True'/>
<file name='/etc/eole/eole-db.d/risotto.yml' mkdir='True' rm='True'/>
<file name='/etc/eole/eole-db.d/tiramisu.yml'/>
<file filelist='risotto' name='/etc/risotto/risotto.conf' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/systemd/system/risotto.service' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/eole/eole-db.d/risotto.yml' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/eole/eole-db.d/tiramisu.yml' mkdir='True' rm='True'/>
</files>
<variables>
<family name='risotto'>
@ -36,17 +34,33 @@
<value>localhost</value>
</variable>
<variable name='risotto_messages_dir' type='filename' description='Emplacement des messages de lAPI' hidden='True'>
<value>/usr/share/risotto-message/messages</value>
<value>/srv/risotto-message/messages</value>
</variable>
<variable name='risotto_cache_dir' type='filename' description='Emplacement du cache' hidden='True'>
<value>/srv/risotto/cache</value>
<value>/var/cache/risotto</value>
</variable>
<variable name='risotto_seed_dir' type='filename' description='Emplacement des descriptions de services' hidden='True'>
<value>/srv/risotto/seed</value>
</variable>
<variable name='risotto_images_dir' type='filename' description='Emplacement des images disques' hidden='True'>
<value>/srv/risotto/images</value>
<variable name='risotto_factory_configuration_dir' type='filename' description='Emplacement de la configuration du provider factory' hidden='True'>
<value>/srv/factory/</value>
</variable>
</family>
</variables>
<constraints>
</constraints>
<help>
<variable name='risotto_configuration_dir'>Aide pour la variable risotto_configuration_dir</variable>
<variable name='risotto_temp_dir'>Aide pour la variable risotto_temp_dir</variable>
<variable name='risotto_default_user'>Aide pour la variable risotto_default_user</variable>
<variable name='risotto_main_dbname'>Aide pour la variable risotto_main_dbname</variable>
<variable name='risotto_tiramisu_dbname'>Aide pour la variable risotto_tiramisu_dbname</variable>
<variable name='risotto_db_user'>Aide pour la variable risotto_db_user</variable>
<variable name='risotto_tiramisu_db_user'>Aide pour la variable risotto_tiramisu_db_user</variable>
<variable name='risotto_db_address'>Aide pour la variable risotto_db_address</variable>
<variable name='risotto_messages_dir'>Aide pour la variable risotto_messages_dir</variable>
<variable name='risotto_cache_dir'>Aide pour la variable risotto_cache_dir</variable>
<variable name='risotto_seed_dir'>Aide pour la variable risotto_seed_dir</variable>
<variable name='risotto_factory_configuration_dir'>Aide pour la variable risotto_factory_configuration_dir</variable>
</help>
</creole>

View File

@ -2,8 +2,6 @@
set -e
systemctl start postgresql.service
psql -Upostgres -c "grant all on all tables in schema public to risotto" risotto
psql -Upostgres -c "grant all on all sequences in schema public to risotto" risotto
psql -Upostgres -c "grant all on all functions in schema public to risotto" risotto
@ -11,6 +9,4 @@ psql -Upostgres -c "grant all on all tables in schema public to tiramisu" tirami
psql -Upostgres -c "grant all on all sequences in schema public to tiramisu" tiramisu
psql -Upostgres -c "grant all on all functions in schema public to tiramisu" tiramisu
systemctl stop postgresql.service
exit 0

View File

@ -1,9 +0,0 @@
#!/bin/bash
for dir in risotto_cache_dir risotto_seed_dir risotto_temp_dir risotto_configuration_dir risotto_images_dir; do
dirname=$(CreoleGet $dir)
mkdir -p $dirname
chown risotto: $dirname
done
exit 0

View File

@ -1,40 +1,15 @@
CONFIGURATION_DIR=%%risotto_configuration_dir
TMP_DIR="%%risotto_temp_dir"
IMAGE_PATH="%%risotto_images_dir"
DEFAULT_USER="%%risotto_default_user"
RISOTTO_DB_NAME="%%risotto_main_dbname"
RISOTTO_DB_USER="%%risotto_db_user"
CONFIGURATION_DIR=%%getVar('risotto_configuration_dir')
PROVIDER_FACTORY_CONFIG_DIR=%%getVar('risotto_factory_configuration_dir')
TMP_DIR=%%getVar('risotto_temp_dir')
DEFAULT_USER=%%getVar('risotto_default_user')
RISOTTO_DB_NAME=%%getVar('risotto_main_dbname')
RISOTTO_DB_USER=%%getVar('risotto_db_user')
RISOTTO_DB_PASSWORD=replace_me
TIRAMISU_DB_NAME="%%risotto_tiramisu_dbname"
TIRAMISU_DB_USER="%%risotto_tiramisu_db_user"
TIRAMISU_DB_NAME=%%getVar('risotto_tiramisu_dbname')
TIRAMISU_DB_USER=%%getVar('risotto_tiramisu_db_user')
TIRAMISU_DB_PASSWORD=replace_me
RISOTTO_URL="http://%%nom_domaine_machine:8080/"
DB_ADDRESS="%%risotto_db_address"
MESSAGE_PATH="%%risotto_messages_dir"
CACHE_ROOT_PATH="%%risotto_cache_dir"
SRV_SEED_PATH="%%risotto_seed_dir"
%set %%var = %%getVar('celeryrisotto_db_user', None)
%if not %%is_empty(%%var)
CELERYRISOTTO_DB_NAME="%%celeryrisotto_main_dbname"
CELERYRISOTTO_DB_USER="%%var"
CELERYRISOTTO_DB_PASSWORD=replace_me
%end if
%set %%var = %%getVar('lemur_db_user', None)
%if not %%is_empty(%%var)
LEMUR_DB_NAME="%%lemur_db_name"
LEMUR_DB_USER="%%var"
LEMUR_DB_PASSWORD='replace_me'
%end if
%set %%var = %%getVar('password_admin_username', None)
%if not %%is_empty(%%var)
PASSWORD_ADMIN_USERNAME="%%password_admin_username"
PASSWORD_ADMIN_EMAIL="%%password_admin_email"
PASSWORD_ADMIN_PASSWORD="%%password_admin_password"
PASSWORD_DEVICE_IDENTIFIER="%%password_device_identifier"
PASSWORD_URL="https://%%nom_domaine_machine:8001/"
PASSWORD_LENGTH=%%password_length
%end if
%if %%getVar('lemur_db_name', None)
PKI_ADMIN_PASSWORD="%%lemur_admin_password"
PKI_ADMIN_EMAIL="%%lemur_admin_email"
%end if
DB_ADDRESS=%%getVar('risotto_db_address')
MESSAGE_PATH=%%getVar('risotto_messages_dir')
CACHE_ROOT_PATH=%%getVar('risotto_cache_dir')
SRV_SEED_PATH=%%getVar('risotto_seed_dir')
PYTHONPATH="/usr/lib/python3.6/dist-packages:$PYTHONPATH"

View File

@ -1,12 +1,9 @@
[Unit]
Description=risotto
After=postgresql.service
[Service]
Type=notify
EnvironmentFile=/etc/risotto/risotto.conf
ExecStart=/usr/bin/risotto-server
User=risotto
Group=risotto
[Install]
WantedBy=multi-user.target

View File

@ -1,23 +1,17 @@
%from os import listdir
%set %%dbname = %%risotto_main_dbname
%set %%dbname = %%getVar('risotto_main_dbname')
---
dbuser: %%risotto_db_user
dbuser: %%getVar('risotto_db_user')
dbuser_options:
- LOGIN
- LOGIN
privileges:
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%risotto_db_address
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%getVar('risotto_db_address')
dbport: 5432
dbtype: postgres
dbname: %%dbname
template: 'template0'
sqlscripts:
%for %%file in %%listdir('/usr/share/eole/db/eole-risotto/gen/')
%if %%file.endswith('.sql')
- /usr/share/eole/db/eole-risotto/gen/%%file
%end if
%end for
sqlscripts: ['/usr/share/eole/db/eole-risotto/gen/create_tables.sql']
pwd_files:
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'RISOTTO_DB_PASSWORD='}
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'RISOTTO_DB_PASSWORD='}

View File

@ -1,16 +1,16 @@
%set %%dbname = %%risotto_tiramisu_dbname
%set %%dbname = %%getVar('risotto_tiramisu_dbname')
---
dbuser: %%risotto_tiramisu_db_user
dbuser: %%getVar('risotto_tiramisu_db_user')
dbuser_options:
- LOGIN
privileges:
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%risotto_db_address
dbhost: %%getVar('risotto_db_address')
dbport: 5432
dbtype: postgres
dbname: %%risotto_tiramisu_dbname
dbname: %%getVar('risotto_tiramisu_dbname')
template: 'template0'
pwd_files:
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'TIRAMISU_DB_PASSWORD='}