Migrate gateway settings to the new settings API.
This commit is contained in:
parent
fa4e6020cd
commit
ac174aabb0
|
@ -38,6 +38,7 @@ import org.elasticsearch.common.logging.ESLoggerFactory;
|
|||
import org.elasticsearch.discovery.DiscoverySettings;
|
||||
import org.elasticsearch.discovery.zen.ZenDiscovery;
|
||||
import org.elasticsearch.discovery.zen.elect.ElectMasterService;
|
||||
import org.elasticsearch.gateway.GatewayService;
|
||||
import org.elasticsearch.gateway.PrimaryShardAllocator;
|
||||
import org.elasticsearch.index.IndexSettings;
|
||||
import org.elasticsearch.index.store.IndexStoreConfig;
|
||||
|
@ -140,6 +141,13 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
|||
DiscoverySettings.PUBLISH_DIFF_ENABLE_SETTING,
|
||||
DiscoverySettings.COMMIT_TIMEOUT_SETTING,
|
||||
DiscoverySettings.NO_MASTER_BLOCK_SETTING,
|
||||
GatewayService.EXPECTED_DATA_NODES_SETTING,
|
||||
GatewayService.EXPECTED_MASTER_NODES_SETTING,
|
||||
GatewayService.EXPECTED_NODES_SETTING,
|
||||
GatewayService.RECOVER_AFTER_DATA_NODES_SETTING,
|
||||
GatewayService.RECOVER_AFTER_MASTER_NODES_SETTING,
|
||||
GatewayService.RECOVER_AFTER_NODES_SETTING,
|
||||
GatewayService.RECOVER_AFTER_TIME_SETTING,
|
||||
HierarchyCircuitBreakerService.TOTAL_CIRCUIT_BREAKER_LIMIT_SETTING,
|
||||
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_LIMIT_SETTING,
|
||||
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_OVERHEAD_SETTING,
|
||||
|
|
|
@ -36,6 +36,7 @@ import org.elasticsearch.cluster.routing.allocation.AllocationService;
|
|||
import org.elasticsearch.cluster.routing.allocation.RoutingAllocation;
|
||||
import org.elasticsearch.common.component.AbstractLifecycleComponent;
|
||||
import org.elasticsearch.common.inject.Inject;
|
||||
import org.elasticsearch.common.settings.Setting;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.discovery.DiscoveryService;
|
||||
|
@ -49,6 +50,21 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
*/
|
||||
public class GatewayService extends AbstractLifecycleComponent<GatewayService> implements ClusterStateListener {
|
||||
|
||||
public static final Setting<Integer> EXPECTED_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.expected_nodes", -1, -1, false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<Integer> EXPECTED_DATA_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.expected_data_nodes", -1, -1, false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<Integer> EXPECTED_MASTER_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.expected_master_nodes", -1, -1, false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<TimeValue> RECOVER_AFTER_TIME_SETTING = Setting.positiveTimeSetting(
|
||||
"gateway.recover_after_time", TimeValue.timeValueMillis(0), false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<Integer> RECOVER_AFTER_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.recover_after_nodes", -1, -1, false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<Integer> RECOVER_AFTER_DATA_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.recover_after_data_nodes", -1, -1, false, Setting.Scope.CLUSTER);
|
||||
public static final Setting<Integer> RECOVER_AFTER_MASTER_NODES_SETTING = Setting.intSetting(
|
||||
"gateway.recover_after_master_nodes", 0, 0, false, Setting.Scope.CLUSTER);
|
||||
|
||||
public static final ClusterBlock STATE_NOT_RECOVERED_BLOCK = new ClusterBlock(1, "state not recovered / initialized", true, true, RestStatus.SERVICE_UNAVAILABLE, ClusterBlockLevel.ALL);
|
||||
|
||||
public static final TimeValue DEFAULT_RECOVER_AFTER_TIME_IF_EXPECTED_NODES_IS_SET = TimeValue.timeValueMinutes(5);
|
||||
|
@ -84,20 +100,26 @@ public class GatewayService extends AbstractLifecycleComponent<GatewayService> i
|
|||
this.discoveryService = discoveryService;
|
||||
this.threadPool = threadPool;
|
||||
// allow to control a delay of when indices will get created
|
||||
this.expectedNodes = this.settings.getAsInt("gateway.expected_nodes", -1);
|
||||
this.expectedDataNodes = this.settings.getAsInt("gateway.expected_data_nodes", -1);
|
||||
this.expectedMasterNodes = this.settings.getAsInt("gateway.expected_master_nodes", -1);
|
||||
this.expectedNodes = EXPECTED_NODES_SETTING.get(this.settings);
|
||||
this.expectedDataNodes = EXPECTED_DATA_NODES_SETTING.get(this.settings);
|
||||
this.expectedMasterNodes = EXPECTED_MASTER_NODES_SETTING.get(this.settings);
|
||||
|
||||
TimeValue defaultRecoverAfterTime = null;
|
||||
if (expectedNodes >= 0 || expectedDataNodes >= 0 || expectedMasterNodes >= 0) {
|
||||
defaultRecoverAfterTime = DEFAULT_RECOVER_AFTER_TIME_IF_EXPECTED_NODES_IS_SET;
|
||||
if (RECOVER_AFTER_TIME_SETTING.exists(this.settings)) {
|
||||
recoverAfterTime = RECOVER_AFTER_TIME_SETTING.get(this.settings);
|
||||
} else if (expectedNodes >= 0 || expectedDataNodes >= 0 || expectedMasterNodes >= 0) {
|
||||
recoverAfterTime = DEFAULT_RECOVER_AFTER_TIME_IF_EXPECTED_NODES_IS_SET;
|
||||
} else {
|
||||
recoverAfterTime = null;
|
||||
}
|
||||
|
||||
this.recoverAfterTime = this.settings.getAsTime("gateway.recover_after_time", defaultRecoverAfterTime);
|
||||
this.recoverAfterNodes = this.settings.getAsInt("gateway.recover_after_nodes", -1);
|
||||
this.recoverAfterDataNodes = this.settings.getAsInt("gateway.recover_after_data_nodes", -1);
|
||||
this.recoverAfterNodes = RECOVER_AFTER_NODES_SETTING.get(this.settings);
|
||||
this.recoverAfterDataNodes = RECOVER_AFTER_DATA_NODES_SETTING.get(this.settings);
|
||||
// default the recover after master nodes to the minimum master nodes in the discovery
|
||||
this.recoverAfterMasterNodes = this.settings.getAsInt("gateway.recover_after_master_nodes", settings.getAsInt("discovery.zen.minimum_master_nodes", -1));
|
||||
if (RECOVER_AFTER_MASTER_NODES_SETTING.exists(this.settings)) {
|
||||
recoverAfterMasterNodes = RECOVER_AFTER_MASTER_NODES_SETTING.get(this.settings);
|
||||
} else {
|
||||
// TODO: change me once the minimum_master_nodes is changed too
|
||||
recoverAfterMasterNodes = settings.getAsInt("discovery.zen.minimum_master_nodes", -1);
|
||||
}
|
||||
|
||||
// Add the not recovered as initial state block, we don't allow anything until
|
||||
this.clusterService.addInitialStateBlock(STATE_NOT_RECOVERED_BLOCK);
|
||||
|
|
Loading…
Reference in New Issue