public class org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER;
private static final java.util.concurrent.ExecutorService POOL;
private static final java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_ERROR_TOTAL;
private static final java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_DURATION;
public static final java.lang.String ALL_HEALTH_CHECK_NONBLOCK;
private final org.apache.helix.ConfigAccessor _configAccessor;
private final org.apache.helix.rest.client.CustomRestClient _customRestClient;
private final java.lang.String _namespace;
private final boolean _skipZKRead;
private final org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor;
private final java.util.Set _nonBlockingHealthChecks;
public void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor, org.apache.helix.ConfigAccessor, boolean, java.lang.String)
{
org.apache.helix.ConfigAccessor v;
org.apache.helix.manager.zk.ZKHelixDataAccessor v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Set v;
java.lang.String v;
org.apache.helix.rest.client.CustomRestClient v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: org.apache.helix.manager.zk.ZKHelixDataAccessor;
v := @parameter: org.apache.helix.ConfigAccessor;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.helix.rest.client.CustomRestClientFactory: org.apache.helix.rest.client.CustomRestClient get()>();
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor,org.apache.helix.ConfigAccessor,org.apache.helix.rest.client.CustomRestClient,boolean,java.util.Set,java.lang.String)>(v, v, v, v, v, v);
return;
}
public void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor, org.apache.helix.ConfigAccessor, boolean, java.util.Set, java.lang.String)
{
org.apache.helix.ConfigAccessor v;
org.apache.helix.manager.zk.ZKHelixDataAccessor v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Set v;
java.lang.String v;
org.apache.helix.rest.client.CustomRestClient v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: org.apache.helix.manager.zk.ZKHelixDataAccessor;
v := @parameter: org.apache.helix.ConfigAccessor;
v := @parameter: boolean;
v := @parameter: java.util.Set;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.helix.rest.client.CustomRestClientFactory: org.apache.helix.rest.client.CustomRestClient get()>();
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor,org.apache.helix.ConfigAccessor,org.apache.helix.rest.client.CustomRestClient,boolean,java.util.Set,java.lang.String)>(v, v, v, v, v, v);
return;
}
public void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor, org.apache.helix.ConfigAccessor, boolean, boolean, java.lang.String)
{
org.apache.helix.manager.zk.ZKHelixDataAccessor v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Set v;
org.apache.helix.ConfigAccessor v;
java.lang.String v;
org.apache.helix.rest.client.CustomRestClient v;
boolean v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: org.apache.helix.manager.zk.ZKHelixDataAccessor;
v := @parameter: org.apache.helix.ConfigAccessor;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.helix.rest.client.CustomRestClientFactory: org.apache.helix.rest.client.CustomRestClient get()>();
if v == 0 goto label;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>("allHealthCheckNonBlock");
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
label:
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor,org.apache.helix.ConfigAccessor,org.apache.helix.rest.client.CustomRestClient,boolean,java.util.Set,java.lang.String)>(v, v, v, v, v, v);
return;
}
void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor, org.apache.helix.ConfigAccessor, org.apache.helix.rest.client.CustomRestClient, boolean, java.util.Set, java.lang.String)
{
org.apache.helix.manager.zk.ZKHelixDataAccessor v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Set v;
org.apache.helix.rest.common.HelixDataAccessorWrapper v;
org.apache.helix.ConfigAccessor v;
java.lang.String v;
org.apache.helix.rest.client.CustomRestClient v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: org.apache.helix.manager.zk.ZKHelixDataAccessor;
v := @parameter: org.apache.helix.ConfigAccessor;
v := @parameter: org.apache.helix.rest.client.CustomRestClient;
v := @parameter: boolean;
v := @parameter: java.util.Set;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.helix.rest.common.HelixDataAccessorWrapper;
specialinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: void <init>(org.apache.helix.manager.zk.ZKHelixDataAccessor,org.apache.helix.rest.client.CustomRestClient,java.lang.String)>(v, v, v);
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor> = v;
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.ConfigAccessor _configAccessor> = v;
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.client.CustomRestClient _customRestClient> = v;
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: boolean _skipZKRead> = v;
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Set _nonBlockingHealthChecks> = v;
v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String _namespace> = v;
return;
}
public org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo takeInstance(java.lang.String, java.lang.String, java.util.List, java.util.Map, java.util.List, java.util.Map, boolean) throws java.io.IOException
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.List v, v;
java.util.Map v, v;
java.lang.String v, v;
boolean v, v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: boolean;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus FAILURE>;
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void <init>(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus)>(v);
virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void addMessage(java.lang.String)>("Invalid input. Please provide at least one health check or operation.");
return v;
label:
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo takeFreeSingleInstanceHelper(java.lang.String,java.lang.String,java.util.List,java.util.Map,java.util.List,java.util.Map,boolean,boolean)>(v, v, v, v, v, v, v, 1);
return v;
}
public java.util.Map takeInstances(java.lang.String, java.util.List, java.util.List, java.util.Map, java.util.List, java.util.Map, boolean) throws java.io.IOException
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.List v, v, v;
java.util.Map v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: boolean;
return null;
}
public org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo freeInstance(java.lang.String, java.lang.String, java.util.List, java.util.Map, java.util.List, java.util.Map, boolean) throws java.io.IOException
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.List v, v;
java.util.Map v, v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo takeFreeSingleInstanceHelper(java.lang.String,java.lang.String,java.util.List,java.util.Map,java.util.List,java.util.Map,boolean,boolean)>(v, v, v, v, v, v, v, 0);
return v;
}
public java.util.Map freeInstances(java.lang.String, java.util.List, java.util.List, java.util.Map, java.util.List, java.util.Map, boolean) throws java.io.IOException
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.List v, v, v;
java.util.Map v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: boolean;
return null;
}
public org.apache.helix.rest.server.json.instance.InstanceInfo getInstanceHealthInfo(java.lang.String, java.lang.String, java.util.List)
{
org.apache.helix.PropertyKey v, v, v, v;
java.util.Map v, v, v;
boolean v;
java.util.Set v;
org.apache.helix.rest.common.HelixDataAccessorWrapper v, v, v, v, v, v, v, v;
org.apache.helix.zookeeper.datamodel.ZNRecord v, v;
java.util.List v, v;
java.lang.Throwable v;
java.lang.Object[] v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.PropertyKey$Builder v, v, v, v;
org.apache.helix.rest.server.json.instance.InstanceInfo$Builder v;
java.util.ArrayList v;
org.apache.helix.HelixProperty v, v, v;
org.apache.helix.rest.server.json.instance.InstanceInfo v;
java.lang.String v, v, v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v = new org.apache.helix.rest.server.json.instance.InstanceInfo$Builder;
specialinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: void <init>(java.lang.String)>(v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.PropertyKey$Builder keyBuilder()>();
v = virtualinvoke v.<org.apache.helix.PropertyKey$Builder: org.apache.helix.PropertyKey instanceConfig(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.HelixProperty getProperty(org.apache.helix.PropertyKey)>(v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.PropertyKey$Builder keyBuilder()>();
v = virtualinvoke v.<org.apache.helix.PropertyKey$Builder: org.apache.helix.PropertyKey liveInstance(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.HelixProperty getProperty(org.apache.helix.PropertyKey)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.helix.model.InstanceConfig: org.apache.helix.zookeeper.datamodel.ZNRecord getRecord()>();
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder instanceConfig(org.apache.helix.zookeeper.datamodel.ZNRecord)>(v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Missing instance config for {}", v);
label:
if v == null goto label;
v = virtualinvoke v.<org.apache.helix.model.LiveInstance: org.apache.helix.zookeeper.datamodel.ZNRecord getRecord()>();
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder liveInstance(org.apache.helix.zookeeper.datamodel.ZNRecord)>(v);
v = virtualinvoke v.<org.apache.helix.model.LiveInstance: java.lang.String getEphemeralOwner()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.PropertyKey$Builder keyBuilder()>();
v = virtualinvoke v.<org.apache.helix.PropertyKey$Builder: org.apache.helix.PropertyKey currentStates(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: java.util.List getChildNames(org.apache.helix.PropertyKey)>(v);
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder resources(java.util.List)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.PropertyKey$Builder keyBuilder()>();
v = virtualinvoke v.<org.apache.helix.PropertyKey$Builder: org.apache.helix.PropertyKey currentState(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.HelixProperty getProperty(org.apache.helix.PropertyKey)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.helix.model.CurrentState: java.util.Map getPartitionStateMap()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.helix.model.CurrentState: java.util.Map getPartitionStateMap()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Current state is either null or partitionStateMap is missing. InstanceName: {}, SessionId: {}, ResourceName: {}", v);
goto label;
label:
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder partitions(java.util.List)>(v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Missing live instance for {}", v);
label:
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map getInstanceHealthStatus(java.lang.String,java.lang.String,java.util.List)>(v, v, v);
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder healthStatus(java.util.Map)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Exception while getting health status. Cluster: {}, Instance: {}, reporting health status as unHealth", v);
virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo$Builder healthStatus(boolean)>(0);
label:
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.InstanceInfo$Builder: org.apache.helix.rest.server.json.instance.InstanceInfo build()>();
return v;
catch org.apache.helix.HelixException from label to label with label;
}
private java.util.List getAllOperationClasses(java.util.List)
{
java.lang.Object[] v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.HelixException v;
java.util.ArrayList v;
java.lang.String v, v;
boolean v;
org.slf4j.Logger v, v;
java.util.Iterator v;
java.lang.Exception v;
java.util.List v;
java.lang.Class v, v;
java.lang.Object v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.util.List;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Loading class: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.helix.util.HelixUtil: java.lang.Class loadClass(java.lang.Class,java.lang.String)>(v, v);
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("No operation class found for: {}. message: ", v, v);
v = new org.apache.helix.HelixException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("No operation class found for: %s. message: %s", v);
specialinvoke v.<org.apache.helix.HelixException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
public org.apache.helix.rest.server.json.instance.StoppableCheck getInstanceStoppableCheck(java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException
{
com.google.common.collect.ImmutableList v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <com.google.common.collect.ImmutableList: com.google.common.collect.ImmutableList of(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map batchGetInstancesStoppableChecks(java.lang.String,java.util.List,java.lang.String)>(v, v, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public java.util.Map batchGetInstancesStoppableChecks(java.lang.String, java.util.List, java.lang.String) throws java.io.IOException
{
java.util.List v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Map v;
java.util.HashMap v;
java.lang.String v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List batchHelixInstanceStoppableCheck(java.lang.String,java.util.Collection,java.util.Map)>(v, v, v);
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map getMapFromJsonPayload(java.lang.String)>(v);
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List batchCustomInstanceStoppableCheck(java.lang.String,java.util.List,java.util.Map,java.util.Map)>(v, v, v, v);
return v;
}
private org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo takeFreeSingleInstanceHelper(java.lang.String, java.lang.String, java.util.List, java.util.Map, java.util.List, java.util.Map, boolean, boolean)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo v, v, v, v;
java.util.Map v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus v, v;
org.apache.helix.rest.common.HelixDataAccessorWrapper v, v;
java.lang.Exception v;
java.util.List v, v, v, v, v;
org.apache.helix.rest.common.datamodel.RestSnapShot v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.HashMap v;
org.apache.helix.rest.server.resources.helix.PerInstanceAccessor$PerInstanceProperties v;
java.util.ArrayList v, v;
com.google.common.collect.ImmutableList v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v;
java.util.Iterator v, v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v, v, v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v := @parameter: boolean;
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
label:
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
label:
v = staticinvoke <com.google.common.collect.ImmutableList: com.google.common.collect.ImmutableList of(java.lang.Object)>(v);
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map batchInstanceHealthCheck(java.lang.String,java.util.List,java.util.List,java.util.Map)>(v, v, v, v);
v = new org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus SUCCESS>;
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void <init>(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: boolean isSuccessful()>();
if v != 0 goto label;
label:
return v;
label:
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List getAllOperationClasses(java.util.List)>(v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = <org.apache.helix.rest.clusterMaintenanceService.api.OperationInterface: java.util.List PROPERTY_TYPE_LIST>;
virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: void populateCache(java.util.List)>(v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.rest.common.datamodel.RestSnapShot getRestSnapShot()>();
v = <org.apache.helix.rest.server.resources.helix.PerInstanceAccessor$PerInstanceProperties: org.apache.helix.rest.server.resources.helix.PerInstanceAccessor$PerInstanceProperties continueOnFailures>;
v = virtualinvoke v.<org.apache.helix.rest.server.resources.helix.PerInstanceAccessor$PerInstanceProperties: java.lang.String name()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map getMapFromJsonPayload(java.lang.String)>(v);
label:
v = v;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: boolean getBooleanFromJsonPayload(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.helix.rest.clusterMaintenanceService.api.OperationInterface: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo operationCheckForTakeSingleInstance(java.lang.String,java.util.Map,org.apache.helix.rest.common.datamodel.RestSnapShot)>(v, v, v);
goto label;
label:
v = interfaceinvoke v.<org.apache.helix.rest.clusterMaintenanceService.api.OperationInterface: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo operationCheckForFreeSingleInstance(java.lang.String,java.util.Map,org.apache.helix.rest.common.datamodel.RestSnapShot)>(v, v, v);
label:
virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void mergeResult(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo,boolean)>(v, v);
goto label;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: boolean isSuccessful()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.helix.rest.clusterMaintenanceService.api.OperationInterface: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo operationExecForTakeSingleInstance(java.lang.String,java.util.Map,org.apache.helix.rest.common.datamodel.RestSnapShot)>(v, v, v);
goto label;
label:
v = interfaceinvoke v.<org.apache.helix.rest.clusterMaintenanceService.api.OperationInterface: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo operationExecForFreeSingleInstance(java.lang.String,java.util.Map,org.apache.helix.rest.common.datamodel.RestSnapShot)>(v, v, v);
label:
virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void mergeResult(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo,boolean)>(v, v);
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: boolean isSuccessful()>();
if v != 0 goto label;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Operation failed for {}, skip all following operations.", v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus FAILURE>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void <init>(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus,java.util.List)>(v, v);
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private java.util.List batchHelixInstanceStoppableCheck(java.lang.String, java.util.Collection, java.util.Map)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Collection v;
java.util.function.Function v, v;
java.util.List v;
java.util.stream.Stream v;
java.util.Map v;
java.lang.Object v;
java.lang.String v;
java.util.stream.Collector v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.Collection;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <java.util.function.Function: java.util.function.Function identity()>();
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService$lambda_batchHelixInstanceStoppableCheck_1__5: java.util.function.Function bootstrap$(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService,java.lang.String)>(v, v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List filterInstancesForNextCheck(java.util.Map,java.util.Map)>(v, v);
return v;
}
private java.util.List batchCustomInstanceStoppableCheck(java.lang.String, java.util.List, java.util.Map, java.util.Map)
{
java.lang.Object[] v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.HelixException v;
java.util.function.Function v, v;
java.util.ArrayList v;
java.util.Map v, v, v;
java.lang.String v, v;
java.util.stream.Collector v;
boolean v, v, v, v, v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Set v;
org.apache.helix.ConfigAccessor v;
java.util.List v, v;
java.util.stream.Stream v;
java.lang.Object v, v, v, v;
org.apache.helix.model.RESTConfig v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
return v;
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.ConfigAccessor _configAccessor>;
v = virtualinvoke v.<org.apache.helix.ConfigAccessor: org.apache.helix.model.RESTConfig getRESTConfig(java.lang.String)>(v);
if v != null goto label;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("The cluster %s hasn\'t enabled client side health checks yet, thus the stoppable check result is inaccurate", v);
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new org.apache.helix.HelixException;
specialinvoke v.<org.apache.helix.HelixException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <java.util.function.Function: java.util.function.Function identity()>();
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService$lambda_batchCustomInstanceStoppableCheck_3__6: java.util.function.Function bootstrap$(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService,java.lang.String,org.apache.helix.model.RESTConfig,java.util.Map)>(v, v, v, v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List filterInstancesForNextCheck(java.util.Map,java.util.Map)>(v, v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map performPartitionsCheck(java.util.List,org.apache.helix.model.RESTConfig,java.util.Map)>(v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: void addStoppableCheck(java.util.Map,java.lang.String,org.apache.helix.rest.server.json.instance.StoppableCheck)>(v, v, v);
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: boolean isStoppable()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: boolean isNonBlockingCheck(org.apache.helix.rest.server.json.instance.StoppableCheck)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
return v;
}
private java.util.Map batchInstanceHealthCheck(java.lang.String, java.util.List, java.util.List, java.util.Map)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.HashMap v, v;
java.util.ArrayList v;
java.util.HashSet v;
java.util.Map v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
java.lang.UnsupportedOperationException v;
java.util.Iterator v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus v;
java.util.List v, v, v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.Map;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HelixInstanceStoppableCheck");
if v == 0 goto label;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List batchHelixInstanceStoppableCheck(java.lang.String,java.util.Collection,java.util.Map)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("CustomInstanceStoppableCheck");
if v == 0 goto label;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.List batchCustomInstanceStoppableCheck(java.lang.String,java.util.List,java.util.Map,java.util.Map)>(v, v, v, v);
goto label;
label:
v = new java.lang.UnsupportedOperationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u is not supported yet!");
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus SUCCESS>;
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus FAILURE>;
label:
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void <init>(org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo$OperationalStatus)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: boolean isStoppable()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: java.util.List getFailedChecks()>();
virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementInstanceInfo: void addMessages(java.util.List)>(v);
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
private void addStoppableCheck(java.util.Map, java.lang.String, org.apache.helix.rest.server.json.instance.StoppableCheck)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.Map v;
java.lang.Object v;
java.lang.String v;
org.apache.helix.rest.server.json.instance.StoppableCheck v;
boolean v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String;
v := @parameter: org.apache.helix.rest.server.json.instance.StoppableCheck;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: void add(org.apache.helix.rest.server.json.instance.StoppableCheck)>(v);
label:
return;
}
private java.util.List filterInstancesForNextCheck(java.util.Map, java.util.Map)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.util.ArrayList v;
java.util.Map v, v;
boolean v, v, v, v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Set v;
java.lang.Exception v;
java.lang.Object v, v, v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.util.Map;
v := @parameter: java.util.Map;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.concurrent.Future: java.lang.Object get()>();
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: boolean isStoppable()>();
if v != 0 goto label;
specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: void addStoppableCheck(java.util.Map,java.lang.String,org.apache.helix.rest.server.json.instance.StoppableCheck)>(v, v, v);
label:
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: boolean isStoppable()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: boolean isNonBlockingCheck(org.apache.helix.rest.server.json.instance.StoppableCheck)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to get StoppableChecks in parallel. Instance: {}", v, v);
goto label;
label:
return v;
catch java.lang.InterruptedException from label to label with label;
catch java.util.concurrent.ExecutionException from label to label with label;
}
private boolean isNonBlockingCheck(org.apache.helix.rest.server.json.instance.StoppableCheck)
{
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
java.lang.String[] v;
org.apache.helix.rest.server.json.instance.StoppableCheck v;
java.lang.String v, v;
boolean v, v, v, v, v;
java.util.Iterator v;
java.util.Set v, v, v;
java.util.List v;
java.lang.Object v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: org.apache.helix.rest.server.json.instance.StoppableCheck;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Set _nonBlockingHealthChecks>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
return 0;
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Set _nonBlockingHealthChecks>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>("allHealthCheckNonBlock");
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: java.util.List getFailedChecks()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("CUSTOM_");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String,int)>(":", 3);
v = v[0];
v = v[1];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Set _nonBlockingHealthChecks>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
private org.apache.helix.rest.server.json.instance.StoppableCheck performHelixOwnInstanceCheck(java.lang.String, java.lang.String)
{
org.slf4j.Logger v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.rest.server.json.instance.StoppableCheck$Category v;
org.apache.helix.rest.server.json.instance.StoppableCheck v;
java.util.List v;
java.util.Map v;
java.lang.String v, v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Perform helix own custom health checks for {}/{}", v, v);
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.util.List STOPPABLE_CHECK_LIST>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.Map getInstanceHealthStatus(java.lang.String,java.lang.String,java.util.List)>(v, v, v);
v = new org.apache.helix.rest.server.json.instance.StoppableCheck;
v = <org.apache.helix.rest.server.json.instance.StoppableCheck$Category: org.apache.helix.rest.server.json.instance.StoppableCheck$Category HELIX_OWN_CHECK>;
specialinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: void <init>(java.util.Map,org.apache.helix.rest.server.json.instance.StoppableCheck$Category)>(v, v);
return v;
}
private org.apache.helix.rest.server.json.instance.StoppableCheck performCustomInstanceCheck(java.lang.String, java.lang.String, java.lang.String, java.util.Map)
{
java.lang.Throwable v;
java.lang.Object[] v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.rest.server.json.instance.StoppableCheck$Category v, v;
org.apache.helix.rest.server.json.instance.StoppableCheck v, v;
java.util.Map v, v;
com.codahale.metrics.Counter v;
java.lang.String v, v, v, v, v, v;
org.apache.helix.rest.client.CustomRestClient v;
com.codahale.metrics.Timer$Context v;
com.codahale.metrics.MetricRegistry v;
org.slf4j.Logger v, v;
java.io.IOException v;
java.util.List v;
com.codahale.metrics.Timer v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Perform instance level client side health checks for {}/{}", v, v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String _namespace>;
v = staticinvoke <com.codahale.metrics.SharedMetricRegistries: com.codahale.metrics.MetricRegistry getOrCreate(java.lang.String)>(v);
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_DURATION>;
v = virtualinvoke v.<com.codahale.metrics.MetricRegistry: com.codahale.metrics.Timer timer(java.lang.String)>(v);
v = virtualinvoke v.<com.codahale.metrics.Timer: com.codahale.metrics.Timer$Context time()>();
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.client.CustomRestClient _customRestClient>;
v = interfaceinvoke v.<org.apache.helix.rest.client.CustomRestClient: java.util.Map getInstanceStoppableCheck(java.lang.String,java.util.Map)>(v, v);
v = new org.apache.helix.rest.server.json.instance.StoppableCheck;
v = <org.apache.helix.rest.server.json.instance.StoppableCheck$Category: org.apache.helix.rest.server.json.instance.StoppableCheck$Category CUSTOM_INSTANCE_CHECK>;
specialinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: void <init>(java.util.Map,org.apache.helix.rest.server.json.instance.StoppableCheck$Category)>(v, v);
label:
if v == null goto label;
virtualinvoke v.<com.codahale.metrics.Timer$Context: void close()>();
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Custom client side instance level health check for {}/{} failed.", v);
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_ERROR_TOTAL>;
v = virtualinvoke v.<com.codahale.metrics.MetricRegistry: com.codahale.metrics.Counter counter(java.lang.String)>(v);
virtualinvoke v.<com.codahale.metrics.Counter: void inc()>();
v = new org.apache.helix.rest.server.json.instance.StoppableCheck;
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
v = <org.apache.helix.rest.server.json.instance.StoppableCheck$Category: org.apache.helix.rest.server.json.instance.StoppableCheck$Category CUSTOM_INSTANCE_CHECK>;
specialinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: void <init>(boolean,java.util.List,org.apache.helix.rest.server.json.instance.StoppableCheck$Category)>(0, v, v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
private java.util.Map performPartitionsCheck(java.util.List, org.apache.helix.model.RESTConfig, java.util.Map)
{
org.apache.helix.PropertyKey v;
org.apache.helix.rest.server.json.instance.StoppableCheck v;
java.util.Map v, v, v;
boolean v, v, v, v, v;
java.util.Set v;
org.apache.helix.rest.common.HelixDataAccessorWrapper v, v, v, v;
java.util.List v, v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.rest.server.json.instance.StoppableCheck$Category v;
org.apache.helix.PropertyKey$Builder v;
java.util.HashMap v;
java.util.ArrayList v;
java.lang.String v, v;
java.util.Iterator v, v, v;
java.lang.Object v, v, v, v;
org.apache.helix.model.RESTConfig v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.util.List;
v := @parameter: org.apache.helix.model.RESTConfig;
v := @parameter: java.util.Map;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: boolean _skipZKRead>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: java.util.Map getAllPartitionsHealthOnLiveInstance(org.apache.helix.model.RESTConfig,java.util.Map,boolean)>(v, v, v);
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: org.apache.helix.PropertyKey$Builder keyBuilder()>();
v = virtualinvoke v.<org.apache.helix.PropertyKey$Builder: org.apache.helix.PropertyKey externalViews()>();
v = virtualinvoke v.<org.apache.helix.rest.common.HelixDataAccessorWrapper: java.util.List getChildValues(org.apache.helix.PropertyKey,boolean)>(v, 1);
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: java.util.Map perPartitionHealthCheck(java.util.List,java.util.Map,java.lang.String,org.apache.helix.HelixDataAccessor)>(v, v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.apache.helix.rest.server.json.instance.StoppableCheck;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
v = <org.apache.helix.rest.server.json.instance.StoppableCheck$Category: org.apache.helix.rest.server.json.instance.StoppableCheck$Category CUSTOM_PARTITION_CHECK>;
specialinvoke v.<org.apache.helix.rest.server.json.instance.StoppableCheck: void <init>(boolean,java.util.List,org.apache.helix.rest.server.json.instance.StoppableCheck$Category)>(v, v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
public static java.util.Map getMapFromJsonPayload(java.lang.String) throws java.io.IOException
{
java.util.function.Consumer v;
java.util.Iterator v;
com.fasterxml.jackson.databind.ObjectMapper v;
com.fasterxml.jackson.databind.JsonNode v;
java.util.HashMap v;
java.lang.String v;
v := @parameter: java.lang.String;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
if v != null goto label;
return v;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.JsonNode readTree(java.lang.String)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService$lambda_getMapFromJsonPayload_4__7: java.util.function.Consumer bootstrap$(java.util.Map)>(v);
interfaceinvoke v.<java.util.Iterator: void forEachRemaining(java.util.function.Consumer)>(v);
return v;
}
public static java.util.Map getMapFromJsonPayload(com.fasterxml.jackson.databind.JsonNode) throws java.lang.IllegalArgumentException
{
java.util.function.Consumer v;
java.util.Iterator v;
com.fasterxml.jackson.databind.JsonNode v;
java.util.HashMap v;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
if v == null goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
v = staticinvoke <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService$lambda_getMapFromJsonPayload_5__8: java.util.function.Consumer bootstrap$(java.util.Map)>(v);
interfaceinvoke v.<java.util.Iterator: void forEachRemaining(java.util.function.Consumer)>(v);
label:
return v;
}
public static java.util.List getListFromJsonPayload(com.fasterxml.jackson.databind.JsonNode) throws java.lang.IllegalArgumentException
{
com.fasterxml.jackson.databind.ObjectMapper v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.Object v;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
if v != null goto label;
staticinvoke <java.util.Collections: java.util.List emptyList()>();
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object convertValue(java.lang.Object,java.lang.Class)>(v, class "Ljava/util/List;");
label:
return v;
}
public static java.util.List getListFromJsonPayload(java.lang.String) throws java.lang.IllegalArgumentException, com.fasterxml.jackson.core.JsonProcessingException
{
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.Object v;
java.lang.String v;
v := @parameter: java.lang.String;
if v != null goto label;
staticinvoke <java.util.Collections: java.util.List emptyList()>();
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object readValue(java.lang.String,java.lang.Class)>(v, class "Ljava/util/List;");
label:
return v;
}
public static boolean getBooleanFromJsonPayload(java.lang.String) throws java.lang.IllegalArgumentException, com.fasterxml.jackson.core.JsonProcessingException
{
com.fasterxml.jackson.databind.ObjectMapper v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.JsonNode readTree(java.lang.String)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean asBoolean()>();
return v;
}
protected java.util.Map getInstanceHealthStatus(java.lang.String, java.lang.String, java.util.List)
{
int[] v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.helix.rest.common.HelixDataAccessorWrapper v, v, v, v, v, v, v, v;
java.util.List v;
java.lang.Throwable v;
java.lang.Object[] v;
org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService v;
org.apache.helix.rest.clusterMaintenanceService.HealthCheck v, v, v, v, v, v, v, v;
java.util.HashMap v;
int v, v;
java.lang.Boolean v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService$1: int[] $SwitchMap$org$apache$helix$rest$clusterMaintenanceService$HealthCheck>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
default: goto label;
};
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean hasValidConfig(org.apache.helix.HelixDataAccessor,java.lang.String,java.lang.String)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = 0;
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.apache.helix.HelixException: java.lang.String getMessage()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Cluster {} instance {} doesn\'t have valid config: {}", v);
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck INVALID_CONFIG>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
return v;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck INSTANCE_NOT_ENABLED>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean isEnabled(org.apache.helix.HelixDataAccessor,java.lang.String)>(v, v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck INSTANCE_NOT_ALIVE>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean isAlive(org.apache.helix.HelixDataAccessor,java.lang.String)>(v, v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean isInstanceStable(org.apache.helix.HelixDataAccessor,java.lang.String)>(v, v);
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck INSTANCE_NOT_STABLE>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck HAS_ERROR_PARTITION>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean hasErrorPartitions(org.apache.helix.HelixDataAccessor,java.lang.String,java.lang.String)>(v, v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck HAS_DISABLED_PARTITION>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean hasDisabledPartitions(org.apache.helix.HelixDataAccessor,java.lang.String,java.lang.String)>(v, v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck EMPTY_RESOURCE_ASSIGNMENT>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean hasResourceAssigned(org.apache.helix.HelixDataAccessor,java.lang.String,java.lang.String)>(v, v, v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.HealthCheck: org.apache.helix.rest.clusterMaintenanceService.HealthCheck MIN_ACTIVE_REPLICA_CHECK_FAILED>;
v = virtualinvoke v.<org.apache.helix.rest.clusterMaintenanceService.HealthCheck: java.lang.String name()>();
v = v.<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.apache.helix.rest.common.HelixDataAccessorWrapper _dataAccessor>;
v = staticinvoke <org.apache.helix.util.InstanceValidationUtil: boolean siblingNodesActiveReplicaCheck(org.apache.helix.HelixDataAccessor,java.lang.String)>(v, v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Unsupported health check: {}", v);
goto label;
label:
return v;
catch org.apache.helix.HelixException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.String[] v, v;
java.lang.String v, v;
java.util.concurrent.ExecutorService v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/helix/rest/clusterMaintenanceService/MaintenanceManagementService;");
<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: org.slf4j.Logger LOG> = v;
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER> = v;
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newCachedThreadPool()>();
<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.util.concurrent.ExecutorService POOL> = v;
v = newarray (java.lang.String)[1];
v[0] = "custom_instance_check_http_requests_error_total";
v = staticinvoke <com.codahale.metrics.MetricRegistry: java.lang.String name(java.lang.Class,java.lang.String[])>(class "Lorg/apache/helix/rest/server/service/InstanceService;", v);
<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_ERROR_TOTAL> = v;
v = newarray (java.lang.String)[1];
v[0] = "custom_instance_check_http_requests_duration";
v = staticinvoke <com.codahale.metrics.MetricRegistry: java.lang.String name(java.lang.Class,java.lang.String[])>(class "Lorg/apache/helix/rest/server/service/InstanceService;", v);
<org.apache.helix.rest.clusterMaintenanceService.MaintenanceManagementService: java.lang.String CUSTOM_INSTANCE_CHECK_HTTP_REQUESTS_DURATION> = v;
return;
}
}