Removed LicenseExpiredException

This exception was removed from the license plugin. We use `ElasticsearchException` instead with `es.license.expired.feature` header to hold the expired feature. We use `LicenseUtils.newExpirationException` to create and throw the proper exception.

Original commit: elastic/x-pack-elasticsearch@5e722be1cc
This commit is contained in:
uboness 2015-07-03 02:54:54 +02:00
parent 31e2516fd6
commit 792359103d
2 changed files with 20 additions and 11 deletions

View File

@ -17,7 +17,7 @@ import org.elasticsearch.action.support.ActionFilterChain;
import org.elasticsearch.common.component.AbstractComponent; import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.plugin.core.LicenseExpiredException; import org.elasticsearch.license.plugin.core.LicenseUtils;
import org.elasticsearch.shield.User; import org.elasticsearch.shield.User;
import org.elasticsearch.shield.audit.AuditTrail; import org.elasticsearch.shield.audit.AuditTrail;
import org.elasticsearch.shield.authc.AuthenticationService; import org.elasticsearch.shield.authc.AuthenticationService;
@ -80,7 +80,7 @@ public class ShieldActionFilter extends AbstractComponent implements ActionFilte
logger.error("blocking [{}] operation due to expired license. Cluster health, cluster stats and indices stats \n" + logger.error("blocking [{}] operation due to expired license. Cluster health, cluster stats and indices stats \n" +
"operations are blocked on shield license expiration. All data operations (read and write) continue to work. \n" + "operations are blocked on shield license expiration. All data operations (read and write) continue to work. \n" +
"If you have a new license, please update it. Otherwise, please reach out to your support contact.", action); "If you have a new license, please update it. Otherwise, please reach out to your support contact.", action);
throw new LicenseExpiredException(LicenseService.FEATURE_NAME); throw LicenseUtils.newExpirationException(LicenseService.FEATURE_NAME);
} }
try { try {

View File

@ -7,6 +7,7 @@ package org.elasticsearch.integration;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.LuceneTestCase;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse; import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse; import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse;
import org.elasticsearch.action.admin.cluster.stats.ClusterStatsIndices; import org.elasticsearch.action.admin.cluster.stats.ClusterStatsIndices;
@ -20,10 +21,10 @@ import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.Module; import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.core.License; import org.elasticsearch.license.core.License;
import org.elasticsearch.license.plugin.core.LicenseExpiredException;
import org.elasticsearch.license.plugin.core.LicensesClientService; import org.elasticsearch.license.plugin.core.LicensesClientService;
import org.elasticsearch.plugins.AbstractPlugin; import org.elasticsearch.plugins.AbstractPlugin;
import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.shield.license.LicenseService; import org.elasticsearch.shield.license.LicenseService;
import org.elasticsearch.test.ShieldIntegrationTest; import org.elasticsearch.test.ShieldIntegrationTest;
import org.elasticsearch.test.ShieldSettingsSource; import org.elasticsearch.test.ShieldSettingsSource;
@ -119,33 +120,41 @@ public class LicensingTests extends ShieldIntegrationTest {
try { try {
client.admin().indices().prepareStats().get(); client.admin().indices().prepareStats().get();
fail("expected an license expired exception when executing an index stats action"); fail("expected an license expired exception when executing an index stats action");
} catch (LicenseExpiredException lee) { } catch (ElasticsearchException ee) {
// expected // expected
assertThat(lee.feature(), equalTo(LicenseService.FEATURE_NAME)); assertThat(ee, instanceOf(ElasticsearchException.WithRestHeadersException.class));
assertThat(((ElasticsearchException.WithRestHeadersException) ee).getHeaders().get("es.license.expired.feature"), hasItem(LicenseService.FEATURE_NAME));
assertThat(ee.status(), is(RestStatus.UNAUTHORIZED));
} }
try { try {
client.admin().cluster().prepareClusterStats().get(); client.admin().cluster().prepareClusterStats().get();
fail("expected an license expired exception when executing cluster stats action"); fail("expected an license expired exception when executing cluster stats action");
} catch (LicenseExpiredException lee) { } catch (ElasticsearchException ee) {
// expected // expected
assertThat(lee.feature(), equalTo(LicenseService.FEATURE_NAME)); assertThat(ee, instanceOf(ElasticsearchException.WithRestHeadersException.class));
assertThat(((ElasticsearchException.WithRestHeadersException) ee).getHeaders().get("es.license.expired.feature"), hasItem(LicenseService.FEATURE_NAME));
assertThat(ee.status(), is(RestStatus.UNAUTHORIZED));
} }
try { try {
client.admin().cluster().prepareHealth().get(); client.admin().cluster().prepareHealth().get();
fail("expected an license expired exception when executing cluster health action"); fail("expected an license expired exception when executing cluster health action");
} catch (LicenseExpiredException lee) { } catch (ElasticsearchException ee) {
// expected // expected
assertThat(lee.feature(), equalTo(LicenseService.FEATURE_NAME)); assertThat(ee, instanceOf(ElasticsearchException.WithRestHeadersException.class));
assertThat(((ElasticsearchException.WithRestHeadersException) ee).getHeaders().get("es.license.expired.feature"), hasItem(LicenseService.FEATURE_NAME));
assertThat(ee.status(), is(RestStatus.UNAUTHORIZED));
} }
try { try {
client.admin().cluster().prepareNodesStats().get(); client.admin().cluster().prepareNodesStats().get();
fail("expected an license expired exception when executing cluster health action"); fail("expected an license expired exception when executing cluster health action");
} catch (LicenseExpiredException lee) { } catch (ElasticsearchException ee) {
// expected // expected
assertThat(lee.feature(), equalTo(LicenseService.FEATURE_NAME)); assertThat(ee, instanceOf(ElasticsearchException.WithRestHeadersException.class));
assertThat(((ElasticsearchException.WithRestHeadersException) ee).getHeaders().get("es.license.expired.feature"), hasItem(LicenseService.FEATURE_NAME));
assertThat(ee.status(), is(RestStatus.UNAUTHORIZED));
} }
enableLicensing(); enableLicensing();