From 7fcf05dcb1d5432c544770e1c583cb8caac7dc62 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 22 Jul 2016 11:30:56 -0700 Subject: [PATCH] Internal: Removed LicenseState enum The LicenseState class exists to distinguish when a license is enabled, vs being inside its grace period. However, the consumers of this state do not care whether the license is in the grace period, they view that and an active license as the same thing. The only part that cares about the grace period is in the license service which logs a warning when a license begins its grace period. This change removes the LicenseState enum in favor of a simple boolean indicating whether the license is active. Original commit: elastic/x-pack-elasticsearch@5a90a0e3d464d4a6240806f2a9531317a364413f --- .../xpack/graph/GraphLicensee.java | 3 +- .../license/plugin/core/LicenseSchedule.java | 43 ------------ .../license/plugin/core/LicenseService.java | 59 ++++++++++++---- .../license/plugin/core/LicenseState.java | 68 ------------------- .../license/plugin/core/Licensee.java | 47 ++++++------- .../plugin/LicensesServiceClusterTests.java | 27 ++++---- .../plugin/core/AbstractLicenseeTestCase.java | 13 +--- .../core/LicenseClusterChangeTests.java | 2 +- .../plugin/core/LicenseRegistrationTests.java | 3 +- .../plugin/core/LicenseScheduleTests.java | 11 +-- .../core/LicensesNotificationTests.java | 23 +++---- .../xpack/monitoring/MonitoringLicensee.java | 7 +- .../collector/AbstractCollectorTestCase.java | 15 ++-- .../license/LicenseIntegrationTests.java | 15 ++-- .../license/MonitoringLicenseeTests.java | 17 +++-- .../xpack/security/SecurityLicenseState.java | 3 +- .../integration/LicensingTests.java | 5 +- .../security/SecurityLicenseStateTests.java | 21 +++--- .../xpack/watcher/WatcherLicensee.java | 3 +- .../xpack/watcher/license/LicenseTests.java | 2 - 20 files changed, 135 insertions(+), 252 deletions(-) delete mode 100644 elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseSchedule.java delete mode 100644 elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseState.java diff --git a/elasticsearch/x-pack/graph/src/main/java/org/elasticsearch/xpack/graph/GraphLicensee.java b/elasticsearch/x-pack/graph/src/main/java/org/elasticsearch/xpack/graph/GraphLicensee.java index 7d31411597b..1468b63acbd 100644 --- a/elasticsearch/x-pack/graph/src/main/java/org/elasticsearch/xpack/graph/GraphLicensee.java +++ b/elasticsearch/x-pack/graph/src/main/java/org/elasticsearch/xpack/graph/GraphLicensee.java @@ -9,7 +9,6 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.license.core.License.OperationMode; import org.elasticsearch.license.plugin.core.AbstractLicenseeComponent; -import org.elasticsearch.license.plugin.core.LicenseState; public class GraphLicensee extends AbstractLicenseeComponent { @@ -60,6 +59,6 @@ public class GraphLicensee extends AbstractLicenseeComponent { boolean licensed = operationMode == OperationMode.TRIAL || operationMode == OperationMode.PLATINUM; - return licensed && localStatus.getLicenseState() != LicenseState.DISABLED; + return licensed && localStatus.isActive(); } } diff --git a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseSchedule.java b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseSchedule.java deleted file mode 100644 index 6059e340cb6..00000000000 --- a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseSchedule.java +++ /dev/null @@ -1,43 +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.license.plugin.core; - -import org.elasticsearch.license.core.License; -import org.elasticsearch.xpack.scheduler.SchedulerEngine; - - -public class LicenseSchedule implements SchedulerEngine.Schedule { - - private final License license; - - LicenseSchedule(License license) { - this.license = license; - } - - @Override - public long nextScheduledTimeAfter(long startTime, long time) { - long nextScheduledTime = -1; - switch (LicenseState.resolve(license, time)) { - case ENABLED: - nextScheduledTime = license.expiryDate(); - break; - case GRACE_PERIOD: - nextScheduledTime = license.expiryDate() + LicenseState.GRACE_PERIOD_DURATION.getMillis(); - break; - case DISABLED: - if (license.issueDate() > time) { - // when we encounter a license with a future issue date - // which can happen with autogenerated license, - // we want to schedule a notification on the license issue date - // so the license is notificed once it is valid - // see https://github.com/elastic/x-plugins/issues/983 - nextScheduledTime = license.issueDate(); - } - break; - } - return nextScheduledTime; - } -} diff --git a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseService.java b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseService.java index 7fd2cd77256..5f36131bac6 100644 --- a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseService.java +++ b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseService.java @@ -62,6 +62,11 @@ public class LicenseService extends AbstractLifecycleComponent implements Cluste // pkg private for tests static final TimeValue TRIAL_LICENSE_DURATION = TimeValue.timeValueHours(30 * 24); + /** + * Duration of grace period after a license has expired + */ + public static final TimeValue GRACE_PERIOD_DURATION = days(7); + private final ClusterService clusterService; /** @@ -310,12 +315,15 @@ public class LicenseService extends AbstractLifecycleComponent implements Cluste }); } - public Licensee.Status licenseeStatus() { - final License license = getLicense(); + public Licensee.Status licenseeStatus(License license) { if (license == null) { - return Licensee.Status.MISSING; + return new Licensee.Status(License.OperationMode.MISSING, false); } - return new Licensee.Status(license.operationMode(), LicenseState.resolve(license, clock.millis())); + long time = clock.millis(); + boolean active = time >= license.issueDate() && + time < license.expiryDate() + GRACE_PERIOD_DURATION.getMillis(); + + return new Licensee.Status(license.operationMode(), active); } public License getLicense() { @@ -433,18 +441,22 @@ public class LicenseService extends AbstractLifecycleComponent implements Cluste } if (license != null) { logger.debug("notifying [{}] listeners", registeredLicensees.size()); - final LicenseState licenseState = LicenseState.resolve(license, clock.millis()); - Licensee.Status status = new Licensee.Status(license.operationMode(), licenseState); + long time = clock.millis(); + boolean active = time >= license.issueDate() && + time < license.expiryDate() + GRACE_PERIOD_DURATION.getMillis(); + + Licensee.Status status = new Licensee.Status(license.operationMode(), active); for (InternalLicensee licensee : registeredLicensees) { licensee.onChange(status); } - switch (status.getLicenseState()) { - case ENABLED: - logger.debug("license [{}] - valid", license.uid()); break; - case GRACE_PERIOD: - logger.warn("license [{}] - grace", license.uid()); break; - case DISABLED: - logger.warn("license [{}] - expired", license.uid()); break; + if (active) { + if (time < license.expiryDate()) { + logger.debug("license [{}] - valid", license.uid()); + } else { + logger.warn("license [{}] - grace", license.uid()); + } + } else { + logger.warn("license [{}] - expired", license.uid()); } } } @@ -464,7 +476,7 @@ public class LicenseService extends AbstractLifecycleComponent implements Cluste if (license.equals(previousLicense) == false) { currentLicense.set(license); license.setOperationModeFileWatcher(operationModeFileWatcher); - scheduler.add(new SchedulerEngine.Job(LICENSE_JOB, new LicenseSchedule(license))); + scheduler.add(new SchedulerEngine.Job(LICENSE_JOB, nextLicenseCheck(license))); for (ExpirationCallback expirationCallback : expirationCallbacks) { scheduler.add(new SchedulerEngine.Job(expirationCallback.getId(), (startTime, now) -> @@ -479,6 +491,25 @@ public class LicenseService extends AbstractLifecycleComponent implements Cluste } } + // pkg private for tests + static SchedulerEngine.Schedule nextLicenseCheck(License license) { + return (startTime, time) -> { + if (time < license.issueDate()) { + // when we encounter a license with a future issue date + // which can happen with autogenerated license, + // we want to schedule a notification on the license issue date + // so the license is notificed once it is valid + // see https://github.com/elastic/x-plugins/issues/983 + return license.issueDate(); + } else if (time < license.expiryDate()) { + return license.expiryDate(); + } else if (time < license.expiryDate() + GRACE_PERIOD_DURATION.getMillis()) { + return license.expiryDate() + GRACE_PERIOD_DURATION.getMillis(); + } + return -1; // license is expired, no need to check again + }; + } + private void initLicensee(Licensee licensee) { logger.debug("initializing licensee [{}]", licensee.id()); final ClusterState clusterState = clusterService.state(); diff --git a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseState.java b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseState.java deleted file mode 100644 index 85eebd76467..00000000000 --- a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/LicenseState.java +++ /dev/null @@ -1,68 +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.license.plugin.core; - -import org.elasticsearch.common.unit.TimeValue; -import org.elasticsearch.license.core.License; - -import static org.elasticsearch.license.plugin.core.LicenseService.days; - -/** - * States of a registered licensee - * based on the current license - */ -public enum LicenseState { - - /** - * Active license is valid. - * - * When license expires - * changes to {@link #GRACE_PERIOD} - */ - ENABLED, - - /** - * Active license expired - * but grace period has not. - * - * When grace period expires - * changes to {@link #DISABLED}. - * When valid license is installed - * changes back to {@link #ENABLED} - */ - GRACE_PERIOD, - - /** - * Grace period for active license - * expired. - * - * When a valid license is installed - * changes to {@link #ENABLED}, otherwise - * remains unchanged - */ - DISABLED; - - /** - * Duration of grace period after a license has expired - */ - public static final TimeValue GRACE_PERIOD_DURATION = days(7); - - public static LicenseState resolve(final License license, long time) { - if (license == null) { - return DISABLED; - } - if (license.issueDate() > time) { - return DISABLED; - } - if (license.expiryDate() > time) { - return ENABLED; - } - if ((license.expiryDate() + GRACE_PERIOD_DURATION.getMillis()) > time) { - return GRACE_PERIOD; - } - return DISABLED; - } -} diff --git a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/Licensee.java b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/Licensee.java index 9928b2ff677..1fcc12e6976 100644 --- a/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/Licensee.java +++ b/elasticsearch/x-pack/license-plugin/src/main/java/org/elasticsearch/license/plugin/core/Licensee.java @@ -44,69 +44,60 @@ public interface Licensee { * whenever checking different parts of the {@code Status}: *
      * Status status = this.status;
-     * return status.getLicenseState() != LicenseState.DISABLED &&
-     *        (status.getMode() == OperationMode.TRAIL || status.getMode == OperationMode.PLATINUM);
+     * return status.isActive() &&
+     *        (status.getMode() == OperationMode.TRIAL || status.getMode == OperationMode.PLATINUM);
      * 
* Otherwise the license has the potential to change in-between both checks. */ class Status { - public static Status ENABLED = new Status(OperationMode.TRIAL, LicenseState.ENABLED); - public static Status MISSING = new Status(OperationMode.MISSING, LicenseState.DISABLED); + public static Status ENABLED = new Status(OperationMode.TRIAL, true); + public static Status MISSING = new Status(OperationMode.MISSING, false); private final OperationMode mode; - private final LicenseState licenseState; + private final boolean active; - public Status(OperationMode mode, LicenseState licenseState) { + public Status(OperationMode mode, boolean active) { this.mode = mode; - this.licenseState = licenseState; + this.active = active; } /** * Returns the operation mode of the license * responsible for the current licenseState *

- * Note: Knowing the mode does not indicate whether the {@link #getLicenseState() state} is disabled. If that matters (e.g., - * disabling services when a license becomes disabled), then you should check it as well! + * Note: Knowing the mode does not indicate whether the license is active. If that matters (e.g., + * disabling services when a license becomes disabled), then check {@link #isActive()}. */ public OperationMode getMode() { return mode; } - /** - * When a license is active, the state is - * {@link LicenseState#ENABLED}, upon license expiry - * the state changes to {@link LicenseState#GRACE_PERIOD} - * and after the grace period has ended the state changes - * to {@link LicenseState#DISABLED} - */ - public LicenseState getLicenseState() { - return licenseState; + /** Returns true if the license is within the issue date and grace period, or false otherwise */ + public boolean isActive() { + return active; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - Status status = (Status) o; - return Objects.equals(mode, status.mode) && Objects.equals(licenseState, status.licenseState); + return active == status.active && + mode == status.mode; } @Override public int hashCode() { - return Objects.hash(mode, licenseState); + return Objects.hash(mode, active); } @Override public String toString() { - switch (licenseState) { - case DISABLED: - return "disabled " + mode.name().toLowerCase(Locale.ROOT); - case GRACE_PERIOD: - return mode.name().toLowerCase(Locale.ROOT) + " grace period"; - default: - return mode.name().toLowerCase(Locale.ROOT); + if (active) { + return mode.name().toLowerCase(Locale.ROOT); + } else { + return "disabled " + mode.name().toLowerCase(Locale.ROOT); } } } diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/LicensesServiceClusterTests.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/LicensesServiceClusterTests.java index 0350c2a8dcb..62edd02f934 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/LicensesServiceClusterTests.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/LicensesServiceClusterTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.env.Environment; import org.elasticsearch.license.core.License; import org.elasticsearch.license.plugin.core.LicenseService; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.xpack.MockNetty3Plugin; @@ -124,40 +123,40 @@ public class LicensesServiceClusterTests extends AbstractLicensesIntegrationTest wipeAllLicenses(); internalCluster().startNode(); ensureGreen(); - assertLicenseState(LicenseState.ENABLED); + assertLicenseState(true); logger.info("--> restart node"); internalCluster().fullRestart(); ensureYellow(); logger.info("--> await node for enabled"); - assertLicenseState(LicenseState.ENABLED); + assertLicenseState(true); } public void testClusterRestartWhileGrace() throws Exception { wipeAllLicenses(); internalCluster().startNode(); - assertLicenseState(LicenseState.ENABLED); + assertLicenseState(true); putLicense(TestUtils.generateSignedLicense(TimeValue.timeValueMillis(0))); ensureGreen(); - assertLicenseState(LicenseState.GRACE_PERIOD); + assertLicenseState(true); logger.info("--> restart node"); internalCluster().fullRestart(); ensureYellow(); logger.info("--> await node for grace_period"); - assertLicenseState(LicenseState.GRACE_PERIOD); + assertLicenseState(true); } public void testClusterRestartWhileExpired() throws Exception { wipeAllLicenses(); internalCluster().startNode(); ensureGreen(); - assertLicenseState(LicenseState.ENABLED); - putLicense(TestUtils.generateExpiredLicense(System.currentTimeMillis() - LicenseState.GRACE_PERIOD_DURATION.getMillis())); - assertLicenseState(LicenseState.DISABLED); + assertLicenseState(true); + putLicense(TestUtils.generateExpiredLicense(System.currentTimeMillis() - LicenseService.GRACE_PERIOD_DURATION.getMillis())); + assertLicenseState(false); logger.info("--> restart node"); internalCluster().fullRestart(); ensureYellow(); logger.info("--> await node for disabled"); - assertLicenseState(LicenseState.DISABLED); + assertLicenseState(false); } public void testClusterNotRecovered() throws Exception { @@ -165,13 +164,13 @@ public class LicensesServiceClusterTests extends AbstractLicensesIntegrationTest internalCluster().startNode(nodeSettingsBuilder(0).put("discovery.zen.minimum_master_nodes", 2).put("node.master", true)); logger.info("--> start second master out of two [recovered state]"); internalCluster().startNode(nodeSettingsBuilder(1).put("discovery.zen.minimum_master_nodes", 2).put("node.master", true)); - assertLicenseState(LicenseState.ENABLED); + assertLicenseState(true); } - private void assertLicenseState(LicenseState state) throws InterruptedException { + private void assertLicenseState(boolean active) throws InterruptedException { boolean success = awaitBusy(() -> { for (LicenseService service : internalCluster().getDataNodeInstances(LicenseService.class)) { - if (service.licenseeStatus().getLicenseState() == state) { + if (service.licenseeStatus(service.getLicense()).isActive() == active) { return true; } } @@ -183,7 +182,7 @@ public class LicensesServiceClusterTests extends AbstractLicensesIntegrationTest private void assertOperationMode(License.OperationMode operationMode) throws InterruptedException { boolean success = awaitBusy(() -> { for (LicenseService service : internalCluster().getDataNodeInstances(LicenseService.class)) { - if (service.licenseeStatus().getMode() == operationMode) { + if (service.licenseeStatus(service.getLicense()).getMode() == operationMode) { return true; } } diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/AbstractLicenseeTestCase.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/AbstractLicenseeTestCase.java index 85f7d5ba969..7390fa8c40a 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/AbstractLicenseeTestCase.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/AbstractLicenseeTestCase.java @@ -122,15 +122,6 @@ public abstract class AbstractLicenseeTestCase extends ESTestCase { return randomValueOtherThan(mode, AbstractLicenseeTestCase::randomMode); } - /** - * Randomly get {@link LicenseState#ENABLED} or {@link LicenseState#GRACE_PERIOD}. - * - * @return Never {@code null}. - */ - public static LicenseState randomEnabledOrGracePeriodState() { - return randomFrom(LicenseState.ENABLED, LicenseState.GRACE_PERIOD); - } - /** * Get a random value from the {@code values} that passes {@code filter}. * @@ -163,10 +154,10 @@ public abstract class AbstractLicenseeTestCase extends ESTestCase { } public void disable(Licensee licensee) { - licensee.onChange(new Licensee.Status(operationMode, LicenseState.DISABLED)); + licensee.onChange(new Licensee.Status(operationMode, false)); } public void enable(Licensee licensee) { - licensee.onChange(new Licensee.Status(operationMode, randomEnabledOrGracePeriodState())); + licensee.onChange(new Licensee.Status(operationMode, true)); } } diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseClusterChangeTests.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseClusterChangeTests.java index 64e6cae8e72..6af2c7ad787 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseClusterChangeTests.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseClusterChangeTests.java @@ -53,7 +53,7 @@ public class LicenseClusterChangeTests extends AbstractLicenseServiceTestCase { ClusterState newState = ClusterState.builder(new ClusterName("a")).metaData(metaData).build(); licenseService.clusterChanged(new ClusterChangedEvent("simulated", newState, oldState)); assertThat(licensee.statuses.size(), equalTo(1)); - assertTrue(licensee.statuses.get(0).getLicenseState() == LicenseState.ENABLED); + assertTrue(licensee.statuses.get(0).isActive()); } public void testNoNotificationOnExistingLicense() throws Exception { diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseRegistrationTests.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseRegistrationTests.java index a752bca9c89..a4c49cf2837 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseRegistrationTests.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseRegistrationTests.java @@ -43,7 +43,6 @@ public class LicenseRegistrationTests extends AbstractLicenseServiceTestCase { setInitialState(TestUtils.generateSignedLicense(TimeValue.timeValueHours(2)), licensee); licenseService.start(); assertThat(licensee.statuses.size(), equalTo(1)); - final LicenseState licenseState = licensee.statuses.get(0).getLicenseState(); - assertTrue(licenseState == LicenseState.ENABLED); + assertTrue(licensee.statuses.get(0).isActive()); } } \ No newline at end of file diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseScheduleTests.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseScheduleTests.java index 84981c9a7c2..06b2e41bbee 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseScheduleTests.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicenseScheduleTests.java @@ -9,6 +9,7 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.license.core.License; import org.elasticsearch.license.plugin.TestUtils; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.xpack.scheduler.SchedulerEngine; import org.junit.Before; import static org.hamcrest.Matchers.equalTo; @@ -16,12 +17,12 @@ import static org.hamcrest.Matchers.equalTo; public class LicenseScheduleTests extends ESTestCase { private License license; - private LicenseSchedule schedule; + private SchedulerEngine.Schedule schedule; @Before public void setuo() throws Exception { license = TestUtils.generateSignedLicense(TimeValue.timeValueHours(12)); - schedule = new LicenseSchedule(license); + schedule = LicenseService.nextLicenseCheck(license); } public void testEnabledLicenseSchedule() throws Exception { @@ -32,13 +33,13 @@ public class LicenseScheduleTests extends ESTestCase { public void testGraceLicenseSchedule() throws Exception { long triggeredTime = license.expiryDate() + between(1, - ((int) LicenseState.GRACE_PERIOD_DURATION.getMillis())); + ((int) LicenseService.GRACE_PERIOD_DURATION.getMillis())); assertThat(schedule.nextScheduledTimeAfter(license.issueDate(), triggeredTime), - equalTo(license.expiryDate() + LicenseState.GRACE_PERIOD_DURATION.getMillis())); + equalTo(license.expiryDate() + LicenseService.GRACE_PERIOD_DURATION.getMillis())); } public void testExpiredLicenseSchedule() throws Exception { - long triggeredTime = license.expiryDate() + LicenseState.GRACE_PERIOD_DURATION.getMillis() + + long triggeredTime = license.expiryDate() + LicenseService.GRACE_PERIOD_DURATION.getMillis() + randomIntBetween(1, 1000); assertThat(schedule.nextScheduledTimeAfter(license.issueDate(), triggeredTime), equalTo(-1L)); diff --git a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicensesNotificationTests.java b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicensesNotificationTests.java index 3d3640d6062..6111fe02bde 100644 --- a/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicensesNotificationTests.java +++ b/elasticsearch/x-pack/license-plugin/src/test/java/org/elasticsearch/license/plugin/core/LicensesNotificationTests.java @@ -28,19 +28,19 @@ public class LicensesNotificationTests extends AbstractLicenseServiceTestCase { setInitialState(license, assertingLicensees); licenseService.start(); for (int i = 0; i < assertingLicensees.length; i++) { - assertLicenseStates(assertingLicensees[i], LicenseState.ENABLED); + assertLicenseStates(assertingLicensees[i], true); } clock.fastForward(TimeValue.timeValueMillis(license.expiryDate() - clock.millis())); final LicensesMetaData licensesMetaData = new LicensesMetaData(license); licenseService.onUpdate(licensesMetaData); for (AssertingLicensee assertingLicensee : assertingLicensees) { - assertLicenseStates(assertingLicensee, LicenseState.ENABLED, LicenseState.GRACE_PERIOD); + assertLicenseStates(assertingLicensee, true); } clock.fastForward(TimeValue.timeValueMillis((license.expiryDate() + - LicenseState.GRACE_PERIOD_DURATION.getMillis()) - clock.millis())); + LicenseService.GRACE_PERIOD_DURATION.getMillis()) - clock.millis())); licenseService.onUpdate(licensesMetaData); for (AssertingLicensee assertingLicensee : assertingLicensees) { - assertLicenseStates(assertingLicensee, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED); + assertLicenseStates(assertingLicensee, true, false); } clock.setTime(new DateTime(DateTimeZone.UTC)); final License newLicense = TestUtils.generateSignedLicense(TimeValue.timeValueHours(2)); @@ -48,12 +48,11 @@ public class LicensesNotificationTests extends AbstractLicenseServiceTestCase { LicensesMetaData licensesMetaData1 = new LicensesMetaData(newLicense); licenseService.onUpdate(licensesMetaData1); for (AssertingLicensee assertingLicensee : assertingLicensees) { - assertLicenseStates(assertingLicensee, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED, - LicenseState.ENABLED); + assertLicenseStates(assertingLicensee, true, false, true); } } - private void assertLicenseStates(AssertingLicensee licensee, LicenseState... states) { + private void assertLicenseStates(AssertingLicensee licensee, boolean... states) { StringBuilder msg = new StringBuilder(); msg.append("Actual: "); msg.append(dumpLicensingStates(licensee.statuses)); @@ -61,7 +60,7 @@ public class LicensesNotificationTests extends AbstractLicenseServiceTestCase { msg.append(dumpLicensingStates(states)); assertThat(msg.toString(), licensee.statuses.size(), equalTo(states.length)); for (int i = 0; i < states.length; i++) { - assertThat(msg.toString(), licensee.statuses.get(i).getLicenseState(), equalTo(states[i])); + assertThat(msg.toString(), licensee.statuses.get(i).isActive(), equalTo(states[i])); } } @@ -70,18 +69,18 @@ public class LicensesNotificationTests extends AbstractLicenseServiceTestCase { } private String dumpLicensingStates(Licensee.Status... statuses) { - LicenseState[] states = new LicenseState[statuses.length]; + boolean[] states = new boolean[statuses.length]; for (int i = 0; i < statuses.length; i++) { - states[i] = statuses[i].getLicenseState(); + states[i] = statuses[i].isActive(); } return dumpLicensingStates(states); } - private String dumpLicensingStates(LicenseState... states) { + private String dumpLicensingStates(boolean... states) { StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < states.length; i++) { - sb.append(states[i].name()); + sb.append(states[i]); if (i != states.length - 1) { sb.append(", "); } diff --git a/elasticsearch/x-pack/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringLicensee.java b/elasticsearch/x-pack/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringLicensee.java index 4d28924830c..5f0dd674eb4 100644 --- a/elasticsearch/x-pack/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringLicensee.java +++ b/elasticsearch/x-pack/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringLicensee.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.logging.LoggerMessageFormat; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.license.core.License.OperationMode; import org.elasticsearch.license.plugin.core.AbstractLicenseeComponent; -import org.elasticsearch.license.plugin.core.LicenseState; /** * {@code MonitoringLicensee} determines whether certain features of Monitoring are enabled or disabled. @@ -73,7 +72,7 @@ public class MonitoringLicensee extends AbstractLicenseeComponent { * @return true */ public boolean isAvailable() { - return status.getLicenseState() != LicenseState.DISABLED; + return status.isActive(); } /** @@ -87,7 +86,7 @@ public class MonitoringLicensee extends AbstractLicenseeComponent { * @return {@code true} as long as the license is valid. Otherwise {@code false}. */ public boolean collectionEnabled() { - return status.getLicenseState() != LicenseState.DISABLED; + return status.isActive(); } /** @@ -98,7 +97,7 @@ public class MonitoringLicensee extends AbstractLicenseeComponent { * @return {@code true} as long as the license is valid. Otherwise {@code false}. */ public boolean cleaningEnabled() { - return status.getLicenseState() != LicenseState.DISABLED; + return status.isActive(); } /** diff --git a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/agent/collector/AbstractCollectorTestCase.java b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/agent/collector/AbstractCollectorTestCase.java index c491380eeeb..b5a72d9cf03 100644 --- a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/agent/collector/AbstractCollectorTestCase.java +++ b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/agent/collector/AbstractCollectorTestCase.java @@ -26,7 +26,6 @@ import org.elasticsearch.env.Environment; import org.elasticsearch.license.core.License; import org.elasticsearch.license.plugin.Licensing; import org.elasticsearch.license.plugin.core.LicenseService; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestHandler; @@ -110,7 +109,7 @@ public abstract class AbstractCollectorTestCase extends MonitoringIntegTestCase final License license = createTestingLicense(issueDate, expiryDate); for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { - service.onChange(license.operationMode(), LicenseState.ENABLED); + service.onChange(license.operationMode(), true); } for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { service.update(license); @@ -123,7 +122,7 @@ public abstract class AbstractCollectorTestCase extends MonitoringIntegTestCase final License license = createTestingLicense(issueDate, expiryDate); for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { - service.onChange(license.operationMode(), LicenseState.GRACE_PERIOD); + service.onChange(license.operationMode(), true); } for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { service.update(license); @@ -136,7 +135,7 @@ public abstract class AbstractCollectorTestCase extends MonitoringIntegTestCase final License license = createTestingLicense(issueDate, expiryDate); for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { - service.onChange(license.operationMode(), LicenseState.DISABLED); + service.onChange(license.operationMode(), false); } for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { service.update(license); @@ -149,7 +148,7 @@ public abstract class AbstractCollectorTestCase extends MonitoringIntegTestCase final License license = createTestingLicense(issueDate, expiryDate); for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { - service.onChange(license.operationMode(), LicenseState.DISABLED); + service.onChange(license.operationMode(), false); } for (LicenseServiceForCollectors service : internalCluster().getInstances(LicenseServiceForCollectors.class)) { service.update(license); @@ -238,14 +237,14 @@ public abstract class AbstractCollectorTestCase extends MonitoringIntegTestCase this.licensees = licensees; } - public void onChange(License.OperationMode operationMode, LicenseState state) { + public void onChange(License.OperationMode operationMode, boolean active) { for (Licensee licensee : licensees) { - licensee.onChange(new Licensee.Status(operationMode, state)); + licensee.onChange(new Licensee.Status(operationMode, active)); } } @Override - public Licensee.Status licenseeStatus() { + public Licensee.Status licenseeStatus(License license) { return null; } diff --git a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/LicenseIntegrationTests.java b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/LicenseIntegrationTests.java index d015f425c68..422af9070af 100644 --- a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/LicenseIntegrationTests.java +++ b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/LicenseIntegrationTests.java @@ -15,7 +15,6 @@ import org.elasticsearch.env.Environment; import org.elasticsearch.license.core.License; import org.elasticsearch.license.plugin.Licensing; import org.elasticsearch.license.plugin.core.LicenseService; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestHandler; @@ -39,7 +38,6 @@ import static java.util.Collections.emptyList; import static org.elasticsearch.test.ESIntegTestCase.Scope.SUITE; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.isOneOf; @ClusterScope(scope = SUITE, transportClientRatio = 0, numClientNodes = 0) public class LicenseIntegrationTests extends MonitoringIntegTestCase { @@ -56,15 +54,15 @@ public class LicenseIntegrationTests extends MonitoringIntegTestCase { } public void testEnableDisableLicense() { - assertThat(getLicensee().getStatus().getLicenseState(), isOneOf(LicenseState.ENABLED, LicenseState.GRACE_PERIOD)); + assertTrue(getLicensee().getStatus().isActive()); assertThat(getLicensee().collectionEnabled(), is(true)); disableLicensing(); - assertThat(getLicensee().getStatus().getLicenseState(), equalTo(LicenseState.DISABLED)); + assertThat(getLicensee().getStatus().isActive(), equalTo(false)); assertThat(getLicensee().collectionEnabled(), is(false)); enableLicensing(); - assertThat(getLicensee().getStatus().getLicenseState(), isOneOf(LicenseState.ENABLED, LicenseState.GRACE_PERIOD)); + assertTrue(getLicensee().getStatus().isActive()); assertThat(getLicensee().collectionEnabled(), is(true)); } @@ -134,19 +132,18 @@ public class LicenseIntegrationTests extends MonitoringIntegTestCase { public void enable() { for (Licensee licensee : licensees) { - licensee.onChange(new Licensee.Status(License.OperationMode.BASIC, - randomBoolean() ? LicenseState.ENABLED : LicenseState.GRACE_PERIOD)); + licensee.onChange(new Licensee.Status(License.OperationMode.BASIC, true)); } } public void disable() { for (Licensee licensee : licensees) { - licensee.onChange(new Licensee.Status(License.OperationMode.BASIC, LicenseState.DISABLED)); + licensee.onChange(new Licensee.Status(License.OperationMode.BASIC, false)); } } @Override - public Licensee.Status licenseeStatus() { + public Licensee.Status licenseeStatus(License license) { return null; } diff --git a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/MonitoringLicenseeTests.java b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/MonitoringLicenseeTests.java index b41353af1a9..b6844190c77 100644 --- a/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/MonitoringLicenseeTests.java +++ b/elasticsearch/x-pack/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/license/MonitoringLicenseeTests.java @@ -8,7 +8,6 @@ package org.elasticsearch.xpack.monitoring.license; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.license.core.License.OperationMode; import org.elasticsearch.license.plugin.core.AbstractLicenseeTestCase; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee.Status; import org.elasticsearch.xpack.monitoring.MonitoringLicensee; @@ -46,19 +45,19 @@ public class MonitoringLicenseeTests extends AbstractLicenseeTestCase { } public void testCollectionEnabledIsTrueForActiveState() { - assertEnabled(randomEnabledOrGracePeriodState(), MonitoringLicensee::collectionEnabled, true); + assertEnabled(true, MonitoringLicensee::collectionEnabled, true); } public void testCollectionEnabledIsFalseForInactiveState() { - assertEnabled(LicenseState.DISABLED, MonitoringLicensee::collectionEnabled, false); + assertEnabled(false, MonitoringLicensee::collectionEnabled, false); } public void testCleaningEnabledIsTrueForActiveState() { - assertEnabled(randomEnabledOrGracePeriodState(), MonitoringLicensee::cleaningEnabled, true); + assertEnabled(true, MonitoringLicensee::cleaningEnabled, true); } public void testCleaningEnabledIsFalseForInactiveState() { - assertEnabled(LicenseState.DISABLED, MonitoringLicensee::cleaningEnabled, false); + assertEnabled(false, MonitoringLicensee::cleaningEnabled, false); } public void testAllowUpdateRetentionIsTrueForNotBasic() { @@ -77,19 +76,19 @@ public class MonitoringLicenseeTests extends AbstractLicenseeTestCase { /** * Assert that the {@link #licensee} is {@code predicate}d as {@code expected} when setting the {@code state}. * - * @param state The state that should cause the {@code expected} {@code predicate}. + * @param active The state that should cause the {@code expected} {@code predicate}. * @param predicate The method to invoke (expected to be an instance method). * @param expected The expected outcome given the {@code state} and {@code predicate}. */ - private void assertEnabled(LicenseState state, Predicate predicate, boolean expected) { + private void assertEnabled(boolean active, Predicate predicate, boolean expected) { Status status = mock(Status.class); - when(status.getLicenseState()).thenReturn(state); + when(status.isActive()).thenReturn(active); licensee.onChange(status); assertThat(predicate.test(licensee), equalTo(expected)); - verify(status).getLicenseState(); + verify(status).isActive(); } /** diff --git a/elasticsearch/x-pack/security/src/main/java/org/elasticsearch/xpack/security/SecurityLicenseState.java b/elasticsearch/x-pack/security/src/main/java/org/elasticsearch/xpack/security/SecurityLicenseState.java index b62f2f6275d..19e76e230f5 100644 --- a/elasticsearch/x-pack/security/src/main/java/org/elasticsearch/xpack/security/SecurityLicenseState.java +++ b/elasticsearch/x-pack/security/src/main/java/org/elasticsearch/xpack/security/SecurityLicenseState.java @@ -6,7 +6,6 @@ package org.elasticsearch.xpack.security; import org.elasticsearch.license.core.License.OperationMode; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee.Status; @@ -53,7 +52,7 @@ public class SecurityLicenseState { * @return true if the license allows for the stats and health APIs to be used. */ public boolean statsAndHealthEnabled() { - return status.getLicenseState() != LicenseState.DISABLED; + return status.isActive(); } /** diff --git a/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/integration/LicensingTests.java b/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/integration/LicensingTests.java index baae41ea7b6..f608d0a637a 100644 --- a/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/integration/LicensingTests.java +++ b/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/integration/LicensingTests.java @@ -35,7 +35,6 @@ import org.elasticsearch.env.Environment; import org.elasticsearch.license.core.License.OperationMode; import org.elasticsearch.license.plugin.Licensing; import org.elasticsearch.license.plugin.core.LicenseService; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestHandler; @@ -310,13 +309,13 @@ public class LicensingTests extends SecurityIntegTestCase { void enable(OperationMode operationMode) { for (Licensee licensee : licensees) { - licensee.onChange(new Licensee.Status(operationMode, LicenseState.ENABLED)); + licensee.onChange(new Licensee.Status(operationMode, true)); } } void disable(OperationMode operationMode) { for (Licensee licensee : licensees) { - licensee.onChange(new Licensee.Status(operationMode, LicenseState.DISABLED)); + licensee.onChange(new Licensee.Status(operationMode, false)); } } diff --git a/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/xpack/security/SecurityLicenseStateTests.java b/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/xpack/security/SecurityLicenseStateTests.java index 9fd0c4f9aca..1c05c4155b1 100644 --- a/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/xpack/security/SecurityLicenseStateTests.java +++ b/elasticsearch/x-pack/security/src/test/java/org/elasticsearch/xpack/security/SecurityLicenseStateTests.java @@ -7,7 +7,6 @@ package org.elasticsearch.xpack.security; import org.elasticsearch.license.core.License; import org.elasticsearch.license.core.License.OperationMode; -import org.elasticsearch.license.plugin.core.LicenseState; import org.elasticsearch.license.plugin.core.Licensee; import org.elasticsearch.xpack.security.SecurityLicenseState.EnabledRealmType; import org.elasticsearch.test.ESTestCase; @@ -31,8 +30,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testBasic() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.BASIC, - randomBoolean() ? LicenseState.ENABLED : LicenseState.GRACE_PERIOD)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.BASIC, true)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(false)); assertThat(licenseState.ipFilteringEnabled(), is(false)); @@ -44,7 +42,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testBasicExpired() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.BASIC, LicenseState.DISABLED)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.BASIC, false)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(false)); assertThat(licenseState.ipFilteringEnabled(), is(false)); @@ -56,8 +54,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testStandard() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(OperationMode.STANDARD, - randomBoolean() ? LicenseState.ENABLED : LicenseState.GRACE_PERIOD)); + licenseState.updateStatus(new Licensee.Status(OperationMode.STANDARD, true)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(false)); @@ -69,7 +66,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testStandardExpired() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(OperationMode.STANDARD, LicenseState.DISABLED)); + licenseState.updateStatus(new Licensee.Status(OperationMode.STANDARD, false)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(false)); @@ -81,8 +78,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testGold() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.GOLD, - randomBoolean() ? LicenseState.ENABLED : LicenseState.GRACE_PERIOD)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.GOLD, true)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(true)); @@ -94,7 +90,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testGoldExpired() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.GOLD, LicenseState.DISABLED)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.GOLD, false)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(true)); @@ -106,8 +102,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testPlatinum() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.PLATINUM, - randomBoolean() ? LicenseState.ENABLED : LicenseState.GRACE_PERIOD)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.PLATINUM, true)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(true)); @@ -119,7 +114,7 @@ public class SecurityLicenseStateTests extends ESTestCase { public void testPlatinumExpired() { SecurityLicenseState licenseState = new SecurityLicenseState(); - licenseState.updateStatus(new Licensee.Status(License.OperationMode.PLATINUM, LicenseState.DISABLED)); + licenseState.updateStatus(new Licensee.Status(License.OperationMode.PLATINUM, false)); assertThat(licenseState.authenticationAndAuthorizationEnabled(), is(true)); assertThat(licenseState.ipFilteringEnabled(), is(true)); diff --git a/elasticsearch/x-pack/watcher/src/main/java/org/elasticsearch/xpack/watcher/WatcherLicensee.java b/elasticsearch/x-pack/watcher/src/main/java/org/elasticsearch/xpack/watcher/WatcherLicensee.java index cc0ede339db..a9264f27f4e 100644 --- a/elasticsearch/x-pack/watcher/src/main/java/org/elasticsearch/xpack/watcher/WatcherLicensee.java +++ b/elasticsearch/x-pack/watcher/src/main/java/org/elasticsearch/xpack/watcher/WatcherLicensee.java @@ -9,7 +9,6 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.license.core.License.OperationMode; import org.elasticsearch.license.plugin.core.AbstractLicenseeComponent; -import org.elasticsearch.license.plugin.core.LicenseState; public class WatcherLicensee extends AbstractLicenseeComponent { @@ -60,7 +59,7 @@ public class WatcherLicensee extends AbstractLicenseeComponent { // status is volatile, so a local variable is used for a consistent view Status localStatus = status; - if (localStatus.getLicenseState() == LicenseState.DISABLED) { + if (localStatus.isActive() == false) { return false; } diff --git a/elasticsearch/x-pack/watcher/src/test/java/org/elasticsearch/xpack/watcher/license/LicenseTests.java b/elasticsearch/x-pack/watcher/src/test/java/org/elasticsearch/xpack/watcher/license/LicenseTests.java index 36caea8b0a3..b994e6c2860 100644 --- a/elasticsearch/x-pack/watcher/src/test/java/org/elasticsearch/xpack/watcher/license/LicenseTests.java +++ b/elasticsearch/x-pack/watcher/src/test/java/org/elasticsearch/xpack/watcher/license/LicenseTests.java @@ -8,8 +8,6 @@ package org.elasticsearch.xpack.watcher.license; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.license.core.License; import org.elasticsearch.license.plugin.core.AbstractLicenseeTestCase; -import org.elasticsearch.license.plugin.core.LicenseState; -import org.elasticsearch.license.plugin.core.Licensee; import org.elasticsearch.xpack.watcher.WatcherLicensee; import static org.elasticsearch.license.core.License.OperationMode.BASIC;