Skip to content
Snippets Groups Projects
Commit 147c24e0 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Storing, storing...

parent f7b0bded
No related branches found
No related tags found
No related merge requests found
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;
--
-- TOC entry 2152 (class 1262 OID 16386)
-- Name: vipscoremanager; Type: DATABASE; Schema: -; Owner: vipscoremanager
--
CREATE USER vipscoremanager WITH PASSWORD :vipscoremanager_password;
CREATE DATABASE vipscoremanager WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
ALTER DATABASE vipscoremanager OWNER TO vipscoremanager;
-- This script should be run as superuser (postgres) AFTER the first successful deployment of VIPSLogic
-- DON'T FORGET TO EDIT WITH YOUR OWN INFO
-- psql -f init_org_and_user.sql vipslogic
-- In case you forgot until now...
ALTER ROLE vipslogic NOSUPERUSER;
-- SETUP organization AND first admin user
INSERT INTO organization (organization_id, organization_name, parent_organization_id, address1, address2, postal_code, country_code, default_locale, default_map_center, default_map_zoom, default_time_zone, city, default_vips_core_user_id, vipsweb_url)
VALUES (
1, -- organization_id
'VIPS Norge', -- organization_name
NULL, -- parent_organization_id (normally not in use, consider deprecated)
'Postboks 115', -- address1
NULL, -- address2
'1431', -- postal_code (ZIP)
'NO', -- country_code Ref. table public.country
'nb', -- default_locale Ref. https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html
ST_GeomFromText('POINT(10.00015 68.432044)', 4326), -- default_map_center
4, -- default_map_zoom (OpenLayers zoom level)
'Europe/Oslo', -- default_time_zone Ref. https://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html
'Ås', -- city
1, -- default_vips_core_user_id
'http://www.vips-landbruk.no/' -- vipsweb_url URL to the public website
);
INSERT INTO vips_logic_user (user_id, email, first_name, last_name, organization_id, remarks, user_status_id, vips_core_user_id, preferred_locale, phone, approves_sms_billing, phone_country_code, free_sms)
VALUES (
1, -- user_id
'foo.bar@foobar.com', -- user_email
'Foo', -- first_name
'Bar', -- last_name
1, -- organization_id
'Created at application initialization', -- General remarks about user
4, -- user_status_id 4 = approved
1, -- vips_core_user_id = Which user id you have in the VIPSCoreManager auth system
'en', -- preferred_locale Ref. https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html
'21324354', -- phone (without country code)
true, -- approves_sms_billing If true = Approves to the SMS service provider that billing is OK
'47', -- phone_country_code
true -- free_sms If true = receive free SMSs from the SMS service provider
);
INSERT INTO user_vips_logic_role (vips_logic_role_id, user_id) VALUES (1,1); -- super user
INSERT INTO user_authentication (user_id, user_authentication_type_id, username, password)
VALUES (
1, -- user_id
1, -- authentication_type_id Ref public.user_authentication_type (Password in this example)
'foobar', -- username
'XXXXXXXXXXXXXXXX' -- password, MD5 encrypted with the no.nibio.vips.logic.MD5_SALT (see the appserver configuration settings)
);
......@@ -247,8 +247,38 @@ sudo -H -u $CODE_USER bash -c "mvn install -DskipTests"
sudo -H -u $CODE_USER bash -c "ln -s /home/$CODE_USER/VIPSCore/target/VIPSCore-1.0-SNAPSHOT.war $WILDFLY_HOME/standalone/deployments/"
sudo -H -u $CODE_USER bash -c "ln -s /home/$CODE_USER/VIPSCore/target/VIPSCoreManager-1.0-SNAPSHOT.war $WILDFLY_HOME/standalone/deployments/"
# Add configuration properties to Wildfly's standalone.xml
# Initializing the database for vipscoremanager
printf "\nDATABASE USER INFORMATION for vipscoremanager\n"
printf "We will create a postgresql user 'vipscoremanager' which will own the 'vipscoremanager' database\n"
while [ "$vipscoremanager_password" == "" ]
do
read -sp "Password for vipscoremanager [*]: " vipscoremanager_password
done
sudo -H -u postgres bash -c "psql -v vipscoremanager_password=\"'$vipscoremanager_password'\" -f db/vipscoremanager_init_1.sql"
# Edit standalone.xml, the Wildfly config file, for VIPSCoreManager
printf "\nWILDFLY CONFIGURATION for VIPSCoreManager\n"
while [ "$smtpserver" == "" ]
do
read -p "SMTP servername [*]: " smtpserver
done
while [ "$md5salt_2" == "" ]
do
read -p "MD5 salt (to make the one-way encryption much harder to break. Type 10-20 random characters) [*]: " md5salt_2
done
while [ "$corebatch_username" == "" ]
do
read -p "Core batch username (Allowing VIPSLogic to run models in VIPSCore) " corebatch_username
done
while [ "$corebatch_password" == "" ]
do
read -p "Core batch password (Allowing VIPSLogic to run models in VIPSCore) " corebatch_password
done
cd $INITIAL_DIRECTORY/wildfly_config
sudo -H -u $CODE_USER bash -c "python3 init_standalone_xml_for_vipscoremanager_and_vipscore.py --md5salt $md5salt_2 --dbpassword $vipscoremanager_password --corebatch_username $corebatch_username --corebatch_password $corebatch_password --path $WILDFLY_CONFIG_PATH"
echo "-----------------------------------"
......
#!/usr/bin/python3
# Adds VIPSCore and VIPSCoreManager specific config to [WILDFLY_HOME]/standalone/configuration/standalone.xml
# (c) 2019 NIBIO
# Author Tor-Einar Skog <tor-einar.skog@nibio.no>
from shutil import copyfile
from xml.dom.minidom import parse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--md5salt")
parser.add_argument("--dbpassword")
parser.add_argument("--corebatch_username")
parser.add_argument("--corebatch_password")
parser.add_argument("--path")
args = parser.parse_args()
path = args.path
# Make a copy of the original file
copyfile(path + "/standalone.xml", path + "/standalone_original.xml")
# The destination document
standalone_dom = parse(path + "/standalone.xml")
# The system properties to add to destination (standalone.xml)
vsp_dom = parse("vipscoremanager_system_properties.xml")
system_properties = standalone_dom.getElementsByTagName("system-properties")
if len(system_properties) == 0:
system_properties = standalone_dom.createElement("system-properties")
standalone_dom.getElementsByTagName("server")[0].insertBefore(system_properties, standalone_dom.getElementsByTagName("management")[0])
else:
system_properties = system_properties[0]
# Transfer system properties to standalone.xml
for property in vsp_dom.getElementsByTagName("property"):
# We use script input parameters to set system property values
if property.getAttribute("name") == "no.nibio.vips.coremanager.MD5_SALT":
property.setAttribute("value",args.md5salt)
if property.getAttribute("name") == "no.nibio.vips.logic.CORE_BATCH_USERNAME":
property.setAttribute("value",args.corebatch_username)
if property.getAttribute("name") == "no.nibio.vips.logic.CORE_BATCH_PASSWORD":
property.setAttribute("value",args.corebatch_password)
system_properties.appendChild(property)
# Transfer the data source and driver info to standalone.xml
vipscoremanager_datasource_dom = parse("vipscoremanager_datasource.xml")
datasources_elm = vipscoremanager_datasource_dom.getElementsByTagName("datasources")[0]
standalone_datasources_elm = standalone_dom.getElementsByTagName("datasources")[0]
vipscoremanager_datasource = None
for datasource in datasources_elm.getElementsByTagName("datasource"):
if datasource.getAttribute("jndi-name") == "java:jboss/datasources/vipscoremanager":
datasource.getElementsByTagName("security")[0].getElementsByTagName("password")[0].firstChild.replaceWholeText(args.dbpassword)
standalone_datasources_elm.appendChild(datasource)
# Assuming PostgreSQL driver has been added by init_standalone.py for VIPSLogic
# Write to file
outputfile = open(path + "/standalone.xml", "w")
outputfile.write(standalone_dom.toxml())
outputfile.close()
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/vipscoremanager" pool-name="Postgres-vipscoremanager-pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:postgresql://localhost:5432/vipscoremanager</connection-url>
<driver>postgresql</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>90</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>coremanager</user-name>
<password>XXXXXXXXXX</password>
</security>
</datasource>
</datasources>
<system-properties>
<property name="no.nibio.vips.coremanager.VIPSCORE_URL" value="http://localhost:8080/VIPSCore"/>
<property name="no.nibio.vips.coremanager.VIPSBATCH_ALLOWED_IPS" value="127.0.0.1"/>
<property name="no.nibio.vips.coremanager.MD5_SALT" value="XXXX"/>
</system-properties>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment