[Monitoring] Stop providing "hkey" addition to license (elastic/x-pack-elasticsearch#4131)

This stops providing the "hkey" (hash) of the license now that the
Monitoring UI no longer uses it (6.3+).

Original commit: elastic/x-pack-elasticsearch@235402fa92
This commit is contained in:
Chris Earle 2018-03-16 11:41:24 -04:00 committed by GitHub
parent 91401fcb83
commit 485a42dc6a
3 changed files with 1 additions and 52 deletions

View File

@ -12,7 +12,6 @@ import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes; import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.collect.MapBuilder;
import org.elasticsearch.common.hash.MessageDigests;
import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.license.License; import org.elasticsearch.license.License;
@ -21,7 +20,6 @@ import org.elasticsearch.xpack.core.monitoring.MonitoredSystem;
import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringDoc; import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringDoc;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@ -133,7 +131,6 @@ public class ClusterStatsMonitoringDoc extends MonitoringDoc {
.map(); .map();
params = new ToXContent.DelegatingMapParams(extraParams, params); params = new ToXContent.DelegatingMapParams(extraParams, params);
license.toInnerXContent(builder, params); license.toInnerXContent(builder, params);
builder.field("hkey", hash(license, getCluster()));
if (clusterNeedsTLSEnabled) { if (clusterNeedsTLSEnabled) {
builder.field("cluster_needs_tls", true); builder.field("cluster_needs_tls", true);
} }
@ -197,12 +194,4 @@ public class ClusterStatsMonitoringDoc extends MonitoringDoc {
return temp.toString().hashCode(); return temp.toString().hashCode();
} }
public static String hash(License license, String clusterName) {
return hash(license.status().label(), license.uid(), license.type(), String.valueOf(license.expiryDate()), clusterName);
}
public static String hash(String licenseStatus, String licenseUid, String licenseType, String licenseExpiryDate, String clusterUUID) {
String toHash = licenseStatus + licenseUid + licenseType + licenseExpiryDate + clusterUUID;
return MessageDigests.toHexString(MessageDigests.sha256().digest(toHash.getBytes(StandardCharsets.UTF_8)));
}
} }

View File

@ -22,7 +22,6 @@ import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.ShardRouting;
import org.elasticsearch.cluster.routing.UnassignedInfo; import org.elasticsearch.cluster.routing.UnassignedInfo;
import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.hash.MessageDigests;
import org.elasticsearch.common.network.NetworkModule; import org.elasticsearch.common.network.NetworkModule;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.BoundTransportAddress; import org.elasticsearch.common.transport.BoundTransportAddress;
@ -51,7 +50,6 @@ import org.elasticsearch.xpack.monitoring.exporter.BaseMonitoringDocTestCase;
import org.junit.Before; import org.junit.Before;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -188,38 +186,6 @@ public class ClusterStatsMonitoringDocTests extends BaseMonitoringDocTestCase<Cl
assertThat(ClusterStatsMonitoringDoc.nodesHash(nodes), equalTo(ephemeralIds.toString().hashCode())); assertThat(ClusterStatsMonitoringDoc.nodesHash(nodes), equalTo(ephemeralIds.toString().hashCode()));
} }
public void testHash() {
assertEquals("cc6628dbcfd052fba57870dc4eed4bc9f5cd5d43b4df46e97867aeb2dd7bd2e8",
ClusterStatsMonitoringDoc.hash("licenseStatus", "licenseUid", "licenseType", "licenseExpiryDate", "clusterUUID"));
}
public void testHashWithLicense() {
final StringBuilder builder = new StringBuilder();
final License license = mock(License.class);
final License.Status status = randomFrom(License.Status.values());
when(license.status()).thenReturn(status);
builder.append(status.label());
final String uuid = randomAlphaOfLength(10);
when(license.uid()).thenReturn(uuid);
builder.append(uuid);
final String type = randomAlphaOfLength(10);
when(license.type()).thenReturn(type);
builder.append(type);
final long expiryDate = randomNonNegativeLong();
when(license.expiryDate()).thenReturn(expiryDate);
builder.append(String.valueOf(expiryDate));
final String cluster = randomAlphaOfLength(5);
builder.append(cluster);
assertEquals(MessageDigests.toHexString(MessageDigests.sha256().digest(builder.toString().getBytes(StandardCharsets.UTF_8))),
ClusterStatsMonitoringDoc.hash(license, cluster));
}
@Override @Override
public void testToXContent() throws IOException { public void testToXContent() throws IOException {
final ClusterName clusterName = new ClusterName("_cluster_name"); final ClusterName clusterName = new ClusterName("_cluster_name");
@ -380,8 +346,7 @@ public class ClusterStatsMonitoringDocTests extends BaseMonitoringDocTestCase<Cl
+ "\"max_nodes\":2," + "\"max_nodes\":2,"
+ "\"issued_to\":\"customer\"," + "\"issued_to\":\"customer\","
+ "\"issuer\":\"elasticsearch\"," + "\"issuer\":\"elasticsearch\","
+ "\"start_date_in_millis\":-1," + "\"start_date_in_millis\":-1"
+ "\"hkey\":\"e05627254d639cf36346bf99934dc4a4ac9f37bdc9100cee450c10fa6322a6dd\""
+ (needToEnableTLS ? ",\"cluster_needs_tls\":true" : "") + (needToEnableTLS ? ",\"cluster_needs_tls\":true" : "")
+ "}," + "},"
+ "\"cluster_stats\":{" + "\"cluster_stats\":{"

View File

@ -65,7 +65,6 @@ import static org.elasticsearch.common.xcontent.ToXContent.EMPTY_PARAMS;
import static org.elasticsearch.common.xcontent.support.XContentMapValues.extractValue; import static org.elasticsearch.common.xcontent.support.XContentMapValues.extractValue;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
import static org.elasticsearch.threadpool.ThreadPool.Names.BULK; import static org.elasticsearch.threadpool.ThreadPool.Names.BULK;
import static org.elasticsearch.xpack.monitoring.collector.cluster.ClusterStatsMonitoringDoc.hash;
import static org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils.TEMPLATE_VERSION; import static org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils.TEMPLATE_VERSION;
import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
@ -336,10 +335,6 @@ public class MonitoringIT extends ESSingleNodeTestCase {
Boolean clusterNeedsTLS = (Boolean) license.get("cluster_needs_tls"); Boolean clusterNeedsTLS = (Boolean) license.get("cluster_needs_tls");
assertThat(clusterNeedsTLS, isOneOf(true, null)); assertThat(clusterNeedsTLS, isOneOf(true, null));
// We basically recompute the hash here
assertThat("Hash key should be the same",
license.get("hkey"), equalTo(hash(status, uid, type, String.valueOf(expiryDate), (String) source.get("cluster_uuid"))));
final Map<String, Object> clusterStats = (Map<String, Object>) source.get("cluster_stats"); final Map<String, Object> clusterStats = (Map<String, Object>) source.get("cluster_stats");
assertThat(clusterStats, notNullValue()); assertThat(clusterStats, notNullValue());
assertThat(clusterStats.size(), equalTo(4)); assertThat(clusterStats.size(), equalTo(4));