diff options
Diffstat (limited to 'kubernetes/clamp')
11 files changed, 977 insertions, 22 deletions
diff --git a/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf new file mode 100644 index 0000000000..0be1bd7aa3 --- /dev/null +++ b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf @@ -0,0 +1,194 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log +##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64 +##datadir = //opt/app/mysql/data +##port = 3306 +##socket = //opt/app/mysql/mysql.sock +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +#ignore_db_dir=lost+found +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +innodb_buffer_pool_size = 6380M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 150M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=2G; gcache.page_size=1G" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://" +#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb1" +##wsrep_node_address="192.169.3.184" +wsrep_on=ON +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file diff --git a/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql new file mode 100644 index 0000000000..3312daf56f --- /dev/null +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql @@ -0,0 +1,192 @@ +# +# Create CLDS database objects (tables, etc.) +# +# +CREATE DATABASE `camundabpm`; +USE `camundabpm`; +DROP USER 'camunda'; +CREATE USER 'camunda'; +GRANT ALL on camundabpm.* to 'camunda' identified by 'ndMSpw4CAM' with GRANT OPTION; +FLUSH PRIVILEGES; + +CREATE DATABASE `cldsdb4`; +USE `cldsdb4`; +DROP USER 'clds'; +CREATE USER 'clds'; +GRANT ALL on cldsdb4.* to 'clds' identified by 'sidnnd83K' with GRANT OPTION; +GRANT SELECT on mysql.proc TO 'clds'; +FLUSH PRIVILEGES; + + +CREATE TABLE template ( + template_id VARCHAR(36) NOT NULL, + template_name VARCHAR(80) NOT NULL, + template_bpmn_id VARCHAR(36) NULL, + template_image_id VARCHAR(36) NULL, + template_doc_id VARCHAR(36) NULL, + PRIMARY KEY (template_id), + UNIQUE (template_name) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_bpmn ( + template_bpmn_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_bpmn_text MEDIUMTEXT NOT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_bpmn_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_image ( + template_image_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_image_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_image_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_doc ( + template_doc_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_doc_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_doc_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model ( + model_id VARCHAR(36) NOT NULL, + model_name VARCHAR(80) NOT NULL, + template_id VARCHAR(36) NULL, + model_prop_id VARCHAR(36) NULL, + model_blueprint_id VARCHAR(36) NULL, + event_id VARCHAR(36) NULL, + control_name_prefix VARCHAR(80) NULL, + control_name_uuid VARCHAR(36) NOT NULL, + service_type_id VARCHAR(80) NULL, + deployment_id VARCHAR(80) NULL, + PRIMARY KEY (model_id), + UNIQUE (model_name), + UNIQUE (control_name_uuid), + UNIQUE (service_type_id), + UNIQUE (deployment_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_properties ( + model_prop_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + model_prop_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_prop_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_blueprint ( + model_blueprint_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + model_blueprint_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_blueprint_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_instance ( + model_instance_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + vm_name VARCHAR(250) NOT NULL, + location VARCHAR(250) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_instance_id), + UNIQUE (model_id, vm_name) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE event ( + event_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NULL, + action_cd VARCHAR(80) NOT NULL, + action_state_cd VARCHAR(80) NULL, + prev_event_id VARCHAR(36) NULL, + process_instance_id VARCHAR(80) NULL, + user_id VARCHAR(80) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (event_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE clds_service_cache ( + invariant_service_id VARCHAR(36) NOT NULL, + service_id VARCHAR(36) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + object_data MEDIUMBLOB NULL, + PRIMARY KEY (invariant_service_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +ALTER TABLE template + ADD CONSTRAINT template_bpmn_id_fkey01 + FOREIGN KEY (template_bpmn_id) + REFERENCES template_bpmn (template_bpmn_id); + +ALTER TABLE template + ADD CONSTRAINT template_image_id_fkey01 + FOREIGN KEY (template_image_id) + REFERENCES template_image (template_image_id); + +ALTER TABLE template + ADD CONSTRAINT template_doc_id_fkey01 + FOREIGN KEY (template_doc_id) + REFERENCES template_doc (template_doc_id); + +ALTER TABLE template_bpmn + ADD CONSTRAINT template_id_fkey02 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE template_image + ADD CONSTRAINT template_id_fkey03 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE template_doc + ADD CONSTRAINT template_id_fkey04 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE model + ADD CONSTRAINT template_id_fkey01 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE model + ADD CONSTRAINT model_prop_id_fkey01 + FOREIGN KEY (model_prop_id) + REFERENCES model_properties (model_prop_id); + +ALTER TABLE model + ADD CONSTRAINT model_blueprint_id_fkey01 + FOREIGN KEY (model_blueprint_id) + REFERENCES model_blueprint (model_blueprint_id); + +ALTER TABLE model + ADD CONSTRAINT event_id_fkey01 + FOREIGN KEY (event_id) + REFERENCES event (event_id); + +ALTER TABLE model_properties + ADD CONSTRAINT model_id_fkey01 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE model_blueprint + ADD CONSTRAINT model_id_fkey02 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE model_instance + ADD CONSTRAINT model_id_fkey04 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE event + ADD CONSTRAINT model_id_fkey03 + FOREIGN KEY (model_id) + REFERENCES model (model_id); diff --git a/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql new file mode 100644 index 0000000000..112cb2b55e --- /dev/null +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql @@ -0,0 +1,449 @@ +# +# CLDS stored procedures +# + +USE cldsdb4; + +DROP PROCEDURE IF EXISTS upd_event; +DROP PROCEDURE IF EXISTS ins_event; +DROP PROCEDURE IF EXISTS del_all_model_instances; +DROP PROCEDURE IF EXISTS del_model_instance; +DROP PROCEDURE IF EXISTS ins_model_instance; +DROP PROCEDURE IF EXISTS set_model; +DROP PROCEDURE IF EXISTS get_model; +DROP PROCEDURE IF EXISTS get_model_template; +DROP PROCEDURE IF EXISTS set_template; +DROP PROCEDURE IF EXISTS get_template; +DELIMITER // +CREATE PROCEDURE get_template + (IN v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_bpmn_text MEDIUMTEXT, + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_image_text MEDIUMTEXT, + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80), + OUT v_template_doc_text MEDIUMTEXT) +BEGIN + SELECT t.template_id, + tb.template_bpmn_id, + tb.user_id, + tb.template_bpmn_text, + ti.template_image_id, + ti.user_id, + ti.template_image_text, + td.template_doc_id, + td.user_id, + td.template_doc_text + INTO v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_template_doc_text + FROM template t, + template_bpmn tb, + template_image ti, + template_doc td + WHERE t.template_bpmn_id = tb.template_bpmn_id + AND t.template_image_id = ti.template_image_id + AND t.template_doc_id = td.template_doc_id + AND t.template_name = v_template_name; +END; +CREATE PROCEDURE set_template + (IN v_template_name VARCHAR(80), + IN v_user_id VARCHAR(80), + IN v_template_bpmn_text MEDIUMTEXT, + IN v_template_image_text MEDIUMTEXT, + IN v_template_doc_text MEDIUMTEXT, + OUT v_template_id VARCHAR(36), + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80)) +BEGIN + DECLARE v_old_template_bpmn_text MEDIUMTEXT; + DECLARE v_old_template_image_text MEDIUMTEXT; + DECLARE v_old_template_doc_text MEDIUMTEXT; + SET v_template_id = NULL; + CALL get_template( + v_template_name, + v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_old_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_old_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_old_template_doc_text); + IF v_template_id IS NULL THEN + BEGIN + SET v_template_id = UUID(); + INSERT INTO template + (template_id, template_name) + VALUES (v_template_id, v_template_name); + END; + END IF; + IF v_template_bpmn_id IS NULL OR v_template_bpmn_text <> v_old_template_bpmn_text THEN + SET v_template_bpmn_id = UUID(); + INSERT INTO template_bpmn + (template_bpmn_id, template_id, template_bpmn_text, user_id) + VALUES (v_template_bpmn_id, v_template_id, v_template_bpmn_text, v_user_id); + SET v_template_bpmn_user_id = v_user_id; + END IF; + IF v_template_image_id IS NULL OR v_template_image_text <> v_old_template_image_text THEN + SET v_template_image_id = UUID(); + INSERT INTO template_image + (template_image_id, template_id, template_image_text, user_id) + VALUES (v_template_image_id, v_template_id, v_template_image_text, v_user_id); + SET v_template_image_user_id = v_user_id; + END IF; + IF v_template_doc_id IS NULL OR v_template_doc_text <> v_old_template_doc_text THEN + SET v_template_doc_id = UUID(); + INSERT INTO template_doc + (template_doc_id, template_id, template_doc_text, user_id) + VALUES (v_template_doc_id, v_template_id, v_template_doc_text, v_user_id); + SET v_template_doc_user_id = v_user_id; + END IF; + UPDATE template + SET template_bpmn_id = v_template_bpmn_id, + template_image_id = v_template_image_id, + template_doc_id = v_template_doc_id + WHERE template_id = v_template_id; +END; +CREATE PROCEDURE get_model + (IN v_model_name VARCHAR(80), + OUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_service_type_id VARCHAR(80), + OUT v_deployment_id VARCHAR(80), + OUT v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_prop_text MEDIUMTEXT, + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_model_blueprint_text MEDIUMTEXT, + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + SELECT m.control_name_prefix, + m.control_name_uuid, + m.model_id, + m.service_type_id, + m.deployment_id, + t.template_name, + m.template_id, + mp.model_prop_id, + mp.user_id, + mp.model_prop_text, + mb.model_blueprint_id, + mb.user_id, + mb.model_blueprint_text, + e.event_id, + e.action_cd, + e.action_state_cd, + e.process_instance_id, + e.user_id + INTO v_control_name_prefix, + v_control_name_uuid, + v_model_id, + v_service_type_id, + v_deployment_id, + v_template_name, + v_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id + FROM model m, + template t, + model_properties mp, + model_blueprint mb, + event e + WHERE m.template_id = t.template_id + AND m.model_prop_id = mp.model_prop_id + AND m.model_blueprint_id = mb.model_blueprint_id + AND m.event_id = e.event_id + AND (m.model_name = v_model_name + OR m.control_name_uuid = v_control_name_uuid); + SELECT model_instance_id, + vm_name, + location, + timestamp + FROM model_instance + WHERE model_id = v_model_id + ORDER BY 2; +END; +CREATE PROCEDURE get_model_template + (IN v_model_name VARCHAR(80), + OUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_service_type_id VARCHAR(80), + OUT v_deployment_id VARCHAR(80), + OUT v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_prop_text MEDIUMTEXT, + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_model_blueprint_text MEDIUMTEXT, + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_bpmn_text MEDIUMTEXT, + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_image_text MEDIUMTEXT, + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80), + OUT v_template_doc_text MEDIUMTEXT, + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + CALL get_model( + v_model_name, + v_control_name_prefix, + v_control_name_uuid, + v_model_id, + v_service_type_id, + v_deployment_id, + v_template_name, + v_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id); + CALL get_template( + v_template_name, + v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_template_doc_text); + END; +CREATE PROCEDURE set_model + (IN v_model_name VARCHAR(80), + IN v_template_id VARCHAR(36), + IN v_user_id VARCHAR(80), + IN v_model_prop_text MEDIUMTEXT, + IN v_model_blueprint_text MEDIUMTEXT, + IN v_service_type_id VARCHAR(80), + IN v_deployment_id VARCHAR(80), + INOUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + DECLARE v_old_template_name VARCHAR(80); + DECLARE v_old_template_id VARCHAR(36); + DECLARE v_old_control_name_prefix VARCHAR(80); + DECLARE v_old_control_name_uuid VARCHAR(36); + DECLARE v_old_model_prop_text MEDIUMTEXT; + DECLARE v_old_model_blueprint_text MEDIUMTEXT; + DECLARE v_old_service_type_id VARCHAR(80); + DECLARE v_old_deployment_id VARCHAR(80); + SET v_model_id = NULL; + CALL get_model( + v_model_name, + v_old_control_name_prefix, + v_old_control_name_uuid, + v_model_id, + v_old_service_type_id, + v_old_deployment_id, + v_old_template_name, + v_old_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_old_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_old_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id); + IF v_model_id IS NULL THEN + BEGIN + # UUID can be provided initially but cannot be updated + # if not provided (this is expected) then it will be set here + IF v_control_name_uuid IS NULL THEN + SET v_control_name_uuid = UUID(); + END IF; + SET v_model_id = v_control_name_uuid; + INSERT INTO model + (model_id, model_name, template_id, control_name_prefix, control_name_uuid, service_type_id, deployment_id) + VALUES (v_model_id, v_model_name, v_template_id, v_control_name_prefix, v_control_name_uuid, v_service_type_id, v_deployment_id); + # since just created model, insert CREATED event as initial default event + SET v_action_cd = 'CREATE'; + SET v_action_state_cd = 'COMPLETED'; + SET v_event_user_id = v_user_id; + SET v_event_id = UUID(); + INSERT INTO event + (event_id, model_id, action_cd, action_state_cd, user_id) + VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_event_user_id); + UPDATE model + SET event_id = v_event_id + WHERE model_id = v_model_id; + END; + ELSE + BEGIN + # use old control_name_prefix if null value is provided + IF v_control_name_prefix IS NULL THEN + SET v_control_name_prefix = v_old_control_name_prefix; + END IF; + # UUID can not be updated after initial insert + SET v_control_name_uuid = v_old_control_name_uuid; + END; + END IF; + IF v_model_prop_id IS NULL OR v_model_prop_text <> v_old_model_prop_text THEN + SET v_model_prop_id = UUID(); + INSERT INTO model_properties + (model_prop_id, model_id, model_prop_text, user_id) + VALUES (v_model_prop_id, v_model_id, v_model_prop_text, v_user_id); + SET v_model_prop_user_id = v_user_id; + END IF; + IF v_model_blueprint_id IS NULL OR v_model_blueprint_text <> v_old_model_blueprint_text THEN + SET v_model_blueprint_id = UUID(); + INSERT INTO model_blueprint + (model_blueprint_id, model_id, model_blueprint_text, user_id) + VALUES (v_model_blueprint_id, v_model_id, v_model_blueprint_text, v_user_id); + SET v_model_blueprint_user_id = v_user_id; + END IF; + UPDATE model + SET control_name_prefix = v_control_name_prefix, + model_prop_id = v_model_prop_id, + model_blueprint_id = v_model_blueprint_id, + service_type_id = v_service_type_id, + deployment_id = v_deployment_id + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE ins_model_instance + (IN v_control_name_uuid VARCHAR(36), + IN v_vm_name VARCHAR(250), + IN v_location VARCHAR(250), + OUT v_model_id VARCHAR(36), + OUT v_model_instance_id VARCHAR(36)) +BEGIN + SELECT m.model_id + INTO v_model_id + FROM model m + WHERE m.control_name_uuid = v_control_name_uuid; + SET v_model_instance_id = UUID(); + INSERT INTO model_instance + (model_instance_id, model_id, vm_name, location) + VALUES (v_model_instance_id, v_model_id, v_vm_name, v_location); +END; +CREATE PROCEDURE del_model_instance + (IN v_control_name_uuid VARCHAR(36), + IN v_vm_name VARCHAR(250), + OUT v_model_id VARCHAR(36), + OUT v_model_instance_id VARCHAR(36)) +BEGIN + SELECT m.model_id, i.model_instance_id + INTO v_model_id, + v_model_instance_id + FROM model m, + model_instance i + WHERE m.model_id = i.model_id + AND m.control_name_uuid = v_control_name_uuid + AND i.vm_name = v_vm_name; + DELETE FROM model_instance + WHERE model_instance_id = v_model_instance_id; +END; +CREATE PROCEDURE del_all_model_instances + (IN v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36)) +BEGIN + SELECT m.model_id + INTO v_model_id + FROM model m + WHERE m.control_name_uuid = v_control_name_uuid; + DELETE FROM model_instance + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE ins_event + (IN v_model_name VARCHAR(80), + IN v_control_name_prefix VARCHAR(80), + IN v_control_name_uuid VARCHAR(36), + IN v_user_id VARCHAR(80), + IN v_action_cd VARCHAR(80), + IN v_action_state_cd VARCHAR(80), + IN v_process_instance_id VARCHAR(80), + OUT v_model_id VARCHAR(36), + OUT v_event_id VARCHAR(36)) +BEGIN + DECLARE v_prev_event_id VARCHAR(36); + SELECT m.model_id, + m.event_id + INTO v_model_id, + v_prev_event_id + FROM model m + WHERE m.model_name = v_model_name + OR m.control_name_uuid = v_control_name_uuid; + SET v_event_id = UUID(); + INSERT INTO event + (event_id, model_id, action_cd, action_state_cd, prev_event_id, process_instance_id, user_id) + VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_prev_event_id, v_process_instance_id, v_user_id); + UPDATE model + SET event_id = v_event_id + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE upd_event + (IN v_event_id VARCHAR(36), + IN v_process_instance_id VARCHAR(80)) +BEGIN + UPDATE event + SET process_instance_id = v_process_instance_id + WHERE event_id = v_event_id; +END +// +DELIMITER ; diff --git a/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql new file mode 100644 index 0000000000..478eaf0e09 --- /dev/null +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql @@ -0,0 +1,33 @@ +# +# Drop CLDS database objects (tables, etc.) +# + + +ALTER TABLE template + DROP FOREIGN KEY template_image_id_fkey01; +ALTER TABLE template + DROP FOREIGN KEY template_bpmn_id_fkey01; +ALTER TABLE template + DROP FOREIGN KEY template_doc_id_fkey01; + +ALTER TABLE model + DROP FOREIGN KEY template_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY model_prop_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY model_blueprint_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY event_id_fkey01; + +DROP TABLE clds_service_cache; + +DROP TABLE model_instance; +DROP TABLE model_blueprint; +DROP TABLE model_properties; +DROP TABLE event; +DROP TABLE model; + +DROP TABLE template_doc; +DROP TABLE template_image; +DROP TABLE template_bpmn; +DROP TABLE template; diff --git a/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh new file mode 100644 index 0000000000..4924922c91 --- /dev/null +++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +### +# ============LICENSE_START======================================================= +# ONAP CLAMP +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# =================================================================== +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +### + +cd /docker-entrypoint-initdb.d/bulkload +mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < clds-create-db-objects.sql +mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < clds-stored-procedures.sql diff --git a/kubernetes/clamp/templates/all-services.yaml b/kubernetes/clamp/templates/all-services.yaml index 163ed58aa9..c9f4f5ed5f 100644 --- a/kubernetes/clamp/templates/all-services.yaml +++ b/kubernetes/clamp/templates/all-services.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: Service metadata: name: clamp-mariadb - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" labels: app: clamp-mariadb spec: @@ -20,7 +20,18 @@ apiVersion: v1 kind: Service metadata: name: clamp - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "clamp", + "version": "v1", + "url": "/restservices/clds/v1", + "protocol": "REST", + "port": "8080", + "visualRange":"1" + } + ]' spec: ports: - name: clamp diff --git a/kubernetes/clamp/templates/clamp-deployment.yaml b/kubernetes/clamp/templates/clamp-deployment.yaml index de9adaca81..2c2e13f994 100644 --- a/kubernetes/clamp/templates/clamp-deployment.yaml +++ b/kubernetes/clamp/templates/clamp-deployment.yaml @@ -5,8 +5,9 @@ metadata: labels: app: clamp name: clamp - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: + replicas: {{ .Values.clampReplicas }} selector: matchLabels: app: clamp @@ -35,8 +36,8 @@ spec: - env: - name: SPRING_APPLICATION_JSON value: '{ - "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647", - "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647" + "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647", + "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647" }' image: {{ .Values.image.clampImage }}:{{ .Values.image.clampVersion }} imagePullPolicy: {{ .Values.pullPolicy }} diff --git a/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml new file mode 100644 index 0000000000..9a5fd8f284 --- /dev/null +++ b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml @@ -0,0 +1,33 @@ +#{{ if not .Values.disableClampClampMariadb }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: clamp-entrypoint-initdb-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: clamp-entrypoint-drop-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/drop/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: clamp-entrypoint-bulkload-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: clamp-mariadb-conf-configmap + namespace: {{ .Values.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }} +#{{ end }} diff --git a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml index 46a6433b7e..a12489ef63 100644 --- a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml +++ b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml @@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: clamp-mariadb - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: - replicas: 1 + replicas: {{ .Values.clampMariaDbReplicas }} selector: matchLabels: app: clamp-mariadb @@ -25,9 +25,14 @@ spec: - name: MYSQL_ROOT_PASSWORD value: {{ .Values.mysqlPassword }} volumeMounts: - - mountPath: /docker-entrypoint-initdb.d + - mountPath: /docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh name: docker-entrypoint-initdb - - mountPath: /etc/mysql/conf.d + subPath: load-sql-files-tests-automation.sh + - mountPath: /docker-entrypoint-initdb.d/drop/ + name: docker-entrypoint-clds-drop + - mountPath: /docker-entrypoint-initdb.d/bulkload/ + name: docker-entrypoint-bulkload + - mountPath: /etc/mysql/conf.d/conf1/ name: clamp-mariadb-conf - mountPath: /var/lib/mysql name: clamp-mariadb-data @@ -38,14 +43,20 @@ spec: periodSeconds: 10 volumes: - name: docker-entrypoint-initdb - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/docker-entrypoint-initdb.d + configMap: + name: clamp-entrypoint-initdb-configmap + - name: docker-entrypoint-clds-drop + configMap: + name: clamp-entrypoint-drop-configmap + - name: docker-entrypoint-bulkload + configMap: + name: clamp-entrypoint-bulkload-configmap - name: clamp-mariadb-conf - hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/conf.d + configMap: + name: clamp-mariadb-conf-configmap - name: clamp-mariadb-data persistentVolumeClaim: claimName: clamp-db imagePullSecrets: - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }}
\ No newline at end of file +#{{ end }} diff --git a/kubernetes/clamp/templates/clamp-pv-pvc.yaml b/kubernetes/clamp/templates/clamp-pv-pvc.yaml index 0d36141b6c..c542de6026 100644 --- a/kubernetes/clamp/templates/clamp-pv-pvc.yaml +++ b/kubernetes/clamp/templates/clamp-pv-pvc.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: "{{ .Values.nsPrefix }}-clamp-db" - namespace: "{{ .Values.nsPrefix }}-clamp" + name: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" labels: - name: "{{ .Values.nsPrefix }}-clamp-db" + name: "{{ .Values.nsPrefix }}-clamp" spec: capacity: storage: 2Gi @@ -13,13 +13,13 @@ spec: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: - path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/data + path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/clamp/mariadb/data --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: clamp-db - namespace: "{{ .Values.nsPrefix }}-clamp" + namespace: "{{ .Values.nsPrefix }}" spec: accessModes: - ReadWriteMany @@ -28,5 +28,5 @@ spec: storage: 2Gi selector: matchLabels: - name: "{{ .Values.nsPrefix }}-clamp-db" -#{{ end }}
\ No newline at end of file + name: "{{ .Values.nsPrefix }}-clamp" +#{{ end }} diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml index c522be071e..103472afd9 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -2,8 +2,11 @@ nsPrefix: onap pullPolicy: Always nodePortPrefix: 302 mysqlPassword: strong_pitchou +dataRootDir: /dockerdata-nfs +clampReplicas: 1 +clampMariaDbReplicas: 1 image: - readiness: oomk8s/readiness-check:1.0.0 + readiness: oomk8s/readiness-check:1.1.0 clampImage: nexus3.onap.org:10001/onap/clamp clampVersion: v1.1.0 mariadbImage: nexus3.onap.org:10001/mariadb |