diff options
author | Joanna Jeremicz <joanna.jeremicz@nokia.com> | 2018-09-05 12:53:18 +0200 |
---|---|---|
committer | Joanna Jeremicz <joanna.jeremicz@nokia.com> | 2018-09-06 07:53:04 +0200 |
commit | 1906751861ca9457aaf14bb166c5e6ab61a695b7 (patch) | |
tree | 97d2ffd299b1927069cf9cea25dbfbc2d715828e | |
parent | 90ada13b33f796e31c77df512389b9d88688d9eb (diff) |
Add new endpoint with commit info
Change-Id: I8f89fd6dcaa250f67d762ca92fb0f14582ddc5a7
Issue-ID: VID-304
Signed-off-by: Joanna Jeremicz <joanna.jeremicz@nokia.com>
3 files changed, 209 insertions, 143 deletions
diff --git a/vid-app-common/pom.xml b/vid-app-common/pom.xml index 57d3de1f..8336920c 100755 --- a/vid-app-common/pom.xml +++ b/vid-app-common/pom.xml @@ -219,6 +219,31 @@ </dependency>
</dependencies>
</plugin>
+ <plugin>
+ <groupId>pl.project13.maven</groupId>
+ <artifactId>git-commit-id-plugin</artifactId>
+ <version>2.2.4</version>
+ <executions>
+ <execution>
+ <id>get-the-git-infos</id>
+ <goals>
+ <goal>revision</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
+ <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
+ <dateFormatTimeZone>${user.timezone}</dateFormatTimeZone>
+ <generateGitPropertiesFile>true</generateGitPropertiesFile>
+ <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
+ <includeOnlyProperties>
+ <includeOnlyProperty>^git.commit.id$</includeOnlyProperty>
+ <includeOnlyProperty>^git.commit.message.short$</includeOnlyProperty>
+ <includeOnlyProperty>^git.commit.time$</includeOnlyProperty>
+ </includeOnlyProperties>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java b/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java index c3871da9..03dc8083 100644 --- a/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java +++ b/vid-app-common/src/main/java/org/onap/vid/controllers/HealthCheckController.java @@ -7,9 +7,9 @@ * 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. @@ -24,6 +24,7 @@ import org.onap.portalsdk.core.controller.UnRestrictedBaseController; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.dao.FnAppDoaImpl; +import org.onap.vid.model.GitRepositoryState; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,6 +35,7 @@ import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Properties; /** * Controller for user profile view. The view is restricted to authenticated @@ -45,146 +47,157 @@ import java.util.Date; public class HealthCheckController extends UnRestrictedBaseController { - /** The logger. */ - private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(HealthCheckController.class); - - /** The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - - private static final String HEALTH_CHECK_PATH = "/healthCheck"; - - /** - * Model for JSON response with health-check results. - */ - public class HealthStatus { - // Either 200 or 500 - public int statusCode; - - // Additional detail in case of error, empty in case of success. - public String message; - - public String date; - - public HealthStatus(int code, String msg) { - this.statusCode = code; - this.message = msg; - } - - public HealthStatus(int code,String date, String msg) { - this.statusCode = code; - this.message = msg; - this.date=date; - } - - public int getStatusCode() { - return statusCode; - } - - public void setStatusCode(int code) { - this.statusCode = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String msg) { - this.message = msg; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - } - - @SuppressWarnings("unchecked") - public int getProfileCount(String driver, String URL, String username, String password) { - FnAppDoaImpl doa= new FnAppDoaImpl(); - int count= doa.getProfileCount(driver,URL,username,password); - return count; - } - - - - /** - * Obtain the HealthCheck Status from the System.Properties file. - * Used by IDNS for redundancy - * @return ResponseEntity The response entity - * @throws IOException Signals that an I/O exception has occurred. - */ - @RequestMapping(value="/healthCheck",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public HealthStatus gethealthCheckStatusforIDNS() { - - String driver = SystemProperties.getProperty("db.driver"); - String URL = SystemProperties.getProperty("db.connectionURL"); - String username = SystemProperties.getProperty("db.userName"); - String password = SystemProperties.getProperty("db.password"); - - LOGGER.debug(EELFLoggerDelegate.debugLogger, "driver ::" + driver); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "URL::" + URL); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "username::" + username); - LOGGER.debug(EELFLoggerDelegate.debugLogger,"password::" + password); - - - HealthStatus healthStatus = null; - try { - LOGGER.debug(EELFLoggerDelegate.debugLogger, "Performing health check"); - int count=getProfileCount(driver,URL,username,password); - LOGGER.debug(EELFLoggerDelegate.debugLogger,"count:::"+count); - healthStatus = new HealthStatus(200, "health check succeeded"); - } catch (Exception ex) { - - LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to perform health check", ex); - healthStatus = new HealthStatus(500, "health check failed: " + ex.toString()); - } - return healthStatus; - } - - /** - * Obtain the HealthCheck Status from the System.Properties file. - * - * @return ResponseEntity The response entity - * @throws IOException Signals that an I/O exception has occurred. - * Project : - */ - @RequestMapping(value="rest/healthCheck/{User-Agent}/{X-ECOMP-RequestID}",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public HealthStatus getHealthCheck( - @PathVariable("User-Agent") String UserAgent, - @PathVariable("X-ECOMP-RequestID") String ECOMPRequestID) { - - String driver = SystemProperties.getProperty("db.driver"); - String URL = SystemProperties.getProperty("db.connectionURL"); - String username = SystemProperties.getProperty("db.userName"); - String password = SystemProperties.getProperty("db.password"); - - LOGGER.debug(EELFLoggerDelegate.debugLogger, "driver ::" + driver); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "URL::" + URL); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "username::" + username); - LOGGER.debug(EELFLoggerDelegate.debugLogger,"password::" + password); - - - HealthStatus healthStatus = null; - try { - LOGGER.debug(EELFLoggerDelegate.debugLogger, "Performing health check"); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "User-Agent" + UserAgent); - LOGGER.debug(EELFLoggerDelegate.debugLogger, "X-ECOMP-RequestID" + ECOMPRequestID); - - - int count=getProfileCount(driver,URL,username,password); - - LOGGER.debug(EELFLoggerDelegate.debugLogger,"count:::"+count); - healthStatus = new HealthStatus(200,dateFormat.format(new Date()) ,"health check succeeded"); - } catch (Exception ex) { - - LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to perform health check", ex); - healthStatus = new HealthStatus(500,dateFormat.format(new Date()),"health check failed: " + ex.toString()); - } - return healthStatus; - } + /** + * The logger. + */ + private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(HealthCheckController.class); + + /** + * The Constant dateFormat. + */ + final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + + private static final String HEALTH_CHECK_PATH = "/healthCheck"; + + /** + * Model for JSON response with health-check results. + */ + public class HealthStatus { + // Either 200 or 500 + public int statusCode; + + // Additional detail in case of error, empty in case of success. + public String message; + + public String date; + + public HealthStatus(int code, String msg) { + this.statusCode = code; + this.message = msg; + } + + public HealthStatus(int code, String date, String msg) { + this.statusCode = code; + this.message = msg; + this.date = date; + } + + public int getStatusCode() { + return statusCode; + } + + public void setStatusCode(int code) { + this.statusCode = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String msg) { + this.message = msg; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + } + + @SuppressWarnings("unchecked") + public int getProfileCount(String driver, String URL, String username, String password) { + FnAppDoaImpl doa = new FnAppDoaImpl(); + int count = doa.getProfileCount(driver, URL, username, password); + return count; + } + + + /** + * Obtain the HealthCheck Status from the System.Properties file. + * Used by IDNS for redundancy + * + * @return ResponseEntity The response entity + * @throws IOException Signals that an I/O exception has occurred. + */ + @RequestMapping(value = "/healthCheck", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public HealthStatus gethealthCheckStatusforIDNS() { + + String driver = SystemProperties.getProperty("db.driver"); + String URL = SystemProperties.getProperty("db.connectionURL"); + String username = SystemProperties.getProperty("db.userName"); + String password = SystemProperties.getProperty("db.password"); + + LOGGER.debug(EELFLoggerDelegate.debugLogger, "driver ::" + driver); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "URL::" + URL); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "username::" + username); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "password::" + password); + + + HealthStatus healthStatus = null; + try { + LOGGER.debug(EELFLoggerDelegate.debugLogger, "Performing health check"); + int count = getProfileCount(driver, URL, username, password); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "count:::" + count); + healthStatus = new HealthStatus(200, "health check succeeded"); + } catch (Exception ex) { + + LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to perform health check", ex); + healthStatus = new HealthStatus(500, "health check failed: " + ex.toString()); + } + return healthStatus; + } + + /** + * Obtain the HealthCheck Status from the System.Properties file. + * + * @return ResponseEntity The response entity + * @throws IOException Signals that an I/O exception has occurred. + * Project : + */ + @RequestMapping(value = "rest/healthCheck/{User-Agent}/{X-ECOMP-RequestID}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public HealthStatus getHealthCheck( + @PathVariable("User-Agent") String UserAgent, + @PathVariable("X-ECOMP-RequestID") String ECOMPRequestID) { + + String driver = SystemProperties.getProperty("db.driver"); + String URL = SystemProperties.getProperty("db.connectionURL"); + String username = SystemProperties.getProperty("db.userName"); + String password = SystemProperties.getProperty("db.password"); + + LOGGER.debug(EELFLoggerDelegate.debugLogger, "driver ::" + driver); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "URL::" + URL); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "username::" + username); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "password::" + password); + + + HealthStatus healthStatus = null; + try { + LOGGER.debug(EELFLoggerDelegate.debugLogger, "Performing health check"); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "User-Agent" + UserAgent); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "X-ECOMP-RequestID" + ECOMPRequestID); + + + int count = getProfileCount(driver, URL, username, password); + + LOGGER.debug(EELFLoggerDelegate.debugLogger, "count:::" + count); + healthStatus = new HealthStatus(200, dateFormat.format(new Date()), "health check succeeded"); + } catch (Exception ex) { + + LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to perform health check", ex); + healthStatus = new HealthStatus(500, dateFormat.format(new Date()), "health check failed: " + ex.toString()); + } + return healthStatus; + } + + @RequestMapping(value = "/version", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public GitRepositoryState getCommitInfo() throws IOException { + Properties properties = new Properties(); + properties.load(getClass().getClassLoader().getResourceAsStream("git.properties")); + return new GitRepositoryState(properties); + } } diff --git a/vid-app-common/src/main/java/org/onap/vid/model/GitRepositoryState.java b/vid-app-common/src/main/java/org/onap/vid/model/GitRepositoryState.java new file mode 100644 index 00000000..dd266d9c --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/model/GitRepositoryState.java @@ -0,0 +1,28 @@ +package org.onap.vid.model; + +import java.util.Properties; + +public class GitRepositoryState { + + private final String commitId; + private final String commitMessageShort; + private final String commitTime; + + public GitRepositoryState(Properties properties) { + this.commitId = String.valueOf(properties.get("git.commit.id")); + this.commitMessageShort = String.valueOf(properties.get("git.commit.message.short")); + this.commitTime = String.valueOf(properties.get("git.commit.time")); + } + + public String getCommitId() { + return commitId; + } + + public String getCommitMessageShort() { + return commitMessageShort; + } + + public String getCommitTime() { + return commitTime; + } +} |