[ML] Delete unused AuditActivity class (elastic/x-pack-elasticsearch#672)
Original commit: elastic/x-pack-elasticsearch@185ceab4b4
This commit is contained in:
parent
094be3c28b
commit
4edfbe664f
|
@ -35,7 +35,6 @@ import org.elasticsearch.xpack.ml.job.process.autodetect.state.ModelState;
|
||||||
import org.elasticsearch.xpack.ml.job.process.autodetect.state.Quantiles;
|
import org.elasticsearch.xpack.ml.job.process.autodetect.state.Quantiles;
|
||||||
import org.elasticsearch.xpack.ml.job.results.CategoryDefinition;
|
import org.elasticsearch.xpack.ml.job.results.CategoryDefinition;
|
||||||
import org.elasticsearch.xpack.ml.job.results.Result;
|
import org.elasticsearch.xpack.ml.job.results.Result;
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditActivity;
|
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
||||||
import org.elasticsearch.xpack.ml.notifications.Auditor;
|
import org.elasticsearch.xpack.ml.notifications.Auditor;
|
||||||
|
|
||||||
|
@ -222,7 +221,6 @@ public class MachineLearningTemplateRegistry extends AbstractComponent implemen
|
||||||
templateRequest.patterns(Collections.singletonList(Auditor.NOTIFICATIONS_INDEX));
|
templateRequest.patterns(Collections.singletonList(Auditor.NOTIFICATIONS_INDEX));
|
||||||
templateRequest.settings(mlNotificationIndexSettings());
|
templateRequest.settings(mlNotificationIndexSettings());
|
||||||
templateRequest.mapping(AuditMessage.TYPE.getPreferredName(), ElasticsearchMappings.auditMessageMapping());
|
templateRequest.mapping(AuditMessage.TYPE.getPreferredName(), ElasticsearchMappings.auditMessageMapping());
|
||||||
templateRequest.mapping(AuditActivity.TYPE.getPreferredName(), ElasticsearchMappings.auditActivityMapping());
|
|
||||||
templateRequest.version(Version.CURRENT.id);
|
templateRequest.version(Version.CURRENT.id);
|
||||||
client.admin().indices().putTemplate(templateRequest,
|
client.admin().indices().putTemplate(templateRequest,
|
||||||
ActionListener.wrap(r -> listener.accept(true, null), e -> listener.accept(false, e)));
|
ActionListener.wrap(r -> listener.accept(true, null), e -> listener.accept(false, e)));
|
||||||
|
|
|
@ -24,7 +24,6 @@ import org.elasticsearch.xpack.ml.job.results.ModelDebugOutput;
|
||||||
import org.elasticsearch.xpack.ml.job.results.PerPartitionMaxProbabilities;
|
import org.elasticsearch.xpack.ml.job.results.PerPartitionMaxProbabilities;
|
||||||
import org.elasticsearch.xpack.ml.job.results.ReservedFieldNames;
|
import org.elasticsearch.xpack.ml.job.results.ReservedFieldNames;
|
||||||
import org.elasticsearch.xpack.ml.job.results.Result;
|
import org.elasticsearch.xpack.ml.job.results.Result;
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditActivity;
|
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -668,17 +667,4 @@ public class ElasticsearchMappings {
|
||||||
.endObject()
|
.endObject()
|
||||||
.endObject();
|
.endObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static XContentBuilder auditActivityMapping() throws IOException {
|
|
||||||
return jsonBuilder()
|
|
||||||
.startObject()
|
|
||||||
.startObject(AuditActivity.TYPE.getPreferredName())
|
|
||||||
.startObject(PROPERTIES)
|
|
||||||
.startObject(AuditActivity.TIMESTAMP.getPreferredName())
|
|
||||||
.field(TYPE, DATE)
|
|
||||||
.endObject()
|
|
||||||
.endObject()
|
|
||||||
.endObject()
|
|
||||||
.endObject();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,168 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
||||||
* or more contributor license agreements. Licensed under the Elastic License;
|
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
|
||||||
*/
|
|
||||||
package org.elasticsearch.xpack.ml.notifications;
|
|
||||||
|
|
||||||
import org.elasticsearch.action.support.ToXContentToBytes;
|
|
||||||
import org.elasticsearch.common.ParseField;
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
||||||
import org.elasticsearch.common.io.stream.Writeable;
|
|
||||||
import org.elasticsearch.common.xcontent.ObjectParser;
|
|
||||||
import org.elasticsearch.common.xcontent.ObjectParser.ValueType;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentParser.Token;
|
|
||||||
import org.elasticsearch.xpack.ml.utils.time.TimeUtils;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class AuditActivity extends ToXContentToBytes implements Writeable {
|
|
||||||
public static final ParseField TYPE = new ParseField("audit_activity");
|
|
||||||
|
|
||||||
public static final ParseField TOTAL_JOBS = new ParseField("total_jobs");
|
|
||||||
public static final ParseField TOTAL_DETECTORS = new ParseField("total_detectors");
|
|
||||||
public static final ParseField RUNNING_JOBS = new ParseField("running_jobs");
|
|
||||||
public static final ParseField RUNNING_DETECTORS = new ParseField("running_detectors");
|
|
||||||
public static final ParseField TIMESTAMP = new ParseField("timestamp");
|
|
||||||
|
|
||||||
public static final ObjectParser<AuditActivity, Void> PARSER = new ObjectParser<>(TYPE.getPreferredName(),
|
|
||||||
AuditActivity::new);
|
|
||||||
|
|
||||||
static {
|
|
||||||
PARSER.declareInt(AuditActivity::setTotalJobs, TOTAL_JOBS);
|
|
||||||
PARSER.declareInt(AuditActivity::setTotalDetectors, TOTAL_DETECTORS);
|
|
||||||
PARSER.declareInt(AuditActivity::setRunningJobs, RUNNING_JOBS);
|
|
||||||
PARSER.declareInt(AuditActivity::setRunningDetectors, RUNNING_DETECTORS);
|
|
||||||
PARSER.declareField(AuditActivity::setTimestamp, p -> {
|
|
||||||
if (p.currentToken() == Token.VALUE_NUMBER) {
|
|
||||||
return new Date(p.longValue());
|
|
||||||
} else if (p.currentToken() == Token.VALUE_STRING) {
|
|
||||||
return new Date(TimeUtils.dateStringToEpoch(p.text()));
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("unexpected token [" + p.currentToken() + "] for [" + TIMESTAMP.getPreferredName() + "]");
|
|
||||||
}, TIMESTAMP, ValueType.VALUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private int totalJobs;
|
|
||||||
private int totalDetectors;
|
|
||||||
private int runningJobs;
|
|
||||||
private int runningDetectors;
|
|
||||||
private Date timestamp;
|
|
||||||
|
|
||||||
public AuditActivity() {
|
|
||||||
}
|
|
||||||
|
|
||||||
private AuditActivity(int totalJobs, int totalDetectors, int runningJobs, int runningDetectors) {
|
|
||||||
this.totalJobs = totalJobs;
|
|
||||||
this.totalDetectors = totalDetectors;
|
|
||||||
this.runningJobs = runningJobs;
|
|
||||||
this.runningDetectors = runningDetectors;
|
|
||||||
timestamp = new Date();
|
|
||||||
}
|
|
||||||
|
|
||||||
public AuditActivity(StreamInput in) throws IOException {
|
|
||||||
totalJobs = in.readInt();
|
|
||||||
totalDetectors = in.readInt();
|
|
||||||
runningJobs = in.readInt();
|
|
||||||
runningDetectors = in.readInt();
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
timestamp = new Date(in.readLong());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeTo(StreamOutput out) throws IOException {
|
|
||||||
out.writeInt(totalJobs);
|
|
||||||
out.writeInt(totalDetectors);
|
|
||||||
out.writeInt(runningJobs);
|
|
||||||
out.writeInt(runningDetectors);
|
|
||||||
boolean hasTimestamp = timestamp != null;
|
|
||||||
out.writeBoolean(hasTimestamp);
|
|
||||||
if (hasTimestamp) {
|
|
||||||
out.writeLong(timestamp.getTime());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTotalJobs() {
|
|
||||||
return totalJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalJobs(int totalJobs) {
|
|
||||||
this.totalJobs = totalJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTotalDetectors() {
|
|
||||||
return totalDetectors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalDetectors(int totalDetectors) {
|
|
||||||
this.totalDetectors = totalDetectors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRunningJobs() {
|
|
||||||
return runningJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRunningJobs(int runningJobs) {
|
|
||||||
this.runningJobs = runningJobs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRunningDetectors() {
|
|
||||||
return runningDetectors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRunningDetectors(int runningDetectors) {
|
|
||||||
this.runningDetectors = runningDetectors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getTimestamp() {
|
|
||||||
return timestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTimestamp(Date timestamp) {
|
|
||||||
this.timestamp = timestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AuditActivity newActivity(int totalJobs, int totalDetectors, int runningJobs, int runningDetectors) {
|
|
||||||
return new AuditActivity(totalJobs, totalDetectors, runningJobs, runningDetectors);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
|
||||||
builder.startObject();
|
|
||||||
builder.field(TOTAL_JOBS.getPreferredName(), totalJobs);
|
|
||||||
builder.field(TOTAL_DETECTORS.getPreferredName(), totalDetectors);
|
|
||||||
builder.field(RUNNING_JOBS.getPreferredName(), runningJobs);
|
|
||||||
builder.field(RUNNING_DETECTORS.getPreferredName(), runningDetectors);
|
|
||||||
if (timestamp != null) {
|
|
||||||
builder.field(TIMESTAMP.getPreferredName(), timestamp.getTime());
|
|
||||||
}
|
|
||||||
builder.endObject();
|
|
||||||
return builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(totalDetectors, totalJobs, runningDetectors, runningJobs, timestamp);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (obj == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (getClass() != obj.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
AuditActivity other = (AuditActivity) obj;
|
|
||||||
return Objects.equals(totalDetectors, other.totalDetectors) &&
|
|
||||||
Objects.equals(totalJobs, other.totalJobs) &&
|
|
||||||
Objects.equals(runningDetectors, other.runningDetectors) &&
|
|
||||||
Objects.equals(runningJobs, other.runningJobs) &&
|
|
||||||
Objects.equals(timestamp, other.timestamp);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -33,7 +33,6 @@ import org.elasticsearch.xpack.ml.job.process.autodetect.state.ModelState;
|
||||||
import org.elasticsearch.xpack.ml.job.process.autodetect.state.Quantiles;
|
import org.elasticsearch.xpack.ml.job.process.autodetect.state.Quantiles;
|
||||||
import org.elasticsearch.xpack.ml.job.results.CategoryDefinition;
|
import org.elasticsearch.xpack.ml.job.results.CategoryDefinition;
|
||||||
import org.elasticsearch.xpack.ml.job.results.Result;
|
import org.elasticsearch.xpack.ml.job.results.Result;
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditActivity;
|
|
||||||
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
import org.elasticsearch.xpack.ml.notifications.AuditMessage;
|
||||||
import org.elasticsearch.xpack.ml.notifications.Auditor;
|
import org.elasticsearch.xpack.ml.notifications.Auditor;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
@ -201,8 +200,7 @@ public class MachineLearningTemplateRegistryTests extends ESTestCase {
|
||||||
assertNotNull(request);
|
assertNotNull(request);
|
||||||
assertEquals(templateRegistry.mlNotificationIndexSettings().build(), request.settings());
|
assertEquals(templateRegistry.mlNotificationIndexSettings().build(), request.settings());
|
||||||
assertTrue(request.mappings().containsKey(AuditMessage.TYPE.getPreferredName()));
|
assertTrue(request.mappings().containsKey(AuditMessage.TYPE.getPreferredName()));
|
||||||
assertTrue(request.mappings().containsKey(AuditActivity.TYPE.getPreferredName()));
|
assertEquals(1, request.mappings().size());
|
||||||
assertEquals(2, request.mappings().size());
|
|
||||||
assertEquals(Collections.singletonList(Auditor.NOTIFICATIONS_INDEX), request.patterns());
|
assertEquals(Collections.singletonList(Auditor.NOTIFICATIONS_INDEX), request.patterns());
|
||||||
assertEquals(new Integer(Version.CURRENT.id), request.version());
|
assertEquals(new Integer(Version.CURRENT.id), request.version());
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
||||||
* or more contributor license agreements. Licensed under the Elastic License;
|
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
|
||||||
*/
|
|
||||||
package org.elasticsearch.xpack.ml.notifications;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.io.stream.Writeable.Reader;
|
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
|
||||||
import org.elasticsearch.xpack.ml.support.AbstractSerializingTestCase;
|
|
||||||
import org.elasticsearch.xpack.ml.utils.time.TimeUtils;
|
|
||||||
import org.junit.Before;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
public class AuditActivityTests extends AbstractSerializingTestCase<AuditActivity> {
|
|
||||||
private long startMillis;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setStartTime() {
|
|
||||||
startMillis = System.currentTimeMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testDefaultConstructor() {
|
|
||||||
AuditActivity activity = new AuditActivity();
|
|
||||||
assertEquals(0, activity.getTotalJobs());
|
|
||||||
assertEquals(0, activity.getTotalDetectors());
|
|
||||||
assertEquals(0, activity.getRunningJobs());
|
|
||||||
assertEquals(0, activity.getRunningDetectors());
|
|
||||||
assertNull(activity.getTimestamp());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testNewActivity() {
|
|
||||||
AuditActivity activity = AuditActivity.newActivity(10, 100, 5, 50);
|
|
||||||
assertEquals(10, activity.getTotalJobs());
|
|
||||||
assertEquals(100, activity.getTotalDetectors());
|
|
||||||
assertEquals(5, activity.getRunningJobs());
|
|
||||||
assertEquals(50, activity.getRunningDetectors());
|
|
||||||
assertDateBetweenStartAndNow(activity.getTimestamp());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assertDateBetweenStartAndNow(Date timestamp) {
|
|
||||||
long timestampMillis = timestamp.getTime();
|
|
||||||
assertTrue(timestampMillis >= startMillis);
|
|
||||||
assertTrue(timestampMillis <= System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected AuditActivity parseInstance(XContentParser parser) {
|
|
||||||
return AuditActivity.PARSER.apply(parser, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected AuditActivity createTestInstance() {
|
|
||||||
AuditActivity message = new AuditActivity();
|
|
||||||
if (randomBoolean()) {
|
|
||||||
message.setRunningJobs(randomInt());
|
|
||||||
}
|
|
||||||
if (randomBoolean()) {
|
|
||||||
message.setRunningDetectors(randomInt());
|
|
||||||
}
|
|
||||||
if (randomBoolean()) {
|
|
||||||
message.setTotalJobs(randomInt());
|
|
||||||
}
|
|
||||||
if (randomBoolean()) {
|
|
||||||
message.setTotalDetectors(randomInt());
|
|
||||||
}
|
|
||||||
if (randomBoolean()) {
|
|
||||||
message.setTimestamp(new Date(TimeUtils.dateStringToEpoch(randomTimeValue())));
|
|
||||||
}
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Reader<AuditActivity> instanceReader() {
|
|
||||||
return AuditActivity::new;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue