From 3020c508f678a99a4a01aa4046af01598e0ce6c3 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 15 Mar 2018 16:28:43 -0400 Subject: [PATCH 01/66] #3208: setup_tables.py, general permission tables --- .../modules/mariadb/scripts/setup_tables.py | 90 +++++-------------- 1 file changed, 21 insertions(+), 69 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 7d9e74408..ca0bbba38 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -76,101 +76,53 @@ # create cursor object cur = conn.cursor() - # create 'tbl_user' + # general permission sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_user ( - id_user INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - username VARCHAR (50) NOT NULL, - email VARCHAR (255) NOT NULL, - password VARCHAR (1069) NOT NULL, - datetime_joined DATETIME NOT NULL, - INDEX (username) + CREATE TABLE IF NOT EXISTS Permission ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (PermissionEntityID) references PermissionEntity(PermissionEntityID), + foreign key (PermissionValueID) references PermissionValue(PermissionValueID), ); ''' cur.execute(sql_statement) - # create 'tbl_dataset_entity' + # superclass for PermissionEntityXXX subclasses sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_dataset_entity ( - id_entity INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - title VARCHAR (50) NOT NULL, - collection VARCHAR (50) NOT NULL UNIQUE, - model_type INT NOT NULL, - uid_created INT NOT NULL, - datetime_created DATETIME NOT NULL, - uid_modified INT NULL, - datetime_modified DATETIME NULL, - INDEX (id_entity) + CREATE TABLE IF NOT EXISTS PermissionEntity ( + PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ); ''' cur.execute(sql_statement) - # create 'tbl_model_type' + # PermissionEntity subclass sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_model_type ( - id_model INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - model VARCHAR (50) NOT NULL, - INDEX (id_model) + CREATE TABLE IF NOT EXISTS PermissionEntityCollection ( + PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ); ''' cur.execute(sql_statement) - # populate 'tbl_model_type' + # PermissionEntity subclass sql_statement = '''\ - INSERT INTO tbl_model_type (model) VALUES (%s); - ''' - cur.executemany(sql_statement, models) - - # create 'tbl_prediction_results' - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_prediction_results ( - id_result INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - model_type INT NOT NULL, - title VARCHAR (50) NOT NULL, - result VARCHAR (30) NOT NULL, - uid_created INT NOT NULL, - datetime_created DATETIME NOT NULL, - INDEX (title) - ); - ''' - cur.execute(sql_statement) - - # create 'tbl_svm_results_class' - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_svm_results_class ( - id_class INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - id_result INT NOT NULL, - class VARCHAR (50) NOT NULL - ); - ''' - cur.execute(sql_statement) - - # create 'tbl_svm_results_probability' - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_svm_results_probability ( - id_probability INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - id_result INT NOT NULL, - probability DECIMAL (65,12) NOT NULL + CREATE TABLE IF NOT EXISTS PermissionEntityModel ( + PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ); ''' cur.execute(sql_statement) - # create 'tbl_svm_results_decision_function' + # PermissionEntity subclass sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_svm_results_decision_function ( - id_decision_function INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - id_result INT NOT NULL, - decision_function DECIMAL (65,12) NOT NULL + CREATE TABLE IF NOT EXISTS PermissionEntityResult ( + PermissionEntityId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ); ''' cur.execute(sql_statement) - # create 'tbl_svr_results_r2' + # numeric codified permission value sql_statement = '''\ - CREATE TABLE IF NOT EXISTS tbl_svr_results_r2 ( - id_r2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - id_result INT NOT NULL, - r2 DECIMAL (65,12) NOT NULL + CREATE TABLE IF NOT EXISTS PermissionValue ( + PermissionValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionValueCode INT NOT NULL, ); ''' cur.execute(sql_statement) From ab8d3aa2abb9c345755b177777d9beca3eb8a759 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 15 Mar 2018 16:37:44 -0400 Subject: [PATCH 02/66] #3208: setup_tables.py, adjust fk on 'Permission' --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ca0bbba38..ed86ca743 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -81,7 +81,7 @@ CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (PermissionEntityID) references PermissionEntity(PermissionEntityID), - foreign key (PermissionValueID) references PermissionValue(PermissionValueID), + foreign key (PermissionValueID) references PermissionValue(PermissionEntityID), ); ''' cur.execute(sql_statement) From 5c759c93af00eb9bddde2a4aa0fb2bf5e627ccf9 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 22 Mar 2018 08:52:18 -0400 Subject: [PATCH 03/66] #3208: setup_tables.py, temporary reapply legacy tbl's --- .../modules/mariadb/scripts/setup_tables.py | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ed86ca743..398ab2be5 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -76,6 +76,115 @@ # create cursor object cur = conn.cursor() + # ################################################################################# # + # LEGACY TABLES: these tables will be iteratively phased out, as corresponding # + # backend and frontend are developed. # + # ################################################################################# # + + # create 'tbl_user' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_user ( + id_user INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + username VARCHAR (50) NOT NULL, + email VARCHAR (255) NOT NULL, + password VARCHAR (1069) NOT NULL, + datetime_joined DATETIME NOT NULL, + INDEX (username) + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_dataset_entity' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_dataset_entity ( + id_entity INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + title VARCHAR (50) NOT NULL, + collection VARCHAR (50) NOT NULL UNIQUE, + model_type INT NOT NULL, + uid_created INT NOT NULL, + datetime_created DATETIME NOT NULL, + uid_modified INT NULL, + datetime_modified DATETIME NULL, + INDEX (id_entity) + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_model_type' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_model_type ( + id_model INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + model VARCHAR (50) NOT NULL, + INDEX (id_model) + ); + ''' + cur.execute(sql_statement) + + # populate 'tbl_model_type' + sql_statement = '''\ + INSERT INTO tbl_model_type (model) VALUES (%s); + ''' + cur.executemany(sql_statement, models) + + # create 'tbl_prediction_results' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_prediction_results ( + id_result INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + model_type INT NOT NULL, + title VARCHAR (50) NOT NULL, + result VARCHAR (30) NOT NULL, + uid_created INT NOT NULL, + datetime_created DATETIME NOT NULL, + INDEX (title) + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_svm_results_class' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_svm_results_class ( + id_class INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + id_result INT NOT NULL, + class VARCHAR (50) NOT NULL + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_svm_results_probability' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_svm_results_probability ( + id_probability INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + id_result INT NOT NULL, + probability DECIMAL (65,12) NOT NULL + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_svm_results_decision_function' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_svm_results_decision_function ( + id_decision_function INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + id_result INT NOT NULL, + decision_function DECIMAL (65,12) NOT NULL + ); + ''' + cur.execute(sql_statement) + + # create 'tbl_svr_results_r2' + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS tbl_svr_results_r2 ( + id_r2 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + id_result INT NOT NULL, + r2 DECIMAL (65,12) NOT NULL + ); + ''' + cur.execute(sql_statement) + + # ################################################################################# # + # NEW STRUCTURE: when the above legacy tables have been completely phased out, the # + # below tables will completely define our sql implementation. # + # ################################################################################# # + # general permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( From 742578a4af6574abfd730a0e47686c9c79d09a61 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 22 Mar 2018 23:33:50 -0400 Subject: [PATCH 04/66] #3208: create stored functions for time based uuid --- .../modules/mariadb/scripts/setup_tables.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 398ab2be5..d96d45259 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -185,6 +185,39 @@ class VARCHAR (50) NOT NULL # below tables will completely define our sql implementation. # # ################################################################################# # + # stored functions: time based uuid + # + # Note: https://mariadb.com/kb/en/library/guiduuid-performance/#code-to-do-it + # + sql_statement = '''\ + CREATE FUNCTION UuidToBin(_uuid BINARY(36)) + RETURNS BINARY(16) + LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER + RETURN + UNHEX(CONCAT( + SUBSTR(_uuid, 15, 4), + SUBSTR(_uuid, 10, 4), + SUBSTR(_uuid, 1, 8), + SUBSTR(_uuid, 20, 4), + SUBSTR(_uuid, 25) )); + ''' + cur.execute(sql_statement) + + sql_statement = '''\ + CREATE FUNCTION UuidFromBin(_bin BINARY(16)) + RETURNS BINARY(36) + LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER + RETURN + LCASE(CONCAT_WS('-', + HEX(SUBSTR(_bin, 5, 4)), + HEX(SUBSTR(_bin, 3, 2)), + HEX(SUBSTR(_bin, 1, 2)), + HEX(SUBSTR(_bin, 9, 2)), + HEX(SUBSTR(_bin, 11)) + )); + ''' + cur.execute(sql_statement) + # general permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( From 48a2fc91705ee72421f415b159461bdc26612e8a Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 22 Mar 2018 23:35:02 -0400 Subject: [PATCH 05/66] #3208: setup_tables.py, fix indentation --- .../docker/modules/mariadb/scripts/setup_tables.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index d96d45259..e3e577659 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -208,12 +208,12 @@ class VARCHAR (50) NOT NULL RETURNS BINARY(36) LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER RETURN - LCASE(CONCAT_WS('-', - HEX(SUBSTR(_bin, 5, 4)), - HEX(SUBSTR(_bin, 3, 2)), - HEX(SUBSTR(_bin, 1, 2)), - HEX(SUBSTR(_bin, 9, 2)), - HEX(SUBSTR(_bin, 11)) + LCASE(CONCAT_WS('-', + HEX(SUBSTR(_bin, 5, 4)), + HEX(SUBSTR(_bin, 3, 2)), + HEX(SUBSTR(_bin, 1, 2)), + HEX(SUBSTR(_bin, 9, 2)), + HEX(SUBSTR(_bin, 11)) )); ''' cur.execute(sql_statement) From 6d404742ae83d6a49e88c82a1b8ff03b9d824b9c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Thu, 22 Mar 2018 23:56:49 -0400 Subject: [PATCH 06/66] #3208: setup_tables.py, create permission tables --- .../modules/mariadb/scripts/setup_tables.py | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index e3e577659..5def5c209 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -220,10 +220,36 @@ class VARCHAR (50) NOT NULL # general permission sql_statement = '''\ + CREATE TABLE IF NOT EXISTS PermissionUUID ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionType INT NOT NULL, + ); + CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (PermissionEntityID) references PermissionEntity(PermissionEntityID), - foreign key (PermissionValueID) references PermissionValue(PermissionEntityID), + foreign key (PermissionValueID) references PermissionValue(PermissionValueID), + foreign key (UserID) references User(UserID), + foreign key (PermissionType) references PermissionUUID(PermissionType), + ); + + CREATE TABLE IF NOT EXISTS PermissionCollection ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (OwnID) references Own(OwnID), + ); + + CREATE TABLE IF NOT EXISTS PermissionModel ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (OwnID) references Own(OwnID), + ); + + CREATE TABLE IF NOT EXISTS PermissionResult ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (OwnID) references Own(OwnID), + ); + + CREATE TABLE IF NOT EXISTS PermissionValue ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (OwnID) references Own(OwnID), ); ''' cur.execute(sql_statement) From 960f2614eb13f219c4d7cb3ba305e7970b0cdaae Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 00:09:15 -0400 Subject: [PATCH 07/66] #3208: setup_tables.py, add user role tables --- .../modules/mariadb/scripts/setup_tables.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 5def5c209..9aa5e71bd 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -218,6 +218,23 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + # user + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS User ( + UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + UserName VARCHAR (50) NOT NULL, + Password VARCHAR (1069) NOT NULL, + Joined DATETIME NOT NULL, + ); + + CREATE TABLE IF NOT EXISTS Role ( + RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + Role VARCHAR (50) NOT NULL, + foreign key (RoleID) references Role(RoleID), + ); + ''' + cur.execute(sql_statement) + # general permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( From 3c22021871dcb064c20411eab5d25141c6c6bb92 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 00:13:45 -0400 Subject: [PATCH 08/66] #3208: setup_tables.py, fix indentation --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 9aa5e71bd..312b8dfb7 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -199,7 +199,8 @@ class VARCHAR (50) NOT NULL SUBSTR(_uuid, 10, 4), SUBSTR(_uuid, 1, 8), SUBSTR(_uuid, 20, 4), - SUBSTR(_uuid, 25) )); + SUBSTR(_uuid, 25)) + ); ''' cur.execute(sql_statement) From 2f472a5bdcf2409028fa7e5d8856535baf5abf52 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 00:34:01 -0400 Subject: [PATCH 09/66] #3208: setup_tables.py, adjust 'own' tables --- .../modules/mariadb/scripts/setup_tables.py | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 312b8dfb7..44a7e19ad 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -272,43 +272,46 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # superclass for PermissionEntityXXX subclasses + # own sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionEntity ( - PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CREATE TABLE IF NOT EXISTS OwnUUID ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnType INT NOT NULL, ); - ''' - cur.execute(sql_statement) - # PermissionEntity subclass - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionEntityCollection ( - PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CREATE TABLE IF NOT EXISTS Own ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (UserID) references User(UserID), + foreign key (OwnType) references OwnUUID(OwnType), ); - ''' - cur.execute(sql_statement) - # PermissionEntity subclass - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionEntityModel ( - PermissionEntityID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CREATE TABLE IF NOT EXISTS Collection ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CollectionTitle VARCHAR (50) NOT NULL, + CollectionVersion VARCHAR (50) NOT NULL, ); - ''' - cur.execute(sql_statement) - # PermissionEntity subclass - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionEntityResult ( - PermissionEntityId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CREATE TABLE IF NOT EXISTS Model ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + Model BLOB NOT NULL, ); - ''' - cur.execute(sql_statement) - # numeric codified permission value - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionValue ( - PermissionValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - PermissionValueCode INT NOT NULL, + CREATE TABLE IF NOT EXISTS Result ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + foreign key (ResultValueID) references ResultValue(ResultValueID), + foreign key (ModelTypeID) references ModelType(ModelTypeID), + ); + + CREATE TABLE IF NOT EXISTS ModelType ( + ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ModelType VARCHAR (50) NOT NULL, + ); + + CREATE TABLE IF NOT EXISTS ResultValue ( + ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultValueActual DECIMAL (65,12) NOT NULL, + foreign key (ResultValueParameterID) references ResultValueParameter(ResultValueParameterID), + foreign key (ResultID) references Result(ResultID), ); ''' cur.execute(sql_statement) From 130ea783e0d51741ac3eb13b149ab6a709a670a3 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 00:35:50 -0400 Subject: [PATCH 10/66] #3208: setup_tables.py, adjust comments --- .../docker/modules/mariadb/scripts/setup_tables.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 44a7e19ad..d44f4da6b 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -219,7 +219,7 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # user + # user and roles sql_statement = '''\ CREATE TABLE IF NOT EXISTS User ( UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -272,7 +272,7 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # own + # permission based sql_statement = '''\ CREATE TABLE IF NOT EXISTS OwnUUID ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, From 41b9f07409bb222c56d89ca8775e538684a33426 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 01:06:38 -0400 Subject: [PATCH 11/66] #3208: server.pp, allow provisioner to 'CREATE ROUTINE' --- puppet/environment/docker/modules/mariadb/manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index efc0f5813..7c87997ce 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -62,7 +62,7 @@ "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE'], + privileges => ['INSERT', 'CREATE', 'CREATE ROUTINE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, From 5e7bca5dc42fa90aa8eca4989445ae4f96ad199b Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 01:46:15 -0400 Subject: [PATCH 12/66] #3208: server.pp, 'CREATE ROUTINE' permission on db --- .../environment/docker/modules/mariadb/manifests/server.pp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 7c87997ce..4dd5fcb83 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -66,6 +66,12 @@ table => "${db}.*", user => "${provisioner}@${db_host}", }, + "${provisioner}@${db_host}/${db}.*" => { + ensure => 'present', + options => ['GRANT'], + privileges => ['CREATE ROUTINE'], + user => "${provisioner}@${db_host}", + }, "${tester}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], From 9b4fbdf5b7a6b2595e00511e05cf4493c38fe362 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 01:49:57 -0400 Subject: [PATCH 13/66] #3208: server.pp, remove 'CREATE ROUTINE' table level --- puppet/environment/docker/modules/mariadb/manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 4dd5fcb83..35ccaa7fe 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -62,7 +62,7 @@ "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE', 'CREATE ROUTINE'], + privileges => ['INSERT', 'CREATE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, From b2589efdef84e0f903cf00fae6a437386267b034 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 08:41:44 -0400 Subject: [PATCH 14/66] #3208: server.pp, grant 'CREATE ROUTINE' on db level --- .../docker/modules/mariadb/manifests/server.pp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 35ccaa7fe..1351c3a89 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -66,12 +66,6 @@ table => "${db}.*", user => "${provisioner}@${db_host}", }, - "${provisioner}@${db_host}/${db}.*" => { - ensure => 'present', - options => ['GRANT'], - privileges => ['CREATE ROUTINE'], - user => "${provisioner}@${db_host}", - }, "${tester}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], @@ -84,6 +78,9 @@ $db => { ensure => 'present', charset => 'utf8', + user => $provisioner, + host => $db_host, + grant => ['CREATE ROUTINE'], }, }, override_options => { From 285ea53c45017964fcd9130d8e1d9ecffc604eef Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 09:14:40 -0400 Subject: [PATCH 15/66] #3208: setup_tables.py, minor syntax changes --- .../docker/modules/mariadb/scripts/setup_tables.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index d44f4da6b..2eeabc163 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -215,7 +215,8 @@ class VARCHAR (50) NOT NULL HEX(SUBSTR(_bin, 1, 2)), HEX(SUBSTR(_bin, 9, 2)), HEX(SUBSTR(_bin, 11)) - )); + ) + ); ''' cur.execute(sql_statement) @@ -223,7 +224,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS User ( UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - UserName VARCHAR (50) NOT NULL, + Username VARCHAR (50) NOT NULL, Password VARCHAR (1069) NOT NULL, Joined DATETIME NOT NULL, ); From 7ff814d08b59c714a8d7660a29ca47716bacaa51 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 09:58:44 -0400 Subject: [PATCH 16/66] #3208: server.pp, move grant 'CREATE ROUTINE' --- puppet/environment/docker/modules/mariadb/manifests/server.pp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 1351c3a89..fd8ed8cb9 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -41,6 +41,7 @@ max_updates_per_hour => '0', max_user_connections => '1', password_hash => mysql_password($provisioner_pass), + grant => ['CREATE ROUTINE'], }, "${tester}@${db_host}" => { ensure => 'present', @@ -78,9 +79,6 @@ $db => { ensure => 'present', charset => 'utf8', - user => $provisioner, - host => $db_host, - grant => ['CREATE ROUTINE'], }, }, override_options => { From 1c44ada64dccba56309555da3d95e806093e2a8a Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 10:09:48 -0400 Subject: [PATCH 17/66] #3208: server.pp, reattempt db level 'grant' --- .../environment/docker/modules/mariadb/manifests/server.pp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index fd8ed8cb9..86b66b43a 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -41,7 +41,6 @@ max_updates_per_hour => '0', max_user_connections => '1', password_hash => mysql_password($provisioner_pass), - grant => ['CREATE ROUTINE'], }, "${tester}@${db_host}" => { ensure => 'present', @@ -53,6 +52,12 @@ }, }, grants => { + "${db_user}@${db_host}/${db}" => { + privileges => ['CREATE ROUTINE'], + ensure => 'present', + options => ['GRANT'], + user => "${provisioner}@${db_host}", + }, "${db_user}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], From 4c740b6bdcf8668267a4155fba0c96cdbe2bd321 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 10:22:59 -0400 Subject: [PATCH 18/66] #3208: server.pp, move only 'privileges' under 'users' --- .../environment/docker/modules/mariadb/manifests/server.pp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 86b66b43a..b9c9b793b 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -41,6 +41,7 @@ max_updates_per_hour => '0', max_user_connections => '1', password_hash => mysql_password($provisioner_pass), + privileges => ['CREATE ROUTINE'], }, "${tester}@${db_host}" => { ensure => 'present', @@ -52,12 +53,6 @@ }, }, grants => { - "${db_user}@${db_host}/${db}" => { - privileges => ['CREATE ROUTINE'], - ensure => 'present', - options => ['GRANT'], - user => "${provisioner}@${db_host}", - }, "${db_user}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], From 138dbdb43ef5bb3510eed6cbb4ba8befcfc5b54c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 11:45:03 -0400 Subject: [PATCH 19/66] #3208: server.pp, add additional privileges --- puppet/environment/docker/modules/mariadb/manifests/server.pp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index b9c9b793b..5d6d4f292 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -41,7 +41,6 @@ max_updates_per_hour => '0', max_user_connections => '1', password_hash => mysql_password($provisioner_pass), - privileges => ['CREATE ROUTINE'], }, "${tester}@${db_host}" => { ensure => 'present', @@ -63,7 +62,7 @@ "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE'], + privileges => ['INSERT', 'CREATE', 'EXECUTE', 'CREATE ROUTINE', 'ALTER ROUTINE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, From a0b2c88581338ff0d6e201776579dd40fcba882f Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 12:39:54 -0400 Subject: [PATCH 20/66] #3208: setup_tables.py, 'execute' accepts one statement --- .../modules/mariadb/scripts/setup_tables.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 2eeabc163..7b2b2041e 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -228,7 +228,10 @@ class VARCHAR (50) NOT NULL Password VARCHAR (1069) NOT NULL, Joined DATETIME NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Role VARCHAR (50) NOT NULL, @@ -243,29 +246,44 @@ class VARCHAR (50) NOT NULL PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, PermissionType INT NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (PermissionValueID) references PermissionValue(PermissionValueID), foreign key (UserID) references User(UserID), foreign key (PermissionType) references PermissionUUID(PermissionType), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (OwnID) references Own(OwnID), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionModel ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (OwnID) references Own(OwnID), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionResult ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (OwnID) references Own(OwnID), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (OwnID) references Own(OwnID), @@ -279,35 +297,53 @@ class VARCHAR (50) NOT NULL OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, OwnType INT NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (UserID) references User(UserID), foreign key (OwnType) references OwnUUID(OwnType), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Collection ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, CollectionTitle VARCHAR (50) NOT NULL, CollectionVersion VARCHAR (50) NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Model ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Model BLOB NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Result ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (ResultValueID) references ResultValue(ResultValueID), foreign key (ModelTypeID) references ModelType(ModelTypeID), ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS ModelType ( ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ModelType VARCHAR (50) NOT NULL, ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, From 91833a7b9498d825a1dea63f862b94b9861d1db6 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 13:09:18 -0400 Subject: [PATCH 21/66] #3208: setup_tables.py, remove trailing commas --- .../modules/mariadb/scripts/setup_tables.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 7b2b2041e..92ca39cca 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -226,7 +226,7 @@ class VARCHAR (50) NOT NULL UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Username VARCHAR (50) NOT NULL, Password VARCHAR (1069) NOT NULL, - Joined DATETIME NOT NULL, + Joined DATETIME NOT NULL ); ''' cur.execute(sql_statement) @@ -235,7 +235,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Role VARCHAR (50) NOT NULL, - foreign key (RoleID) references Role(RoleID), + foreign key (RoleID) references Role(RoleID) ); ''' cur.execute(sql_statement) @@ -244,7 +244,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - PermissionType INT NOT NULL, + PermissionType INT NOT NULL ); ''' cur.execute(sql_statement) @@ -254,7 +254,7 @@ class VARCHAR (50) NOT NULL PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (PermissionValueID) references PermissionValue(PermissionValueID), foreign key (UserID) references User(UserID), - foreign key (PermissionType) references PermissionUUID(PermissionType), + foreign key (PermissionType) references PermissionUUID(PermissionType) ); ''' cur.execute(sql_statement) @@ -270,7 +270,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionModel ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID), + foreign key (OwnID) references Own(OwnID) ); ''' cur.execute(sql_statement) @@ -278,7 +278,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionResult ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID), + foreign key (OwnID) references Own(OwnID) ); ''' cur.execute(sql_statement) @@ -286,7 +286,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID), + foreign key (OwnID) references Own(OwnID) ); ''' cur.execute(sql_statement) @@ -295,7 +295,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS OwnUUID ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnType INT NOT NULL, + OwnType INT NOT NULL ); ''' cur.execute(sql_statement) @@ -304,7 +304,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (UserID) references User(UserID), - foreign key (OwnType) references OwnUUID(OwnType), + foreign key (OwnType) references OwnUUID(OwnType) ); ''' cur.execute(sql_statement) @@ -313,7 +313,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Collection ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, CollectionTitle VARCHAR (50) NOT NULL, - CollectionVersion VARCHAR (50) NOT NULL, + CollectionVersion VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) @@ -321,7 +321,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Model ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - Model BLOB NOT NULL, + Model BLOB NOT NULL ); ''' cur.execute(sql_statement) @@ -330,7 +330,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Result ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, foreign key (ResultValueID) references ResultValue(ResultValueID), - foreign key (ModelTypeID) references ModelType(ModelTypeID), + foreign key (ModelTypeID) references ModelType(ModelTypeID) ); ''' cur.execute(sql_statement) @@ -338,7 +338,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS ModelType ( ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ModelType VARCHAR (50) NOT NULL, + ModelType VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) @@ -348,7 +348,7 @@ class VARCHAR (50) NOT NULL ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, foreign key (ResultValueParameterID) references ResultValueParameter(ResultValueParameterID), - foreign key (ResultID) references Result(ResultID), + foreign key (ResultID) references Result(ResultID) ); ''' cur.execute(sql_statement) From ee12f845b26c98cbf5511790e9fe23549fce307b Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 13:41:40 -0400 Subject: [PATCH 22/66] #3208: setup_tables.py, fk on 'UserID' from 'User' --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 92ca39cca..c342499de 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -235,7 +235,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Role VARCHAR (50) NOT NULL, - foreign key (RoleID) references Role(RoleID) + foreign key (UserID) references User(UserID) ); ''' cur.execute(sql_statement) From a961c1d2860d5e43e48ff377a61cfcd14a09deb3 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 14:35:46 -0400 Subject: [PATCH 23/66] #3208: setup_tables.py, column before FK, add table --- .../modules/mariadb/scripts/setup_tables.py | 50 +++++++++++++------ 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index c342499de..bb120d90c 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -235,7 +235,8 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Role VARCHAR (50) NOT NULL, - foreign key (UserID) references User(UserID) + UserID INT NOT NULL, + FOREIGN KEY (UserID) REFERENCES User(UserID) ); ''' cur.execute(sql_statement) @@ -252,9 +253,12 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (PermissionValueID) references PermissionValue(PermissionValueID), - foreign key (UserID) references User(UserID), - foreign key (PermissionType) references PermissionUUID(PermissionType) + PermissionValueID INT NOT NULL, + UserID INT NOT NULL, + PermissionType INT NOT NULL, + FOREIGN KEY (PermissionValueID) REFERENCES PermissionValue(PermissionValueID), + FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (PermissionType) REFERENCES PermissionUUID(PermissionType) ); ''' cur.execute(sql_statement) @@ -262,7 +266,8 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID), + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID), ); ''' cur.execute(sql_statement) @@ -270,7 +275,8 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionModel ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID) + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(sql_statement) @@ -278,7 +284,8 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionResult ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID) + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(sql_statement) @@ -286,7 +293,8 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (OwnID) references Own(OwnID) + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(sql_statement) @@ -303,8 +311,10 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (UserID) references User(UserID), - foreign key (OwnType) references OwnUUID(OwnType) + UserID INT NOT NULL, + OwnType INT NOT NULL, + FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) ); ''' cur.execute(sql_statement) @@ -329,8 +339,10 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Result ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - foreign key (ResultValueID) references ResultValue(ResultValueID), - foreign key (ModelTypeID) references ModelType(ModelTypeID) + ResultValueID INT NOT NULL, + ModelTypeID INT NOT NULL, + FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), + FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) ); ''' cur.execute(sql_statement) @@ -347,8 +359,18 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, - foreign key (ResultValueParameterID) references ResultValueParameter(ResultValueParameterID), - foreign key (ResultID) references Result(ResultID) + ResultValueParameterID INT NOT NULL, + ResultID INT NOT NULL, + FOREIGN KEY (ResultValueParameterID) REFERENCES ResultValueParameter(ResultValueParameterID), + FOREIGN KEY (ResultID) REFERENCES Result(ResultID) + ); + ''' + cur.execute(sql_statement) + + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS ResultValueParameter ( + ResultValueParameterID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultValueParameter VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) From 8b4ef98102663af9d2a6fca6b84d21ebbaeb4086 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 17:32:50 -0400 Subject: [PATCH 24/66] #3208: setup_tables.py, define before reference --- .../modules/mariadb/scripts/setup_tables.py | 79 ++++++++++--------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index bb120d90c..d37fedfbd 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -250,6 +250,16 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS PermissionValue ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -264,34 +274,36 @@ class VARCHAR (50) NOT NULL cur.execute(sql_statement) sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionCollection ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnID INT NOT NULL, - FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + CREATE TABLE IF NOT EXISTS OwnUUID ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnType INT NOT NULL ); ''' cur.execute(sql_statement) sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionModel ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnID INT NOT NULL, - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + CREATE TABLE IF NOT EXISTS Own ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + UserID INT NOT NULL, + OwnType INT NOT NULL, + FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) ); ''' cur.execute(sql_statement) + # entities with applied permission sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionResult ( + CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, OwnID INT NOT NULL, - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + FOREIGN KEY (OwnID) REFERENCES Own(OwnID), ); ''' cur.execute(sql_statement) sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionValue ( + CREATE TABLE IF NOT EXISTS PermissionModel ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, OwnID INT NOT NULL, FOREIGN KEY (OwnID) REFERENCES Own(OwnID) @@ -299,22 +311,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # permission based sql_statement = '''\ - CREATE TABLE IF NOT EXISTS OwnUUID ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnType INT NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Own ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - UserID INT NOT NULL, - OwnType INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES User(UserID), - FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) + CREATE TABLE IF NOT EXISTS PermissionResult ( + PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnID INT NOT NULL, + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(sql_statement) @@ -330,23 +331,13 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Model ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - Model BLOB NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Result ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultValueID INT NOT NULL, - ModelTypeID INT NOT NULL, - FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), - FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) + Model BLOB NOT NULL ); ''' cur.execute(sql_statement) + # model lookup sql_statement = '''\ CREATE TABLE IF NOT EXISTS ModelType ( ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -355,6 +346,7 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + # results sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -367,6 +359,17 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS Result ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultValueID INT NOT NULL, + ModelTypeID INT NOT NULL, + FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), + FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) + ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultValueParameter ( ResultValueParameterID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, From 9d25e450cf74436849fe866636d7354150c7dacf Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 18:05:31 -0400 Subject: [PATCH 25/66] #3208: setup_tables.py, define before reference --- .../modules/mariadb/scripts/setup_tables.py | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index d37fedfbd..0a303e022 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -250,6 +250,16 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS Own ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + UserID INT NOT NULL, + OwnType INT NOT NULL, + FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) + ); + ''' + cur.execute(sql_statement) sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( @@ -281,17 +291,6 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Own ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - UserID INT NOT NULL, - OwnType INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES User(UserID), - FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) - ); - ''' - cur.execute(sql_statement) - # entities with applied permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( From 473b5882ac8e388b489f885ea019339e6a407af6 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 18:28:26 -0400 Subject: [PATCH 26/66] #3208: setup_tables.py, define before reference --- .../modules/mariadb/scripts/setup_tables.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 0a303e022..b1087bc75 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -250,6 +250,14 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS OwnUUID ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnType INT NOT NULL + ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -283,14 +291,6 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS OwnUUID ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnType INT NOT NULL - ); - ''' - cur.execute(sql_statement) - # entities with applied permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( From 40e7842325be37e8a3f9e501d216d5b85f99fd0e Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 19:12:35 -0400 Subject: [PATCH 27/66] #3208: setup_tables.py, replace 'User' to 'Account' --- .../docker/modules/mariadb/scripts/setup_tables.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index b1087bc75..251e24b29 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -222,7 +222,7 @@ class VARCHAR (50) NOT NULL # user and roles sql_statement = '''\ - CREATE TABLE IF NOT EXISTS User ( + CREATE TABLE IF NOT EXISTS Account ( UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Username VARCHAR (50) NOT NULL, Password VARCHAR (1069) NOT NULL, @@ -236,7 +236,7 @@ class VARCHAR (50) NOT NULL RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Role VARCHAR (50) NOT NULL, UserID INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES User(UserID) + FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' cur.execute(sql_statement) @@ -263,7 +263,7 @@ class VARCHAR (50) NOT NULL OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, UserID INT NOT NULL, OwnType INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) ); ''' @@ -285,7 +285,7 @@ class VARCHAR (50) NOT NULL UserID INT NOT NULL, PermissionType INT NOT NULL, FOREIGN KEY (PermissionValueID) REFERENCES PermissionValue(PermissionValueID), - FOREIGN KEY (UserID) REFERENCES User(UserID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (PermissionType) REFERENCES PermissionUUID(PermissionType) ); ''' From 9bb0954149132afd6bef161166c99209819e8f48 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 20:19:47 -0400 Subject: [PATCH 28/66] #3208: setup_tables.py, adjust FK constraint --- .../docker/modules/mariadb/scripts/setup_tables.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 251e24b29..f1cd458dd 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -245,7 +245,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - PermissionType INT NOT NULL + PermissionType INT NOT NULL PRIMARY KEY ); ''' cur.execute(sql_statement) @@ -262,9 +262,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, UserID INT NOT NULL, - OwnType INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES Account(UserID), - FOREIGN KEY (OwnType) REFERENCES OwnUUID(OwnType) + FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' cur.execute(sql_statement) @@ -272,6 +270,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + Code INT NOT NULL, OwnID INT NOT NULL, FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); @@ -281,10 +280,8 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - PermissionValueID INT NOT NULL, UserID INT NOT NULL, PermissionType INT NOT NULL, - FOREIGN KEY (PermissionValueID) REFERENCES PermissionValue(PermissionValueID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (PermissionType) REFERENCES PermissionUUID(PermissionType) ); From 92f88e090eab4aaa0ee7afa158323c462a46f0d7 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 20:40:54 -0400 Subject: [PATCH 29/66] #3208: setup_tables.py, remove redundant FK --- .../docker/modules/mariadb/scripts/setup_tables.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index f1cd458dd..73d7700e6 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -245,7 +245,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - PermissionType INT NOT NULL PRIMARY KEY + PermissionType INT NOT NULL ); ''' cur.execute(sql_statement) @@ -282,8 +282,7 @@ class VARCHAR (50) NOT NULL PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, UserID INT NOT NULL, PermissionType INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES Account(UserID), - FOREIGN KEY (PermissionType) REFERENCES PermissionUUID(PermissionType) + FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' cur.execute(sql_statement) From 7ef34e16634968e7f2ba6cd041c2aa0dfbcdfdb1 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 21:13:09 -0400 Subject: [PATCH 30/66] #3208: setup_tables.py, remove trailing comma --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 73d7700e6..af19f72c6 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -292,7 +292,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, OwnID INT NOT NULL, - FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(sql_statement) From 23477f3e8532b495194f383042ad5a946ad923ce Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 21:52:45 -0400 Subject: [PATCH 31/66] #3208: setup_tables.py, define before reference --- .../modules/mariadb/scripts/setup_tables.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index af19f72c6..a8026f731 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -342,6 +342,14 @@ class VARCHAR (50) NOT NULL cur.execute(sql_statement) # results + sql_statement = '''\ + CREATE TABLE IF NOT EXISTS ResultValueParameter ( + ResultValueParameterID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultValueParameter VARCHAR (50) NOT NULL + ); + ''' + cur.execute(sql_statement) + sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -364,11 +372,3 @@ class VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS ResultValueParameter ( - ResultValueParameterID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultValueParameter VARCHAR (50) NOT NULL - ); - ''' - cur.execute(sql_statement) From 06e91bd671477c011b9ebf1a5f6c2ca7d6ef100f Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Fri, 23 Mar 2018 22:33:43 -0400 Subject: [PATCH 32/66] #3208: setup_tables.py, remove unnecessary FK --- .../docker/modules/mariadb/scripts/setup_tables.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index a8026f731..adb45f753 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -355,9 +355,7 @@ class VARCHAR (50) NOT NULL ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, ResultValueParameterID INT NOT NULL, - ResultID INT NOT NULL, - FOREIGN KEY (ResultValueParameterID) REFERENCES ResultValueParameter(ResultValueParameterID), - FOREIGN KEY (ResultID) REFERENCES Result(ResultID) + FOREIGN KEY (ResultValueParameterID) REFERENCES ResultValueParameter(ResultValueParameterID) ); ''' cur.execute(sql_statement) From 3d3c1935fdc409b029555ecc778feb01d069545b Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 11:14:37 -0400 Subject: [PATCH 33/66] #3208: setup_tables.py, use 'ResultLabel' --- .../docker/modules/mariadb/scripts/setup_tables.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index adb45f753..d0d33f167 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -343,9 +343,9 @@ class VARCHAR (50) NOT NULL # results sql_statement = '''\ - CREATE TABLE IF NOT EXISTS ResultValueParameter ( - ResultValueParameterID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultValueParameter VARCHAR (50) NOT NULL + CREATE TABLE IF NOT EXISTS ResultLabel ( + ResultLabelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultLabel VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) @@ -354,8 +354,8 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, - ResultValueParameterID INT NOT NULL, - FOREIGN KEY (ResultValueParameterID) REFERENCES ResultValueParameter(ResultValueParameterID) + ResultLabelID INT NOT NULL, + FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) ); ''' cur.execute(sql_statement) From 440df617eef39131d84a77e603428c53597eefe7 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 16:51:34 -0400 Subject: [PATCH 34/66] #3208: server.pp, remove 'ALTER ROUTINE', fix 'EXECUTE' --- .../environment/docker/modules/mariadb/manifests/server.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 5d6d4f292..bb82f198e 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -55,21 +55,21 @@ "${db_user}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'DELETE', 'UPDATE', 'SELECT'], + privileges => ['INSERT', 'DELETE', 'UPDATE', 'SELECT', 'EXECUTE'], table => "${db}.*", user => "${db_user}@${db_host}", }, "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE', 'EXECUTE', 'CREATE ROUTINE', 'ALTER ROUTINE'], + privileges => ['INSERT', 'CREATE', 'CREATE ROUTINE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, "${tester}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['SELECT', 'DROP'], + privileges => ['SELECT', 'DROP', 'EXECUTE'], table => "${db}.*", user => "${tester}@${db_host}", }, From 9842b7c08b593dbf6c5f98f6020d61b030362f4e Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 17:45:30 -0400 Subject: [PATCH 35/66] #3208: setup_tables.py, 'CollectionVersion' use 'INT' --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index d0d33f167..bd53fe5cb 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -319,7 +319,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS Collection ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, CollectionTitle VARCHAR (50) NOT NULL, - CollectionVersion VARCHAR (50) NOT NULL + CollectionVersion INT (50) NOT NULL ); ''' cur.execute(sql_statement) From 3e4b7398469ca6173dcff2431d5f422b6696ea24 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 18:25:00 -0400 Subject: [PATCH 36/66] #3208: setup_tables.py, use BINARY(16) with 'OwnUUID' --- .../modules/mariadb/scripts/setup_tables.py | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index bd53fe5cb..423ceda79 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -252,7 +252,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS OwnUUID ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL PRIMARY KEY, OwnType INT NOT NULL ); ''' @@ -261,6 +261,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Own ( OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL, UserID INT NOT NULL, FOREIGN KEY (UserID) REFERENCES Account(UserID) ); @@ -291,7 +292,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnID INT NOT NULL, + OwnUUID BINARY(16) NOT NULL, FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -300,7 +301,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionModel ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnID INT NOT NULL, + OwnUUID BINARY(16) NOT NULL, FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -309,7 +310,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionResult ( PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnID INT NOT NULL, + OwnUUID BINARY(16) NOT NULL, FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -317,16 +318,16 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Collection ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL PRIMARY KEY, CollectionTitle VARCHAR (50) NOT NULL, - CollectionVersion INT (50) NOT NULL + CollectionVersion INT NOT NULL ); ''' cur.execute(sql_statement) sql_statement = '''\ CREATE TABLE IF NOT EXISTS Model ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL PRIMARY KEY, Model BLOB NOT NULL ); ''' @@ -362,7 +363,7 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Result ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL PRIMARY KEY, ResultValueID INT NOT NULL, ModelTypeID INT NOT NULL, FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), @@ -370,3 +371,19 @@ class VARCHAR (50) NOT NULL ); ''' cur.execute(sql_statement) + + # populate uuid + sql_statement = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); + ''' + cur.executemany(sql_statement) + + sql_statement = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Model'); + ''' + cur.executemany(sql_statement) + + sql_statement = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); + ''' + cur.executemany(sql_statement) From 7607c3949bb71df99dce9eced88fae32430ac710 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 19:13:54 -0400 Subject: [PATCH 37/66] #3208: setup_tables.py, constraint PK with composite --- .../modules/mariadb/scripts/setup_tables.py | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 423ceda79..c0aeb902e 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -244,7 +244,7 @@ class VARCHAR (50) NOT NULL # general permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL PRIMARY KEY, PermissionType INT NOT NULL ); ''' @@ -260,9 +260,9 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Own ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, OwnUUID BINARY(16) NOT NULL, UserID INT NOT NULL, + PRIMARY KEY (OwnUUID, UserID), FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' @@ -270,9 +270,10 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionValue ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL, Code INT NOT NULL, OwnID INT NOT NULL, + PRIMARY KEY (PermissionUUID, Code, OwnID), FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -280,9 +281,10 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Permission ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL, UserID INT NOT NULL, PermissionType INT NOT NULL, + PRIMARY KEY (PermissionUUID, UserID, PermissionType), FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' @@ -291,8 +293,9 @@ class VARCHAR (50) NOT NULL # entities with applied permission sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -300,8 +303,9 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionModel ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -309,8 +313,9 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionResult ( - PermissionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' @@ -318,17 +323,20 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Collection ( - OwnUUID BINARY(16) NOT NULL PRIMARY KEY, - CollectionTitle VARCHAR (50) NOT NULL, - CollectionVersion INT NOT NULL + OwnUUID BINARY(16) NOT NULL, + CollectionName VARCHAR (50) NOT NULL, + CollectionVersion INT NOT NULL, + PRIMARY KEY (OwnUUID, CollectionName) ); ''' cur.execute(sql_statement) sql_statement = '''\ CREATE TABLE IF NOT EXISTS Model ( - OwnUUID BINARY(16) NOT NULL PRIMARY KEY, - Model BLOB NOT NULL + OwnUUID BINARY(16) NOT NULL, + ModelName VARCHAR (50) NOT NULL, + Model BLOB NOT NULL, + PRIMARY KEY (OwnUUID, ModelName) ); ''' cur.execute(sql_statement) @@ -353,9 +361,9 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultValue ( - ResultValueID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, ResultLabelID INT NOT NULL, + PRIMARY KEY (ResultValueActual, ResultLabelID) FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) ); ''' @@ -363,18 +371,19 @@ class VARCHAR (50) NOT NULL sql_statement = '''\ CREATE TABLE IF NOT EXISTS Result ( - OwnUUID BINARY(16) NOT NULL PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL, ResultValueID INT NOT NULL, ModelTypeID INT NOT NULL, + PRIMARY KEY (OwnUUID, ResultValueID, ModelTypeID), FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) ); ''' cur.execute(sql_statement) - # populate uuid + # populate OwnUUID sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); + INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); ''' cur.executemany(sql_statement) @@ -384,6 +393,6 @@ class VARCHAR (50) NOT NULL cur.executemany(sql_statement) sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); + INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); ''' cur.executemany(sql_statement) From fd90041e6bab2987927ef9321adab390d1ca9963 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 19:14:33 -0400 Subject: [PATCH 38/66] #3208: setup_tables.py, 'INSERT' into 'PermissionUUID' --- .../modules/mariadb/scripts/setup_tables.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index c0aeb902e..11cd22456 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -396,3 +396,19 @@ class VARCHAR (50) NOT NULL INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); ''' cur.executemany(sql_statement) + + # populate PermissionUUID + sql_statement = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); + ''' + cur.executemany(sql_statement) + + sql_statement = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Model'); + ''' + cur.executemany(sql_statement) + + sql_statement = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); + ''' + cur.executemany(sql_statement) \ No newline at end of file From f8d0835faec31448fad652db0bffe4eb9e391a5c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 19:17:58 -0400 Subject: [PATCH 39/66] #3208: server.pp, only 'provisioner' uses 'EXECUTE' --- .../environment/docker/modules/mariadb/manifests/server.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index bb82f198e..16a60e13a 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -55,21 +55,21 @@ "${db_user}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'DELETE', 'UPDATE', 'SELECT', 'EXECUTE'], + privileges => ['INSERT', 'DELETE', 'UPDATE', 'SELECT'], table => "${db}.*", user => "${db_user}@${db_host}", }, "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE', 'CREATE ROUTINE'], + privileges => ['INSERT', 'CREATE', 'EXECUTE', 'CREATE ROUTINE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, "${tester}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['SELECT', 'DROP', 'EXECUTE'], + privileges => ['SELECT', 'DROP'], table => "${db}.*", user => "${tester}@${db_host}", }, From 1e97dc2dc30b194b02da88899457f63434409982 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 19:27:05 -0400 Subject: [PATCH 40/66] #3208: setup_tables.py, better docstring, fix spacing --- .../modules/mariadb/scripts/setup_tables.py | 67 ++++++++++++++----- 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 11cd22456..dea06daa5 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -185,10 +185,13 @@ class VARCHAR (50) NOT NULL # below tables will completely define our sql implementation. # # ################################################################################# # - # stored functions: time based uuid - # - # Note: https://mariadb.com/kb/en/library/guiduuid-performance/#code-to-do-it - # + # ################################################################################# # + # # + # stored functions: time based uuid # + # # + # Note: https://mariadb.com/kb/en/library/guiduuid-performance/#code-to-do-it # + # # + # ################################################################################# # sql_statement = '''\ CREATE FUNCTION UuidToBin(_uuid BINARY(36)) RETURNS BINARY(16) @@ -220,7 +223,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # user and roles + # ################################################################################# # + # # + # user and roles # + # # + # ################################################################################# # sql_statement = '''\ CREATE TABLE IF NOT EXISTS Account ( UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -241,7 +248,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # general permission + # ################################################################################# # + # # + # general permission # + # # + # ################################################################################# # sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionUUID ( PermissionUUID BINARY(16) NOT NULL PRIMARY KEY, @@ -290,7 +301,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # entities with applied permission + # ################################################################################# # + # # + # entities with applied permission # + # # + # ################################################################################# # sql_statement = '''\ CREATE TABLE IF NOT EXISTS PermissionCollection ( PermissionUUID BINARY(16) NOT NULL, @@ -341,7 +356,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # model lookup + # ################################################################################# # + # # + # model lookup # + # # + # ################################################################################# # sql_statement = '''\ CREATE TABLE IF NOT EXISTS ModelType ( ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -381,34 +400,48 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # populate OwnUUID + # ################################################################################# # + # # + # populate OwnUUID # + # # + # ################################################################################# # sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Collection'); ''' cur.executemany(sql_statement) sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Model'); + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Model'); ''' cur.executemany(sql_statement) sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Result'); ''' cur.executemany(sql_statement) - # populate PermissionUUID + # ################################################################################# # + # # + # populate PermissionUUID # + # # + # ################################################################################# # sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Collection'); + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Collection'); ''' cur.executemany(sql_statement) sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Model'); + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Model'); ''' cur.executemany(sql_statement) sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) VALUES (UuidToBin(UUID()), 'Result'); + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Result'); ''' - cur.executemany(sql_statement) \ No newline at end of file + cur.executemany(sql_statement) From 2fb6accff3fadfa456e83543535e15201c6adae3 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 19:37:21 -0400 Subject: [PATCH 41/66] #3208: setup_tables.py, populate 'ModelType' --- .../modules/mariadb/scripts/setup_tables.py | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index dea06daa5..c5c011511 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -303,7 +303,7 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # entities with applied permission # + # applied permission # # # # ################################################################################# # sql_statement = '''\ @@ -358,7 +358,7 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # model lookup # + # model # # # # ################################################################################# # sql_statement = '''\ @@ -369,7 +369,11 @@ class VARCHAR (50) NOT NULL ''' cur.execute(sql_statement) - # results + # ################################################################################# # + # # + # results # + # # + # ################################################################################# # sql_statement = '''\ CREATE TABLE IF NOT EXISTS ResultLabel ( ResultLabelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -445,3 +449,13 @@ class VARCHAR (50) NOT NULL VALUES (UuidToBin(UUID()), 'Result'); ''' cur.executemany(sql_statement) + + # ################################################################################# # + # # + # populate ModelType # + # # + # ################################################################################# # + sql_statement = '''\ + INSERT INTO ModelType (model) VALUES (%s); + ''' + cur.executemany(sql_statement, models) From e121158e48fa07466ab37013f677a010d99df183 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 21:50:04 -0400 Subject: [PATCH 42/66] #3208: setup_tables.py, fix FK references --- .../modules/mariadb/scripts/setup_tables.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index c5c011511..e15117e4d 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -283,9 +283,8 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS PermissionValue ( PermissionUUID BINARY(16) NOT NULL, Code INT NOT NULL, - OwnID INT NOT NULL, - PRIMARY KEY (PermissionUUID, Code, OwnID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + PRIMARY KEY (PermissionUUID, Code), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) ); ''' cur.execute(sql_statement) @@ -296,7 +295,8 @@ class VARCHAR (50) NOT NULL UserID INT NOT NULL, PermissionType INT NOT NULL, PRIMARY KEY (PermissionUUID, UserID, PermissionType), - FOREIGN KEY (UserID) REFERENCES Account(UserID) + FOREIGN KEY (UserID) REFERENCES Account(UserID), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) ); ''' cur.execute(sql_statement) @@ -311,7 +311,8 @@ class VARCHAR (50) NOT NULL PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) ); ''' cur.execute(sql_statement) @@ -321,7 +322,7 @@ class VARCHAR (50) NOT NULL PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID) ); ''' cur.execute(sql_statement) @@ -331,7 +332,7 @@ class VARCHAR (50) NOT NULL PermissionUUID BINARY(16) NOT NULL, OwnUUID BINARY(16) NOT NULL, PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID) ); ''' cur.execute(sql_statement) @@ -386,7 +387,7 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueActual DECIMAL (65,12) NOT NULL, ResultLabelID INT NOT NULL, - PRIMARY KEY (ResultValueActual, ResultLabelID) + PRIMARY KEY (ResultValueActual, ResultLabelID), FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) ); ''' From 6cf5f3f63884b0b28c2e64cdf5c712e9b9734d72 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 23:06:28 -0400 Subject: [PATCH 43/66] #3208: setup_tables.py, compact indentation --- .../modules/mariadb/scripts/setup_tables.py | 448 +++++++++--------- 1 file changed, 228 insertions(+), 220 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index e15117e4d..f97c83e8e 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -192,271 +192,279 @@ class VARCHAR (50) NOT NULL # Note: https://mariadb.com/kb/en/library/guiduuid-performance/#code-to-do-it # # # # ################################################################################# # - sql_statement = '''\ - CREATE FUNCTION UuidToBin(_uuid BINARY(36)) - RETURNS BINARY(16) - LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER - RETURN - UNHEX(CONCAT( - SUBSTR(_uuid, 15, 4), - SUBSTR(_uuid, 10, 4), - SUBSTR(_uuid, 1, 8), - SUBSTR(_uuid, 20, 4), - SUBSTR(_uuid, 25)) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE FUNCTION UuidFromBin(_bin BINARY(16)) - RETURNS BINARY(36) - LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER - RETURN - LCASE(CONCAT_WS('-', - HEX(SUBSTR(_bin, 5, 4)), - HEX(SUBSTR(_bin, 3, 2)), - HEX(SUBSTR(_bin, 1, 2)), - HEX(SUBSTR(_bin, 9, 2)), - HEX(SUBSTR(_bin, 11)) - ) - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE FUNCTION UuidToBin(_uuid BINARY(36)) + RETURNS BINARY(16) + LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER + RETURN + UNHEX(CONCAT( + SUBSTR(_uuid, 15, 4), + SUBSTR(_uuid, 10, 4), + SUBSTR(_uuid, 1, 8), + SUBSTR(_uuid, 20, 4), + SUBSTR(_uuid, 25) + )); + ''' + cur.execute(query) + + query = '''\ + CREATE FUNCTION UuidFromBin(_bin BINARY(16)) + RETURNS BINARY(36) + LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER + RETURN + LCASE(CONCAT_WS('-', + HEX(SUBSTR(_bin, 5, 4)), + HEX(SUBSTR(_bin, 3, 2)), + HEX(SUBSTR(_bin, 1, 2)), + HEX(SUBSTR(_bin, 9, 2)), + HEX(SUBSTR(_bin, 11)) + ) + ); + ''' + cur.execute(query) # ################################################################################# # # # # user and roles # # # # ################################################################################# # - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Account ( - UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - Username VARCHAR (50) NOT NULL, - Password VARCHAR (1069) NOT NULL, - Joined DATETIME NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Role ( - RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - Role VARCHAR (50) NOT NULL, - UserID INT NOT NULL, - FOREIGN KEY (UserID) REFERENCES Account(UserID) - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE TABLE IF NOT EXISTS Account ( + UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + Username VARCHAR (50) NOT NULL, + Password VARCHAR (1069) NOT NULL, + Joined DATETIME NOT NULL + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Role ( + RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + Role VARCHAR (50) NOT NULL, + UserID INT NOT NULL, + FOREIGN KEY (UserID) REFERENCES Account(UserID) + ); + ''' + cur.execute(query) # ################################################################################# # # # # general permission # # # # ################################################################################# # - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionUUID ( - PermissionUUID BINARY(16) NOT NULL PRIMARY KEY, - PermissionType INT NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS OwnUUID ( - OwnUUID BINARY(16) NOT NULL PRIMARY KEY, - OwnType INT NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Own ( - OwnUUID BINARY(16) NOT NULL, - UserID INT NOT NULL, - PRIMARY KEY (OwnUUID, UserID), - FOREIGN KEY (UserID) REFERENCES Account(UserID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionValue ( - PermissionUUID BINARY(16) NOT NULL, - Code INT NOT NULL, - PRIMARY KEY (PermissionUUID, Code), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Permission ( - PermissionUUID BINARY(16) NOT NULL, - UserID INT NOT NULL, - PermissionType INT NOT NULL, - PRIMARY KEY (PermissionUUID, UserID, PermissionType), - FOREIGN KEY (UserID) REFERENCES Account(UserID), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE TABLE IF NOT EXISTS PermissionUUID ( + PermissionUUID BINARY(16) NOT NULL PRIMARY KEY, + PermissionType INT NOT NULL + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS OwnUUID ( + OwnUUID BINARY(16) NOT NULL PRIMARY KEY, + OwnType INT NOT NULL + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Own ( + OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + OwnUUID BINARY(16) NOT NULL, + UserID INT NOT NULL, + PRIMARY KEY (OwnUUID, UserID), + FOREIGN KEY (OwnUUID) REFERENCES PermissionUUID(OwnUUID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS PermissionValue ( + PermissionUUID BINARY(16) NOT NULL, + Code INT NOT NULL, + PRIMARY KEY (PermissionUUID, Code), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Permission ( + PermissionUUID BINARY(16) NOT NULL, + UserID INT NOT NULL, + PermissionType INT NOT NULL, + PRIMARY KEY (PermissionUUID, UserID, PermissionType), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), + FOREIGN KEY (UserID) REFERENCES Account(UserID) + ); + ''' + cur.execute(query) # ################################################################################# # # # # applied permission # # # # ################################################################################# # - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionCollection ( - PermissionUUID BINARY(16) NOT NULL, - OwnUUID BINARY(16) NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionModel ( - PermissionUUID BINARY(16) NOT NULL, - OwnUUID BINARY(16) NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS PermissionResult ( - PermissionUUID BINARY(16) NOT NULL, - OwnUUID BINARY(16) NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Collection ( - OwnUUID BINARY(16) NOT NULL, - CollectionName VARCHAR (50) NOT NULL, - CollectionVersion INT NOT NULL, - PRIMARY KEY (OwnUUID, CollectionName) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Model ( - OwnUUID BINARY(16) NOT NULL, - ModelName VARCHAR (50) NOT NULL, - Model BLOB NOT NULL, - PRIMARY KEY (OwnUUID, ModelName) - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE TABLE IF NOT EXISTS PermissionCollection ( + PermissionUUID BINARY(16) NOT NULL, + OwnID INT NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS PermissionModel ( + PermissionUUID BINARY(16) NOT NULL, + OwnID INT NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS PermissionResult ( + PermissionUUID BINARY(16) NOT NULL, + OwnID INT NOT NULL, + PRIMARY KEY (PermissionUUID, OwnUUID), + FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Collection ( + OwnUUID BINARY(16) NOT NULL, + CollectionName VARCHAR (50) NOT NULL, + CollectionVersion INT NOT NULL, + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), + PRIMARY KEY (OwnUUID, CollectionName) + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Model ( + OwnUUID BINARY(16) NOT NULL, + ModelName VARCHAR (50) NOT NULL, + Model BLOB NOT NULL, + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), + PRIMARY KEY (OwnUUID, ModelName) + ); + ''' + cur.execute(query) # ################################################################################# # # # # model # # # # ################################################################################# # - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS ModelType ( - ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ModelType VARCHAR (50) NOT NULL - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE TABLE IF NOT EXISTS ModelType ( + ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ModelType VARCHAR (50) NOT NULL + ); + ''' + cur.execute(query) # ################################################################################# # # # # results # # # # ################################################################################# # - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS ResultLabel ( - ResultLabelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultLabel VARCHAR (50) NOT NULL - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS ResultValue ( - ResultValueActual DECIMAL (65,12) NOT NULL, - ResultLabelID INT NOT NULL, - PRIMARY KEY (ResultValueActual, ResultLabelID), - FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) - ); - ''' - cur.execute(sql_statement) - - sql_statement = '''\ - CREATE TABLE IF NOT EXISTS Result ( - OwnUUID BINARY(16) NOT NULL, - ResultValueID INT NOT NULL, - ModelTypeID INT NOT NULL, - PRIMARY KEY (OwnUUID, ResultValueID, ModelTypeID), - FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), - FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) - ); - ''' - cur.execute(sql_statement) + query = '''\ + CREATE TABLE IF NOT EXISTS ResultLabel ( + ResultLabelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultLabel VARCHAR (50) NOT NULL + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS ResultValue ( + ResultValueID INT NOT NULL PRIMARY KEY, + ResultValueActual DECIMAL (65,12) NOT NULL, + ResultLabelID INT NOT NULL, + PRIMARY KEY (ResultValueActual, ResultLabelID), + FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) + ); + ''' + cur.execute(query) + + query = '''\ + CREATE TABLE IF NOT EXISTS Result ( + OwnUUID BINARY(16) NOT NULL, + ResultValueID INT NOT NULL, + ModelTypeID INT NOT NULL, + PRIMARY KEY (OwnUUID, ResultValueID, ModelTypeID), + FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), + FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), + FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) + ); + ''' + cur.execute(query) # ################################################################################# # # # # populate OwnUUID # # # # ################################################################################# # - sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Collection'); - ''' - cur.executemany(sql_statement) - - sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Model'); - ''' - cur.executemany(sql_statement) - - sql_statement = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Result'); - ''' - cur.executemany(sql_statement) + query = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Collection'); + ''' + cur.executemany(query) + + query = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Model'); + ''' + cur.executemany(query) + + query = '''\ + INSERT INTO OwnUUID (OwnUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Result'); + ''' + cur.executemany(query) # ################################################################################# # # # # populate PermissionUUID # # # # ################################################################################# # - sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Collection'); - ''' - cur.executemany(sql_statement) - - sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Model'); - ''' - cur.executemany(sql_statement) - - sql_statement = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Result'); - ''' - cur.executemany(sql_statement) + query = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Collection'); + ''' + cur.executemany(query) + + query = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Model'); + ''' + cur.executemany(query) + + query = '''\ + INSERT INTO PermissionUUID (PermissionUUID, OwnType) + VALUES (UuidToBin(UUID()), 'Result'); + ''' + cur.executemany(query) # ################################################################################# # # # # populate ModelType # # # # ################################################################################# # - sql_statement = '''\ - INSERT INTO ModelType (model) VALUES (%s); - ''' - cur.executemany(sql_statement, models) + query = '''\ + INSERT INTO ModelType (model) VALUES (%s); + ''' + cur.executemany(query, models) From 9174980f8f864ee0cfe99d2adcf3f3d24585ada2 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 23:29:07 -0400 Subject: [PATCH 44/66] #3208: application.yaml, add 'result_type' --- hiera/application.yaml | 4 ++++ hiera/test/hiera/application.yaml | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/hiera/application.yaml b/hiera/application.yaml index 503a30e55..8747f3456 100644 --- a/hiera/application.yaml +++ b/hiera/application.yaml @@ -39,6 +39,10 @@ application: - poly - rbf - sigmoid + result_type: + - r2 + - decision_function + - probability log_level: 'DEBUG' error_log_path: '/log/application/error' warning_log_path: '/log/application/warning' diff --git a/hiera/test/hiera/application.yaml b/hiera/test/hiera/application.yaml index 1e83e3231..8747f3456 100644 --- a/hiera/test/hiera/application.yaml +++ b/hiera/test/hiera/application.yaml @@ -39,9 +39,10 @@ application: - poly - rbf - sigmoid - model_type: - - svm - - svr + result_type: + - r2 + - decision_function + - probability log_level: 'DEBUG' error_log_path: '/log/application/error' warning_log_path: '/log/application/warning' From 87b159a1ef549008bb751b227462b0048671f082 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 23:32:12 -0400 Subject: [PATCH 45/66] #3208: setup_tables.py, insert labet into 'ResultLabel' --- .../modules/mariadb/scripts/setup_tables.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index f97c83e8e..be8b33a5d 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -57,7 +57,8 @@ # yaml configuration: application attributes with open(prepath + '/application.yaml', 'r') as stream: settings = yaml.load(stream) - models = settings['application']['model_type'] + model_types = settings['application']['model_type'] + result_types = settings['application']['result_type'] # yaml configuration: general attributes with open(prepath + '/common.yaml', 'r') as stream: @@ -465,6 +466,16 @@ class VARCHAR (50) NOT NULL # # # ################################################################################# # query = '''\ - INSERT INTO ModelType (model) VALUES (%s); + INSERT INTO ModelType (ModelType) VALUES (%s); ''' - cur.executemany(query, models) + cur.executemany(query, model_types) + + # ################################################################################# # + # # + # populate ResultLabel # + # # + # ################################################################################# # + query = '''\ + INSERT INTO ResultLabel (ResultLabel) VALUES (%s); + ''' + cur.executemany(query, result_types) From a72d4cba120848e3ab97979f394d1c7d3141f703 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sat, 24 Mar 2018 23:34:32 -0400 Subject: [PATCH 46/66] #3208: setup_tables.py, use 'model_types' --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index be8b33a5d..77f33ba6e 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -125,7 +125,7 @@ sql_statement = '''\ INSERT INTO tbl_model_type (model) VALUES (%s); ''' - cur.executemany(sql_statement, models) + cur.executemany(sql_statement, model_types) # create 'tbl_prediction_results' sql_statement = '''\ From 79d620b9367e400f1d79d3d5d2bb34e46150e77c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 08:37:19 -0400 Subject: [PATCH 47/66] #3208: setup_tables.py, fix indentation --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 77f33ba6e..49c109f67 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -279,7 +279,7 @@ class VARCHAR (50) NOT NULL FOREIGN KEY (OwnUUID) REFERENCES PermissionUUID(OwnUUID), FOREIGN KEY (UserID) REFERENCES Account(UserID), ); - ''' + ''' cur.execute(query) query = '''\ From 5becd993c16be692d970fa283238769de5937823 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 08:51:09 -0400 Subject: [PATCH 48/66] #3208: setup_tables.py, consistent 'type' suffix --- .../modules/mariadb/scripts/setup_tables.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 49c109f67..4a45db119 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -383,9 +383,9 @@ class VARCHAR (50) NOT NULL # # # ################################################################################# # query = '''\ - CREATE TABLE IF NOT EXISTS ResultLabel ( - ResultLabelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultLabel VARCHAR (50) NOT NULL + CREATE TABLE IF NOT EXISTS ResultType ( + ResultTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultType VARCHAR (50) NOT NULL ); ''' cur.execute(query) @@ -394,9 +394,9 @@ class VARCHAR (50) NOT NULL CREATE TABLE IF NOT EXISTS ResultValue ( ResultValueID INT NOT NULL PRIMARY KEY, ResultValueActual DECIMAL (65,12) NOT NULL, - ResultLabelID INT NOT NULL, - PRIMARY KEY (ResultValueActual, ResultLabelID), - FOREIGN KEY (ResultLabelID) REFERENCES ResultLabel(ResultLabelID) + ResultTypeID INT NOT NULL, + PRIMARY KEY (ResultValueActual, ResultTypeID), + FOREIGN KEY (ResultTypeID) REFERENCES ResultType(ResultTypeID) ); ''' cur.execute(query) @@ -472,10 +472,10 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # populate ResultLabel # + # populate ResultType # # # # ################################################################################# # query = '''\ - INSERT INTO ResultLabel (ResultLabel) VALUES (%s); + INSERT INTO ResultType (ResultType) VALUES (%s); ''' cur.executemany(query, result_types) From bdc262d6906cf672340ef18768c88a807a69cc0c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 08:55:37 -0400 Subject: [PATCH 49/66] #3208: setup_tables.py, remove trailing commas --- .../docker/modules/mariadb/scripts/setup_tables.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 4a45db119..f31122537 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -277,7 +277,7 @@ class VARCHAR (50) NOT NULL UserID INT NOT NULL, PRIMARY KEY (OwnUUID, UserID), FOREIGN KEY (OwnUUID) REFERENCES PermissionUUID(OwnUUID), - FOREIGN KEY (UserID) REFERENCES Account(UserID), + FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' cur.execute(query) @@ -326,7 +326,7 @@ class VARCHAR (50) NOT NULL OwnID INT NOT NULL, PRIMARY KEY (PermissionUUID, OwnUUID), FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(query) @@ -337,7 +337,7 @@ class VARCHAR (50) NOT NULL OwnID INT NOT NULL, PRIMARY KEY (PermissionUUID, OwnUUID), FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID), + FOREIGN KEY (OwnID) REFERENCES Own(OwnID) ); ''' cur.execute(query) From 88a9cb8f5d013fd791f2655ccd9631728ceac48f Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 15:57:59 -0400 Subject: [PATCH 50/66] #3208: setup_tables.py, simplify without UUID --- .../modules/mariadb/scripts/setup_tables.py | 238 +++++------------- 1 file changed, 56 insertions(+), 182 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index f31122537..27be99987 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -186,44 +186,6 @@ class VARCHAR (50) NOT NULL # below tables will completely define our sql implementation. # # ################################################################################# # - # ################################################################################# # - # # - # stored functions: time based uuid # - # # - # Note: https://mariadb.com/kb/en/library/guiduuid-performance/#code-to-do-it # - # # - # ################################################################################# # - query = '''\ - CREATE FUNCTION UuidToBin(_uuid BINARY(36)) - RETURNS BINARY(16) - LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER - RETURN - UNHEX(CONCAT( - SUBSTR(_uuid, 15, 4), - SUBSTR(_uuid, 10, 4), - SUBSTR(_uuid, 1, 8), - SUBSTR(_uuid, 20, 4), - SUBSTR(_uuid, 25) - )); - ''' - cur.execute(query) - - query = '''\ - CREATE FUNCTION UuidFromBin(_bin BINARY(16)) - RETURNS BINARY(36) - LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER - RETURN - LCASE(CONCAT_WS('-', - HEX(SUBSTR(_bin, 5, 4)), - HEX(SUBSTR(_bin, 3, 2)), - HEX(SUBSTR(_bin, 1, 2)), - HEX(SUBSTR(_bin, 9, 2)), - HEX(SUBSTR(_bin, 11)) - ) - ); - ''' - cur.execute(query) - # ################################################################################# # # # # user and roles # @@ -251,128 +213,38 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # general permission # + # collection # # # # ################################################################################# # query = '''\ - CREATE TABLE IF NOT EXISTS PermissionUUID ( - PermissionUUID BINARY(16) NOT NULL PRIMARY KEY, - PermissionType INT NOT NULL - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS OwnUUID ( - OwnUUID BINARY(16) NOT NULL PRIMARY KEY, - OwnType INT NOT NULL - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS Own ( - OwnID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - OwnUUID BINARY(16) NOT NULL, - UserID INT NOT NULL, - PRIMARY KEY (OwnUUID, UserID), - FOREIGN KEY (OwnUUID) REFERENCES PermissionUUID(OwnUUID), - FOREIGN KEY (UserID) REFERENCES Account(UserID) - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS PermissionValue ( - PermissionUUID BINARY(16) NOT NULL, - Code INT NOT NULL, - PRIMARY KEY (PermissionUUID, Code), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID) - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS Permission ( - PermissionUUID BINARY(16) NOT NULL, - UserID INT NOT NULL, - PermissionType INT NOT NULL, - PRIMARY KEY (PermissionUUID, UserID, PermissionType), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (UserID) REFERENCES Account(UserID) + CREATE TABLE IF NOT EXISTS Collection ( + CollectionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + CollectionName VARCHAR (50) NOT NULL, + CollectionVersion INT NOT NULL ); ''' cur.execute(query) # ################################################################################# # # # - # applied permission # + # model # # # # ################################################################################# # query = '''\ - CREATE TABLE IF NOT EXISTS PermissionCollection ( - PermissionUUID BINARY(16) NOT NULL, - OwnID INT NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS PermissionModel ( - PermissionUUID BINARY(16) NOT NULL, - OwnID INT NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS PermissionResult ( - PermissionUUID BINARY(16) NOT NULL, - OwnID INT NOT NULL, - PRIMARY KEY (PermissionUUID, OwnUUID), - FOREIGN KEY (PermissionUUID) REFERENCES PermissionUUID(PermissionUUID), - FOREIGN KEY (OwnID) REFERENCES Own(OwnID) - ); - ''' - cur.execute(query) - - query = '''\ - CREATE TABLE IF NOT EXISTS Collection ( - OwnUUID BINARY(16) NOT NULL, - CollectionName VARCHAR (50) NOT NULL, - CollectionVersion INT NOT NULL, - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), - PRIMARY KEY (OwnUUID, CollectionName) + CREATE TABLE IF NOT EXISTS ModelType ( + ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ModelType VARCHAR (50) NOT NULL ); ''' cur.execute(query) query = '''\ CREATE TABLE IF NOT EXISTS Model ( - OwnUUID BINARY(16) NOT NULL, + ModelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ModelName VARCHAR (50) NOT NULL, Model BLOB NOT NULL, - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), - PRIMARY KEY (OwnUUID, ModelName) - ); - ''' - cur.execute(query) - - # ################################################################################# # - # # - # model # - # # - # ################################################################################# # - query = '''\ - CREATE TABLE IF NOT EXISTS ModelType ( - ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ModelType VARCHAR (50) NOT NULL + ModelTypeID INT NOT NULL, + FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) ); ''' cur.execute(query) @@ -391,72 +263,74 @@ class VARCHAR (50) NOT NULL cur.execute(query) query = '''\ - CREATE TABLE IF NOT EXISTS ResultValue ( - ResultValueID INT NOT NULL PRIMARY KEY, - ResultValueActual DECIMAL (65,12) NOT NULL, + CREATE TABLE IF NOT EXISTS Result ( + ResultID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + ResultValue DECIMAL (65,12) NOT NULL, + ModelTypeID INT (50) NOT NULL, ResultTypeID INT NOT NULL, - PRIMARY KEY (ResultValueActual, ResultTypeID), + FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID), FOREIGN KEY (ResultTypeID) REFERENCES ResultType(ResultTypeID) ); ''' cur.execute(query) - query = '''\ - CREATE TABLE IF NOT EXISTS Result ( - OwnUUID BINARY(16) NOT NULL, - ResultValueID INT NOT NULL, - ModelTypeID INT NOT NULL, - PRIMARY KEY (OwnUUID, ResultValueID, ModelTypeID), - FOREIGN KEY (OwnUUID) REFERENCES OwnUUID(OwnUUID), - FOREIGN KEY (ResultValueID) REFERENCES ResultValue(ResultValueID), - FOREIGN KEY (ModelTypeID) REFERENCES ModelType(ModelTypeID) - ); - ''' - cur.execute(query) - # ################################################################################# # # # - # populate OwnUUID # + # applied permission # # # # ################################################################################# # query = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Collection'); + CREATE TABLE IF NOT EXISTS PermissionCollection ( + PermissionCollectionID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionValueCode INT NOT NULL, + CollectionID INT NOT NULL, + UserID INT NOT NULL, + RoleID INT DEFAULT 0, + UNIQUE (CollectionID, USERID, ROLEID), + FOREIGN KEY (CollectionID) REFERENCES Collection(CollectionID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), + FOREIGN KEY (RoleID) REFERENCES Role(RoleID) + ); ''' - cur.executemany(query) + cur.execute(query) query = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Model'); + CREATE TABLE IF NOT EXISTS PermissionModel ( + PermissionModelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionValueCode INT NOT NULL, + ModelID INT NOT NULL, + UserID INT NOT NULL, + RoleID INT DEFAULT 0, + UNIQUE (CollectionID, USERID, ROLEID), + FOREIGN KEY (ModelID) REFERENCES Model(ModelID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), + FOREIGN KEY (RoleID) REFERENCES Role(RoleID) + ); ''' - cur.executemany(query) + cur.execute(query) query = '''\ - INSERT INTO OwnUUID (OwnUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Result'); + CREATE TABLE IF NOT EXISTS PermissionResult ( + PermissionResultID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + PermissionValueCode INT NOT NULL, + ResultID INT NOT NULL, + UserID INT NOT NULL, + RoleID INT DEFAULT 0, + UNIQUE (CollectionID, USERID, ROLEID), + FOREIGN KEY (ResultID) REFERENCES Result(ResultID), + FOREIGN KEY (UserID) REFERENCES Account(UserID), + FOREIGN KEY (RoleID) REFERENCES Role(RoleID) + ); ''' - cur.executemany(query) + cur.execute(query) # ################################################################################# # # # - # populate PermissionUUID # + # populate Role # # # # ################################################################################# # query = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Collection'); - ''' - cur.executemany(query) - - query = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Model'); - ''' - cur.executemany(query) - - query = '''\ - INSERT INTO PermissionUUID (PermissionUUID, OwnType) - VALUES (UuidToBin(UUID()), 'Result'); + INSERT INTO Role (Role) VALUES ('no-group'); ''' cur.executemany(query) From 45eeca91527ea70c79201a855a1df311a92314e7 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 16:34:15 -0400 Subject: [PATCH 51/66] #3208: setup_tables.py, fix 'UNIQUE' constraints --- .../docker/modules/mariadb/scripts/setup_tables.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 27be99987..883998087 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -301,7 +301,7 @@ class VARCHAR (50) NOT NULL ModelID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (CollectionID, USERID, ROLEID), + UNIQUE (ModelID, USERID, ROLEID), FOREIGN KEY (ModelID) REFERENCES Model(ModelID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) @@ -316,7 +316,7 @@ class VARCHAR (50) NOT NULL ResultID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (CollectionID, USERID, ROLEID), + UNIQUE (ResultID, USERID, ROLEID), FOREIGN KEY (ResultID) REFERENCES Result(ResultID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) From 784dd043361a3f834d96798a843239cbc0985203 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 17:44:28 -0400 Subject: [PATCH 52/66] 3208: propopulate with FK constraint --- .../modules/mariadb/scripts/setup_tables.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 883998087..b2aaaf36f 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -286,7 +286,7 @@ class VARCHAR (50) NOT NULL CollectionID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (CollectionID, USERID, ROLEID), + UNIQUE (ResultID, UserID, RoleID), FOREIGN KEY (CollectionID) REFERENCES Collection(CollectionID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) @@ -301,7 +301,7 @@ class VARCHAR (50) NOT NULL ModelID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (ModelID, USERID, ROLEID), + UNIQUE (ResultID, UserID, RoleID), FOREIGN KEY (ModelID) REFERENCES Model(ModelID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) @@ -316,7 +316,7 @@ class VARCHAR (50) NOT NULL ResultID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (ResultID, USERID, ROLEID), + UNIQUE (ResultID, UserID, RoleID), FOREIGN KEY (ResultID) REFERENCES Result(ResultID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) @@ -326,13 +326,18 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # populate Role # + # populate User, and Role # # # # ################################################################################# # query = '''\ - INSERT INTO Role (Role) VALUES ('no-group'); + INSERT INTO Account (User, Password, Joined) VALUES (%s, %s, %s); ''' - cur.executemany(query) + cur.executemany(query, 'anonymous', '0', '2018-01-25 12:00:00') + + query = '''\ + INSERT INTO Role (Role) VALUES (%s); + ''' + cur.executemany(query, 'nullgroup') # ################################################################################# # # # From d232f0d83f56fb3d00af2ecb9dc68c3403f4c38c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 17:49:15 -0400 Subject: [PATCH 53/66] #3208: setup_tables.py, provide valid value to 'UNIQUE' --- .../docker/modules/mariadb/scripts/setup_tables.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index b2aaaf36f..ce7bc47c0 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -286,7 +286,7 @@ class VARCHAR (50) NOT NULL CollectionID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (ResultID, UserID, RoleID), + UNIQUE (CollectionID, UserID, RoleID), FOREIGN KEY (CollectionID) REFERENCES Collection(CollectionID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) @@ -301,7 +301,7 @@ class VARCHAR (50) NOT NULL ModelID INT NOT NULL, UserID INT NOT NULL, RoleID INT DEFAULT 0, - UNIQUE (ResultID, UserID, RoleID), + UNIQUE (ModelID, UserID, RoleID), FOREIGN KEY (ModelID) REFERENCES Model(ModelID), FOREIGN KEY (UserID) REFERENCES Account(UserID), FOREIGN KEY (RoleID) REFERENCES Role(RoleID) From d5554de36e075e92d7b4449c65f3caaf6329e2eb Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 18:11:01 -0400 Subject: [PATCH 54/66] #3208: setup_tables.py, use 'execute' --- .../docker/modules/mariadb/scripts/setup_tables.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ce7bc47c0..2ed8a8caa 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -332,12 +332,12 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO Account (User, Password, Joined) VALUES (%s, %s, %s); ''' - cur.executemany(query, 'anonymous', '0', '2018-01-25 12:00:00') + cur.execute(query, 'anonymous', '0', '2018-01-25 12:00:00') query = '''\ INSERT INTO Role (Role) VALUES (%s); ''' - cur.executemany(query, 'nullgroup') + cur.execute(query, 'norole') # ################################################################################# # # # @@ -347,7 +347,7 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO ModelType (ModelType) VALUES (%s); ''' - cur.executemany(query, model_types) + cur.execute(query, model_types) # ################################################################################# # # # @@ -357,4 +357,4 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO ResultType (ResultType) VALUES (%s); ''' - cur.executemany(query, result_types) + cur.execute(query, result_types) From 53d81b2f6103aaeafaaaf596d224137f86678897 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 19:14:38 -0400 Subject: [PATCH 55/66] #3208: setup_tables.py, add 'RoleType', fix 'execute' --- .../modules/mariadb/scripts/setup_tables.py | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 2ed8a8caa..ed7e4f9ce 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -201,11 +201,20 @@ class VARCHAR (50) NOT NULL ''' cur.execute(query) + query = '''\ + CREATE TABLE IF NOT EXISTS RoleType ( + RoleTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + RoleType VARCHAR (1069) NOT NULL + ); + ''' + cur.execute(query) + query = '''\ CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - Role VARCHAR (50) NOT NULL, + RoleTypeID INT NOT NULL, UserID INT NOT NULL, + FOREIGN KEY (RoleTypeID) REFERENCES RoleType(RoleTypeID), FOREIGN KEY (UserID) REFERENCES Account(UserID) ); ''' @@ -332,13 +341,18 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO Account (User, Password, Joined) VALUES (%s, %s, %s); ''' - cur.execute(query, 'anonymous', '0', '2018-01-25 12:00:00') + cur.execute(query, ('anonymous', '0', '2018-01-25 12:00:00')) query = '''\ - INSERT INTO Role (Role) VALUES (%s); + INSERT INTO RoleType (RoleType) VALUES (%s); ''' cur.execute(query, 'norole') + query = '''\ + INSERT INTO Role (RoleType) VALUES (%s, %s); + ''' + cur.execute(query, (0, 0)) + # ################################################################################# # # # # populate ModelType # From 3418baf4d4242774061b28aea786ab09d271cecd Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 19:43:44 -0400 Subject: [PATCH 56/66] #3208: setup_tables.py, fix typo, add 'RoleOwner' --- .../docker/modules/mariadb/scripts/setup_tables.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ed7e4f9ce..09f144a15 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -190,6 +190,8 @@ class VARCHAR (50) NOT NULL # # # user and roles # # # + # @RoleOwner, whether role is owned, or given. # + # # # ################################################################################# # query = '''\ CREATE TABLE IF NOT EXISTS Account ( @@ -212,8 +214,10 @@ class VARCHAR (50) NOT NULL query = '''\ CREATE TABLE IF NOT EXISTS Role ( RoleID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + RoleOwner INT NOT NULL, RoleTypeID INT NOT NULL, UserID INT NOT NULL, + UNIQUE (RoleTypeID, UserID), FOREIGN KEY (RoleTypeID) REFERENCES RoleType(RoleTypeID), FOREIGN KEY (UserID) REFERENCES Account(UserID) ); @@ -339,7 +343,7 @@ class VARCHAR (50) NOT NULL # # # ################################################################################# # query = '''\ - INSERT INTO Account (User, Password, Joined) VALUES (%s, %s, %s); + INSERT INTO Account (Username, Password, Joined) VALUES (%s, %s, %s); ''' cur.execute(query, ('anonymous', '0', '2018-01-25 12:00:00')) From 35f5cf759285368b3dc6bb1e00f7a2fe159d0fa0 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 19:51:07 -0400 Subject: [PATCH 57/66] #3208: server.pp, remove 'EXECUTE', 'CREATE ROUTINE' --- puppet/environment/docker/modules/mariadb/manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/manifests/server.pp b/puppet/environment/docker/modules/mariadb/manifests/server.pp index 16a60e13a..efc0f5813 100644 --- a/puppet/environment/docker/modules/mariadb/manifests/server.pp +++ b/puppet/environment/docker/modules/mariadb/manifests/server.pp @@ -62,7 +62,7 @@ "${provisioner}@${db_host}/${db}.*" => { ensure => 'present', options => ['GRANT'], - privileges => ['INSERT', 'CREATE', 'EXECUTE', 'CREATE ROUTINE'], + privileges => ['INSERT', 'CREATE'], table => "${db}.*", user => "${provisioner}@${db_host}", }, From 26f3ed574ffb13b714f33fe8725b43ae88f8b5b8 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 20:00:59 -0400 Subject: [PATCH 58/66] #3208: setup_tables.py, fix 'INSERT' arguments --- .../docker/modules/mariadb/scripts/setup_tables.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 09f144a15..ff2fce317 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -350,12 +350,12 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO RoleType (RoleType) VALUES (%s); ''' - cur.execute(query, 'norole') + cur.execute(query, 'default') query = '''\ INSERT INTO Role (RoleType) VALUES (%s, %s); ''' - cur.execute(query, (0, 0)) + cur.execute(query, 0) # ################################################################################# # # # From 3c014bee450934b3eded159c8ce05917055de3c7 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 20:04:56 -0400 Subject: [PATCH 59/66] #3208: setup_tables.py, fix docstring spacing --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ff2fce317..0a3b23570 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -339,7 +339,7 @@ class VARCHAR (50) NOT NULL # ################################################################################# # # # - # populate User, and Role # + # populate User, and Role # # # # ################################################################################# # query = '''\ From 3b40de1ccd0534abce554f85414c2a60f17b3366 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 20:14:20 -0400 Subject: [PATCH 60/66] #3208: setup_tables.py, greater 'UNIQUE' constraints --- .../docker/modules/mariadb/scripts/setup_tables.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 0a3b23570..378cbc387 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -198,7 +198,8 @@ class VARCHAR (50) NOT NULL UserID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Username VARCHAR (50) NOT NULL, Password VARCHAR (1069) NOT NULL, - Joined DATETIME NOT NULL + Joined DATETIME NOT NULL, + UNIQUE (UserName) ); ''' cur.execute(query) @@ -206,7 +207,8 @@ class VARCHAR (50) NOT NULL query = '''\ CREATE TABLE IF NOT EXISTS RoleType ( RoleTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - RoleType VARCHAR (1069) NOT NULL + RoleType VARCHAR (1069) NOT NULL, + UNIQUE (RoleType) ); ''' cur.execute(query) @@ -246,7 +248,8 @@ class VARCHAR (50) NOT NULL query = '''\ CREATE TABLE IF NOT EXISTS ModelType ( ModelTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ModelType VARCHAR (50) NOT NULL + ModelType VARCHAR (50) NOT NULL, + UNIQUE (ModelType) ); ''' cur.execute(query) @@ -270,7 +273,8 @@ class VARCHAR (50) NOT NULL query = '''\ CREATE TABLE IF NOT EXISTS ResultType ( ResultTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - ResultType VARCHAR (50) NOT NULL + ResultType VARCHAR (50) NOT NULL, + UNIQUE (ResultType) ); ''' cur.execute(query) From 4f315a6fc88511ff65ea641998ec1b36abcd9d35 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 20:42:11 -0400 Subject: [PATCH 61/66] #3208: setup_tables.py, 'RoleType' use 'VARCHAR (50)' --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 378cbc387..ceef1b4e9 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -207,7 +207,7 @@ class VARCHAR (50) NOT NULL query = '''\ CREATE TABLE IF NOT EXISTS RoleType ( RoleTypeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - RoleType VARCHAR (1069) NOT NULL, + RoleType VARCHAR (50) NOT NULL, UNIQUE (RoleType) ); ''' From 6c2ac7cd1fae60fccbf908babc356295fbe5a73f Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 21:20:58 -0400 Subject: [PATCH 62/66] #3208: setup_tables.py, add additional args --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index ceef1b4e9..4fc0efbab 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -359,7 +359,7 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO Role (RoleType) VALUES (%s, %s); ''' - cur.execute(query, 0) + cur.execute(query, (0, 0, 0)) # ################################################################################# # # # From 37cd8f7c0d18adb8ee03ccc6ab9ff06a99031e69 Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 21:47:03 -0400 Subject: [PATCH 63/66] #3208: setup_tables.py, add additional args --- .../docker/modules/mariadb/scripts/setup_tables.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 4fc0efbab..fc1633519 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -349,17 +349,20 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO Account (Username, Password, Joined) VALUES (%s, %s, %s); ''' - cur.execute(query, ('anonymous', '0', '2018-01-25 12:00:00')) + args = ('anonymous', '0', '2018-01-25 12:00:00') + cur.execute(query, args) query = '''\ INSERT INTO RoleType (RoleType) VALUES (%s); ''' - cur.execute(query, 'default') + args = 'default' + cur.execute(query, args) query = '''\ - INSERT INTO Role (RoleType) VALUES (%s, %s); + INSERT INTO Role (RoleOwner, RoleType, UserID) VALUES (%s, %s, %s); ''' - cur.execute(query, (0, 0, 0)) + args = (0, 0, 0) + cur.execute(query, args) # ################################################################################# # # # From b39998fc0bd54fb2419e06677076a11eeac072ef Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Sun, 25 Mar 2018 22:08:10 -0400 Subject: [PATCH 64/66] #3208: setup_tables.py, fix typo --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index fc1633519..c3dd42562 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -359,7 +359,7 @@ class VARCHAR (50) NOT NULL cur.execute(query, args) query = '''\ - INSERT INTO Role (RoleOwner, RoleType, UserID) VALUES (%s, %s, %s); + INSERT INTO Role (RoleOwner, RoleTypeID, UserID) VALUES (%s, %s, %s); ''' args = (0, 0, 0) cur.execute(query, args) From e33249c3f7fdd8f67e9ce37c53fe02c493a0eaff Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Mon, 26 Mar 2018 07:03:13 -0400 Subject: [PATCH 65/66] #3208: setup_tables.py, use 'executemany' --- .../docker/modules/mariadb/scripts/setup_tables.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index c3dd42562..8d7a1734c 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -355,13 +355,13 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO RoleType (RoleType) VALUES (%s); ''' - args = 'default' + args = ('default') cur.execute(query, args) query = '''\ INSERT INTO Role (RoleOwner, RoleTypeID, UserID) VALUES (%s, %s, %s); ''' - args = (0, 0, 0) + args = ('0', '1', '1') cur.execute(query, args) # ################################################################################# # @@ -372,7 +372,7 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO ModelType (ModelType) VALUES (%s); ''' - cur.execute(query, model_types) + cur.executemany(query, model_types) # ################################################################################# # # # @@ -382,4 +382,4 @@ class VARCHAR (50) NOT NULL query = '''\ INSERT INTO ResultType (ResultType) VALUES (%s); ''' - cur.execute(query, result_types) + cur.executemany(query, result_types) From 1f3052e06ad5bc686125a43cc3280a843cd8684c Mon Sep 17 00:00:00 2001 From: "Jeffrey M. Levesque" Date: Mon, 26 Mar 2018 18:25:21 -0400 Subject: [PATCH 66/66] #3208: setup_tables.py, fix 'UNIQUE' typo --- .../environment/docker/modules/mariadb/scripts/setup_tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py index 8d7a1734c..2cc01e18f 100644 --- a/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py +++ b/puppet/environment/docker/modules/mariadb/scripts/setup_tables.py @@ -199,7 +199,7 @@ class VARCHAR (50) NOT NULL Username VARCHAR (50) NOT NULL, Password VARCHAR (1069) NOT NULL, Joined DATETIME NOT NULL, - UNIQUE (UserName) + UNIQUE (Username) ); ''' cur.execute(query)