Skip to content

Commit e3932e5

Browse files
committed
Added version 4.0.0 migration and upgrade from 3.x migrations
1 parent 1f30bc2 commit e3932e5

File tree

2 files changed

+124
-11
lines changed

2 files changed

+124
-11
lines changed

src/main/java/org/graylog/plugins/quickvaluesplus/QuickValuesPlusDefaultValuesMigration.java

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.graylog.plugins.quickvaluesplus;
22

3+
import com.sun.org.apache.xpath.internal.operations.Bool;
34
import org.graylog2.migrations.Migration;
45
import org.graylog2.cluster.ClusterConfigServiceImpl;
56
import org.slf4j.Logger;
@@ -24,7 +25,7 @@ public QuickValuesPlusDefaultValuesMigration(final ClusterConfigServiceImpl clus
2425

2526
@Override
2627
public ZonedDateTime createdAt() {
27-
return ZonedDateTime.parse("2017-09-03T01:57:00Z");
28+
return ZonedDateTime.parse("2018-05-06T07:45:00Z");
2829
}
2930

3031
@Override
@@ -33,21 +34,35 @@ public void upgrade() {
3334

3435
final QuickValuesPlusPluginConfiguration quickValuesPlusPluginConfiguration = clusterConfigService.get(QuickValuesPlusPluginConfiguration.class);
3536
final QuickValuesPlusPluginConfiguration3_1 quickValuesPlusPluginConfiguration3_1 = clusterConfigService.get(QuickValuesPlusPluginConfiguration3_1.class);
37+
final QuickValuesPlusPluginConfiguration4_0 quickValuesPlusPluginConfiguration4_0 = clusterConfigService.get(QuickValuesPlusPluginConfiguration4_0.class);
38+
Boolean migrated = false;
3639

37-
if (quickValuesPlusPluginConfiguration3_1 == null) {
38-
if (quickValuesPlusPluginConfiguration == null) {
39-
LOG.info("No Migration Found. Writing values for Quick Values Plugin Configuration");
40-
clusterConfigService.write(QuickValuesPlusPluginConfiguration3_1.create(25, 5, "descending", true, true,true,true, true, true,"3.1.0"));
41-
} else {
42-
LOG.info("3.0 Migration Found. Updating to 3.1");
43-
clusterConfigService.write(QuickValuesPlusPluginConfiguration3_1.create(quickValuesPlusPluginConfiguration.tableSize(), quickValuesPlusPluginConfiguration.topValues(), quickValuesPlusPluginConfiguration.sortOrder(), true, true, true, true, true,true, "3.1.0"));
44-
LOG.info("Removing 3.0 migration information");
40+
if (quickValuesPlusPluginConfiguration4_0 == null) {
41+
42+
if (quickValuesPlusPluginConfiguration != null) {
43+
migrated = true;
44+
LOG.info("Removing QVP 3.0 migration information");
4545
clusterConfigService.remove(QuickValuesPlusPluginConfiguration.class);
46+
LOG.info("Migrating values for existing QVP Configuration");
47+
clusterConfigService.write(QuickValuesPlusPluginConfiguration4_0.create(quickValuesPlusPluginConfiguration.tableSize(), quickValuesPlusPluginConfiguration.topValues(), quickValuesPlusPluginConfiguration.sortOrder(), true, true, true, true, true,true, "4.0.0"));
48+
}
49+
50+
if (quickValuesPlusPluginConfiguration3_1 != null) {
51+
migrated = true;
52+
LOG.info("Removing QVP 3.1 migration information");
53+
clusterConfigService.remove(QuickValuesPlusPluginConfiguration3_1.class);
54+
LOG.info("Migrating values for existing QVP Configuration");
55+
clusterConfigService.write(QuickValuesPlusPluginConfiguration4_0.create(quickValuesPlusPluginConfiguration3_1.tableSize(), quickValuesPlusPluginConfiguration3_1.topValues(), quickValuesPlusPluginConfiguration3_1.sortOrder(), quickValuesPlusPluginConfiguration3_1.showPieChart(), quickValuesPlusPluginConfiguration3_1.addToSearch(), quickValuesPlusPluginConfiguration3_1.removeFromSearch(), quickValuesPlusPluginConfiguration3_1.termHyperlinks(), quickValuesPlusPluginConfiguration3_1.excludeQuery(),quickValuesPlusPluginConfiguration3_1.termNewWindow(), "4.0.0"));
4656
}
57+
58+
if (!migrated) {
59+
LOG.info("No prior migration exists. Writing default values for QVP Configuration");
60+
clusterConfigService.write(QuickValuesPlusPluginConfiguration4_0.create(25, 5, "descending", true, true, true, true, true, true, "4.0.0"));
61+
}
62+
4763
} else {
48-
LOG.info("Migration has already completed. Exiting.");
64+
LOG.info("QVP 4.0 migration has already completed. Exiting.");
4965
return;
50-
5166
}
5267
}
5368

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package org.graylog.plugins.quickvaluesplus;
2+
3+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
4+
import com.fasterxml.jackson.annotation.JsonCreator;
5+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
6+
import com.fasterxml.jackson.annotation.JsonProperty;
7+
import com.google.auto.value.AutoValue;
8+
9+
@JsonAutoDetect
10+
@JsonIgnoreProperties(ignoreUnknown = true)
11+
@AutoValue
12+
public abstract class QuickValuesPlusPluginConfiguration4_0 {
13+
14+
@JsonProperty("table_size")
15+
public abstract Number tableSize();
16+
17+
@JsonProperty("top_values")
18+
public abstract Number topValues();
19+
20+
@JsonProperty("sort_order")
21+
public abstract String sortOrder();
22+
23+
@JsonProperty("show_pie_chart")
24+
public abstract Boolean showPieChart();
25+
26+
@JsonProperty("display_add_to_search_button")
27+
public abstract Boolean addToSearch();
28+
29+
@JsonProperty("display_remove_from_search_button")
30+
public abstract Boolean removeFromSearch();
31+
32+
@JsonProperty("display_term_hyperlinks")
33+
public abstract Boolean termHyperlinks();
34+
35+
@JsonProperty("display_exclude_from_query_button")
36+
public abstract Boolean excludeQuery();
37+
38+
@JsonProperty("display_get_term_reply_in_new_window_button")
39+
public abstract Boolean termNewWindow();
40+
41+
@JsonProperty("version")
42+
public abstract String version();
43+
44+
@JsonCreator
45+
public static QuickValuesPlusPluginConfiguration4_0 create(@JsonProperty("table_size") Number tableSize,
46+
@JsonProperty("top_values") Number topValues,
47+
@JsonProperty("sort_order") String sortOrder,
48+
@JsonProperty("show_pie_chart") Boolean showPieChart,
49+
@JsonProperty("display_add_to_search_button") Boolean addToSearch,
50+
@JsonProperty("display_remove_from_search_button") Boolean removeFromSearch,
51+
@JsonProperty("display_term_hyperlinks") Boolean termHyperlinks,
52+
@JsonProperty("display_exclude_from_query_button") Boolean excludeQuery,
53+
@JsonProperty("display_get_term_reply_in_new_window_button") Boolean termNewWindow,
54+
@JsonProperty("version") String version) {
55+
return builder()
56+
.tableSize(tableSize)
57+
.topValues(topValues)
58+
.sortOrder(sortOrder)
59+
.showPieChart(showPieChart)
60+
.addToSearch(addToSearch)
61+
.removeFromSearch(removeFromSearch)
62+
.termHyperlinks(termHyperlinks)
63+
.excludeQuery(excludeQuery)
64+
.termNewWindow(termNewWindow)
65+
.version(version)
66+
.build();
67+
}
68+
69+
public static Builder builder() {
70+
return new AutoValue_QuickValuesPlusPluginConfiguration4_0.Builder();
71+
}
72+
73+
@AutoValue.Builder
74+
public static abstract class Builder {
75+
public abstract Builder tableSize(Number tableSize);
76+
77+
public abstract Builder topValues(Number topValues);
78+
79+
public abstract Builder sortOrder(String sortOrder);
80+
81+
public abstract Builder showPieChart(Boolean showPieChart);
82+
83+
public abstract Builder addToSearch(Boolean addToSearch);
84+
85+
public abstract Builder removeFromSearch(Boolean removeFromSearch);
86+
87+
public abstract Builder termHyperlinks(Boolean termHyperlinks);
88+
89+
public abstract Builder excludeQuery(Boolean excludeQuery);
90+
91+
public abstract Builder termNewWindow(Boolean termNewWindow);
92+
93+
public abstract Builder version(String version);
94+
95+
public abstract QuickValuesPlusPluginConfiguration4_0 build();
96+
}
97+
98+
}

0 commit comments

Comments
 (0)