diff options
author | danielhanrahan <daniel.hanrahan@est.tech> | 2021-08-30 17:35:18 +0100 |
---|---|---|
committer | Daniel Hanrahan <daniel.hanrahan@est.tech> | 2021-09-07 08:22:23 +0000 |
commit | a8af9621cd5be96dc802710078bae90400f6792a (patch) | |
tree | 269bf18fec38852cdbbd5e5c0d0c5ff67dd3e356 | |
parent | a023942e415b1f0a5dfb40a1d8315b66cc951dad (diff) |
Make gui-pdp-monitoring work in Docker image
Serve PDP Monitoring HTML using nginx in Docker image
Don't serve HTML content from PdpMonitoringServer
Remove unused dependencies in gui-pdp-monitoring
Add proxy setting for local dev testing with npm start
Issue-ID: POLICY-3603
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I9a4c2b250a1f0460892a367a3b5bbb59e0e92411
-rw-r--r-- | gui-pdp-monitoring/pom.xml | 34 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/main/assembly/frontend.xml (renamed from gui-pdp-monitoring/src/main/assembly/resources.xml) | 12 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java | 2 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java | 19 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java | 7 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js | 5 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/webapp/js/MonitoringMain.js | 8 | ||||
-rw-r--r-- | gui-pdp-monitoring/src/webapp/webpack.config.js | 5 | ||||
-rw-r--r-- | packages/policy-gui-docker/pom.xml | 15 | ||||
-rw-r--r-- | packages/policy-gui-docker/src/main/docker/Dockerfile | 3 | ||||
-rw-r--r-- | packages/policy-gui-docker/src/main/docker/nginx/default.conf.template | 10 | ||||
-rw-r--r-- | packages/policy-gui-docker/src/main/docker/policy-gui.sh | 2 |
12 files changed, 50 insertions, 72 deletions
diff --git a/gui-pdp-monitoring/pom.xml b/gui-pdp-monitoring/pom.xml index 4fe4491..4f9b72c 100644 --- a/gui-pdp-monitoring/pom.xml +++ b/gui-pdp-monitoring/pom.xml @@ -1,6 +1,6 @@ <!-- ============LICENSE_START======================================================= - Copyright (C) 2020 Nordix Foundation. + Copyright (C) 2020-2021 Nordix Foundation. Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); @@ -63,19 +63,6 @@ <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.onap.policy.gui</groupId> - <artifactId>gui-common</artifactId> - <version>${project.version}</version> - <classifier>resources</classifier> - <type>zip</type> - <scope>provided</scope> - </dependency> </dependencies> <build> @@ -131,22 +118,19 @@ </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> + <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> - <id>Copy frontend build to target</id> - <phase>prepare-package</phase> + <id>generate-gui-pdp-monitoring-tar</id> + <phase>package</phase> <goals> - <goal>copy-resources</goal> + <goal>single</goal> </goals> <configuration> - <outputDirectory>${project.build.directory}/classes/webapp</outputDirectory> - <resources> - <resource> - <directory>${webapp.dir}/dist</directory> - <filtering>false</filtering> - </resource> - </resources> + <descriptors> + <descriptor>src/main/assembly/frontend.xml</descriptor> + </descriptors> + <finalName>${project.artifactId}-${project.version}</finalName> </configuration> </execution> </executions> diff --git a/gui-pdp-monitoring/src/main/assembly/resources.xml b/gui-pdp-monitoring/src/main/assembly/frontend.xml index b204cab..610121b 100644 --- a/gui-pdp-monitoring/src/main/assembly/resources.xml +++ b/gui-pdp-monitoring/src/main/assembly/frontend.xml @@ -1,6 +1,6 @@ <!-- ============LICENSE_START======================================================= - Copyright (C) 2020 Nordix Foundation. + Copyright (C) 2020-2021 Nordix Foundation. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,15 +18,15 @@ ============LICENSE_END========================================================= --> <assembly> - <id>resources</id> + <id>frontend</id> <formats> - <format>zip</format> + <format>tar.gz</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> - <directory>target/classes/webapp</directory> - <outputDirectory>monitoring</outputDirectory> + <directory>${webapp.dir}/dist</directory> + <outputDirectory>pdp-monitoring</outputDirectory> </fileSet> </fileSets> -</assembly>
\ No newline at end of file +</assembly> diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java index 398cbc4..2c0bb3a 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java @@ -152,7 +152,7 @@ public class PdpMonitoringMain { public void shutdown() { if (pdpMonitoringServer != null) { LOGGER.info(PDP_MONITORING_PREFIX + "{}) shutting down", this); - pdpMonitoringServer.shutdown(parameters.getPort(), parameters.getDefaultRestPort()); + pdpMonitoringServer.shutdown(parameters.getPort()); } shutdownLatch.countDown(); state = ServicesState.STOPPED; diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java index 78e048d..bfb273d 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java @@ -22,7 +22,6 @@ package org.onap.policy.gui.pdp.monitoring; import lombok.NonNull; -import org.eclipse.jetty.servlets.CrossOriginFilter; import org.onap.policy.common.endpoints.http.server.HttpServletServer; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; import org.slf4j.Logger; @@ -41,9 +40,6 @@ public class PdpMonitoringServer { // The HTTP server exposing JAX-RS resources defined in this application. private HttpServletServer jerseyServer; - // The HTTP server exposing static resources defined in this application. - private HttpServletServer staticResourceServer; - /** * Starts the HTTP server for the Pdp statistics monitoring on the default base URI and with the * default REST packages. @@ -58,34 +54,23 @@ public class PdpMonitoringServer { * @param parameters The Pdp parameters to use to start the server. */ public PdpMonitoringServer(@NonNull final PdpMonitoringServerParameters parameters) { - LOGGER.debug("Pdp Monitoring starting . . ."); jerseyServer = HttpServletServerFactoryInstance.getServerFactory().build("PDP Monitoring Rest Server", false, - parameters.getServerHost(), parameters.getDefaultRestPort(), parameters.getContextPath(), false, true); + parameters.getServerHost(), parameters.getPort(), parameters.getContextPath(), false, true); jerseyServer.addServletPackage(parameters.getDefaultRestPath(), parameters.getRestPackage()); - jerseyServer.addFilterClass(parameters.getDefaultRestPath(), CrossOriginFilter.class.getName()); jerseyServer.start(); - staticResourceServer = HttpServletServerFactoryInstance.getServerFactory().buildStaticResourceServer( - "PDP Monitoring Html Server", false, parameters.getServerHost(), parameters.getPort(), - parameters.getContextPath(), true); - staticResourceServer.addServletResource(null, - PdpMonitoringServer.class.getClassLoader().getResource("webapp").toExternalForm()); - staticResourceServer.start(); - LOGGER.debug("Pdp Monitoring started"); } /** * Shut down the web server. * - * @param htmlPort port number of static resource server * @param restPort port number of jersey server */ - public void shutdown(int htmlPort, int restPort) { + public void shutdown(int restPort) { LOGGER.debug("Pdp Monitoring . . ."); - HttpServletServerFactoryInstance.getServerFactory().destroy(htmlPort); HttpServletServerFactoryInstance.getServerFactory().destroy(restPort); LOGGER.debug("Pdp Monitoring shut down"); } diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java index a76fa02..78fb479 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java @@ -38,7 +38,6 @@ import org.onap.policy.common.parameters.annotations.Min; @Getter @Setter public class PdpMonitoringServerParameters { - public static final int DEFAULT_PORT = 18999; public static final int INFINITY_TIME_TO_LIVE = -1; // Base URI the HTTP server will listen on @@ -55,7 +54,7 @@ public class PdpMonitoringServerParameters { @Min(1024) @Max(65534) - private int port = DEFAULT_PORT; + private int port = DEFAULT_REST_PORT; @Min(-1) private long timeToLive = INFINITY_TIME_TO_LIVE; @@ -88,8 +87,4 @@ public class PdpMonitoringServerParameters { public String getDefaultRestPath() { return "/" + DEFAULT_REST_PATH; } - - public int getDefaultRestPort() { - return DEFAULT_REST_PORT; - } } diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js b/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js index f929282..6e5200e 100644 --- a/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ // Configuration used for page layout and charts const config = { refresh: 5000, - restPort: 17999, engineService: { parent: "engineService", tableId: "engineServicesTable", @@ -124,4 +123,4 @@ const config = { } }; -export { config, };
\ No newline at end of file +export { config, }; diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js index 9198d63..48aa96c 100644 --- a/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -68,8 +68,8 @@ function readyCallback() { window.restRootURL = location.protocol + "//" + window.location.hostname - + ':' + config.restPort - + (location.pathname.endsWith("/monitoring/") ? location.pathname.substring(0, location.pathname.indexOf("monitoring/")) : location.pathname) + + ':' + window.location.port + + window.location.pathname + "papservices/monitoring/"; // Initialize tooltip for the charts initTooltip(); @@ -108,4 +108,4 @@ function readyCallback() { $(document).ready(readyCallback); // Export for unit testing -export { readyCallback, servicesCallback };
\ No newline at end of file +export { readyCallback, servicesCallback }; diff --git a/gui-pdp-monitoring/src/webapp/webpack.config.js b/gui-pdp-monitoring/src/webapp/webpack.config.js index f387ebe..4b1c179 100644 --- a/gui-pdp-monitoring/src/webapp/webpack.config.js +++ b/gui-pdp-monitoring/src/webapp/webpack.config.js @@ -10,6 +10,9 @@ module.exports = { devServer: { contentBase: path.join(__dirname, 'dist'), compress: true, - port: 9000 + port: 9000, + proxy: { + "/papservices/monitoring": "http://localhost:17999", + } } }; diff --git a/packages/policy-gui-docker/pom.xml b/packages/policy-gui-docker/pom.xml index 94453ce..9574600 100644 --- a/packages/policy-gui-docker/pom.xml +++ b/packages/policy-gui-docker/pom.xml @@ -94,7 +94,13 @@ <includes> <include>org.onap.policy.gui:gui-clamp:tar.gz:clamp-build:${project.version}</include> </includes> - <outputFileNameMapping>gui-clamp.tar.gz</outputFileNameMapping> + <outputFileNameMapping>gui-clamp-html.tar.gz</outputFileNameMapping> + </dependencySet> + <dependencySet> + <includes> + <include>org.onap.policy.gui:gui-pdp-monitoring:tar.gz:frontend:${project.version}</include> + </includes> + <outputFileNameMapping>gui-pdp-monitoring-html.tar.gz</outputFileNameMapping> </dependencySet> <dependencySet> <includes> @@ -172,6 +178,13 @@ <groupId>org.onap.policy.gui</groupId> <artifactId>gui-pdp-monitoring</artifactId> <version>${project.version}</version> + <classifier>frontend</classifier> + <type>tar.gz</type> + </dependency> + <dependency> + <groupId>org.onap.policy.gui</groupId> + <artifactId>gui-pdp-monitoring</artifactId> + <version>${project.version}</version> <type>uber.jar</type> </dependency> <dependency> diff --git a/packages/policy-gui-docker/src/main/docker/Dockerfile b/packages/policy-gui-docker/src/main/docker/Dockerfile index e58c9ea..8820139 100644 --- a/packages/policy-gui-docker/src/main/docker/Dockerfile +++ b/packages/policy-gui-docker/src/main/docker/Dockerfile @@ -40,7 +40,8 @@ COPY /maven/gui-pdp-monitoring-uber.jar ./lib/ COPY nginx/nginx.conf /etc/nginx/nginx.conf COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template COPY nginx/index.html /usr/share/nginx/html/ -ADD /maven/gui-clamp.tar.gz /usr/share/nginx/html/ +ADD /maven/gui-clamp-html.tar.gz /usr/share/nginx/html/ +ADD /maven/gui-pdp-monitoring-html.tar.gz /usr/share/nginx/html/ RUN rm /etc/nginx/conf.d/default.conf && \ ln -sf /dev/stdout /var/log/nginx/access.log && \ ln -sf /dev/stderr /var/log/nginx/error.log && \ diff --git a/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template index a12f34b..d407827 100644 --- a/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template +++ b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template @@ -11,14 +11,12 @@ server { proxy_pass ${CLAMP_REST_URL}/restservices/clds/; } - location /apex-editor/ { - proxy_pass http://localhost:18989/; - proxy_set_header Host $host; - proxy_set_header If-Modified-Since $http_if_modified_since; + location /pdp-monitoring/papservices/monitoring/ { + proxy_pass http://localhost:17999/papservices/monitoring/; } - location /pdp-monitoring/ { - proxy_pass http://localhost:18999/; + location /apex-editor/ { + proxy_pass http://localhost:18989/; proxy_set_header Host $host; proxy_set_header If-Modified-Since $http_if_modified_since; } diff --git a/packages/policy-gui-docker/src/main/docker/policy-gui.sh b/packages/policy-gui-docker/src/main/docker/policy-gui.sh index 4d4cbee..bb2d9c9 100644 --- a/packages/policy-gui-docker/src/main/docker/policy-gui.sh +++ b/packages/policy-gui-docker/src/main/docker/policy-gui.sh @@ -27,7 +27,7 @@ echo "Starting gui-editor-apex" $JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-editor-apex-uber.jar" -p 18989 & echo "Starting gui-pdp-monitoring" -$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-pdp-monitoring-uber.jar" -p 18999 & +$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-pdp-monitoring-uber.jar" -p 17999 & echo "Starting nginx" envsubst '${CLAMP_REST_URL}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf |