[Rollup] Make Rollup a Basic license feature (elastic/x-pack-elasticsearch#4246)
* Make Rollup a Basic license feature Original commit: elastic/x-pack-elasticsearch@ef1ee98855
This commit is contained in:
parent
2aeff7713c
commit
54539a1eb0
|
@ -82,7 +82,6 @@ public class XPackLicenseState {
|
|||
messages.put(XPackField.MACHINE_LEARNING, XPackLicenseState::machineLearningAcknowledgementMessages);
|
||||
messages.put(XPackField.LOGSTASH, XPackLicenseState::logstashAcknowledgementMessages);
|
||||
messages.put(XPackField.SQL, XPackLicenseState::sqlAcknowledgementMessages);
|
||||
messages.put(XPackField.ROLLUP, XPackLicenseState::rollupAcknowledgementMessages);
|
||||
ACKNOWLEDGMENT_MESSAGES = Collections.unmodifiableMap(messages);
|
||||
}
|
||||
|
||||
|
@ -233,22 +232,6 @@ public class XPackLicenseState {
|
|||
return Strings.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
private static String[] rollupAcknowledgementMessages(OperationMode currentMode, OperationMode newMode) {
|
||||
switch (newMode) {
|
||||
case BASIC:
|
||||
case STANDARD:
|
||||
case GOLD:
|
||||
switch (currentMode) {
|
||||
case TRIAL:
|
||||
case PLATINUM:
|
||||
return new String[] { "Creating new Rollup jobs or starting existing jobs will be disabled.",
|
||||
"All existing jobs can still be queried with GET APIs, and RollupSearch continues to function." };
|
||||
}
|
||||
break;
|
||||
}
|
||||
return Strings.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
/** A wrapper for the license mode and state, to allow atomically swapping. */
|
||||
private static class Status {
|
||||
|
||||
|
@ -499,26 +482,12 @@ public class XPackLicenseState {
|
|||
}
|
||||
|
||||
/**
|
||||
* Determine if Rollup should be enabled.
|
||||
* <p>
|
||||
* Rollup is only disabled when the license has expired or if the
|
||||
* mode is not:
|
||||
* <ul>
|
||||
* <li>{@link OperationMode#PLATINUM}</li>
|
||||
* <li>{@link OperationMode#TRIAL}</li>
|
||||
* </ul>
|
||||
* Rollup is always available as long as there is a valid license
|
||||
*
|
||||
* @return {@code true} as long as the license is valid. Otherwise
|
||||
* {@code false}.
|
||||
* @return true if the license is active
|
||||
*/
|
||||
public boolean isRollupAllowed() {
|
||||
// status is volatile
|
||||
Status localStatus = status;
|
||||
OperationMode operationMode = localStatus.mode;
|
||||
|
||||
boolean licensed = operationMode == OperationMode.TRIAL || operationMode == OperationMode.PLATINUM;
|
||||
|
||||
return licensed && localStatus.active;
|
||||
return status.active;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -32,16 +32,14 @@ import java.util.function.Consumer;
|
|||
public class TransportStopRollupAction extends TransportTasksAction<RollupJobTask, StopRollupJobAction.Request,
|
||||
StopRollupJobAction.Response, StopRollupJobAction.Response> {
|
||||
|
||||
private final XPackLicenseState licenseState;
|
||||
|
||||
@Inject
|
||||
public TransportStopRollupAction(Settings settings, TransportService transportService, ThreadPool threadPool,
|
||||
ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver,
|
||||
ClusterService clusterService, XPackLicenseState licenseState) {
|
||||
ClusterService clusterService) {
|
||||
|
||||
super(settings, StopRollupJobAction.NAME, threadPool, clusterService, transportService, actionFilters,
|
||||
indexNameExpressionResolver, StopRollupJobAction.Request::new, StopRollupJobAction.Response::new, ThreadPool.Names.SAME);
|
||||
this.licenseState = licenseState;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,12 +49,6 @@ public class TransportStopRollupAction extends TransportTasksAction<RollupJobTas
|
|||
|
||||
@Override
|
||||
protected void doExecute(Task task, StopRollupJobAction.Request request, ActionListener<StopRollupJobAction.Response> listener) {
|
||||
|
||||
if (!licenseState.isRollupAllowed()) {
|
||||
listener.onFailure(LicenseUtils.newComplianceException(XPackField.ROLLUP));
|
||||
return;
|
||||
}
|
||||
|
||||
super.doExecute(task, request, listener);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue