diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/license/XPackLicenseState.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/license/XPackLicenseState.java index 61528d745452a..9d859db99a485 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/license/XPackLicenseState.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/license/XPackLicenseState.java @@ -52,8 +52,6 @@ public enum Feature { MONITORING_CLUSTER_ALERTS(OperationMode.STANDARD, true), MONITORING_UPDATE_RETENTION(OperationMode.STANDARD, false), - ENCRYPTED_SNAPSHOT(OperationMode.PLATINUM, true), - CCR(OperationMode.PLATINUM, true), MACHINE_LEARNING(OperationMode.PLATINUM, true), diff --git a/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepository.java b/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepository.java index 49fb12059ec3a..e26a44b0044d3 100644 --- a/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepository.java +++ b/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepository.java @@ -60,6 +60,8 @@ import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; +import static org.elasticsearch.repositories.encrypted.EncryptedRepositoryPlugin.ENCRYPTED_SNAPSHOT_FEATURE; + public class EncryptedRepository extends BlobStoreRepository { static final Logger logger = LogManager.getLogger(EncryptedRepository.class); // the following constants are fixed by definition @@ -176,7 +178,7 @@ public RepositoryStats stats() { public Map adaptUserMetadata(Map userMetadata) { // because populating the snapshot metadata must be done before the actual snapshot is first initialized, // we take the opportunity to validate the license and abort if non-compliant - if (false == licenseStateSupplier.get().isAllowed(XPackLicenseState.Feature.ENCRYPTED_SNAPSHOT)) { + if (false == ENCRYPTED_SNAPSHOT_FEATURE.checkWithoutTracking(licenseStateSupplier.get())) { throw LicenseUtils.newComplianceException("encrypted snapshots"); } Map snapshotUserMetadata = new HashMap<>(); diff --git a/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepositoryPlugin.java b/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepositoryPlugin.java index c1764d273da4e..fa304c989ec7f 100644 --- a/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepositoryPlugin.java +++ b/x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepositoryPlugin.java @@ -21,7 +21,9 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.env.Environment; import org.elasticsearch.indices.recovery.RecoverySettings; +import org.elasticsearch.license.License; import org.elasticsearch.license.LicenseUtils; +import org.elasticsearch.license.LicensedFeature; import org.elasticsearch.license.XPackLicenseState; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.RepositoryPlugin; @@ -40,6 +42,12 @@ public class EncryptedRepositoryPlugin extends Plugin implements RepositoryPlugin { + static final LicensedFeature.Momentary ENCRYPTED_SNAPSHOT_FEATURE = LicensedFeature.momentary( + null, + "encrypted-snapshot", + License.OperationMode.PLATINUM + ); + private static final Boolean ENCRYPTED_REPOSITORY_FEATURE_FLAG_REGISTERED; static { final String property = System.getProperty("es.encrypted_repository_feature_flag_registered"); @@ -155,7 +163,7 @@ public Repository create(RepositoryMetadata metadata, Function