Register group setting for repository-azure accounts
Since the Settings infrastructure has been improved, a group setting must be registered by the repository-azure plugin to allow settings like "cloud.azure.storage.my_account.account" to be coherent with Azure plugin documentation.
This commit is contained in:
parent
d3cd58eb2f
commit
59762fe487
|
@ -40,3 +40,11 @@ thirdPartyAudit.excludes = [
|
||||||
'org.slf4j.Logger',
|
'org.slf4j.Logger',
|
||||||
'org.slf4j.LoggerFactory',
|
'org.slf4j.LoggerFactory',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
integTest {
|
||||||
|
cluster {
|
||||||
|
setting 'cloud.azure.storage.my_account_test.account', 'cloudazureresource'
|
||||||
|
setting 'cloud.azure.storage.my_account_test.key', 'abcdefgh'
|
||||||
|
setting 'script.stored', 'true'
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,6 +25,7 @@ import com.microsoft.azure.storage.StorageException;
|
||||||
import org.elasticsearch.common.blobstore.BlobMetaData;
|
import org.elasticsearch.common.blobstore.BlobMetaData;
|
||||||
import org.elasticsearch.common.settings.Setting;
|
import org.elasticsearch.common.settings.Setting;
|
||||||
import org.elasticsearch.common.settings.Setting.Property;
|
import org.elasticsearch.common.settings.Setting.Property;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.unit.ByteSizeValue;
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
|
|
||||||
|
@ -42,6 +43,9 @@ public interface AzureStorageService {
|
||||||
|
|
||||||
final class Storage {
|
final class Storage {
|
||||||
public static final String PREFIX = "cloud.azure.storage.";
|
public static final String PREFIX = "cloud.azure.storage.";
|
||||||
|
|
||||||
|
public static final Setting<Settings> STORAGE_ACCOUNTS = Setting.groupSetting(Storage.PREFIX, Setting.Property.NodeScope);
|
||||||
|
|
||||||
public static final Setting<TimeValue> TIMEOUT_SETTING =
|
public static final Setting<TimeValue> TIMEOUT_SETTING =
|
||||||
Setting.timeSetting("cloud.azure.storage.timeout", TimeValue.timeValueMinutes(-1), Property.NodeScope);
|
Setting.timeSetting("cloud.azure.storage.timeout", TimeValue.timeValueMinutes(-1), Property.NodeScope);
|
||||||
public static final Setting<String> ACCOUNT_SETTING =
|
public static final Setting<String> ACCOUNT_SETTING =
|
||||||
|
|
|
@ -112,9 +112,8 @@ public final class AzureStorageSettings {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<AzureStorageSettings> createStorageSettings(Settings settings) {
|
private static List<AzureStorageSettings> createStorageSettings(Settings settings) {
|
||||||
Setting<Settings> storageGroupSetting = Setting.groupSetting(Storage.PREFIX, Setting.Property.NodeScope);
|
|
||||||
// ignore global timeout which has the same prefix but does not belong to any group
|
// ignore global timeout which has the same prefix but does not belong to any group
|
||||||
Settings groups = storageGroupSetting.get(settings.filter((k) -> k.equals(Storage.TIMEOUT_SETTING.getKey()) == false));
|
Settings groups = Storage.STORAGE_ACCOUNTS.get(settings.filter((k) -> k.equals(Storage.TIMEOUT_SETTING.getKey()) == false));
|
||||||
List<AzureStorageSettings> storageSettings = new ArrayList<>();
|
List<AzureStorageSettings> storageSettings = new ArrayList<>();
|
||||||
for (String groupName : groups.getAsGroups().keySet()) {
|
for (String groupName : groups.getAsGroups().keySet()) {
|
||||||
storageSettings.add(
|
storageSettings.add(
|
||||||
|
|
|
@ -26,7 +26,6 @@ import org.elasticsearch.common.logging.ESLogger;
|
||||||
import org.elasticsearch.common.logging.Loggers;
|
import org.elasticsearch.common.logging.Loggers;
|
||||||
import org.elasticsearch.common.settings.Setting;
|
import org.elasticsearch.common.settings.Setting;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.settings.SettingsModule;
|
|
||||||
import org.elasticsearch.index.snapshots.blobstore.BlobStoreIndexShardRepository;
|
import org.elasticsearch.index.snapshots.blobstore.BlobStoreIndexShardRepository;
|
||||||
import org.elasticsearch.plugins.Plugin;
|
import org.elasticsearch.plugins.Plugin;
|
||||||
import org.elasticsearch.repositories.RepositoriesModule;
|
import org.elasticsearch.repositories.RepositoriesModule;
|
||||||
|
@ -62,13 +61,13 @@ public class AzureRepositoryPlugin extends Plugin {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Setting<?>> getSettings() {
|
public List<Setting<?>> getSettings() {
|
||||||
return Arrays.asList(AzureStorageService.Storage.ACCOUNT_SETTING,
|
return Arrays.asList(AzureStorageService.Storage.STORAGE_ACCOUNTS,
|
||||||
AzureStorageService.Storage.COMPRESS_SETTING,
|
AzureStorageService.Storage.ACCOUNT_SETTING,
|
||||||
AzureStorageService.Storage.CONTAINER_SETTING,
|
AzureStorageService.Storage.COMPRESS_SETTING,
|
||||||
AzureStorageService.Storage.BASE_PATH_SETTING,
|
AzureStorageService.Storage.CONTAINER_SETTING,
|
||||||
AzureStorageService.Storage.CHUNK_SIZE_SETTING,
|
AzureStorageService.Storage.BASE_PATH_SETTING,
|
||||||
AzureStorageService.Storage.LOCATION_MODE_SETTING);
|
AzureStorageService.Storage.CHUNK_SIZE_SETTING,
|
||||||
|
AzureStorageService.Storage.LOCATION_MODE_SETTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
"Repository can be registered":
|
||||||
|
- do:
|
||||||
|
snapshot.create_repository:
|
||||||
|
repository: test_repo_azure
|
||||||
|
verify: false
|
||||||
|
body:
|
||||||
|
type: azure
|
||||||
|
settings:
|
||||||
|
account : "my_test_account"
|
||||||
|
container : "backup-container"
|
||||||
|
base_path : "backups"
|
||||||
|
chunk_size: "32m"
|
||||||
|
compress : true
|
||||||
|
|
||||||
|
- is_true: acknowledged
|
||||||
|
|
||||||
|
- do:
|
||||||
|
snapshot.get_repository:
|
||||||
|
repository: test_repo_azure
|
||||||
|
|
||||||
|
- is_true : test_repo_azure
|
||||||
|
- match : { test_repo_azure.settings.account : "my_test_account" }
|
||||||
|
- match : { test_repo_azure.settings.container : "backup-container" }
|
||||||
|
- match : { test_repo_azure.settings.base_path : "backups" }
|
||||||
|
- match : { test_repo_azure.settings.chunk_size: "32m" }
|
||||||
|
- match : { test_repo_azure.settings.compress : "true" }
|
Loading…
Reference in New Issue