Remove custom PeriodType for watcher PeriodThrottler (elastic/x-pack-elasticsearch#4327)
This constructor was actually never used, other than in tests, and even then, there is no need for a custom period type as the human-readable toString value will suffice. Original commit: elastic/x-pack-elasticsearch@fc666a04b9
This commit is contained in:
parent
4c7bd71bdf
commit
9e3b03531c
|
@ -9,7 +9,6 @@ import org.elasticsearch.common.Nullable;
|
|||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.xpack.core.watcher.actions.ActionStatus;
|
||||
import org.elasticsearch.xpack.core.watcher.execution.WatchExecutionContext;
|
||||
import org.joda.time.PeriodType;
|
||||
|
||||
import java.time.Clock;
|
||||
|
||||
|
@ -22,16 +21,10 @@ import static org.elasticsearch.xpack.core.watcher.actions.throttler.Throttler.T
|
|||
public class PeriodThrottler implements Throttler {
|
||||
|
||||
@Nullable private final TimeValue period;
|
||||
private final PeriodType periodType;
|
||||
private final Clock clock;
|
||||
|
||||
public PeriodThrottler(Clock clock, TimeValue period) {
|
||||
this(clock, period, PeriodType.minutes());
|
||||
}
|
||||
|
||||
public PeriodThrottler(Clock clock, TimeValue period, PeriodType periodType) {
|
||||
this.period = period;
|
||||
this.periodType = periodType;
|
||||
this.clock = clock;
|
||||
}
|
||||
|
||||
|
@ -57,7 +50,7 @@ public class PeriodThrottler implements Throttler {
|
|||
TimeValue timeElapsed = TimeValue.timeValueMillis(clock.millis() - status.lastSuccessfulExecution().timestamp().getMillis());
|
||||
if (timeElapsed.getMillis() <= period.getMillis()) {
|
||||
return Result.throttle(PERIOD, "throttling interval is set to [{}] but time elapsed since last execution is [{}]",
|
||||
period.format(periodType), timeElapsed.format(periodType));
|
||||
period, timeElapsed);
|
||||
}
|
||||
return Result.NO;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ import org.elasticsearch.xpack.core.watcher.execution.WatchExecutionContext;
|
|||
import org.elasticsearch.xpack.core.watcher.watch.Payload;
|
||||
import org.elasticsearch.xpack.core.watcher.watch.WatchStatus;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.PeriodType;
|
||||
|
||||
import java.time.Clock;
|
||||
|
||||
|
@ -28,9 +27,8 @@ import static org.mockito.Mockito.when;
|
|||
|
||||
public class PeriodThrottlerTests extends ESTestCase {
|
||||
public void testBelowPeriodSuccessful() throws Exception {
|
||||
PeriodType periodType = randomFrom(PeriodType.millis(), PeriodType.seconds(), PeriodType.minutes());
|
||||
TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5));
|
||||
PeriodThrottler throttler = new PeriodThrottler(Clock.systemUTC(), period, periodType);
|
||||
PeriodThrottler throttler = new PeriodThrottler(Clock.systemUTC(), period);
|
||||
|
||||
WatchExecutionContext ctx = mockExecutionContext("_name", Payload.EMPTY);
|
||||
ActionStatus actionStatus = mock(ActionStatus.class);
|
||||
|
@ -45,14 +43,13 @@ public class PeriodThrottlerTests extends ESTestCase {
|
|||
assertThat(result, notNullValue());
|
||||
assertThat(result.throttle(), is(true));
|
||||
assertThat(result.reason(), notNullValue());
|
||||
assertThat(result.reason(), startsWith("throttling interval is set to [" + period.format(periodType) + "]"));
|
||||
assertThat(result.reason(), startsWith("throttling interval is set to [" + period + "]"));
|
||||
assertThat(result.type(), is(Throttler.Type.PERIOD));
|
||||
}
|
||||
|
||||
public void testAbovePeriod() throws Exception {
|
||||
PeriodType periodType = randomFrom(PeriodType.millis(), PeriodType.seconds(), PeriodType.minutes());
|
||||
TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5));
|
||||
PeriodThrottler throttler = new PeriodThrottler(Clock.systemUTC(), period, periodType);
|
||||
PeriodThrottler throttler = new PeriodThrottler(Clock.systemUTC(), period);
|
||||
|
||||
WatchExecutionContext ctx = mockExecutionContext("_name", Payload.EMPTY);
|
||||
ActionStatus actionStatus = mock(ActionStatus.class);
|
||||
|
|
|
@ -40,7 +40,7 @@ public class HttpConnectionTimeoutTests extends ESTestCase {
|
|||
fail("expected timeout exception");
|
||||
} catch (ConnectTimeoutException ete) {
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
// it's supposed to be 10, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(8L));
|
||||
assertThat(timeout.seconds(), lessThan(12L));
|
||||
|
@ -66,7 +66,7 @@ public class HttpConnectionTimeoutTests extends ESTestCase {
|
|||
fail("expected timeout exception");
|
||||
} catch (ConnectTimeoutException ete) {
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
// it's supposed to be 7, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(3L));
|
||||
assertThat(timeout.seconds(), lessThan(7L));
|
||||
|
@ -93,7 +93,7 @@ public class HttpConnectionTimeoutTests extends ESTestCase {
|
|||
fail("expected timeout exception");
|
||||
} catch (ConnectTimeoutException ete) {
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
// it's supposed to be 7, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(3L));
|
||||
assertThat(timeout.seconds(), lessThan(7L));
|
||||
|
|
|
@ -51,7 +51,7 @@ public class HttpReadTimeoutTests extends ESTestCase {
|
|||
long start = System.nanoTime();
|
||||
expectThrows(SocketTimeoutException.class, () -> httpClient.execute(request));
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
|
||||
// it's supposed to be 10, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(8L));
|
||||
|
@ -73,7 +73,7 @@ public class HttpReadTimeoutTests extends ESTestCase {
|
|||
long start = System.nanoTime();
|
||||
expectThrows(SocketTimeoutException.class, () -> httpClient.execute(request));
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
|
||||
// it's supposed to be 3, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(1L));
|
||||
|
@ -96,7 +96,7 @@ public class HttpReadTimeoutTests extends ESTestCase {
|
|||
long start = System.nanoTime();
|
||||
expectThrows(SocketTimeoutException.class, () -> httpClient.execute(request));
|
||||
TimeValue timeout = TimeValue.timeValueNanos(System.nanoTime() - start);
|
||||
logger.info("http connection timed out after {}", timeout.format());
|
||||
logger.info("http connection timed out after {}", timeout);
|
||||
|
||||
// it's supposed to be 3, but we'll give it an error margin of 2 seconds
|
||||
assertThat(timeout.seconds(), greaterThan(1L));
|
||||
|
|
Loading…
Reference in New Issue