if (!instanceConfig.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instance))) { long disabledTime = instanceConfig.getInstanceEnabledTime(); if (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances() .containsKey(instance)) { long batchDisableTime = Long.parseLong(clusterConfig.getDisabledInstances().get(instance)); if (disabledTime == -1 || disabledTime > batchDisableTime) { disabledTime = batchDisableTime;
if (!instanceConfig.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instance))) { long disabledTime = instanceConfig.getInstanceEnabledTime(); if (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances() .containsKey(instance)) { long batchDisableTime = Long.parseLong(clusterConfig.getDisabledInstances().get(instance)); if (disabledTime == -1 || disabledTime > batchDisableTime) { disabledTime = batchDisableTime;
@Override public Map<String, String> getBatchDisabledInstances(String clusterName) { ConfigAccessor accessor = new ConfigAccessor(_zkClient); return accessor.getClusterConfig(clusterName).getDisabledInstances(); }
@Override public ZNRecord update(ZNRecord currentData) { if (currentData == null) { throw new HelixException("Cluster: " + clusterName + ": cluster config is null"); } ClusterConfig clusterConfig = new ClusterConfig(currentData); Map<String, String> disabledInstances = new TreeMap<>(); if (clusterConfig.getDisabledInstances() != null) { disabledInstances.putAll(clusterConfig.getDisabledInstances()); } if (enabled) { disabledInstances.keySet().removeAll(instances); } else { for (String disabledInstance : instances) { if (!disabledInstances.containsKey(disabledInstance)) { disabledInstances.put(disabledInstance, String.valueOf(System.currentTimeMillis())); } } } clusterConfig.setDisabledInstances(disabledInstances); return clusterConfig.getRecord(); } }, AccessOption.PERSISTENT);
@Override public ZNRecord update(ZNRecord currentData) { if (currentData == null) { throw new HelixException("Cluster: " + clusterName + ": cluster config is null"); } ClusterConfig clusterConfig = new ClusterConfig(currentData); Map<String, String> disabledInstances = new TreeMap<>(); if (clusterConfig.getDisabledInstances() != null) { disabledInstances.putAll(clusterConfig.getDisabledInstances()); } if (enabled) { disabledInstances.keySet().removeAll(instances); } else { for (String disabledInstance : instances) { if (!disabledInstances.containsKey(disabledInstance)) { disabledInstances.put(disabledInstance, String.valueOf(System.currentTimeMillis())); } } } clusterConfig.setDisabledInstances(disabledInstances); return clusterConfig.getRecord(); } }, AccessOption.PERSISTENT);
@Override public Map<String, String> getBatchDisabledInstances(String clusterName) { ConfigAccessor accessor = new ConfigAccessor(_zkClient); return accessor.getClusterConfig(clusterName).getDisabledInstances(); }
private void updateDisabledInstances() { // Move the calculating disabled instances to refresh _disabledInstanceForPartitionMap.clear(); _disabledInstanceSet.clear(); for (InstanceConfig config : _instanceConfigMap.values()) { Map<String, List<String>> disabledPartitionMap = config.getDisabledPartitionsMap(); if (!config.getInstanceEnabled()) { _disabledInstanceSet.add(config.getInstanceName()); } for (String resource : disabledPartitionMap.keySet()) { if (!_disabledInstanceForPartitionMap.containsKey(resource)) { _disabledInstanceForPartitionMap.put(resource, new HashMap<String, Set<String>>()); } for (String partition : disabledPartitionMap.get(resource)) { if (!_disabledInstanceForPartitionMap.get(resource).containsKey(partition)) { _disabledInstanceForPartitionMap.get(resource).put(partition, new HashSet<String>()); } _disabledInstanceForPartitionMap.get(resource).get(partition) .add(config.getInstanceName()); } } } if (_clusterConfig.getDisabledInstances() != null) { _disabledInstanceSet.addAll(_clusterConfig.getDisabledInstances().keySet()); } }
private void updateDisabledInstances() { // Move the calculating disabled instances to refresh _disabledInstanceForPartitionMap.clear(); _disabledInstanceSet.clear(); for (InstanceConfig config : _instanceConfigMap.values()) { Map<String, List<String>> disabledPartitionMap = config.getDisabledPartitionsMap(); if (!config.getInstanceEnabled()) { _disabledInstanceSet.add(config.getInstanceName()); } for (String resource : disabledPartitionMap.keySet()) { if (!_disabledInstanceForPartitionMap.containsKey(resource)) { _disabledInstanceForPartitionMap.put(resource, new HashMap<String, Set<String>>()); } for (String partition : disabledPartitionMap.get(resource)) { if (!_disabledInstanceForPartitionMap.get(resource).containsKey(partition)) { _disabledInstanceForPartitionMap.get(resource).put(partition, new HashSet<String>()); } _disabledInstanceForPartitionMap.get(resource).get(partition) .add(config.getInstanceName()); } } } if (_clusterConfig.getDisabledInstances() != null) { _disabledInstanceSet.addAll(_clusterConfig.getDisabledInstances().keySet()); } }
liveInstanceSet.add(instanceName); if (!config.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instanceName))) { disabledInstanceSet.add(instanceName);
liveInstanceSet.add(instanceName); if (!config.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instanceName))) { disabledInstanceSet.add(instanceName);
String domain = insConfig.getDomain(); if (domain == null) { if (insConfig.getInstanceEnabled() && (_clusterConfig.getDisabledInstances() == null || !_clusterConfig.getDisabledInstances().containsKey(ins))) {
if (insConfig.getInstanceEnabled() && (_clusterConfig.getDisabledInstances() == null || !_clusterConfig.getDisabledInstances().containsKey(ins))) {
if (zone == null) { if (config.getInstanceEnabled() && (_clusterConfig.getDisabledInstances() == null || !_clusterConfig.getDisabledInstances().containsKey(ins))) {
if (zone == null) { if (config.getInstanceEnabled() && (_clusterConfig.getDisabledInstances() == null || !_clusterConfig.getDisabledInstances().containsKey(ins))) {
public void dropInstanceFromCluster(String clusterName, String instanceId) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); InstanceConfig instanceConfig = InstanceConfig.toInstanceConfig(instanceId); instanceId = instanceConfig.getInstanceName(); // ensure node is not live LiveInstance liveInstance = accessor.getProperty(keyBuilder.liveInstance(instanceId)); if (liveInstance != null) { throw new HelixException(String .format("Cannot drop instance %s as it is still live. Please stop it first", instanceId)); } InstanceConfig config = accessor.getProperty(keyBuilder.instanceConfig(instanceId)); if (config == null) { String error = "Node " + instanceId + " does not exist, cannot drop"; _logger.warn(error); throw new HelixException(error); } ClusterConfig clusterConfig = accessor.getProperty(keyBuilder.clusterConfig()); // ensure node is disabled, otherwise fail if (config.getInstanceEnabled() && (clusterConfig.getDisabledInstances() == null || !clusterConfig.getDisabledInstances().containsKey(instanceId))) { String error = "Node " + instanceId + " is enabled, cannot drop"; _logger.warn(error); throw new HelixException(error); } _admin.dropInstance(clusterName, config); }
public void dropInstanceFromCluster(String clusterName, String instanceId) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); InstanceConfig instanceConfig = InstanceConfig.toInstanceConfig(instanceId); instanceId = instanceConfig.getInstanceName(); // ensure node is not live LiveInstance liveInstance = accessor.getProperty(keyBuilder.liveInstance(instanceId)); if (liveInstance != null) { throw new HelixException(String .format("Cannot drop instance %s as it is still live. Please stop it first", instanceId)); } InstanceConfig config = accessor.getProperty(keyBuilder.instanceConfig(instanceId)); if (config == null) { String error = "Node " + instanceId + " does not exist, cannot drop"; _logger.warn(error); throw new HelixException(error); } ClusterConfig clusterConfig = accessor.getProperty(keyBuilder.clusterConfig()); // ensure node is disabled, otherwise fail if (config.getInstanceEnabled() && (clusterConfig.getDisabledInstances() == null || !clusterConfig.getDisabledInstances().containsKey(instanceId))) { String error = "Node " + instanceId + " is enabled, cannot drop"; _logger.warn(error); throw new HelixException(error); } _admin.dropInstance(clusterName, config); }
accessor.getProperty(accessor.keyBuilder().instanceConfig(instanceName)); if (instanceConfig != null) { if (!instanceConfig.getInstanceEnabled() || (clusterConfig.getDisabledInstances() != null && clusterConfig.getDisabledInstances().containsKey(instanceName))) { disabledNode.add(JsonNodeFactory.instance.textNode(instanceName));