aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-13 16:21:45 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-13 16:42:30 +0200
commit22b02294155b87e79501a56c44cc679d1c7c5a2c (patch)
treed9f14af9b8e02ff4bedcdb704feef2f59d132d81 /node-admin
parentd706f11a6565042f647c9810cda9dfa8516bd798 (diff)
Create factory methods for ServiceDumpReport
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/ServiceDumpReport.java30
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImpl.java28
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImplTest.java4
3 files changed, 36 insertions, 26 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/ServiceDumpReport.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/ServiceDumpReport.java
index 2d7d21e61e4..3d74d897a87 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/ServiceDumpReport.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/ServiceDumpReport.java
@@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.reports.BaseReport;
+import java.net.URI;
+import java.time.Instant;
import java.util.List;
/**
@@ -65,6 +67,34 @@ class ServiceDumpReport extends BaseReport {
this.dumpOptions = dumpOptions;
}
+ public static ServiceDumpReport createRequestReport(Instant createdAt, Instant expireAt, String configId,
+ List<String> artifacts, DumpOptions options) {
+ return new ServiceDumpReport(
+ createdAt.toEpochMilli(), null, null, null, null, configId,
+ expireAt != null ? expireAt.toEpochMilli() : null, null, artifacts, options);
+ }
+
+ public static ServiceDumpReport createStartedReport(ServiceDumpReport request, Instant startedAt) {
+ return new ServiceDumpReport(
+ request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), null, null, null, request.configId(),
+ request.expireAt(), null, request.artifacts(), request.dumpOptions());
+ }
+
+ public static ServiceDumpReport createSuccessReport(
+ ServiceDumpReport request, Instant startedAt, Instant completedAt, URI location) {
+ return new ServiceDumpReport(
+ request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), completedAt.toEpochMilli(), null,
+ location.toString(), request.configId(), request.expireAt(), null, request.artifacts(),
+ request.dumpOptions());
+ }
+
+ public static ServiceDumpReport createErrorReport(
+ ServiceDumpReport request, Instant startedAt, Instant failedAt, String message) {
+ return new ServiceDumpReport(
+ request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), null, failedAt.toEpochMilli(), null,
+ request.configId(), request.expireAt(), message, request.artifacts(), request.dumpOptions());
+ }
+
@JsonGetter(STARTED_AT_FIELD) public Long startedAt() { return startedAt; }
@JsonGetter(COMPLETED_AT_FIELD) public Long completedAt() { return completedAt; }
@JsonGetter(FAILED_AT_FIELD) public Long failedAt() { return failedAt; }
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImpl.java
index a5b45a46b65..83e661ec0fd 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImpl.java
@@ -94,7 +94,7 @@ public class VespaServiceDumperImpl implements VespaServiceDumper {
context.log(log, Level.INFO,
"Creating service dump for " + configId + " requested at "
+ Instant.ofEpochMilli(request.getCreatedMillisOrNull()));
- storeReport(context, createStartedReport(request, startedAt));
+ storeReport(context, ServiceDumpReport.createStartedReport(request, startedAt));
if (directoryOnHost.exists()) {
context.log(log, Level.INFO, "Removing existing directory '" + directoryOnHost +"'.");
directoryOnHost.deleteRecursively();
@@ -124,7 +124,7 @@ public class VespaServiceDumperImpl implements VespaServiceDumper {
return;
}
context.log(log, Level.INFO, "Upload complete");
- storeReport(context, createSuccessReport(clock, request, startedAt, destination));
+ storeReport(context, ServiceDumpReport.createSuccessReport(request, startedAt, clock.instant(), destination));
} catch (Exception e) {
handleFailure(context, request, startedAt, e);
} finally {
@@ -149,13 +149,13 @@ public class VespaServiceDumperImpl implements VespaServiceDumper {
private void handleFailure(NodeAgentContext context, ServiceDumpReport request, Instant startedAt, Exception failure) {
context.log(log, Level.WARNING, failure.toString(), failure);
- ServiceDumpReport report = createErrorReport(clock, request, startedAt, failure.toString());
+ ServiceDumpReport report = ServiceDumpReport.createErrorReport(request, startedAt, clock.instant(), failure.toString());
storeReport(context, report);
}
private void handleFailure(NodeAgentContext context, ServiceDumpReport request, Instant startedAt, String message) {
context.log(log, Level.WARNING, message);
- ServiceDumpReport report = createErrorReport(clock, request, startedAt, message);
+ ServiceDumpReport report = ServiceDumpReport.createErrorReport(request, startedAt, clock.instant(), message);
storeReport(context, report);
}
@@ -165,26 +165,6 @@ public class VespaServiceDumperImpl implements VespaServiceDumper {
nodeRepository.updateNodeAttributes(context.hostname().value(), nodeAttributes);
}
- private static ServiceDumpReport createStartedReport(ServiceDumpReport request, Instant startedAt) {
- return new ServiceDumpReport(
- request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), null, null, null, request.configId(),
- request.expireAt(), null, request.artifacts(), request.dumpOptions());
- }
-
- private static ServiceDumpReport createSuccessReport(
- Clock clock, ServiceDumpReport request, Instant startedAt, URI location) {
- return new ServiceDumpReport(
- request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), clock.instant().toEpochMilli(), null,
- location.toString(), request.configId(), request.expireAt(), null, request.artifacts(), request.dumpOptions());
- }
-
- private static ServiceDumpReport createErrorReport(
- Clock clock, ServiceDumpReport request, Instant startedAt, String message) {
- return new ServiceDumpReport(
- request.getCreatedMillisOrNull(), startedAt.toEpochMilli(), null, clock.instant().toEpochMilli(), null,
- request.configId(), request.expireAt(), message, request.artifacts(), request.dumpOptions());
- }
-
static String createDumpId(ServiceDumpReport request) {
String sanitizedConfigId = Lowercase.toLowerCase(request.configId()).replaceAll("[^a-z_0-9]", "-");
return sanitizedConfigId + "-" + request.getCreatedMillisOrNull().toString();
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImplTest.java
index 3489c08e346..47528a56048 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/VespaServiceDumperImplTest.java
@@ -125,8 +125,8 @@ class VespaServiceDumperImplTest {
}
private static NodeSpec createNodeSpecWithDumpRequest(NodeRepoMock repository, String artifactName, ServiceDumpReport.DumpOptions options) {
- ServiceDumpReport request = new ServiceDumpReport(
- 1600000000000L, null, null, null, null, "default/container.1", null, null, List.of(artifactName), options);
+ ServiceDumpReport request = ServiceDumpReport.createRequestReport(
+ Instant.ofEpochMilli(1600000000000L), null, "default/container.1", List.of(artifactName), options);
NodeSpec spec = NodeSpec.Builder
.testSpec(HOSTNAME, NodeState.active)
.report(ServiceDumpReport.REPORT_ID, request.toJsonNode())