summaryrefslogtreecommitdiffstats
path: root/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java')
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java
new file mode 100644
index 00000000000..c9c2857bbea
--- /dev/null
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/yamasreport/YamasSpecReport.java
@@ -0,0 +1,77 @@
+package com.yahoo.vespa.hosted.node.verification.spec.yamasreport;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by olaa on 12/07/2017.
+ */
+public class YamasSpecReport {
+
+ @JsonProperty
+ private long timeStamp;
+ @JsonProperty
+ private SpecReportDimensions dimensions;
+ @JsonProperty
+ private SpecReportMetrics metrics;
+ @JsonProperty
+ private JsonObjectWrapper routing;
+
+ public YamasSpecReport() {
+ this.timeStamp = System.currentTimeMillis() / 1000L;
+ setRouting();
+ }
+
+ public void setDimensions(SpecReportDimensions dimensions) {
+ this.dimensions = dimensions;
+ }
+
+ public SpecReportDimensions getDimensions() {
+ return this.dimensions;
+ }
+
+ public void setMetrics(SpecReportMetrics metrics) {
+ this.metrics = metrics;
+ }
+
+ public void setFaultyIpAddresses(String[] faultyIpAddresses) {
+ this.metrics.setFaultyIpAddresses(faultyIpAddresses);
+ }
+
+ public SpecReportMetrics getMetrics() {
+ return this.metrics;
+ }
+
+ public long getTimeStamp() {
+ return this.timeStamp;
+ }
+
+ private void setRouting() {
+ JsonObjectWrapper wrap = new JsonObjectWrapper("namespace", new String[]{"Vespa"});
+ routing = new JsonObjectWrapper("yamas", wrap);
+ }
+
+ class JsonObjectWrapper<T> {
+
+ private Map<String, T> wrappedObjects = new HashMap<String, T>();
+
+ public JsonObjectWrapper(String name, T wrappedObject) {
+ this.wrappedObjects.put(name, wrappedObject);
+ }
+
+ @JsonAnyGetter
+ public Map<String, T> any() {
+ return wrappedObjects;
+ }
+
+ @JsonAnySetter
+ public void set(String name, T value) {
+ wrappedObjects.put(name, value);
+ }
+ }
+
+}