Skip to content
Snippets Groups Projects
Commit e1c1046e authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

Merge branch 'version' into 'main'

Resolves - Add Version Info

Closes #487

See merge request !612
parents e59bf908 05c3f695
No related branches found
No related tags found
2 merge requests!613Production Release | nshmp-haz,!612Resolves - Add Version Info
Pipeline #136905 passed
Showing
with 89 additions and 10 deletions
......@@ -22,6 +22,7 @@ config.properties
libs
.factorypath
.apt_generated*
*version.json
# Node
node_modules
......@@ -166,7 +166,9 @@ CHS Registry:
DOCKER_BUILD_ARGS: |
BUILD_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:11
FROM_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:11
CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH}
CI_JOB_TOKEN=${CI_JOB_TOKEN}
CI_PROJECT_URL=${CI_PROJECT_URL}
UPSTREAM_PATH: ghsc/nshmp/nshmp-haz
Container Registry:
......@@ -190,7 +192,9 @@ Container Registry:
DOCKER_BUILD_ARGS: |
BUILD_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:11
FROM_IMAGE=${DEVOPS_REGISTRY}usgs/amazoncorretto:11
CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH}
CI_JOB_TOKEN=${CI_JOB_TOKEN}
CI_PROJECT_URL=${CI_PROJECT_URL}
UPSTREAM_PATH: ghsc/nshmp/nshmp-haz
Build Project:
......
......@@ -39,6 +39,8 @@ FROM ${BUILD_IMAGE} as builder
# Remove once nshmp-lib is public
ARG GITLAB_TOKEN=null
ARG CI_JOB_TOKEN=null
ARG CI_PROJECT_URL=null
ARG CI_COMMIT_BRANCH=null
WORKDIR /app
......
......@@ -33,6 +33,7 @@ plugins {
id "com.github.johnrengelman.shadow" version "${shadowVersion}"
id "com.github.node-gradle.node" version "${nodePluginVersion}"
id "com.github.spotbugs" version "${spotbugsVersion}"
id "com.palantir.git-version" version "${gitVersionVersion}"
id "com.star-zero.gradle.githook" version "${githooksVersion}"
id "eclipse-wtp"
id "io.micronaut.application" version "${micronautPluginVersion}"
......@@ -40,6 +41,7 @@ plugins {
id "maven-publish"
}
apply from: "${projectDir}/gradle/app-version.gradle"
apply from: "${projectDir}/gradle/dependencies.gradle"
apply from: "${projectDir}/gradle/ext.gradle"
apply from: "${projectDir}/gradle/jar.gradle"
......
......@@ -3,6 +3,7 @@ awsLambdaCoreVersion = 1.1.0
awsLambdaVersion = 1.11.461
awsS3Version = 1.11.579
githooksVersion = 1.2.0
gitVersionVersion = 0.15.0
jacksonVersion = 2.9.0
junitVersion = 5.8.2
micronautVersion = 3.2.3
......@@ -10,9 +11,9 @@ micronautRxVersion = 2.1.1
micronautPluginVersion = 3.1.1
nodePluginVersion = 3.0.1
nodeVersion = 16.3.0
nshmpLibVersion = 1.0.4
nshmpWsUtilsVersion = 0.3.5
nshmpLibVersion = 1.0.6
nshmpWsUtilsVersion = 0.3.7
shadowVersion = 7.1.2
spotbugsVersion = 4.7.0
spotlessVersion = 6.0.4
swaggerVersion = 2.1.7
swaggerVersion = 2.2.0
apply plugin: "com.palantir.git-version"
tasks.withType(JavaCompile) {
doFirst {
def versionFile = new File("${projectDir}/src/main/resources/version/nshmp-haz-version.json")
new File(versionFile.getParent()).mkdirs()
def details = versionDetails()
def ciProjectUrl = System.getenv("CI_PROJECT_URL")
def branch = System.getenv("CI_COMMIT_BRANCH")
def versionInfo = [
branchName: branch ? branch : details.branchName,
commitDistance: details.commitDistance,
gitHash: details.gitHash,
gitHashFull: details.gitHashFull,
isCleanTag: details.isCleanTag,
lastTag: details.lastTag,
projectName: project.name,
url: ciProjectUrl ? ciProjectUrl : 'git config --get remote.origin.url'.execute().text.replace('\n', ''),
version: details.version,
]
def json = groovy.json.JsonOutput.toJson(versionInfo)
versionFile.write(groovy.json.JsonOutput.prettyPrint(json))
}
}
package gov.usgs.earthquake.nshmp.www;
import com.google.common.io.Resources;
import gov.usgs.earthquake.nshmp.internal.AppVersion;
import gov.usgs.earthquake.nshmp.internal.LibVersion;
public class HazVersion implements AppVersion {
public static VersionInfo[] appVersions() {
VersionInfo[] versions = {
new HazVersion().getVersionInfo(),
new LibVersion().getVersionInfo(),
new WsUtilsVersion().getVersionInfo(),
};
return versions;
}
public VersionInfo getVersionInfo() {
var resource = Resources.getResource("version/nshmp-haz-version.json");
return AppVersion.versionInfo(resource);
}
}
......@@ -166,6 +166,7 @@ public class ServletUtil {
var svcResponse = ResponseBody.error()
.name(name)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(msg)
.build();
......@@ -206,8 +207,7 @@ public class ServletUtil {
Server(int threads, Stopwatch timer) {
this.threads = threads;
this.timer = timer.toString();
this.version = "TODO where to get version?";
this.version = new HazVersion().getVersionInfo().version;
}
}
}
......@@ -28,7 +28,9 @@ import gov.usgs.earthquake.nshmp.calc.Site;
import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.hazard.HazardService.Metadata;
import gov.usgs.earthquake.nshmp.www.meta.Parameter;
......@@ -73,6 +75,7 @@ public final class DisaggService {
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(usage)
.build();
......@@ -93,6 +96,7 @@ public final class DisaggService {
var body = ResponseBody.success()
.name(NAME)
.url(request.http.getUri().toString())
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(request)
.response(response)
.build();
......@@ -113,6 +117,7 @@ public final class DisaggService {
var body = ResponseBody.success()
.name(NAME)
.url(request.http.getUri().toString())
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(request)
.response(response)
.build();
......
......@@ -34,7 +34,9 @@ import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.model.SourceType;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.meta.DoubleParameter;
import gov.usgs.earthquake.nshmp.www.meta.Parameter;
......@@ -92,6 +94,7 @@ public final class HazardService {
var body = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(usage)
.build();
......@@ -112,6 +115,7 @@ public final class HazardService {
var body = ResponseBody.success()
.name(NAME)
.url(request.http.getUri().toString())
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(request)
.response(response)
.build();
......
......@@ -18,8 +18,10 @@ import gov.usgs.earthquake.nshmp.calc.EqRate;
import gov.usgs.earthquake.nshmp.calc.Site;
import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.RateController;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServicesUtil.Key;
import gov.usgs.earthquake.nshmp.www.ServicesUtil.ServiceQueryData;
import gov.usgs.earthquake.nshmp.www.ServicesUtil.ServiceRequestData;
......@@ -107,6 +109,7 @@ public final class RateService {
return ResponseBody.<String, Usage> usage()
.name(service.name)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(usage)
.build();
......@@ -118,10 +121,11 @@ public final class RateService {
RequestData data) throws InterruptedException, ExecutionException {
var timer = Stopwatch.createStarted();
var rates = calc(service, data);
var responseData = new ResponseData(new ResponseMetadata(service, data), rates, timer);
var responseData = new ResponseData(new ServiceResponseMetadata(service, data), rates, timer);
return ResponseBody.<RequestData, ResponseData> success()
.name(service.name)
.request(data)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.response(responseData)
.url(request.getUri().getPath())
.build();
......@@ -249,7 +253,7 @@ public final class RateService {
}
}
private static final class ResponseMetadata {
private static final class ServiceResponseMetadata {
final double latitude;
final double longitude;
final double distance;
......@@ -258,7 +262,7 @@ public final class RateService {
final String xlabel = "Magnitude (Mw)";
final String ylabel;
ResponseMetadata(Service service, RequestData request) {
ServiceResponseMetadata(Service service, RequestData request) {
var isProbability = service == Service.PROBABILITY;
this.longitude = request.longitude;
this.latitude = request.latitude;
......@@ -270,10 +274,10 @@ public final class RateService {
private static final class ResponseData {
final Object server;
final ResponseMetadata metadata;
final ServiceResponseMetadata metadata;
final List<Sequence> data;
ResponseData(ResponseMetadata metadata, EqRate rates, Stopwatch timer) {
ResponseData(ServiceResponseMetadata metadata, EqRate rates, Stopwatch timer) {
server = ServletUtil.serverData(ServletUtil.THREAD_COUNT, timer);
this.metadata = metadata;
this.data = buildSequence(rates);
......
......@@ -4,7 +4,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import gov.usgs.earthquake.nshmp.model.Models;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.SourceLogicTreesController;
......@@ -33,6 +35,7 @@ public class SourceLogicTreesService {
var response = ResponseBody.success()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(trees)
.build();
......@@ -52,6 +55,7 @@ public class SourceLogicTreesService {
var response = ResponseBody.success()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(requestData)
.response(tree)
.build();
......
......@@ -17,7 +17,9 @@ import gov.usgs.earthquake.nshmp.gmm.Gmm;
import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.WsUtils;
import gov.usgs.earthquake.nshmp.www.meta.Parameter;
......@@ -59,6 +61,7 @@ public class SourceServices {
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(new ResponseData())
.build();
......
......@@ -27,6 +27,8 @@ ARG builder_workdir
# Remove once nshmp-lib is public
ARG GITLAB_TOKEN=null
ARG CI_JOB_TOKEN=null
ARG CI_PROJECT_URL=null
ARG CI_COMMIT_BRANCH=null
WORKDIR /app
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment