summaryrefslogtreecommitdiff
path: root/plugins/repository-azure
diff options
context:
space:
mode:
authorDavid Pilato <david@pilato.fr>2016-02-28 00:40:00 +0100
committerDavid Pilato <david@pilato.fr>2016-02-28 00:48:04 +0100
commit31b5e0888f4414b6ba863778436e177b6e82eea5 (patch)
tree0e282d01c675869d18838af8710d3d117d0407ea /plugins/repository-azure
parent08905be2cacca70bc4d4ae85408c0b07b45c4e56 (diff)
Use an SettingsProperty enumSet
Instead of modifying methods each time we need to add a new behavior for settings, we can simply pass `SettingsProperty... properties` instead. `SettingsProperty` could be defined then: ``` public enum SettingsProperty { Filtered, Dynamic, ClusterScope, NodeScope, IndexScope // HereGoesYours; } ``` Then in setting code, it become much more flexible. TODO: Note that we need to validate SettingsProperty which are added to a Setting as some of them might be mutually exclusive.
Diffstat (limited to 'plugins/repository-azure')
-rw-r--r--plugins/repository-azure/src/main/java/org/elasticsearch/cloud/azure/storage/AzureStorageService.java16
-rw-r--r--plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java18
2 files changed, 20 insertions, 14 deletions
diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/cloud/azure/storage/AzureStorageService.java b/plugins/repository-azure/src/main/java/org/elasticsearch/cloud/azure/storage/AzureStorageService.java
index 2c5521887d..f16e9b6729 100644
--- a/plugins/repository-azure/src/main/java/org/elasticsearch/cloud/azure/storage/AzureStorageService.java
+++ b/plugins/repository-azure/src/main/java/org/elasticsearch/cloud/azure/storage/AzureStorageService.java
@@ -24,6 +24,7 @@ import com.microsoft.azure.storage.StorageException;
import org.elasticsearch.common.blobstore.BlobMetaData;
import org.elasticsearch.common.settings.Setting;
+import org.elasticsearch.common.settings.Setting.SettingsProperty;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.unit.TimeValue;
@@ -31,7 +32,6 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.net.URISyntaxException;
import java.util.Map;
-import java.util.function.Function;
/**
* Azure Storage Service interface
@@ -42,19 +42,19 @@ public interface AzureStorageService {
final class Storage {
public static final String PREFIX = "cloud.azure.storage.";
public static final Setting<TimeValue> TIMEOUT_SETTING =
- Setting.timeSetting("cloud.azure.storage.timeout", TimeValue.timeValueMinutes(5), false, Setting.Scope.CLUSTER);
+ Setting.timeSetting("cloud.azure.storage.timeout", TimeValue.timeValueMinutes(5), false, SettingsProperty.ClusterScope);
public static final Setting<String> ACCOUNT_SETTING =
- Setting.simpleString("repositories.azure.account", false, Setting.Scope.CLUSTER, true);
+ Setting.simpleString("repositories.azure.account", false, SettingsProperty.ClusterScope, SettingsProperty.Filtered);
public static final Setting<String> CONTAINER_SETTING =
- Setting.simpleString("repositories.azure.container", false, Setting.Scope.CLUSTER);
+ Setting.simpleString("repositories.azure.container", false, SettingsProperty.ClusterScope);
public static final Setting<String> BASE_PATH_SETTING =
- Setting.simpleString("repositories.azure.base_path", false, Setting.Scope.CLUSTER);
+ Setting.simpleString("repositories.azure.base_path", false, SettingsProperty.ClusterScope);
public static final Setting<String> LOCATION_MODE_SETTING =
- Setting.simpleString("repositories.azure.location_mode", false, Setting.Scope.CLUSTER);
+ Setting.simpleString("repositories.azure.location_mode", false, SettingsProperty.ClusterScope);
public static final Setting<ByteSizeValue> CHUNK_SIZE_SETTING =
- Setting.byteSizeSetting("repositories.azure.chunk_size", new ByteSizeValue(-1), false, Setting.Scope.CLUSTER);
+ Setting.byteSizeSetting("repositories.azure.chunk_size", new ByteSizeValue(-1), false, SettingsProperty.ClusterScope);
public static final Setting<Boolean> COMPRESS_SETTING =
- Setting.boolSetting("repositories.azure.compress", false, false, Setting.Scope.CLUSTER);
+ Setting.boolSetting("repositories.azure.compress", false, false, SettingsProperty.ClusterScope);
}
boolean doesContainerExist(String account, LocationMode mode, String container);
diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java
index f2773bccbb..013007a84a 100644
--- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java
+++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java
@@ -30,6 +30,7 @@ import org.elasticsearch.common.blobstore.BlobPath;
import org.elasticsearch.common.blobstore.BlobStore;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Setting;
+import org.elasticsearch.common.settings.Setting.SettingsProperty;
import org.elasticsearch.common.settings.SettingsException;
import org.elasticsearch.common.unit.ByteSizeUnit;
import org.elasticsearch.common.unit.ByteSizeValue;
@@ -67,12 +68,17 @@ public class AzureRepository extends BlobStoreRepository {
public final static String TYPE = "azure";
public static final class Repository {
- public static final Setting<String> ACCOUNT_SETTING = Setting.simpleString("account", false, Setting.Scope.CLUSTER);
- public static final Setting<String> CONTAINER_SETTING = new Setting<>("container", "elasticsearch-snapshots", Function.identity(), false, Setting.Scope.CLUSTER);
- public static final Setting<String> BASE_PATH_SETTING = Setting.simpleString("base_path", false, Setting.Scope.CLUSTER);
- public static final Setting<String> LOCATION_MODE_SETTING = Setting.simpleString("location_mode", false, Setting.Scope.CLUSTER);
- public static final Setting<ByteSizeValue> CHUNK_SIZE_SETTING = Setting.byteSizeSetting("chunk_size", MAX_CHUNK_SIZE, false, Setting.Scope.CLUSTER);
- public static final Setting<Boolean> COMPRESS_SETTING = Setting.boolSetting("compress", false, false, Setting.Scope.CLUSTER);
+ public static final Setting<String> ACCOUNT_SETTING =
+ Setting.simpleString("account", false, SettingsProperty.ClusterScope);
+ public static final Setting<String> CONTAINER_SETTING =
+ new Setting<>("container", "elasticsearch-snapshots", Function.identity(), false, SettingsProperty.ClusterScope);
+ public static final Setting<String> BASE_PATH_SETTING = Setting.simpleString("base_path", false, SettingsProperty.ClusterScope);
+ public static final Setting<String> LOCATION_MODE_SETTING =
+ Setting.simpleString("location_mode", false, SettingsProperty.ClusterScope);
+ public static final Setting<ByteSizeValue> CHUNK_SIZE_SETTING =
+ Setting.byteSizeSetting("chunk_size", MAX_CHUNK_SIZE, false, SettingsProperty.ClusterScope);
+ public static final Setting<Boolean> COMPRESS_SETTING =
+ Setting.boolSetting("compress", false, false, SettingsProperty.ClusterScope);
}
private final AzureBlobStore blobStore;