LiveInstance controllerLeaderLiveInstance = zkHelixDataAccessor.getProperty(controllerLeaderKey); ControllerInfo controllerInfo = new ControllerInfo(); controllerInfo.leaderName = controllerLeaderLiveInstance.getId();
@Deprecated @Override public <T extends HelixProperty> List<T> getProperty(List<PropertyKey> keys) { return getProperty(keys, false); }
@Deprecated @Override public <T extends HelixProperty> List<T> getProperty(List<PropertyKey> keys) { return getProperty(keys, false); }
private ParticipantHistory getHistory() { PropertyKey propertyKey = _keyBuilder.participantHistory(_instanceName); ParticipantHistory history = _dataAccessor.getProperty(propertyKey); if (history == null) { history = new ParticipantHistory(_instanceName); } return history; }
private ParticipantHistory getHistory() { PropertyKey propertyKey = _keyBuilder.participantHistory(_instanceName); ParticipantHistory history = _dataAccessor.getProperty(propertyKey); if (history == null) { history = new ParticipantHistory(_instanceName); } return history; }
@Override public <T extends HelixProperty> List<T> getProperty(List<PropertyKey> keys) { for (PropertyKey key : keys) { addCount(key); } return super.getProperty(keys); }
@Override public <T extends HelixProperty> T getProperty(PropertyKey key) { addCount(key); return super.getProperty(key); }
@Override public <T extends HelixProperty> List<T> getProperty(List<PropertyKey> keys, boolean throwException) { for (PropertyKey key : keys) { addCount(key); } return super.getProperty(keys, throwException); }
public static String getInstancePropertyAsString(ZkClient zkClient, String clusterName, PropertyKey propertyKey, MediaType mediaType) throws JsonGenerationException, JsonMappingException, IOException { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); ZNRecord records = accessor.getProperty(propertyKey).getRecord(); return ZNRecordToJson(records); }
public static String getPropertyAsString(ZkClient zkClient, String clusterName, PropertyKey propertyKey, MediaType mediaType) throws JsonGenerationException, JsonMappingException, IOException { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); ZNRecord record = EMPTY_ZNRECORD; HelixProperty property = accessor.getProperty(propertyKey); if (property != null) { record = property.getRecord(); } return ObjectToJson(record); }
@Override public boolean verify() { LiveInstance liveInstance = accessor.getProperty(keyBuilder.controllerLeader()); if (liveInstance != null) { // disconnect the current leader manager managerList.remove(liveInstance.getInstanceName()).disconnect(); return true; } else { return false; } } }, 1000));
public static String getClusterPropertyAsString(ZkClient zkClient, String clusterName, MediaType mediaType, PropertyKey propertyKey) throws JsonGenerationException, JsonMappingException, IOException { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); HelixProperty property = accessor.getProperty(propertyKey); ZNRecord record = property == null ? null : property.getRecord(); return ZNRecordToJson(record); }
@Override public boolean verify() { LiveInstance liveInstance = accessor.getProperty(keyBuilder.controllerLeader()); return liveInstance != null && controllerName.equals(liveInstance.getInstanceName()) && manager.getSessionId().equals(liveInstance.getSessionId()); } }, 1000));
public static String getInstanceSessionId(ZkClient zkClient, String clusterName, String instanceName) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); Builder keyBuilder = accessor.keyBuilder(); ZNRecord liveInstance = accessor.getProperty(keyBuilder.liveInstance(instanceName)).getRecord(); return liveInstance.getSimpleField(LiveInstanceProperty.SESSION_ID.toString()); }
@Override public boolean verify() { // Newly created node should have a new creating time but with old session. LiveInstance invalidLeaderNode = accessor.getProperty(keyBuilder.controllerLeader()); // node exist if (invalidLeaderNode == null) return false; // node is newly created if (invalidLeaderNode.getStat().getCreationTime() == originalCreationTime) return false; // node has the same session as the old one, so it's invalid if (!invalidLeaderNode.getSessionId().equals(originalSessionId)) return false; return true; } }, 2000));
@Override public void removeInstanceTag(String clusterName, String instanceName, String tag) { logger.info("Remove instance tag {} for instance {} in cluster {}.", tag, instanceName, clusterName); if (!ZKUtil.isClusterSetup(clusterName, _zkClient)) { throw new HelixException("cluster " + clusterName + " is not setup yet"); } if (!ZKUtil.isInstanceSetup(_zkClient, clusterName, instanceName, InstanceType.PARTICIPANT)) { throw new HelixException( "cluster " + clusterName + " instance " + instanceName + " is not setup yet"); } ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkClient)); Builder keyBuilder = accessor.keyBuilder(); InstanceConfig config = accessor.getProperty(keyBuilder.instanceConfig(instanceName)); config.removeTag(tag); accessor.setProperty(keyBuilder.instanceConfig(instanceName), config); }
protected String getCurrentLeader(HelixZkClient zkClient, String clusterName) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); Builder keyBuilder = accessor.keyBuilder(); LiveInstance leader = accessor.getProperty(keyBuilder.controllerLeader()); if (leader == null) { return null; } return leader.getInstanceName(); }
public void verifyReplication(HelixZkClient zkClient, String clusterName, String resource, int repl) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); Builder keyBuilder = accessor.keyBuilder(); IdealState idealState = accessor.getProperty(keyBuilder.idealStates(resource)); for (String partitionName : idealState.getPartitionSet()) { if (idealState.getRebalanceMode() == IdealState.RebalanceMode.SEMI_AUTO) { AssertJUnit.assertEquals(repl, idealState.getPreferenceList(partitionName).size()); } else if (idealState.getRebalanceMode() == IdealState.RebalanceMode.CUSTOMIZED) { AssertJUnit.assertEquals(repl, idealState.getInstanceStateMap(partitionName).size()); } } }
public void verifyEnabled(HelixZkClient zkClient, String clusterName, String instance, boolean wantEnabled) { ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient)); Builder keyBuilder = accessor.keyBuilder(); InstanceConfig config = accessor.getProperty(keyBuilder.instanceConfig(instance)); AssertJUnit.assertEquals(wantEnabled, config.getInstanceEnabled()); }
private void clearStatusUpdate(String clusterName, String instance, String resource, String partition) { // clear status update for error partition so verify() will not fail on old // errors ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient)); Builder keyBuilder = accessor.keyBuilder(); LiveInstance liveInstance = accessor.getProperty(keyBuilder.liveInstance(instance)); accessor.removeProperty(keyBuilder.stateTransitionStatus(instance, liveInstance.getSessionId(), resource, partition)); } // TODO: throw exception in reset()