summaryrefslogtreecommitdiffstats
path: root/deliveries
diff options
context:
space:
mode:
Diffstat (limited to 'deliveries')
-rw-r--r--deliveries/.env17
-rw-r--r--deliveries/.gitignore2
-rw-r--r--deliveries/Apps_Users_OnBoarding_Script.sql6
-rw-r--r--deliveries/Dockerfile.mariadb36
-rw-r--r--deliveries/Dockerfile.portalapps33
-rw-r--r--deliveries/Dockerfile.widgetms18
-rw-r--r--deliveries/README.md7
-rwxr-xr-xdeliveries/build_portalapps_dockers.sh147
-rwxr-xr-xdeliveries/createMaria.sh9
-rwxr-xr-xdeliveries/dbstart.sh9
-rwxr-xr-xdeliveries/dbstop.sh9
-rw-r--r--deliveries/docker-compose.yml83
-rw-r--r--deliveries/etc.zipbin11426 -> 0 bytes
-rwxr-xr-xdeliveries/new_start.sh29
-rwxr-xr-xdeliveries/new_stop.sh9
-rw-r--r--deliveries/os_Dockerfile84
-rwxr-xr-xdeliveries/os_build_febe.sh84
-rwxr-xr-xdeliveries/os_docker_base.sh49
-rwxr-xr-xdeliveries/os_docker_push.sh41
-rwxr-xr-xdeliveries/os_docker_release.sh41
-rwxr-xr-xdeliveries/os_settings.sh30
-rwxr-xr-xdeliveries/portal_vm_init.sh81
-rw-r--r--deliveries/properties_rackspace/ECOMPDBCAPP/dbcapp.properties8
-rw-r--r--deliveries/properties_rackspace/ECOMPDBCAPP/fusion.properties33
-rw-r--r--deliveries/properties_rackspace/ECOMPDBCAPP/portal.properties25
-rw-r--r--deliveries/properties_rackspace/ECOMPDBCAPP/system.properties63
-rw-r--r--deliveries/properties_rackspace/ECOMPPORTALAPP/fusion.properties46
-rw-r--r--deliveries/properties_rackspace/ECOMPPORTALAPP/logback.xml285
-rw-r--r--deliveries/properties_rackspace/ECOMPPORTALAPP/openid-connect.properties3
-rw-r--r--deliveries/properties_rackspace/ECOMPPORTALAPP/portal.properties23
-rw-r--r--deliveries/properties_rackspace/ECOMPPORTALAPP/system.properties97
-rw-r--r--deliveries/properties_rackspace/ECOMPSDKAPP/fusion.properties35
-rw-r--r--deliveries/properties_rackspace/ECOMPSDKAPP/portal.properties44
-rw-r--r--deliveries/properties_rackspace/ECOMPSDKAPP/system.properties65
-rw-r--r--deliveries/properties_rackspace/ECOMPWIDGETMS/application.properties35
-rwxr-xr-xdeliveries/run.sh10
-rwxr-xr-xdeliveries/start-apps-cmd.sh (renamed from deliveries/configure-and-run.sh)2
-rwxr-xr-xdeliveries/start-wms-cmd.sh2
-rwxr-xr-xdeliveries/wait-for.sh82
-rwxr-xr-xdeliveries/widget_ms_start.sh10
-rwxr-xr-xdeliveries/widget_ms_stop.sh9
41 files changed, 1184 insertions, 517 deletions
diff --git a/deliveries/.env b/deliveries/.env
new file mode 100644
index 00000000..fa307685
--- /dev/null
+++ b/deliveries/.env
@@ -0,0 +1,17 @@
+# Environment settings
+# used by docker-compose AND by other shell scripts
+
+# Host directory with config files
+PROJECT_DIR=/PROJECT/OpenSource/UbuntuEP
+
+# Directory within containers
+WEBAPPS_DIR=/opt/apache-tomcat-8.0.37/webapps
+
+# Following are ALSO used in demo/boot/portal_vm_init.sh
+EP_IMG_NAME=portal-apps
+DB_IMG_NAME=portal-db
+WMS_IMG_NAME=portal-wms
+# Tag all images with this
+PORTAL_TAG=1.1.0
+
+NEXUS_REPO=nexus3.onap.org:10003
diff --git a/deliveries/.gitignore b/deliveries/.gitignore
index f12ac3a0..796b96d1 100644
--- a/deliveries/.gitignore
+++ b/deliveries/.gitignore
@@ -1 +1 @@
-/PROJECT
+/build
diff --git a/deliveries/Apps_Users_OnBoarding_Script.sql b/deliveries/Apps_Users_OnBoarding_Script.sql
index ff3d3e96..2d1adfb5 100644
--- a/deliveries/Apps_Users_OnBoarding_Script.sql
+++ b/deliveries/Apps_Users_OnBoarding_Script.sql
@@ -345,14 +345,14 @@ select * from fn_role where app_id = (select app_id from fn_app where app_name =
) b
);
-- end new
-INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (6,'NEWS','http://about.att.com/innovationblog/next_att_labs','What\s Next at AT&T Labs? AI Set to Revolutionize the Network',NULL,NULL,10);
-INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (7,'NEWS','http://about.att.com/innovationblog/ecomp_code','Code, Community and Commitment – the 3 Cs of Open Source',NULL,NULL,20);
+INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (6,'NEWS','http://about.att.com/innovationblog/next_att_labs','What\'s Next at AT&T Labs? AI Set to Revolutionize the Network',NULL,NULL,10);
+INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (7,'NEWS','http://about.att.com/innovationblog/ecomp_code','Code, Community and Commitment - the 3 Cs of Open Source',NULL,NULL,20);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (8,'NEWS','http://about.att.com/story/orange_testing_att_open_source_ecomp_platform.html','Orange Testing AT&Ts Open Source ECOMP Platform for Building Software-Defined Network Capabilities',NULL,NULL,30);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (9,'NEWS', 'http://about.att.com/innovationblog/linux_foundation','Opening up ECOMP: Our Network Operating System for SDN',NULL,NULL,40);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (10,'EVENTS',NULL,'OpenECOMP Launches into Open Source',NULL,'2017-02-14',1);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (11,'IMPORTANTRESOURCES','http://about.att.com/content/dam/snrdocs/ecomp.pdf','ECOMP White Paper',NULL,NULL,1);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (12,'IMPORTANTRESOURCES','https://wiki.onap.org/','ONAP Wiki',NULL,NULL,2);
-INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (13,'IMPORTANTRESOURCES','https://wiki.onap.org/display/DW/Portal','ONAP Wiki, Portal',NULL,NULL,3);
+INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (13,'IMPORTANTRESOURCES','https://wiki.onap.org/display/DW/Portal','ONAP Wiki for Portal',NULL,NULL,3);
INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (14,'IMPORTANTRESOURCES','https://wiki.onap.org/display/DW/Development+Guides','ONAP User Guide',NULL,NULL,4);
diff --git a/deliveries/Dockerfile.mariadb b/deliveries/Dockerfile.mariadb
index 004e7af8..5b0abd51 100644
--- a/deliveries/Dockerfile.mariadb
+++ b/deliveries/Dockerfile.mariadb
@@ -1,34 +1,28 @@
FROM mariadb:latest
-#Author
-MAINTAINER Manoop talasila@research.att.com
-
-ARG SCRIPT_DIR=${SCRIPT_DIR}
-ARG SCRIPT_COMMON_DIR=${SCRIPT_COMMON_DIR}
+ARG PORTAL_SCRIPT_DIR=${PORTAL_SCRIPT_DIR}
ARG SDK_SCRIPT_DIR=${SDK_SCRIPT_DIR}
-ARG SDK_COMMON_SCRIPT_DIR=${SDK_COMMON_SCRIPT_DIR}
-ARG DBC_COMMON_SCRIPT_DIR=${DBC_COMMON_SCRIPT_DIR}
ARG DBC_SCRIPT_DIR=${DBC_SCRIPT_DIR}
# constant
#Add config file
-ADD my.cnf /etc/mysql/my.cnf
+COPY my.cnf /etc/mysql/my.cnf
#ADD cluster.cnf /etc/mysql/conf.d
# Scripts are executed in alphabetical order
-# Portal DDL and DML
-ADD ${SCRIPT_COMMON_DIR}/EcompPortalDDLMySql_1707_Common.sql docker-entrypoint-initdb.d
-ADD ${SCRIPT_DIR}/EcompPortalDDLMySql_1707_OS.sql docker-entrypoint-initdb.d
-ADD ${SCRIPT_COMMON_DIR}/EcompPortalDMLMySql_1707_Common.sql docker-entrypoint-initdb.d
-ADD ${SCRIPT_DIR}/EcompPortalDMLMySql_1707_OS.sql docker-entrypoint-initdb.d
-ADD Apps_Users_OnBoarding_Script.sql docker-entrypoint-initdb.d/EcompPortalDMLMySql_1707_z_apps_users.sql
+# Portal DDL and DML at 1710
+COPY ${PORTAL_SCRIPT_DIR}/EcompPortalDDLMySql_1710_Common.sql /docker-entrypoint-initdb.d/
+COPY ${PORTAL_SCRIPT_DIR}/EcompPortalDDLMySql_1710_OS.sql /docker-entrypoint-initdb.d/
+COPY ${PORTAL_SCRIPT_DIR}/EcompPortalDMLMySql_1710_Common.sql /docker-entrypoint-initdb.d/
+COPY ${PORTAL_SCRIPT_DIR}/EcompPortalDMLMySql_1710_OS.sql /docker-entrypoint-initdb.d/
+COPY Apps_Users_OnBoarding_Script.sql /docker-entrypoint-initdb.d/EcompPortalDMLMySql_1710_z_apps_users.sql
-# SDK App DDL and DML
-ADD ${SDK_COMMON_SCRIPT_DIR}/EcompSdkDDLMySql_1707_Common.sql docker-entrypoint-initdb.d
-ADD ${SDK_SCRIPT_DIR}/EcompSdkDDLMySql_1707_OS.sql docker-entrypoint-initdb.d
-ADD ${SDK_COMMON_SCRIPT_DIR}/EcompSdkDMLMySql_1707_Common.sql docker-entrypoint-initdb.d
-ADD ${SDK_SCRIPT_DIR}/EcompSdkDMLMySql_1707_OS.sql docker-entrypoint-initdb.d
+# SDK App DDL and DML unchanged since 1707
+COPY ${SDK_SCRIPT_DIR}/EcompSdkDDLMySql_1707_Common.sql /docker-entrypoint-initdb.d/
+COPY ${SDK_SCRIPT_DIR}/EcompSdkDDLMySql_1707_OS.sql /docker-entrypoint-initdb.d/
+COPY ${SDK_SCRIPT_DIR}/EcompSdkDMLMySql_1707_Common.sql /docker-entrypoint-initdb.d/
+COPY ${SDK_SCRIPT_DIR}/EcompSdkDMLMySql_1707_OS.sql /docker-entrypoint-initdb.d/
-# DBC App combined DDL/DML, built by os_build_febe.sh
-ADD ${DBC_SCRIPT_DIR}/dbca-complete-mysql-1707-os.sql docker-entrypoint-initdb.d
+# DBC App combined DDL/DML, built by script
+COPY ${DBC_SCRIPT_DIR}/dbca-complete-mysql-1707-os.sql /docker-entrypoint-initdb.d/
diff --git a/deliveries/Dockerfile.portalapps b/deliveries/Dockerfile.portalapps
index 3e295e8f..c9fab4db 100644
--- a/deliveries/Dockerfile.portalapps
+++ b/deliveries/Dockerfile.portalapps
@@ -1,7 +1,10 @@
# Dockerfile for image with ONAP applications:
# Portal app, Portal-SDK app, Portal-DBC app.
-FROM openjdk:8-jdk
+# Yields an image 823 MB
+FROM frolvlad/alpine-oraclejdk8:slim
+# Yields an image 1.4 GB
+# FROM openjdk:8-jdk
# Arguments are supplied by build.sh script
# the defaults below only support testing
@@ -12,21 +15,28 @@ ARG DBC_WAR=build/dmaap-bc-app-os.war
ARG HTTP_PROXY
ARG HTTPS_PROXY
-# This is just a variable, never passed in
-ARG TOMCATHOME=/opt/apache-tomcat-8.0.37
+# Just variables, never passed in
+ARG TOMCAT=apache-tomcat-8.0.37
+ARG TOMCATTAR=${TOMCAT}.tar.gz
+ARG TOMCATHOME=/opt/${TOMCAT}
ENV http_proxy $HTTP_PROXY
ENV https_proxy $HTTPS_PROXY
RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-# Install Tomcat; curl is already part of this image
+# Install the wait script
+COPY wait-for.sh /
+
+# Install Tomcat. This image already has curl.
WORKDIR /tmp
-RUN curl -s -O https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin/apache-tomcat-8.0.37.tar.gz
-RUN tar -xzf apache-tomcat-8.0.37.tar.gz
+RUN wget -q http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin/apache-tomcat-8.0.37.tar.gz
+RUN tar -xzf ${TOMCATTAR}
+RUN rm ${TOMCATTAR}
# Remove manager and sample apps
-RUN rm -fr apache-tomcat-8.0.37/webapps/[a-z]*
-RUN mv apache-tomcat-8.0.37 /opt
+RUN rm -fr ${TOMCAT}/webapps/[a-z]*
+RUN mkdir -p /opt
+RUN mv ${TOMCAT} /opt
WORKDIR ${TOMCATHOME}/webapps
RUN mkdir ECOMPPORTAL && mkdir ECOMPSDKAPP && mkdir ECOMPDBCAPP
@@ -46,9 +56,12 @@ RUN cd ECOMPDBCAPP && unzip -q *.war && rm *.war
VOLUME ${TOMCATHOME}/logs
+# Switch back to root
+WORKDIR /
+
# Define commonly used ENV variables
ENV PATH $PATH:$JAVA_HOME/bin:${TOMCATHOME}/bin
-COPY configure-and-run.sh /
+COPY start-apps-cmd.sh /
# Define default command.
-CMD ["/configure-and-run.sh"]
+CMD /start-apps-cmd.sh
diff --git a/deliveries/Dockerfile.widgetms b/deliveries/Dockerfile.widgetms
new file mode 100644
index 00000000..16bf60b1
--- /dev/null
+++ b/deliveries/Dockerfile.widgetms
@@ -0,0 +1,18 @@
+# Large image
+# FROM openjdk:8-jdk
+# Very small image
+FROM frolvlad/alpine-oraclejdk8:slim
+
+# Arguments are supplied by build script;
+# the defaults below only support testing
+ARG WMS_JAR=build/widget-ms.jar
+# Launch script
+COPY start-wms-cmd.sh /
+# Wait script, which depends on nc
+COPY wait-for.sh /
+# Onejar
+COPY ${WMS_JAR} /app.jar
+RUN sh -c 'touch /app.jar'
+VOLUME /tmp
+ENV JAVA_OPTS=""
+CMD /start-wms-cmd.sh
diff --git a/deliveries/README.md b/deliveries/README.md
index bc9bc3fe..99832c8e 100644
--- a/deliveries/README.md
+++ b/deliveries/README.md
@@ -1 +1,6 @@
- "moved insert statement to fn_common_widget_data table from EcompPortalDMLMySql_1707_OS.sql to Apps_Users_OnBoarding_Script.sql, the Onboard script in deliveries folder".
+This directory has configuration files for building docker images,
+and management files for starting and stopping docker containers.
+
+The Apps_Users_OnBoarding_Script.sql file has data for ONAP demo deployments:
+it adds users and applications so the Portal app has meaningful content on
+startup. These were moved from script EcompPortalDMLMySql_1707_OS.sql.
diff --git a/deliveries/build_portalapps_dockers.sh b/deliveries/build_portalapps_dockers.sh
index a45e55cc..ead31e82 100755
--- a/deliveries/build_portalapps_dockers.sh
+++ b/deliveries/build_portalapps_dockers.sh
@@ -8,16 +8,9 @@
# Stop on error; show output
set -e -x
-# For debugging only bcox the FE build takes a long time
-SKIPFE=N
-if [ $# -gt 0 -a "$1" == "skipfe" ] ; then
- echo "Skipping Portal-FE build step"
- SKIPFE=Y
-fi
-
-# Establish environment variables
-echo "Set variables"
-source $(dirname $0)/os_settings.sh
+# This reuses the docker-compose file
+echo "Set image tag name variables"
+source $(dirname $0)/.env
# Work standalone AND in the ONAP Jenkins.
# Pick up Jenkins settings for this script.
@@ -25,70 +18,91 @@ source $(dirname $0)/os_settings.sh
if [ -n "$MVN" ]; then
export MVN="${MVN} -B -gs ${GLOBAL_SETTINGS_FILE} -s ${SETTINGS_FILE}"
else
- MVN=mvn
+ # Force refresh of snapshots
+ MVN="mvn -B -U"
fi
# This expects to start in the deliveries folder; make sure
-DOCKERFILE=Dockerfile.portalapps
-if [ ! -f $DOCKERFILE ] ; then
- echo "Failed to find expected file; must start in deliveries folder"
+PORTAL_DOCKERFILE=Dockerfile.portalapps
+if [ ! -f $PORTAL_DOCKERFILE ] ; then
+ echo "Failed to find file ${PORTAL_DOCKERFILE}; must start in deliveries folder; exiting"
exit 1
fi
-# Establish directories and variables
+# Store directory names as variables
+# This is the Docker Project area.
DELIV="$(pwd)"
-# Relative path of temp directory
-BUILD="build"
-# Absolute path of temp directory
-OUT=$DELIV/$BUILD
-if [ $SKIPFE == "Y" ]; then
- echo "Skipping clean/recreate of $OUT"
-else
- rm -fr $OUT
- mkdir $OUT
-fi
-# parent directory
+# parent directory, for finding source projects
cd ..
BASE="$(pwd)"
-
-# Copy DDL/DML to required directories (old scripts use long path /PROJECT/...)
cd $DELIV
-rm -fr PROJECT
+
+# Relative path of temp directory
+BUILD_REL="build"
+# Absolute path of temp directory
+BUILD_ABS=$DELIV/$BUILD_REL
+rm -fr $BUILD_REL
+mkdir $BUILD_REL
+
+# Copy DDL/DML to required directories
+
+# RELATIVE PATHS to local directories with database scripts
+# bcos Docker looks within this build area only
+SCR_BASE=$BUILD_REL/scripts
+PORTAL_SCRIPT_DIR=$SCR_BASE/ecomp-portal-DB-os
+SDK_SCRIPT_DIR=$SCR_BASE/epsdk-app-os
+DBC_SCRIPT_DIR=$SCR_BASE/dbca-os
+mkdir -p ${PORTAL_SCRIPT_DIR} ${SDK_SCRIPT_DIR} ${DBC_SCRIPT_DIR}
+
# copy over DB scripts for the dockerfiles
-# forgive the ugly trick with the .. at end.
-mkdir -p ${SCRIPT_COMMON_DIR} && cp -r $BASE/ecomp-portal-DB-common ${SCRIPT_COMMON_DIR}/..
-mkdir -p ${SCRIPT_DIR} && cp -r $BASE/ecomp-portal-DB-os ${SCRIPT_DIR}/..
-mkdir -p ${SDK_COMMON_SCRIPT_DIR} && cp -r $BASE/sdk/ecomp-sdk/epsdk-app-common/db-scripts ${SDK_COMMON_SCRIPT_DIR}/..
-mkdir -p ${SDK_SCRIPT_DIR} && cp -r $BASE/sdk/ecomp-sdk/epsdk-app-os/db-scripts ${SDK_SCRIPT_DIR}/..
-# Build complete database script for DBC
-DBCA_OPEN_SD=$BASE/dmaapbc/dcae_dmaapbc_webapp/dbca-os/db-scripts
-DBCA_COMM_SD=$BASE/dmaapbc/dcae_dmaapbc_webapp/dbca-common/db-scripts
-# Old scripts expect this path
-mkdir -p $DBC_SCRIPT_DIR
-cat $DBCA_OPEN_SD/dbca-create-mysql-1707-os.sql $DBCA_COMM_SD/dbca-ddl-mysql-1707-common.sql $DBCA_OPEN_SD/dbca-dml-mysql-1707-os.sql > $DBC_SCRIPT_DIR/dbca-complete-mysql-1707-os.sql
-
-cd $BASE/ecomp-portal-BE-common
+# Portal
+cp $BASE/ecomp-portal-DB-common/*.sql ${PORTAL_SCRIPT_DIR}
+cp $BASE/ecomp-portal-DB-os/*.sql ${PORTAL_SCRIPT_DIR}
+# SDK app
+cp $BASE/sdk/ecomp-sdk/epsdk-app-common/db-scripts/*.sql ${SDK_SCRIPT_DIR}
+cp $BASE/sdk/ecomp-sdk/epsdk-app-os/db-scripts/*.sql ${SDK_SCRIPT_DIR}
+# DBC app
+cp $BASE/dmaapbc/dcae_dmaapbc_webapp/dbca-common/db-scripts/*.sql ${DBC_SCRIPT_DIR}
+cp $BASE/dmaapbc/dcae_dmaapbc_webapp/dbca-os/db-scripts/*.sql ${DBC_SCRIPT_DIR}
+# Assemble a script with "use" at the top.
+cat $DBC_SCRIPT_DIR/dbca-create-mysql-1707-os.sql $DBC_SCRIPT_DIR/dbca-ddl-mysql-1707-common.sql $DBC_SCRIPT_DIR/dbca-dml-mysql-1707-os.sql > $DBC_SCRIPT_DIR/dbca-complete-mysql-1707-os.sql
+
+# build database docker
+DB_DOCKER_CMD="
+ docker build -t ${DB_IMG_NAME}:${PORTAL_TAG} ${PROXY_ARGS}
+ --build-arg PORTAL_SCRIPT_DIR=${PORTAL_SCRIPT_DIR}
+ --build-arg SDK_SCRIPT_DIR=${SDK_SCRIPT_DIR}
+ --build-arg DBC_SCRIPT_DIR=${DBC_SCRIPT_DIR}
+ -f Dockerfile.mariadb .
+"
+echo "Build mariadb docker image"
+$DB_DOCKER_CMD
+
+echo "Build all jar and war files in Portal"
+cd $BASE
${MVN} clean install
+echo "Copy Portal app BE"
cd $BASE/ecomp-portal-BE-os
-${MVN} clean package
-cp target/ecompportal-be-os.war $OUT
+cp target/ecompportal-be-os.war $BUILD_ABS
+echo "Copy Portal app FE"
cd $BASE/ecomp-portal-FE-os/
-if [ $SKIPFE == "Y" ]; then
- echo "Skipping MVN in $(pwd)"
-else
- ${MVN} clean package
- cp -r dist/public $OUT
-fi
+cp -r dist/public $BUILD_ABS
+
+echo "Copy Portal widget-ms"
+cd $BASE/ecomp-portal-widget-ms
+cp widget-ms/target/widget-ms.jar $BUILD_ABS
+echo "Build and copy Portal-SDK app"
cd $BASE/sdk/ecomp-sdk/epsdk-app-os
${MVN} clean package
-cp target/epsdk-app-os.war $OUT
+cp target/epsdk-app-os.war $BUILD_ABS
+echo "Build and copy Portal-DBC app"
cd $BASE/dmaapbc/dcae_dmaapbc_webapp
${MVN} clean package
-cp dbca-os/target/dmaap-bc-app-os.war $OUT
+cp dbca-os/target/dmaap-bc-app-os.war $BUILD_ABS
PROXY_ARGS=""
if [ $HTTP_PROXY ]; then
@@ -98,19 +112,26 @@ if [ $HTTPS_PROXY ]; then
PROXY_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
fi
-# build portal docker
+echo "Build portal docker image"
cd $DELIV
PORTAL_DOCKER_CMD="
- docker build -t ${EP_IMG_NAME} ${PROXY_ARGS}
- --build-arg FE_DIR=$BUILD/public
- --build-arg PORTAL_WAR=$BUILD/ecompportal-be-os.war
- --build-arg SDK_WAR=$BUILD/epsdk-app-os.war
- --build-arg DBC_WAR=$BUILD/dmaap-bc-app-os.war
- -f $DOCKERFILE .
+ docker build -t ${EP_IMG_NAME}:${PORTAL_TAG} ${PROXY_ARGS}
+ --build-arg FE_DIR=$BUILD_REL/public
+ --build-arg PORTAL_WAR=$BUILD_REL/ecompportal-be-os.war
+ --build-arg SDK_WAR=$BUILD_REL/epsdk-app-os.war
+ --build-arg DBC_WAR=$BUILD_REL/dmaap-bc-app-os.war
+ -f $PORTAL_DOCKERFILE .
"
-echo "Invoking portal docker build"
$PORTAL_DOCKER_CMD
-# Build widget-ms docker
-cd $BASE/ecomp-portal-widget-ms
-${MVN} package docker:build
+echo "Bbuild widget-ms docker image"
+WMS_DOCKER_CMD="
+ docker build -t ${WMS_IMG_NAME}:${PORTAL_TAG} ${PROXY_ARGS}
+ --build-arg WMS_JAR=$BUILD_REL/widget-ms.jar
+ -f Dockerfile.widgetms .
+"
+$WMS_DOCKER_CMD
+
+# For ease of debugging, leave the build dir
+# echo "Cleaning up"
+# rm -fr $BUILD_REL
diff --git a/deliveries/createMaria.sh b/deliveries/createMaria.sh
deleted file mode 100755
index 84e6bb38..00000000
--- a/deliveries/createMaria.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-# Stop on errors; show output
-set -e -x
-
-source $(dirname $0)/os_settings.sh
-
-echo ${SCRIPT_DIR}
-
-docker build -t ${DB_IMG_NAME} --build-arg SCRIPT_DIR="${SCRIPT_DIR}" --build-arg SDK_SCRIPT_DIR="${SDK_SCRIPT_DIR}" --build-arg DBC_SCRIPT_DIR="${DBC_SCRIPT_DIR}" --build-arg SCRIPT_COMMON_DIR="${SCRIPT_COMMON_DIR}" --build-arg SDK_COMMON_SCRIPT_DIR="${SDK_COMMON_SCRIPT_DIR}" --build-arg DBC_COMMON_SCRIPT_DIR="${DBC_COMMON_SCRIPT_DIR}" -f ./Dockerfile.mariadb .
diff --git a/deliveries/dbstart.sh b/deliveries/dbstart.sh
deleted file mode 100755
index c76cb391..00000000
--- a/deliveries/dbstart.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-#docker create --name ${DB_VOL_NAME} -v /var/lib/mysql mariadb;
-
-echo "Running docker image ${DB_IMG_NAME} as name ${DB_CONT_NAME} with volume ${DB_VOL_NAME}"
-docker run -d --volumes-from ${DB_VOL_NAME} -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Aa123456 --net=host --name ${DB_CONT_NAME} ${DB_IMG_NAME};
diff --git a/deliveries/dbstop.sh b/deliveries/dbstop.sh
deleted file mode 100755
index 9c5b73a7..00000000
--- a/deliveries/dbstop.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-echo "Stopping docker container named ${DB_CONT_NAME}"
-docker stop ${DB_CONT_NAME}
-echo "Removing docker container named ${DB_CONT_NAME}"
-docker rm ${DB_CONT_NAME}
diff --git a/deliveries/docker-compose.yml b/deliveries/docker-compose.yml
new file mode 100644
index 00000000..1ea2bb67
--- /dev/null
+++ b/deliveries/docker-compose.yml
@@ -0,0 +1,83 @@
+# docker-compose for ONAP portal containers: database, microservice, portal apps.
+# Only exposes the portal apps on host network, not the database or WMS.
+# Works in multiple environments; does not pull from a Nexus repository.
+# Relies on .env file in current directory.
+
+version: '2.0'
+
+services:
+
+ # Config files may use hostname "portal-db"
+ portal-db:
+ image: ${DB_IMG_NAME}:${PORTAL_TAG}
+ environment:
+ MYSQL_ROOT_PASSWORD: 'Aa123456'
+ expose:
+ - 3306
+ volumes:
+ # Just specify a path and let the Engine create a volume
+ - /var/lib/mysql
+ logging:
+ driver: json-file
+
+ # An environment variable here CAN override the database URL;
+ # instead the value in the config file uses hostname from above
+ portal-wms:
+ image: ${WMS_IMG_NAME}:${PORTAL_TAG}
+ expose:
+ - 8082
+ links:
+ - portal-db
+ depends_on:
+ - portal-db
+ volumes:
+ - ${PROJECT_DIR}/etc/ECOMPWIDGETMS/application.properties:/application.properties
+ command:
+ - /wait-for.sh
+ - -t
+ - "60"
+ - portal-db:3306
+ - --
+ - /start-wms-cmd.sh
+ logging:
+ driver: json-file
+
+ # Environment variables here CANNOT override the database URL because
+ # two apps use identical configuration keys with different values
+ portal-apps:
+ image: ${EP_IMG_NAME}:${PORTAL_TAG}
+ expose:
+ - 8989
+ ports:
+ - 8989:8080
+ - 8010:8009
+ - 8006:8005
+ links:
+ - portal-db
+ - portal-wms
+ depends_on:
+ - portal-db
+ - portal-wms
+ volumes:
+ - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/system.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/conf/system.properties
+ - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/fusion/conf/fusion.properties
+ - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/portal.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/portal.properties
+ - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/openid-connect.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/openid-connect.properties
+ - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/logback.xml:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/logback.xml
+ - ${PROJECT_DIR}/etc/ECOMPSDKAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/fusion/conf/fusion.properties
+ - ${PROJECT_DIR}/etc/ECOMPSDKAPP/system.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/conf/system.properties
+ - ${PROJECT_DIR}/etc/ECOMPSDKAPP/portal.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/classes/portal.properties
+ - ${PROJECT_DIR}/etc/ECOMPDBCAPP/system.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/conf/system.properties
+ - ${PROJECT_DIR}/etc/ECOMPDBCAPP/portal.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/classes/portal.properties
+ - ${PROJECT_DIR}/etc/ECOMPDBCAPP/dbcapp.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/dbcapp/dbcapp.properties
+ - ${PROJECT_DIR}/etc/ECOMPDBCAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/fusion/conf/fusion.properties
+ - ${PROJECT_DIR}/portal-apps-logs:/opt/apache-tomcat-8.0.37/logs
+ command:
+ - /wait-for.sh
+ - -t
+ - "60"
+ - portal-db:3306
+ - --
+ - /start-apps-cmd.sh
+ logging:
+ driver: json-file
diff --git a/deliveries/etc.zip b/deliveries/etc.zip
deleted file mode 100644
index 67a65b27..00000000
--- a/deliveries/etc.zip
+++ /dev/null
Binary files differ
diff --git a/deliveries/new_start.sh b/deliveries/new_start.sh
deleted file mode 100755
index cffcda9b..00000000
--- a/deliveries/new_start.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-BASEDIR=/PROJECT/OpenSource/UbuntuEP
-PORTALDIR=/opt/apache-tomcat-8.0.37/webapps/ECOMPPORTAL
-SDKAPPDIR=/opt/apache-tomcat-8.0.37/webapps/ECOMPSDKAPP
-DBCAPPDIR=/opt/apache-tomcat-8.0.37/webapps/ECOMPDBCAPP
-PORTALPROPDIR=ECOMPPORTALAPP
-SDKAPPPROPDIR=ECOMPSDKAPP
-DBCAPPPROPDIR=ECOMPDBCAPP
-#docker rm ep_1610
-echo "Running docker image ${EP_IMG_NAME} as name ${EP_CONT_NAME}"
-docker run -d --name ${EP_CONT_NAME} \
--p 8989:8080 -p 8010:8009 -p 8006:8005 \
--v ${BASEDIR}/etc/${PORTALPROPDIR}/system.properties:${PORTALDIR}/WEB-INF/conf/system.properties \
--v ${BASEDIR}/etc/${PORTALPROPDIR}/fusion.properties:${PORTALDIR}/WEB-INF/fusion/conf/fusion.properties \
--v ${BASEDIR}/etc/${PORTALPROPDIR}/portal.properties:${PORTALDIR}/WEB-INF/classes/portal.properties \
--v ${BASEDIR}/etc/${PORTALPROPDIR}/openid-connect.properties:${PORTALDIR}/WEB-INF/classes/openid-connect.properties \
--v ${BASEDIR}/etc/${SDKAPPPROPDIR}/fusion.properties:${SDKAPPDIR}/WEB-INF/fusion/conf/fusion.properties \
--v ${BASEDIR}/etc/${SDKAPPPROPDIR}/system.properties:${SDKAPPDIR}/WEB-INF/conf/system.properties \
--v ${BASEDIR}/etc/${SDKAPPPROPDIR}/portal.properties:${SDKAPPDIR}/WEB-INF/classes/portal.properties \
--v ${BASEDIR}/etc/${DBCAPPPROPDIR}/system.properties:${DBCAPPDIR}/WEB-INF/conf/system.properties \
--v ${BASEDIR}/etc/${DBCAPPPROPDIR}/portal.properties:${DBCAPPDIR}/WEB-INF/classes/portal.properties \
--v ${BASEDIR}/etc/${DBCAPPPROPDIR}/dbcapp.properties:${DBCAPPDIR}/WEB-INF/dbcapp/dbcapp.properties \
--v ${BASEDIR}/etc/${DBCAPPPROPDIR}/fusion.properties:${DBCAPPDIR}/WEB-INF/fusion/conf/fusion.properties \
--v ${BASEDIR}/log:/opt/apache-tomcat-8.0.37/logs \
-${EP_IMG_NAME}
diff --git a/deliveries/new_stop.sh b/deliveries/new_stop.sh
deleted file mode 100755
index 9193e285..00000000
--- a/deliveries/new_stop.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-echo "Stopping docker container named ${EP_CONT_NAME}"
-docker stop ${EP_CONT_NAME}
-echo "Removing docker container named ${EP_CONT_NAME}"
-docker rm ${EP_CONT_NAME}
diff --git a/deliveries/os_Dockerfile b/deliveries/os_Dockerfile
deleted file mode 100644
index 130244da..00000000
--- a/deliveries/os_Dockerfile
+++ /dev/null
@@ -1,84 +0,0 @@
-# Pull base image.
-#FROM ubuntu-openjdk-8-jdk
-
-FROM ubuntu:14.04
-
-ARG HTTP_PROXY=${HTTP_PROXY}
-ARG HTTPS_PROXY=${HTTPS_PROXY}
-
-ENV http_proxy $HTTP_PROXY
-ENV https_proxy $HTTPS_PROXY
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-
-# Install the python script required for "add-apt-repository"
-RUN apt-get update && apt-get install -y software-properties-common
-
-# Sets language to UTF8 : this works in pretty much all cases
-ENV LANG en_US.UTF-8
-RUN locale-gen $LANG
-
-# Setup the openjdk 8 repo
-RUN add-apt-repository ppa:openjdk-r/ppa
-
-# Install java8
-RUN apt-get update && apt-get install -y --force-yes openjdk-8-jdk
-
-# Setup JAVA_HOME, this is useful for docker commandline
-ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
-RUN export JAVA_HOME
-
-# Show java version (for debugging)
-# RUN java -version
-
-RUN apt-get update
-RUN apt-get install -y curl
-# Install Tomcat
-RUN cd /tmp && curl -O https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin/apache-tomcat-8.0.37.tar.gz
-RUN tar -xzf /tmp/apache-tomcat-8.0.37.tar.gz
-RUN mv apache-tomcat-8.0.37 /opt
-
-# Define working directory.
-WORKDIR /opt/apache-tomcat-8.0.37/bin
-
-# Define commonly used ENV variables
-ENV PATH $PATH:$JAVA_HOME/bin:/opt/apache-tomcat-8.0.37/bin
-
-VOLUME /opt/apache-tomcat-8.0.37/logs
-
-ARG VERSION=${VERSION:-1.1.0}
-#LABEL Version=${VERSION}
-ARG SDK_DIR=${SDK_DIR}
-ARG FE_DIR=${FE_DIR}
-ARG PORTAL_SDK_DIR=${PORTAL_SDK_DIR}
-ARG PORTAL_DBC_DIR=${PORTAL_DBC_DIR}
-# Set up variables:
-ENV TOMCATHOME /opt/apache-tomcat-8.0.37
-ENV PORTALHOME /PROJECT/APPS/ECOMPPORTAL/ECOMPPORTALAPP
-ENV PORTALSDKHOME /PROJECT/APPS/ECOMPPORTAL/ECOMPSDKAPP
-ENV PORTALDBCHOME /PROJECT/APPS/ECOMPPORTAL/ECOMPDBCAPP
-# Install Common Software,Git,Apache
-RUN mkdir -p $PORTALHOME && mkdir -p $PORTALSDKHOME && mkdir -p $PORTALDBCHOME
-
-COPY ${SDK_DIR} ${PORTALHOME}/
-# step 33
-COPY ${PORTAL_SDK_DIR} ${PORTALSDKHOME}/
-COPY ${PORTAL_DBC_DIR} ${PORTALDBCHOME}/
-
-RUN ln -s ${PORTALHOME} ${TOMCATHOME}/webapps/ECOMPPORTAL && ln -s ${PORTALSDKHOME} ${TOMCATHOME}/webapps/ECOMPSDKAPP && ln -s ${PORTALDBCHOME} ${TOMCATHOME}/webapps/ECOMPDBCAPP
-
-
-# Define working directory.
-WORKDIR ${TOMCATHOME}/bin
-VOLUME ${TOMCATHOME}/logs
-# Define commonly used ENV variables
-ENV PATH $PATH:$JAVA_HOME/bin:${TOMCATHOME}/bin
-COPY configure-and-run.sh /PROJECT/OpenSource/UbuntuEP/
-
-#RUN cp -r ${FE_DIR}/dist/public ${PORTALHOME}/public
-
-COPY ${FE_DIR}/dist/public ${PORTALHOME}/public
-# Define default command.
-#CMD ["bash"]
-CMD ["/PROJECT/OpenSource/UbuntuEP/configure-and-run.sh"]
diff --git a/deliveries/os_build_febe.sh b/deliveries/os_build_febe.sh
deleted file mode 100755
index d9a59bf1..00000000
--- a/deliveries/os_build_febe.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-# Builds docker with three webapps: portal app, portal-sdk app, dbc app
-# Stop on error; show output
-set -e -x
-
-source $(dirname $0)/os_settings.sh
-
-# Work standalone and in Jenkins.
-# Pick up Jenkins settings for this script.
-# Use -B for batch operation to skip download progress output
-if [ -n "$MVN" ]; then
- export MVN="${MVN} -gs ${GLOBAL_SETTINGS_FILE} -s ${SETTINGS_FILE} -B"
-else
- MVN=mvn
-fi
-
-CURRENTDIR="$(pwd)"
-
-# install ecomp portal
-rm -rf $CURRENTDIR/$WORKINGDIR
-mkdir $CURRENTDIR/$WORKINGDIR
-cd $CURRENTDIR/$WORKINGDIR
-SOURCEDIR=$CURRENTDIR/$WORKINGDIR/Source
-mkdir $SOURCEDIR
-cd $SOURCEDIR
-PROJECTDIR=$SOURCEDIR/ecomp-portal-core
-mkdir $PROJECTDIR
-
-#create project dir
-#copy FE and BE
-cd $CURRENTDIR
-cd ..
-
-cp -r ecomp-portal-FE-common $PROJECTDIR/ecomp-portal-FE-common
-cp -r ecomp-portal-FE-os $PROJECTDIR/ecomp-portal-FE-os
-cp -r ecomp-portal-BE-common $PROJECTDIR/ecomp-portal-BE-common
-cp -r ecomp-portal-BE-os $PROJECTDIR/ecomp-portal-BE-os
-cp -r ecomp-portal-DB-common $PROJECTDIR/ecomp-portal-DB-common
-cp -r ecomp-portal-DB-os $PROJECTDIR/ecomp-portal-DB-os
-cp -r sdk/ecomp-sdk $PROJECTDIR/ecomp-sdk
-
-cd $PROJECTDIR/ecomp-portal-BE-common
-${MVN} install
-
-cd $PROJECTDIR/ecomp-portal-BE-os
-${MVN} install
-
-cd $PROJECTDIR/ecomp-portal-FE-os/
-${MVN} install
-
-cd $PROJECTDIR/ecomp-sdk/epsdk-app-os
-${MVN} install
-
-# now install DBC app
-cd $SOURCEDIR
-DBCDIR=$SOURCEDIR/ST_DBPA
-mkdir $DBCDIR
-#copy DBC project
-cd $CURRENTDIR
-cd ..
-cp -r dmaapbc/dcae_dmaapbc_webapp $DBCDIR/dcae_dmaapbc_webapp
-cd $DBCDIR/dcae_dmaapbc_webapp
-${MVN} install
-cd dbca-os/target
-mv dmaap-bc-app-os ep-dbc-app
-
-# Build complete database script in the "OS" script area
-cd ../db-scripts
-cat dbca-create-mysql-1707-os.sql ../../dbca-common/db-scripts/dbca-ddl-mysql-1707-common.sql dbca-dml-mysql-1707-os.sql > dbca-complete-mysql-1707-os.sql
-
-# install into docker
-cd $CURRENTDIR
-
-PROXY_ARGS=""
-if [ $HTTP_PROXY ]; then
- PROXY_ARGS+="--build-arg HTTP_PROXY=${HTTP_PROXY}"
-fi
-if [ $HTTPS_PROXY ]; then
- PROXY_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
-fi
-
-EXEC_CMD="docker build -t ${IMGNAME} ${PROXY_ARGS} --build-arg VERSION=${VERSION} --build-arg PORTAL_SDK_DIR=${PORTAL_SDK_DIR} --build-arg SDK_DIR=${SDK_DIR} --build-arg FE_DIR=${FE_DIR} --build-arg PORTAL_DBC_DIR=${PORTAL_DBC_DIR} -f ./os_Dockerfile ."
-echo $EXEC_CMD
-$EXEC_CMD
diff --git a/deliveries/os_docker_base.sh b/deliveries/os_docker_base.sh
new file mode 100755
index 00000000..2bdfea68
--- /dev/null
+++ b/deliveries/os_docker_base.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Builds and pushes versions of Portal images
+# Invoked by scripts that set VERSION and LATEST
+
+# be verbose
+set -x
+
+if [ -z "$VERSION" ]; then
+ echo "VERSION not set"
+ exit 1
+fi
+if [ -z "$LATEST" ]; then
+ echo "LATEST not set"
+ exit 1
+fi
+
+# Establish environment variables
+source $(dirname $0)/.env
+
+# Build the containers
+./build_portalapps_dockers.sh
+
+APPS_VERSION="${NEXUS_REPO}/openecomp/${EP_IMG_NAME}:${VERSION}"
+DB_VERSION="${NEXUS_REPO}/openecomp/${DB_IMG_NAME}:${VERSION}"
+WMS_VERSION="${NEXUS_REPO}/openecomp/${WMS_IMG_NAME}:${VERSION}"
+
+APPS_LATEST="${NEXUS_REPO}/openecomp/${EP_IMG_NAME}:${LATEST}"
+DB_LATEST="${NEXUS_REPO}/openecomp/${DB_IMG_NAME}:${LATEST}"
+WMS_LATEST="${NEXUS_REPO}/openecomp/${WMS_IMG_NAME}:${LATEST}"
+
+# tag versions
+docker tag ${EP_IMG_NAME}:${PORTAL_TAG} ${APPS_VERSION}
+docker tag ${EP_IMG_NAME}:${PORTAL_TAG} ${APPS_LATEST}
+
+docker tag ${DB_IMG_NAME}:${PORTAL_TAG} ${DB_VERSION}
+docker tag ${DB_IMG_NAME}:${PORTAL_TAG} ${DB_LATEST}
+
+docker tag ${WMS_IMG_NAME}:${PORTAL_TAG} ${WMS_VERSION}
+docker tag ${WMS_IMG_NAME}:${PORTAL_TAG} ${WMS_LATEST}
+
+# push
+docker push ${APPS_VERSION}
+docker push ${APPS_LATEST}
+
+docker push ${DB_VERSION}
+docker push ${DB_LATEST}
+
+docker push ${WMS_VERSION}
+docker push ${WMS_LATEST}
diff --git a/deliveries/os_docker_push.sh b/deliveries/os_docker_push.sh
index 2ec6de42..eb663b83 100755
--- a/deliveries/os_docker_push.sh
+++ b/deliveries/os_docker_push.sh
@@ -1,40 +1,11 @@
#!/bin/bash
+# Builds and pushes SNAPSHOT versions of Portal images
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-./run.sh
-
-REPO="nexus3.onap.org:10003"
+# be verbose
+set -x
TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
-VERSION="1.1.0-SNAPSHOT-${TIMESTAMP}"
-LATEST="latest"
-
-APPS_VERSION="${REPO}/openecomp/${EP_TAG_NAME}:${VERSION}"
-DB_VERSION="${REPO}/openecomp/${DB_TAG_NAME}:${VERSION}"
-WMS_VERSION="${REPO}/openecomp/${WMS_TAG_NAME}:${VERSION}"
-
-APPS_LATEST="${REPO}/openecomp/${EP_TAG_NAME}:${LATEST}"
-DB_LATEST="${REPO}/openecomp/${DB_TAG_NAME}:${LATEST}"
-WMS_LATEST="${REPO}/openecomp/${WMS_TAG_NAME}:${LATEST}"
-
-# tag versions
-docker tag ${EP_IMG_NAME} ${APPS_VERSION}
-docker tag ${EP_IMG_NAME} ${APPS_LATEST}
-
-docker tag ${DB_IMG_NAME} ${DB_VERSION}
-docker tag ${DB_IMG_NAME} ${DB_LATEST}
-
-docker tag ${WMS_IMG_NAME} ${WMS_VERSION}
-docker tag ${WMS_IMG_NAME} ${WMS_LATEST}
-
-# push
-docker push ${APPS_VERSION}
-docker push ${APPS_LATEST}
-
-docker push ${DB_VERSION}
-docker push ${DB_LATEST}
+export VERSION="1.1.0-SNAPSHOT-${TIMESTAMP}"
+export LATEST="latest"
-docker push ${WMS_VERSION}
-docker push ${WMS_LATEST}
+exec ./os_docker_base.sh
diff --git a/deliveries/os_docker_release.sh b/deliveries/os_docker_release.sh
index 2bd2e20d..42825534 100755
--- a/deliveries/os_docker_release.sh
+++ b/deliveries/os_docker_release.sh
@@ -1,40 +1,11 @@
#!/bin/bash
+# Builds and pushes STAGING versions of Portal images
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-./run.sh
-
-REPO="nexus3.onap.org:10003"
+# be verbose
+set -x
TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
-VERSION="1.1.0-STAGING-${TIMESTAMP}"
-LATEST="1.1-STAGING-latest"
-
-APPS_VERSION="${REPO}/openecomp/${EP_TAG_NAME}:${VERSION}"
-DB_VERSION="${REPO}/openecomp/${DB_TAG_NAME}:${VERSION}"
-WMS_VERSION="${REPO}/openecomp/${WMS_TAG_NAME}:${VERSION}"
-
-APPS_LATEST="${REPO}/openecomp/${EP_TAG_NAME}:${LATEST}"
-DB_LATEST="${REPO}/openecomp/${DB_TAG_NAME}:${LATEST}"
-WMS_LATEST="${REPO}/openecomp/${WMS_TAG_NAME}:${LATEST}"
-
-# tag version
-docker tag ${EP_IMG_NAME} ${APPS_VERSION}
-docker tag ${EP_IMG_NAME} ${APPS_LATEST}
-
-docker tag ${DB_IMG_NAME} ${DB_VERSION}
-docker tag ${DB_IMG_NAME} ${DB_LATEST}
-
-docker tag ${WMS_IMG_NAME} ${WMS_VERSION}
-docker tag ${WMS_IMG_NAME} ${WMS_LATEST}
-
-# push
-docker push ${APPS_VERSION}
-docker push ${APPS_LATEST}
-
-docker push ${DB_VERSION}
-docker push ${DB_LATEST}
+export VERSION="1.1.0-STAGING-${TIMESTAMP}"
+export LATEST="1.1-STAGING-latest"
-docker push ${WMS_VERSION}
-docker push ${WMS_LATEST}
+exec ./os_docker_base.sh
diff --git a/deliveries/os_settings.sh b/deliveries/os_settings.sh
deleted file mode 100755
index 19a1e0ef..00000000
--- a/deliveries/os_settings.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# Establish constants for the management shell scripts.
-# These variables are ALSO used in demo/boot/portal_vm_init.sh
-
-EP_TAG_NAME=portalapps
-EP_IMG_NAME=portalapps:latest
-EP_CONT_NAME=onap_portal
-
-DB_TAG_NAME=portaldb
-DB_IMG_NAME=portaldb:latest
-DB_CONT_NAME=onap_portal_db
-DB_VOL_NAME=data_vol_portal
-
-WMS_TAG_NAME=portalwms
-WMS_IMG_NAME=widget-ms
-WMS_CONT_NAME=onap_portal_widget_ms
-
-VERSION=1.1.0
-ETCDIR=etc
-WORKINGDIR=PROJECT
-SDK_DIR=PROJECT/Source/ecomp-portal-core/ecomp-portal-BE-os/target/ecompportal-be-os
-FE_DIR=PROJECT/Source/ecomp-portal-core/ecomp-portal-FE-os
-SCRIPT_COMMON_DIR="PROJECT/Source/ecomp-portal-core/ecomp-portal-DB-common/"
-SCRIPT_DIR="PROJECT/Source/ecomp-portal-core/ecomp-portal-DB-os/"
-SDK_COMMON_SCRIPT_DIR=PROJECT/Source/ecomp-portal-core/ecomp-sdk/epsdk-app-common/db-scripts
-SDK_SCRIPT_DIR=PROJECT/Source/ecomp-portal-core/ecomp-sdk/epsdk-app-os/db-scripts
-DBC_COMMON_SCRIPT_DIR=PROJECT/Source/ST_DBPA/dcae_dmaapbc_webapp/dbca-common/db-scripts
-DBC_SCRIPT_DIR=PROJECT/Source/ST_DBPA/dcae_dmaapbc_webapp/dbca-os/db-scripts
-PORTAL_SDK_DIR=PROJECT/Source/ecomp-portal-core/ecomp-sdk/epsdk-app-os/target/epsdk-app-os
-PORTAL_DBC_DIR=PROJECT/Source/ST_DBPA/dcae_dmaapbc_webapp/dbca-os/target/ep-dbc-app
diff --git a/deliveries/portal_vm_init.sh b/deliveries/portal_vm_init.sh
index 5f34aae8..5f4716ec 100755
--- a/deliveries/portal_vm_init.sh
+++ b/deliveries/portal_vm_init.sh
@@ -1,71 +1,42 @@
#!/bin/bash
# Starts docker containers for ONAP Portal
+# This version for Amsterdam/R1 of Portal, uses docker-compose.
+# Temporarily maintained in portal/deliveries area;
+# replicated from the ONAP demo/boot area due to release concerns.
# be verbose
set -x
-# Refresh source area with start scripts
-cd /opt/portal
-git pull
-cd /opt
-
# Establish environment variables
NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
-# Get container, image and tag names used below
-source portal/deliveries/os_settings.sh
+# Refresh configuration and scripts
+cd /opt/portal
+git pull
+cd deliveries
+
+# Get image names used below from docker-compose environment file
+source .env
-# Unpack property files
-unzip -o portal/deliveries/etc.zip -d /PROJECT/OpenSource/UbuntuEP/
+# Copy property files
+ETC=/PROJECT/OpenSource/UbuntuEP/etc
+mkdir -p $ETC
+cp -r properties_rackspace/* $ETC
# Refresh images
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-docker pull $NEXUS_DOCKER_REPO/openecomp/${DB_TAG_NAME}:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/openecomp/${EP_TAG_NAME}:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/openecomp/${WMS_TAG_NAME}:$DOCKER_IMAGE_VERSION
-
-# Remove lingering containers; order matters.
-docker rm -f $DB_CONT_NAME
-docker rm -f $DB_VOL_NAME
-docker rm -f $EP_CONT_NAME
-docker rm -f $WMS_CONT_NAME
-
-docker create --name $DB_VOL_NAME -v /var/lib/mysql mariadb
-docker tag $NEXUS_DOCKER_REPO/openecomp/${DB_TAG_NAME}:$DOCKER_IMAGE_VERSION $DB_IMG_NAME
-docker tag $NEXUS_DOCKER_REPO/openecomp/${EP_TAG_NAME}:$DOCKER_IMAGE_VERSION $EP_IMG_NAME
-# WMS image has no version in the registry
-docker tag $NEXUS_DOCKER_REPO/openecomp/${WMS_TAG_NAME}:$DOCKER_IMAGE_VERSION ${WMS_IMG_NAME}:latest
-
-# Recreate the named containers
-cd portal/deliveries
-echo "Starting database"
-./dbstart.sh
-echo "Delaying for database"
-sleep 10
-echo "Starting apps"
-./new_start.sh
-echo "Starting widget-ms"
-./widget_ms_start.sh
-
-sleep 180
-
-if [ ! -e /opt/config/boot.txt ]
-then
- if [ -e /opt/config/public_ip.txt ]
- then
- IP_ADDRESS=$(cat /opt/config/public_ip.txt)
- else
- IP_ADDRESS=$(ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2)
- fi
- # Wait until MySQL is running...
- while [[ $(netstat -vulntp |grep -i mysql | awk '{print $4}') != ":::3306" ]]
- do
- sleep 1
- done
- # no longer necessary; done at docker build time
- # mysql -u root -p'Aa123456' -h $IP_ADDRESS < /opt/portal/deliveries/Apps_Users_OnBoarding_Script.sql
- echo "yes" > /opt/config/boot.txt
-fi
+docker pull $NEXUS_DOCKER_REPO/openecomp/${DB_IMG_NAME}:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/openecomp/${EP_IMG_NAME}:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/openecomp/${WMS_IMG_NAME}:$DOCKER_IMAGE_VERSION
+
+# Tag them as expected by docker-compose file
+docker tag $NEXUS_DOCKER_REPO/openecomp/${DB_IMG_NAME}:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG
+docker tag $NEXUS_DOCKER_REPO/openecomp/${EP_IMG_NAME}:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG
+docker tag $NEXUS_DOCKER_REPO/openecomp/${WMS_IMG_NAME}:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG
+
+# compose is not in /usr/bin
+/opt/docker/docker-compose down
+/opt/docker/docker-compose up -d
diff --git a/deliveries/properties_rackspace/ECOMPDBCAPP/dbcapp.properties b/deliveries/properties_rackspace/ECOMPDBCAPP/dbcapp.properties
new file mode 100644
index 00000000..1c13384d
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPDBCAPP/dbcapp.properties
@@ -0,0 +1,8 @@
+# Properties for the Data Bus Controller webapp
+dmaap.rest.url.list = http://10.0.4.102:18080/webapi
+# webapp's mechid is sent to DCAE for authorization
+dmaap.mechid.name = m06672@dbcapp.dmaap.dcae.att.com
+# encrypted with CipherUtil
+dmaap.mechid.password = /F1vRhga1Ijw7yRFFj6R5A==
+# Valid access methods are "dao" and "rest"
+profile.access.method = dao
diff --git a/deliveries/properties_rackspace/ECOMPDBCAPP/fusion.properties b/deliveries/properties_rackspace/ECOMPDBCAPP/fusion.properties
new file mode 100644
index 00000000..4d4e17e9
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPDBCAPP/fusion.properties
@@ -0,0 +1,33 @@
+# login settings
+login_method_backdoor = backdoor
+login_method_attribute_name = login_method
+login_method_csp = csp
+login_method_web_junction = web_junction
+
+#login message
+login.error.hrid.empty = Login failed, please contact system administrator.
+login.error.hrid.not-found = User not found, please contact system administrator.
+login.error.user.inactive = Account is disabled, please contact system administrator.
+
+authentication_mechanism = DBAUTH
+
+# User Session settings
+user_attribute_name = user
+roles_attribute_name = roles
+role_functions_attribute_name = role_functions
+
+# POST settings
+post_initial_context_factory = com.sun.jndi.ldap.LdapCtxFactory
+post_provider_url = todo_ldap
+post_security_principal = ou=people,o=org,c=us
+post_max_result_size = 499
+
+# menu settings
+menu_query_name = menuData
+application_menu_set_name = APP
+application_menu_attribute_name = applicationMenuData
+business_direct_menu_set_name = BD
+business_direct_menu_attribute_name = businessDirectMenuData
+
+# Role settings
+sys_admin_role_id = 1
diff --git a/deliveries/properties_rackspace/ECOMPDBCAPP/portal.properties b/deliveries/properties_rackspace/ECOMPDBCAPP/portal.properties
new file mode 100644
index 00000000..6dbbee84
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPDBCAPP/portal.properties
@@ -0,0 +1,25 @@
+# Properties read by ECOMP Framework library, ecompFW.jar
+
+portal.api.impl.class = org.openecomp.portalapp.service.OnBoardingApiServiceImpl
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+
+# Legacy property TODO
+ecomp_redirect_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/login.htm
+
+# URL of the ECOMP Portal REST API
+ecomp_rest_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/auxapi
+
+#Use REST API instead of UEB to fetch the functional menu data
+use_rest_for_functional_menu=true
+
+# Don't fetch functional menu via UEB in 1610.
+ueb_listeners_enable = false
+
+# Application key is used by session management
+ueb_app_key = MtRwsF16RdpHZ7eM
+
+# The inbox name property should not be required when the REST API is used,
+# but in 1610 FuncMenuController logs ALARM if it cannot find this key.
+ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX-TEST
diff --git a/deliveries/properties_rackspace/ECOMPDBCAPP/system.properties b/deliveries/properties_rackspace/ECOMPDBCAPP/system.properties
new file mode 100644
index 00000000..019268b7
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPDBCAPP/system.properties
@@ -0,0 +1,63 @@
+#Local
+app_display_name = DMaaP Bus Ctlr
+
+db.driver = com.mysql.jdbc.Driver
+db.connectionURL = jdbc:mysql://portal-db:3306/dbca_os
+db.userName = root
+db.password = Aa123456
+db.encrypt_flag = false
+db.hib.dialect = org.hibernate.dialect.MySQLDialect
+db.min_pool_size = 5
+db.max_pool_size = 10
+hb.dialect = org.hibernate.dialect.MySQLDialect
+hb.show_sql = false
+hb.db_reconnect = true
+hb.idle_connection_test_period = 3600
+
+# Directory with the Quantum.lic file
+files_path = /opt/app/tomcat/webapps/dmaap-bc-app/WEB-INF/dbcapp
+
+application_user_id = 30000
+post_default_role_id = 16
+clustered = true
+
+#Enable Fusion Mobile capabilities for the application
+mobile_enable = false
+
+# Cache config file is needed on the classpath
+cache_config_file_path = /WEB-INF/classes/cache.ccf
+cache_switch = 199
+cache_load_on_startup = false
+
+user_name = fullName
+decryption_key = AGLDdG4D04BKm2IxIWEr8o==
+
+#element map files
+element_map_file_path = /tmp
+element_map_icon_path = app/fusionapp/icons/
+
+# Quartz is not used by the DBC application
+# log_cron =
+# mylogins_feed_cron =
+# sessiontimeout_feed_cron =
+# my_login_feed_output_dir =
+
+# ECOMP Portal Shared Context REST API URL is not used by the DBC application
+# ecomp_shared_context_rest_url =
+
+contact_us_link = https://todo_contact_us_link
+
+# An Unique 128-bit value defined to identify a specific version
+# of an application deployed on a specific virtual machine.
+# This value must be generated and updated by the application
+# which is using the ECOMP SDK at the time of its deployment.
+# Online Unique UUID generator - https://www.uuidgenerator.net/
+# ID generated for DBC to supply to EELF
+# A bogus value is cached in SCM: 12345678-..
+instance_uuid = 12345678-90ab-cdef-1234-567890abcdef
+
+# R Cloud feature
+guard_notebook_url=https://todo_rcloud_link
+
+# Application base URL is a proper prefix of the on-boarded URL.
+app_base_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPDBCAPP/
diff --git a/deliveries/properties_rackspace/ECOMPPORTALAPP/fusion.properties b/deliveries/properties_rackspace/ECOMPPORTALAPP/fusion.properties
new file mode 100644
index 00000000..c92a5739
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPPORTALAPP/fusion.properties
@@ -0,0 +1,46 @@
+# domain settings
+#domain_class_location =
+
+# validator settings
+#default_error_message = Default error message
+
+login_url_no_ret_val = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/login.htm
+
+user_attribute_name = user
+
+# User Session settings
+roles_attribute_name = roles
+role_functions_attribute_name = role_functions
+
+# menu settings
+menu_query_name = menuData
+application_menu_set_name = APP
+application_menu_attribute_name = applicationMenuData
+business_direct_menu_set_name = BD
+business_direct_menu_attribute_name = businessDirectMenuData
+
+# ECOMP settings
+ecomp_app_id = 1
+# Role settings
+sys_admin_role_id = 1
+account_admin_role_id = 999
+restricted_app_role_id = 900
+
+# Home Page index html
+home_page = /index.html
+
+authentication_mechanism =DBAUTH
+
+login.error.hrid.empty = Login failed, please contact system administrator.
+login.error.hrid.not-found = User not found, please contact system administrator.
+login.error.user.inactive = Account is disabled, please contact system administrator.
+
+#
+# Number of seconds to poll health (database operational, etc.)
+#
+health_poll_interval_seconds = 5
+#
+# If a component is down a log entry will be written that triggers an alert. This parameter specifies how often this alert should be triggered
+# if the component remains down. For example a value of 30, would translate to 30 * 60 seconds = 1800 seconds, or every 30 minutes
+#
+health_fail_alert_every_x_intervals = 30
diff --git a/deliveries/properties_rackspace/ECOMPPORTALAPP/logback.xml b/deliveries/properties_rackspace/ECOMPPORTALAPP/logback.xml
new file mode 100644
index 00000000..0c0d7647
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPPORTALAPP/logback.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ================================================================================
+ eCOMP Portal
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property
+ ================================================================================
+ 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.
+ ================================================================================
+ -->
+
+<!DOCTYPE xml>
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+ <!-- Log-back files for the ECOMP Portal "ecompportal" are created in directory
+ ${catalina.base}/logs/ecompportal; e.g., apache-tomcat-8.0.35/logs/ecompportal/application.log -->
+ <!--<jmxConfigurator /> -->
+
+ <!-- specify the component name -->
+ <property name="componentName" value="ecompportal"></property>
+
+ <!-- specify the base path of the log directory -->
+ <property name="logDirPrefix" value="${catalina.base}/logs"></property>
+
+ <!-- The directories where logs are written -->
+ <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
+ <!-- Can easily relocate debug logs by modifying this path. -->
+ <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}" />
+
+ <!-- log file names -->
+ <property name="generalLogName" value="application" />
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+ <!-- These loggers are not used in code (yet). <property name="securityLogName"
+ value="security" /> <property name="policyLogName" value="policy" /> <property
+ name="performanceLogName" value="performance" /> <property name="serverLogName"
+ value="server" /> -->
+
+ <!-- ServerFQDN=Server, -->
+ <property name="auditLoggerPattern"
+ value="%X{AuditLogBeginTimestamp}|%X{AuditLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+
+ <property name="metricsLoggerPattern"
+ value="%X{MetricsLogBeginTimestamp}|%X{MetricsLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+
+ <property name="errorLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ClassName}|%X{AlertSeverity}|%X{ErrorCode}|%X{ErrorDescription}| %msg%n" />
+
+ <property name="defaultLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ClassName}| %msg%n" />
+
+ <!-- use %class so library logging calls yield their class name -->
+ <property name="applicationLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%class{36}| %msg%n" />
+
+ <!--
+ <property name="defaultPattern"
+ value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+ <property name="debugLoggerPattern"
+ value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+ -->
+ <!-- <property name="debugLoggerPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n"
+ /> -->
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${applicationLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${generalLogName}.log.%d{yyyy-MM-dd}.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${applicationLoggerPattern}</pattern>
+ </encoder>
+ <filter class="org.openecomp.portalapp.portal.utils.CustomLoggingFilter" />
+ </appender>
+
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <!-- Class name is part of caller data -->
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Security Appender. This appender is used to record security events
+ to the security log file. Security events are separate from other loggers
+ in EELF so that security log records can be captured and managed in a secure
+ way separate from the other logs. This appender is set to never discard any
+ events. -->
+ <!-- <appender name="EELFSecurity" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${securityLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip </fileNamePattern>
+ <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy> <encoder> <pattern>${defaultPattern}</pattern> </encoder>
+ </appender> <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize> <discardingThreshold>0</discardingThreshold> <appender-ref
+ ref="EELFSecurity" /> </appender> -->
+
+ <!-- EELF Performance Appender. This appender is used to record performance
+ records. -->
+ <!-- <appender name="EELFPerformance" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${performanceLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip </fileNamePattern>
+ <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy> <encoder> <outputPatternAsHeader>true</outputPatternAsHeader>
+ <pattern>${defaultPattern}</pattern> </encoder> </appender> <appender name="asyncEELFPerformance"
+ class="ch.qos.logback.classic.AsyncAppender"> <queueSize>256</queueSize>
+ <appender-ref ref="EELFPerformance" /> </appender> -->
+
+ <!-- EELF Server Appender. This appender is used to record Server related
+ logging events. The Server logger and appender are specializations of the
+ EELF application root logger and appender. This can be used to segregate
+ Server events from other components, or it can be eliminated to record these
+ events as part of the application root log. -->
+ <!-- <appender name="EELFServer" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${serverLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip </fileNamePattern>
+ <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy> <encoder> <pattern>${defaultPattern}</pattern> </encoder>
+ </appender> <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize> <appender-ref ref="EELFServer" /> </appender> -->
+
+ <!-- EELF Policy Appender. This appender is used to record Policy engine
+ related logging events. The Policy logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+ <!-- <appender name="EELFPolicy" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${policyLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip </fileNamePattern>
+ <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy> <encoder> <pattern>${defaultPattern}</pattern> </encoder>
+ </appender> <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize> <appender-ref ref="EELFPolicy" /> </appender> -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine related
+ logging events. The audit logger and appender are specializations of the
+ EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily roll over -->
+ <fileNamePattern>${logDirectory}/${auditLogName}.log.%d{yyyy-MM-dd}.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily roll over -->
+ <fileNamePattern>${logDirectory}/${metricsLogName}.log.%d{yyyy-MM-dd}.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${metricsLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics" />
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily roll over -->
+ <fileNamePattern>${logDirectory}/${errorLogName}.log.%d{yyyy-MM-dd}.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError" />
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily roll over -->
+ <fileNamePattern>${logDirectory}/${debugLogName}.log.%d{yyyy-MM-dd}.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${defaultLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="info" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ </logger>
+
+ <!-- <logger name="com.att.eelf.security" level="info" additivity="false">
+ <appender-ref ref="asyncEELFSecurity" /> </logger> <logger name="com.att.eelf.perf"
+ level="info" additivity="false"> <appender-ref ref="asyncEELFPerformance"
+ /> </logger> <logger name="com.att.eelf.server" level="info" additivity="false">
+ <appender-ref ref="asyncEELFServer" /> </logger> <logger name="com.att.eelf.policy"
+ level="info" additivity="false"> <appender-ref ref="asyncEELFPolicy" /> </logger> -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="info" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+
+ <logger name="com.att.eelf.debug" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+
+ <root level="INFO">
+ <appender-ref ref="asyncEELF" />
+ </root>
+
+</configuration>
diff --git a/deliveries/properties_rackspace/ECOMPPORTALAPP/openid-connect.properties b/deliveries/properties_rackspace/ECOMPPORTALAPP/openid-connect.properties
new file mode 100644
index 00000000..33c919b2
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPPORTALAPP/openid-connect.properties
@@ -0,0 +1,3 @@
+authentication_server_url = http://portal.api.simpledemo.openecomp.org:8383/openid-connect-server-webapp/
+ecomp_openid_connect_client = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/openid_connect_login
+ecomp_redirect_uri = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/welcome.htm
diff --git a/deliveries/properties_rackspace/ECOMPPORTALAPP/portal.properties b/deliveries/properties_rackspace/ECOMPPORTALAPP/portal.properties
new file mode 100644
index 00000000..f7fba31a
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPPORTALAPP/portal.properties
@@ -0,0 +1,23 @@
+portal.api.impl.class = org.openecomp.portalsdk.core.onboarding.client.OnBoardingApiServiceImpl
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+
+# for single sign on
+ecomp_redirect_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/login.htm
+
+# URL of the ECOMP Portal REST API
+ecomp_rest_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/auxapi
+
+ueb_listeners_enable = true
+
+ueb_app_key = 7GkVcrO6sIDb3ngW
+ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9
+ueb_app_mailbox_name = ECOMP-PORTAL-INBOX
+
+ueb_url_list = ueb.api.simpledemo.openecomp.org
+ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
+
+# Consumer group name for UEB topic.
+# Use the special tag to generate a unique one for each sdk-app server.
+ueb_app_consumer_group_name = {UUID}
diff --git a/deliveries/properties_rackspace/ECOMPPORTALAPP/system.properties b/deliveries/properties_rackspace/ECOMPPORTALAPP/system.properties
new file mode 100644
index 00000000..10842953
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPPORTALAPP/system.properties
@@ -0,0 +1,97 @@
+#mysql
+db.driver = com.mysql.jdbc.Driver
+db.connectionURL = jdbc:mysql://portal-db:3306/portal
+db.userName =root
+db.password =Aa123456
+db.hib.dialect = org.hibernate.dialect.MySQLDialect
+db.min_pool_size = 5
+db.max_pool_size = 10
+hb.dialect = org.hibernate.dialect.MySQLDialect
+hb.show_sql = false
+hb.db_reconnect = true
+hb.idle_connection_test_period = 3600
+
+app_display_name = Portal
+files_path = /tmp
+context_root = ECOMPPORTAL
+# menu settings
+menu_query_name = menuData
+menu_properties_file_location = /WEB-INF/fusion/menu/
+application_menu_set_name = APP
+application_menu_attribute_name = applicationMenuData
+application_menu_properties_name = menu.properties
+business_direct_menu_set_name = BD
+business_direct_menu_properties_name = bd.menu.properties
+business_direct_menu_attribute_name = businessDirectMenuData
+
+application_user_id = 30000
+post_default_role_id = 1
+
+#Enable Fusion Mobile capabilities for the application
+mobile_enable = false
+
+cache_config_file_path = /WEB-INF/conf/cache.ccf
+cache_switch = 1
+cache_load_on_startup = false
+
+user_name = fullName
+decryption_key = AGLDdG4D04BKm2IxIWEr8o==
+
+
+#Cron Schedules
+cron_site_name = one
+log_cron = 0 * * * * ? *
+sessiontimeout_feed_cron = 0 0/5 * * * ? *
+
+#Front end URL
+frontend_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/applicationsHome
+
+#cookie domain
+cookie_domain = openecomp.org
+
+# An Unqiue 128-bit value defined to indentify a specific version of
+# ECOMP Portal deployed on a specific virtual machine.
+# This value must be generated and updated at the time of
+# the deployment.
+# Online Unique UUID generator - https://www.uuidgenerator.net/
+instance_uuid = 90bc9497-10e6-49fe-916b-dcdfaa972383
+
+elastic_search_url = http://
+contact_us_link = http://
+user_guide_link = http://
+
+# Contact Us page properties
+ush_ticket_url = http://
+feedback_email_address = portal@lists.openecomp.org
+portal_info_url = https://
+
+#Online user bar refresh interval, in seconds
+online_user_update_rate = 30
+
+#Online user bar refresh total duration, in seconds
+online_user_update_duration = 300
+
+#authenticate user server
+authenticate_user_server=http://portal.api.simpledemo.openecomp.org:8383/openid-connect-server-webapp/allUsers
+
+#window width threshold to collapse left/right menu when page onload
+window_width_threshold_left_menu = 1400
+window_width_threshold_right_menu = 1350
+
+# User notification refresh interval and duration, in seconds
+notification_update_rate = 90
+notification_update_duration = 900
+
+#Microservices Related Properties for Portal
+microservices.widget.protocol = http
+microservices.widget.hostname = portal-wms
+microservices.widget.username = widget_user
+microservices.widget.password = KpuqIB08YHg+btG+pjX+sA==
+#This property won't be needed after consul is functional on VMs -
+microservices.widget.local.port = 8082
+microservices.m-learn.local.port = 8083
+#HALO API enable flag
+external_access_enable = false
+
+#delete auditlog from number of days ago
+auditlog_del_day_from = 365
diff --git a/deliveries/properties_rackspace/ECOMPSDKAPP/fusion.properties b/deliveries/properties_rackspace/ECOMPSDKAPP/fusion.properties
new file mode 100644
index 00000000..8ce8cc95
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPSDKAPP/fusion.properties
@@ -0,0 +1,35 @@
+# login settings
+login_method_backdoor = backdoor
+login_method_attribute_name = login_method
+
+# These properties will be removed after SingleSignOnController is cleaned
+authentication_mechanism = BOTH
+login_method_csp = csp
+login_method_web_junction = web_junction
+
+#login message
+login.error.hrid.empty = Login failed, please contact system administrator.
+login.error.hrid.not-found = User not found, please contact system administrator.
+login.error.user.inactive = Account is disabled, please contact system administrator.
+
+# User Session settings
+user_attribute_name = user
+roles_attribute_name = roles
+role_function_list = role_function_list
+role_functions_attribute_name = role_functions
+
+# Import-user LDAP settings
+post_initial_context_factory = com.sun.jndi.ldap.LdapCtxFactory
+post_provider_url = ldap://ldap.mycompany.com:389
+post_security_principal = ou=people,o=mycompany,c=us
+post_max_result_size = 499
+
+# menu settings
+menu_query_name = menuData
+application_menu_set_name = APP
+application_menu_attribute_name = applicationMenuData
+business_direct_menu_set_name = BD
+business_direct_menu_attribute_name = businessDirectMenuData
+
+# Role settings
+sys_admin_role_id = 1
diff --git a/deliveries/properties_rackspace/ECOMPSDKAPP/portal.properties b/deliveries/properties_rackspace/ECOMPSDKAPP/portal.properties
new file mode 100644
index 00000000..b569e4fc
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPSDKAPP/portal.properties
@@ -0,0 +1,44 @@
+# Properties read by ECOMP Framework library, ecompFW.jar
+
+##########################################################################
+# The following properties should NOT be changed by partner applications.
+##########################################################################
+
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+
+#Use REST API instead of UEB to fetch the functional menu data
+use_rest_for_functional_menu=true
+
+##########################################################################
+# The following properties MUST be changed by partner applications.
+##########################################################################
+
+# Name of java class that implements the OnBoardingApiService interface.
+portal.api.impl.class = org.openecomp.portalapp.service.OnBoardingApiServiceImpl
+
+# CSP Global Log On for single sign on
+ecomp_redirect_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/login.htm
+
+# URL of the ECOMP Portal REST API
+
+ecomp_rest_url = http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/auxapi
+
+# Applications do not need to run a UEB listener in 1610.
+ueb_listeners_enable = false
+
+# UEB Configuration
+ueb_url_list = ueb.api.simpledemo.openecomp.org
+# ECOMP Portal listens on this UEB topic
+ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
+# Replace these 3 default values with the ones for your specific App,
+# as shown on the on-boarding page on the ECOMP Portal web application.
+ueb_app_key = jQd4a9zVNi4ePyBp
+ueb_app_secret = P0HpqEBhKJvxjRYdw2sCTUll
+ueb_app_mailbox_name = ECOMP-PORTAL-OUTBOX-APP1
+# Consumer group name for UEB topic.
+# Use the special tag '{UUID}' to generate a unique one for each sdk-app server.
+ueb_app_consumer_group_name = {UUID}
+
+decryption_key = AGLDdG4D04BKm2IxIWEr8o==
diff --git a/deliveries/properties_rackspace/ECOMPSDKAPP/system.properties b/deliveries/properties_rackspace/ECOMPSDKAPP/system.properties
new file mode 100644
index 00000000..105502f1
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPSDKAPP/system.properties
@@ -0,0 +1,65 @@
+# Properties read by ECOMP Core library, ecompSDK-core.jar
+
+##########################################################################
+# The following properties should NOT be changed by partner applications.
+##########################################################################
+
+application_user_id = 30000
+post_default_role_id = 16
+clustered = true
+
+#Enable Fusion Mobile capabilities for the application
+mobile_enable = false
+
+# Cache config file is needed on the classpath
+cache_config_file_path = /WEB-INF/classes/cache.ccf
+cache_switch = 199
+cache_load_on_startup = false
+
+user_name = fullName
+decryption_key = AGLDdG4D04BKm2IxIWEr8o==
+
+##########################################################################
+# The following properties MAY require changes by partner applications.
+##########################################################################
+
+#Mysql
+db.driver = com.mysql.jdbc.Driver
+db.connectionURL = jdbc:mysql://portal-db:3306/ecomp_sdk
+db.userName = root
+db.password = Aa123456
+db.min_pool_size = 5
+db.max_pool_size = 10
+hb.dialect = org.hibernate.dialect.MySQLDialect
+# SQL statements are logged to stdout
+hb.show_sql = true
+hb.idle_connection_test_period = 3600
+
+app_display_name = Demo App
+files_path = /tmp
+
+#element map files
+element_map_file_path = /tmp
+element_map_icon_path = app/fusionapp/icons/
+
+#Cron Schedules
+log_cron = 0 0/1 * * * ?;
+mylogins_feed_cron = 0 0/60 * * * ?;
+#sessiontimeout_feed_cron = 0 * * * * ? *
+my_login_feed_output_dir = /tmp/MyLogins
+
+# Link shown in Help menu
+contact_us_link = https://todo_contact_us_link.com
+
+# An Unique 128-bit value defined to identify a specific version
+# of an application deployed on a specific virtual machine.
+# This value must be generated and updated by the application
+# which is using the ECOMP SDK at the time of its deployment.
+# Online Unique UUID generator - https://www.uuidgenerator.net/
+instance_uuid=8da691c9-987d-43ed-a358-00ac2f35685d
+
+# R Cloud feature - configure this property to enable notebook feature - for more details on RCloud please visit https://rcloud.social/index.html
+guard_notebook_url=
+
+#authenticate user server
+authenticate_user_server=http://portal.openecomp.org:8383/openid-connect-server-webapp/allUsers
diff --git a/deliveries/properties_rackspace/ECOMPWIDGETMS/application.properties b/deliveries/properties_rackspace/ECOMPWIDGETMS/application.properties
new file mode 100644
index 00000000..7c95923f
--- /dev/null
+++ b/deliveries/properties_rackspace/ECOMPWIDGETMS/application.properties
@@ -0,0 +1,35 @@
+## General App Properties
+server.contextPath=/widget
+server.port=8082
+spring.http.multipart.max-file-size=128MB
+spring.http.multipart.max-request-size=128MB
+microservice.widget.location=/tmp
+
+## App DB Properties
+spring.datasource.url=jdbc:mysql://portal-db:3306/portal
+spring.datasource.username=root
+spring.datasource.password=Aa123456
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
+spring.database.driver.classname=org.mariadb.jdbc.Driver
+spring.jpa.show-sql=false
+spring.jpa.properties.hibernate.format_sql=false
+
+## Basic Authentication Properties
+security.user.name=widget_user
+security.user.password=ENC(IjywcRnI9+nuVEh9+OFFiRWAjBT1n718)
+
+initialization.default.widgets=true
+initialization.widgetData.url=http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/commonWidgets
+
+## Account Basic Authentication Properties
+account.user.name=portal
+account.user.password=6APqvG4AU2rfLgCvMdySwQ==
+
+## Certificate Properties
+#server.ssl.key-store=classpath:widget-keystore.p12
+#server.ssl.key-store-password=ENC(DiIYnAMab4u7rEW2yKhF9zBL00uU55q8)
+#server.ssl.keyStoreType=PKCS12
+#server.ssl.keyAlias=widget-microservice
+
+## Jasypt Properties
+jasypt.encryptor.password=EncryptionKey
diff --git a/deliveries/run.sh b/deliveries/run.sh
deleted file mode 100755
index bd2a5dd1..00000000
--- a/deliveries/run.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# Stop on errors; show output
-set -e -x
-# 1610 builder
-# ./os_build_febe.sh
-# 1707 builder
-./build_portalapps_dockers.sh
-./createMaria.sh
-docker images
diff --git a/deliveries/configure-and-run.sh b/deliveries/start-apps-cmd.sh
index 5c2b2f46..bbe2a7cb 100755
--- a/deliveries/configure-and-run.sh
+++ b/deliveries/start-apps-cmd.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
LOGFILE=/opt/apache-tomcat-8.0.37/logs/catalina.out
echo "`date`:<-------------------- Starting -------------------->" >> $LOGFILE
diff --git a/deliveries/start-wms-cmd.sh b/deliveries/start-wms-cmd.sh
new file mode 100755
index 00000000..dc8336e7
--- /dev/null
+++ b/deliveries/start-wms-cmd.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
diff --git a/deliveries/wait-for.sh b/deliveries/wait-for.sh
new file mode 100755
index 00000000..be9a443f
--- /dev/null
+++ b/deliveries/wait-for.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+# https://github.com/Eficode/wait-for.git
+# MIT License
+
+TIMEOUT=15
+QUIET=0
+
+echoerr() {
+ if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi
+}
+
+usage() {
+ exitcode="$1"
+ cat << USAGE >&2
+Usage:
+ $cmdname host:port [-t timeout] [-- command args]
+ -q | --quiet Do not output any status messages
+ -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout
+ -- COMMAND ARGS Execute command with args after the test finishes
+USAGE
+ exit "$exitcode"
+}
+
+wait_for() {
+ command="$*"
+ for i in `seq $TIMEOUT` ; do
+ nc -z "$HOST" "$PORT" > /dev/null 2>&1
+ result=$?
+ if [ $result -eq 0 ] ; then
+ if [ "$QUIET" -ne 1 ]; then echo "Operation succeeded on try $i"; fi
+ if [ -n "$command" ] ; then
+ exec $command
+ fi
+ exit 0
+ fi
+ sleep 1
+ done
+ echo "Operation timed out" >&2
+ exit 1
+}
+
+while [ $# -gt 0 ]
+do
+ case "$1" in
+ *:* )
+ HOST=$(printf "%s\n" "$1"| cut -d : -f 1)
+ PORT=$(printf "%s\n" "$1"| cut -d : -f 2)
+ shift 1
+ ;;
+ -q | --quiet)
+ QUIET=1
+ shift 1
+ ;;
+ -t)
+ TIMEOUT="$2"
+ if [ "$TIMEOUT" = "" ]; then break; fi
+ shift 2
+ ;;
+ --timeout=*)
+ TIMEOUT="${1#*=}"
+ shift 1
+ ;;
+ --)
+ shift
+ break
+ ;;
+ --help)
+ usage 0
+ ;;
+ *)
+ echoerr "Unknown argument: $1"
+ usage 1
+ ;;
+ esac
+done
+
+if [ "$HOST" = "" -o "$PORT" = "" ]; then
+ echoerr "Error: you need to provide a host and port to test."
+ usage 2
+fi
+
+wait_for "$@"
diff --git a/deliveries/widget_ms_start.sh b/deliveries/widget_ms_start.sh
deleted file mode 100755
index b5fbdc25..00000000
--- a/deliveries/widget_ms_start.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-BASEDIR=/PROJECT/OpenSource/UbuntuEP
-WIDGETMSAPPPROPDIR=ECOMPWIDGETMS
-
-echo "Running docker image ${WMS_IMG_NAME} as container ${WMS_CONT_NAME}"
-docker run -d --name ${WMS_CONT_NAME} -p 8082:8082 -v ${BASEDIR}/etc/${WIDGETMSAPPPROPDIR}/application.properties:/application.properties ${WMS_IMG_NAME}
diff --git a/deliveries/widget_ms_stop.sh b/deliveries/widget_ms_stop.sh
deleted file mode 100755
index dd5c9645..00000000
--- a/deliveries/widget_ms_stop.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Establish environment variables
-source $(dirname $0)/os_settings.sh
-
-echo "Stopping docker container ${WMS_CONT_NAME}"
-docker stop ${WMS_CONT_NAME}
-echo "Removing docker image ${WMS_CONT_NAME}"
-docker rm ${WMS_CONT_NAME}