From e0e4f07348f39581f18c0088b976f475c306aea3 Mon Sep 17 00:00:00 2001 From: Areek Zillur Date: Thu, 2 Jul 2015 16:34:40 -0400 Subject: [PATCH] Replace LicenseExpiredException with ElasticsearchException.WithRestHeadersException Original commit: elastic/x-pack-elasticsearch@36aaccc0b9d5c616a7c658fc889284a89285fba5 --- .../plugin/core/LicenseExpiredException.java | 31 ------------------- .../license/plugin/core/LicenseUtils.java | 27 ++++++++++++++++ 2 files changed, 27 insertions(+), 31 deletions(-) delete mode 100644 plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseExpiredException.java create mode 100644 plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseUtils.java diff --git a/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseExpiredException.java b/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseExpiredException.java deleted file mode 100644 index 4fbbe351804..00000000000 --- a/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseExpiredException.java +++ /dev/null @@ -1,31 +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.ElasticsearchException; -import org.elasticsearch.rest.RestStatus; - -/** - * Exception to be thrown when a feature action requires a valid license - */ -public class LicenseExpiredException extends ElasticsearchException { - - private final String feature; - - public LicenseExpiredException(String feature) { - super("license expired for feature [" + feature + "]"); - this.feature = feature; - } - - @Override - public RestStatus status() { - return RestStatus.UNAUTHORIZED; - } - - public String feature() { - return feature; - } -} diff --git a/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseUtils.java b/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseUtils.java new file mode 100644 index 00000000000..087e9312104 --- /dev/null +++ b/plugin-api/src/main/java/org/elasticsearch/license/plugin/core/LicenseUtils.java @@ -0,0 +1,27 @@ +/* + * 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.ElasticsearchException; +import org.elasticsearch.common.collect.Tuple; + +public class LicenseUtils { + + public final static String EXPIRED_FEATURE_HEADER = "es.license.expired.feature"; + + /** + * Exception to be thrown when a feature action requires a valid license, but license + * has expired + * + * feature accessible through {@link #EXPIRED_FEATURE_HEADER} in the + * exception's rest header + */ + public static ElasticsearchException newExpirationException(String feature) { + // TODO: after https://github.com/elastic/elasticsearch/pull/12006 use ElasicsearchException with addHeader(EXPIRED_FEATURE_HEADER, feature) + return new ElasticsearchException.WithRestHeadersException("license expired for feature [" + feature + "]", + Tuple.tuple(EXPIRED_FEATURE_HEADER, new String[] {feature})); + } +}