summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-widget-ms/src/main/resources
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-widget-ms/src/main/resources')
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/application-properties28
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/application.properties.templated35
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/events-widget.zipbin0 -> 1501585 bytes
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/framework-template.js173
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/logback.xml138
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/news-widget.zipbin0 -> 1502150 bytes
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/resources-widget.zipbin0 -> 1502662 bytes
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/templates/Upload.html17
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/templates/widgetsPage.html15
-rw-r--r--ecomp-portal-widget-ms/src/main/resources/widget-keystore.p12bin0 -> 2638 bytes
-rwxr-xr-xecomp-portal-widget-ms/src/main/resources/widget_ms_start.sh4
-rwxr-xr-xecomp-portal-widget-ms/src/main/resources/widget_ms_stop.sh5
12 files changed, 415 insertions, 0 deletions
diff --git a/ecomp-portal-widget-ms/src/main/resources/application-properties b/ecomp-portal-widget-ms/src/main/resources/application-properties
new file mode 100644
index 00000000..77d2b78d
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/application-properties
@@ -0,0 +1,28 @@
+## 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=/demeter/WebApps/dev/ECOMPPORTAL/microservices/widgets-dir/
+
+## App DB Properties
+spring.datasource.url=jdbc:mariadb:failover://demeter.homer.att.com:3306/ecomp_portal_1702&connectTimeout=2000
+spring.datasource.username=portal
+spring.datasource.password=ENC(8tWrJAXdOKaMqvrVy5e2Jg==)
+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)
+
+## 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/ecomp-portal-widget-ms/src/main/resources/application.properties.templated b/ecomp-portal-widget-ms/src/main/resources/application.properties.templated
new file mode 100644
index 00000000..ec4803f0
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/application.properties.templated
@@ -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
+
+## App DB Properties
+spring.datasource.url=jdbc:mariadb:failover://{db_host:db_port/{portal_db}
+spring.datasource.username={username}
+spring.datasource.password=ENC({encrypted_password})
+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={basic_auth_username}
+security.user.password=ENC({encrypted_basic_auth_password})
+
+## Initalization setting
+initialization.default.widgets=true
+initialization.widgetData.url={widgetData_url}
+
+## 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 \ No newline at end of file
diff --git a/ecomp-portal-widget-ms/src/main/resources/events-widget.zip b/ecomp-portal-widget-ms/src/main/resources/events-widget.zip
new file mode 100644
index 00000000..bddee8ec
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/events-widget.zip
Binary files differ
diff --git a/ecomp-portal-widget-ms/src/main/resources/framework-template.js b/ecomp-portal-widget-ms/src/main/resources/framework-template.js
new file mode 100644
index 00000000..45350d91
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/framework-template.js
@@ -0,0 +1,173 @@
+var ARUGMENT1 = (function(window, undefined) {
+
+ var ARUGMENT1 = ARUGMENT1 || {};
+ function extractHostPortApp(src) {
+ ARUGMENT1.microserviceId = MICROSERVICE_ID;
+ ARUGMENT1.pathArray = src.split( '/' );
+ ARUGMENT1.widgetName = ARUGMENT1.pathArray[ARUGMENT1.pathArray.length - 2];
+ ARUGMENT1.serviceSeperator = ARUGMENT1.pathArray[ARUGMENT1.pathArray.length - 4];
+ ARUGMENT1.commonUrl = src.substring(0, src.lastIndexOf("/" + ARUGMENT1.widgetName));
+ ARUGMENT1.recipientDivDataAttrib = 'data-' + ARUGMENT1.widgetName;
+ ARUGMENT1.controllerName = 'ARUGMENT2';
+ ARUGMENT1.readyCssFlag = 'ARUGMENT3';
+ ARUGMENT1.readyCssFlagExpectedValue = '#bada55';
+ ARUGMENT1.serviceURL = src.substring(0, src.lastIndexOf("/" + ARUGMENT1.serviceSeperator)) + '/portalApi/microservice/proxy/parameter/' + WIDGET_ID;
+ }
+
+ extractHostPortApp(document.currentScript.src);
+
+ function loadStylesheet(url) {
+ var link = document.createElement('link');
+ link.rel = 'stylesheet';
+ link.type = 'text/css';
+ link.href = url;
+ var entry = document.getElementsByTagName('script')[0];
+ entry.parentNode.insertBefore(link, entry);
+ }
+
+ function isCssReady(callback) {
+ var testElem = document.createElement('span');
+ testElem.id = ARUGMENT1.readyCssFlag;
+ testElem.style = 'CSS_ARG1';
+ var entry = document.getElementsByTagName('script')[0];
+ entry.parentNode.insertBefore(testElem, entry);
+
+ (function poll() {
+ var node = document.getElementById('css-ready');
+ var value;
+ if (window.getComputedStyle) {
+ value = document.defaultView.getComputedStyle(testElem, null)
+ .getPropertyValue('color');
+ }
+ else if (node.currentStyle) {
+ value = node.currentStyle.color;
+ }
+ if (value && value === 'rgb(186, 218, 85)' || value.toLowerCase() === ARUGMENT1.readyCssFlagExpectedValue) {
+ callback();
+ } else {
+ setTimeout(poll, 500);
+ }
+ })();
+ }
+
+ function injectCss(css) {
+ var style = document.createElement('style');
+ style.type = 'text/css';
+ css = css.replace(/\}/g, "}\n");
+
+ if (style.styleSheet) {
+ style.styleSheet.cssText = css;
+ } else {
+ style.appendChild(document.createTextNode(css));
+ }
+ var entry = document.getElementsByTagName('script')[0];
+ entry.parentNode.insertBefore(style, entry);
+ }
+
+ function loadScript(url, callback) {
+ var script = document.createElement('script');
+ script.src = url;
+ var entry = document.getElementsByTagName('script')[0];
+ entry.parentNode.insertBefore(script, entry);
+ script.onload = script.onreadystatechange = function() {
+ var rdyState = script.readyState;
+ if (!rdyState || /complete|loaded/.test(script.readyState)) {
+ callback();
+ script.onload = null;
+ script.onreadystatechange = null;
+ }
+ };
+ }
+
+ function loadSupportingFiles(callback) {
+ callback();
+ }
+
+ function getWidgetParams() {
+
+ }
+
+ function getWidgetData(widgetUrl, callback) {
+ var responseData;
+ try{
+ jQuery.ajax({
+ url: widgetUrl,
+ method: "GET",
+ xhrFields: {
+ withCredentials: true
+ },
+ crossDomain: true,
+ success: function (result) {
+ if (result.isOk == false){
+
+ }else{
+ callback(result);
+ }
+ }
+ });
+ }
+ catch(e){
+
+ }
+
+ }
+
+ function getMarkupContent(markupLocation, target){
+
+ jQuery.ajax({
+ url: markupLocation,
+ success: function (result) {
+ if (result.isOk == false){
+
+ }else{
+ target.innerHTML = result;
+ }
+ },
+ async: false
+ });
+ }
+
+ function renderWidget(data, location, $controllerProvider) {
+ var div = document.createElement('div');
+ getMarkupContent(ARUGMENT1.commonUrl + "/markup/" + ARUGMENT1.widgetName, div);
+ location.append(div);
+ ARUGMENT1.widgetData = data;
+ app.controllerProvider.register(ARUGMENT1.controllerName, ARUGMENT1.controller);
+ var mController = angular.element(document.getElementById("widgets"));
+ mController.scope().activateThis(location);
+ }
+
+ function printAllArtifacts(moduleName, controllerName) {
+ var queue = angular.module(moduleName)._invokeQueue;
+ for(var i=0;i<queue.length;i++) {
+ var call = queue[i];
+ console.log(i + '. ' + call[0] + ' - ' + call[1] + ' - ' + call[2][0]);
+ }
+ }
+
+ function get(name){
+ if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
+ return decodeURIComponent(name[1]);
+ }
+
+ loadSupportingFiles(function() {
+ loadStylesheet(ARUGMENT1.commonUrl + '/' + ARUGMENT1.widgetName + '/style.css');
+ loadScript(ARUGMENT1.commonUrl + '/' + ARUGMENT1.widgetName + '/controller.js',
+ function() {
+ $('['+ ARUGMENT1.recipientDivDataAttrib + ']').each(function() {
+ var location = jQuery(this);
+ location.removeAttr(ARUGMENT1.recipientDivDataAttrib);
+ var id = location.attr(ARUGMENT1.recipientDivDataAttrib);
+ getWidgetData(ARUGMENT1.serviceURL, function(data) {
+ isCssReady(function(){
+ renderWidget(data, location);
+ });
+ });
+ });
+ }
+ );
+ });
+
+ return ARUGMENT1;
+})(window);
+ \ No newline at end of file
diff --git a/ecomp-portal-widget-ms/src/main/resources/logback.xml b/ecomp-portal-widget-ms/src/main/resources/logback.xml
new file mode 100644
index 00000000..204a6598
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/logback.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+ <property name="WIDGET_LOG_HOME" value="logs" />
+
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <Pattern>
+ %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
+ </Pattern>
+ </layout>
+ </appender>
+
+ <logger name="org.springframework.web" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <contextName>${HOSTNAME}</contextName>
+
+
+ <appender name="ADUIT"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${WIDGET_LOG_HOME}/aduit.log</file>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <Pattern>
+ %date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%logger{0}|%-5level|%contextName| %msg%n"
+ </Pattern>
+ </encoder>
+ <!-- %d{yyyy-MM-dd HH:mm:ss} - %msg%n -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${WIDGET_LOG_HOME}/archived/aduit.%d{yyyy-MM-dd}.%i.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>100KB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ </appender>
+
+ <appender name="APPLICATION"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${WIDGET_LOG_HOME}/application.log</file>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <Pattern>
+ %date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%logger{0}|%-5level|%contextName| %msg%n"
+ </Pattern>
+ </encoder>
+ <!-- %d{yyyy-MM-dd HH:mm:ss} - %msg%n -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${WIDGET_LOG_HOME}/archived/application.%d{yyyy-MM-dd}.%i.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>100KB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ </appender>
+
+
+ <appender name="DEBUG"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${WIDGET_LOG_HOME}/debug.log</file>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <Pattern>
+ %date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%logger{0}|%-5level|%contextName| %msg%n"
+ </Pattern>
+ </encoder>
+ <!-- %d{yyyy-MM-dd HH:mm:ss} - %msg%n -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${WIDGET_LOG_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>100KB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ </appender>
+
+
+ <appender name="ERROR"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${WIDGET_LOG_HOME}/error.log</file>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <Pattern>
+ %date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%logger{0}|%-5level|%contextName| %msg%n"
+ </Pattern>
+ </encoder>
+
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${WIDGET_LOG_HOME}/archived/error.%d{yyyy-MM-dd}.%i.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>100KB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ </appender>
+
+
+ <appender name="METRICS"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${WIDGET_LOG_HOME}/metrics.log</file>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <Pattern>
+ %date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%logger{0}|%-5level|%contextName| %msg%n"
+ </Pattern>
+ </encoder>
+
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${WIDGET_LOG_HOME}/archived/metrics.%d{yyyy-MM-dd}.%i.zip
+ </fileNamePattern>
+ <maxHistory>30</maxHistory>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>100KB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ </appender>
+
+ <logger name="org.openecomp.portalapp.widget" level="debug" additivity="false">
+ <appender-ref ref="ERROR" />
+ <appender-ref ref="DEBUG" />
+ <appender-ref ref="APPLICATION" />
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <root level="info">
+ <appender-ref ref="DEBUG" />
+ <appender-ref ref="APPLICATION" />
+ <appender-ref ref="STDOUT" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/ecomp-portal-widget-ms/src/main/resources/news-widget.zip b/ecomp-portal-widget-ms/src/main/resources/news-widget.zip
new file mode 100644
index 00000000..2d367c89
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/news-widget.zip
Binary files differ
diff --git a/ecomp-portal-widget-ms/src/main/resources/resources-widget.zip b/ecomp-portal-widget-ms/src/main/resources/resources-widget.zip
new file mode 100644
index 00000000..d2ada049
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/resources-widget.zip
Binary files differ
diff --git a/ecomp-portal-widget-ms/src/main/resources/templates/Upload.html b/ecomp-portal-widget-ms/src/main/resources/templates/Upload.html
new file mode 100644
index 00000000..a5e7c632
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/templates/Upload.html
@@ -0,0 +1,17 @@
+<html>
+<body>
+ <div align="center">
+ <form method="post" action="doUpload/widget-resources" enctype="multipart/form-data">
+ <table border="0">
+ <tr>
+ <td>Pick file:</td>
+ <td><input type="file" name="fileUpload" size="50" /></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"><input type="submit" value="Upload" /></td>
+ </tr>
+ </table>
+ </form>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/ecomp-portal-widget-ms/src/main/resources/templates/widgetsPage.html b/ecomp-portal-widget-ms/src/main/resources/templates/widgetsPage.html
new file mode 100644
index 00000000..440f64ca
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/templates/widgetsPage.html
@@ -0,0 +1,15 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<body>
+
+ <p> Uploaded Widgets: </p>
+
+ <div>
+ <ul>
+ <li th:each="file : ${files}">
+ <a th:href="${file}" th:text="${file}" />
+ </li>
+ </ul>
+ </div>
+
+</body>
+</html>
diff --git a/ecomp-portal-widget-ms/src/main/resources/widget-keystore.p12 b/ecomp-portal-widget-ms/src/main/resources/widget-keystore.p12
new file mode 100644
index 00000000..b2dd42ff
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/widget-keystore.p12
Binary files differ
diff --git a/ecomp-portal-widget-ms/src/main/resources/widget_ms_start.sh b/ecomp-portal-widget-ms/src/main/resources/widget_ms_start.sh
new file mode 100755
index 00000000..8405fe99
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/widget_ms_start.sh
@@ -0,0 +1,4 @@
+APP_PROPERTY_LOCATION=/tmp/application.properties
+echo "Starting ecomp-portal-widget-ms image in a new container !!!"
+docker run -d --name "ecomp-portal-widget-ms" -p 8083:8082 -v $APP_PROPERTY_LOCATION:/application.properties ecompportal-widget-ms
+
diff --git a/ecomp-portal-widget-ms/src/main/resources/widget_ms_stop.sh b/ecomp-portal-widget-ms/src/main/resources/widget_ms_stop.sh
new file mode 100755
index 00000000..8c9abf56
--- /dev/null
+++ b/ecomp-portal-widget-ms/src/main/resources/widget_ms_stop.sh
@@ -0,0 +1,5 @@
+echo "Stopping ecomp-portal-widget-ms container !!!"
+docker stop ecomp-portal-widget-ms
+echo "Removing docker image portal-widget-ms !!!"
+docker rm ecomp-portal-widget-ms
+