org.elasticsearch.cluster.metadata.MetaData.custom()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(11.3k)|赞(0)|评价(0)|浏览(156)

本文整理了Java中org.elasticsearch.cluster.metadata.MetaData.custom()方法的一些代码示例,展示了MetaData.custom()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MetaData.custom()方法的具体详情如下:
包路径:org.elasticsearch.cluster.metadata.MetaData
类名称:MetaData
方法名:custom

MetaData.custom介绍

暂无

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * The collection of index deletions in the cluster.
 */
public IndexGraveyard indexGraveyard() {
  return custom(IndexGraveyard.TYPE);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

Map<String, StoredScriptSource> getScriptsFromClusterState() {
  if (clusterState == null) {
    return Collections.emptyMap();
  }
  ScriptMetaData scriptMetadata = clusterState.metaData().custom(ScriptMetaData.TYPE);
  if (scriptMetadata == null) {
    return Collections.emptyMap();
  }
  return scriptMetadata.getStoredScripts();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/** Returns true if the persistent tasks are not equal between the previous and the current cluster state **/
static boolean persistentTasksChanged(final ClusterChangedEvent event) {
  String type = PersistentTasksCustomMetaData.TYPE;
  return Objects.equals(event.state().metaData().custom(type), event.previousState().metaData().custom(type)) == false;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * @return pipeline configuration specified by id. If multiple ids or wildcards are specified multiple pipelines
 * may be returned
 */
// Returning PipelineConfiguration instead of Pipeline, because Pipeline and Processor interface don't
// know how to serialize themselves.
public static List<PipelineConfiguration> getPipelines(ClusterState clusterState, String... ids) {
  IngestMetadata ingestMetadata = clusterState.getMetaData().custom(IngestMetadata.TYPE);
  return innerGetPipelines(ingestMetadata, ids);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  public void clusterStateProcessed(String source, ClusterState oldState, ClusterState newState) {
    if (isAnyTaskUnassigned(newState.getMetaData().custom(PersistentTasksCustomMetaData.TYPE))) {
      periodicRechecker.rescheduleIfNecessary();
    }
  }
});

代码示例来源:origin: org.elasticsearch/elasticsearch

@SuppressWarnings("unchecked")
public static <Params extends PersistentTaskParams> PersistentTask<Params> getTaskWithId(ClusterState clusterState, String taskId) {
  PersistentTasksCustomMetaData tasks = clusterState.metaData().custom(PersistentTasksCustomMetaData.TYPE);
  if (tasks != null) {
    return (PersistentTask<Params>) tasks.getTask(taskId);
  }
  return null;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private static PersistentTasksCustomMetaData.Builder builder(ClusterState currentState) {
  return PersistentTasksCustomMetaData.builder(currentState.getMetaData().custom(PersistentTasksCustomMetaData.TYPE));
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public StoredScriptSource getStoredScript(ClusterState state, GetStoredScriptRequest request) {
  ScriptMetaData scriptMetadata = state.metaData().custom(ScriptMetaData.TYPE);
  if (scriptMetadata != null) {
    return scriptMetadata.getStoredScript(request.id());
  } else {
    return null;
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
public void runInternal() {
  if (clusterService.localNode().isMasterNode()) {
    final ClusterState state = clusterService.state();
    logger.trace("periodic persistent task assignment check running for cluster state {}", state.getVersion());
    if (isAnyTaskUnassigned(state.getMetaData().custom(PersistentTasksCustomMetaData.TYPE))) {
      reassignPersistentTasks();
    }
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

StoredScriptSource getScriptFromClusterState(String id) {
  ScriptMetaData scriptMetadata = clusterState.metaData().custom(ScriptMetaData.TYPE);
  if (scriptMetadata == null) {
    throw new ResourceNotFoundException("unable to find script [" + id + "] in cluster state");
  }
  StoredScriptSource source = scriptMetadata.getStoredScript(id);
  if (source == null) {
    throw new ResourceNotFoundException("unable to find script [" + id + "] in cluster state");
  }
  return source;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Finds the least loaded node that satisfies the selector criteria
 */
protected DiscoveryNode selectLeastLoadedNode(ClusterState clusterState, Predicate<DiscoveryNode> selector) {
  long minLoad = Long.MAX_VALUE;
  DiscoveryNode minLoadedNode = null;
  PersistentTasksCustomMetaData persistentTasks = clusterState.getMetaData().custom(PersistentTasksCustomMetaData.TYPE);
  for (DiscoveryNode node : clusterState.getNodes()) {
    if (selector.test(node)) {
      if (persistentTasks == null) {
        // We don't have any task running yet, pick the first available node
        return node;
      }
      long numberOfTasks = persistentTasks.getNumberOfTasksOnNode(node.getId(), taskName);
      if (minLoad > numberOfTasks) {
        minLoad = numberOfTasks;
        minLoadedNode = node;
      }
    }
  }
  return minLoadedNode;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public static boolean isGlobalStateEquals(MetaData metaData1, MetaData metaData2) {
  if (!metaData1.persistentSettings.equals(metaData2.persistentSettings)) {
    return false;
  }
  if (!metaData1.templates.equals(metaData2.templates())) {
    return false;
  }
  // Check if any persistent metadata needs to be saved
  int customCount1 = 0;
  for (ObjectObjectCursor<String, Custom> cursor : metaData1.customs) {
    if (cursor.value.context().contains(XContentContext.GATEWAY)) {
      if (!cursor.value.equals(metaData2.custom(cursor.key))) return false;
      customCount1++;
    }
  }
  int customCount2 = 0;
  for (ObjectCursor<Custom> cursor : metaData2.customs.values()) {
    if (cursor.value.context().contains(XContentContext.GATEWAY)) {
      customCount2++;
    }
  }
  if (customCount1 != customCount2) return false;
  return true;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Validates snapshot request
 *
 * @param request snapshot request
 * @param state   current cluster state
 */
private void validate(SnapshotRequest request, ClusterState state) {
  RepositoriesMetaData repositoriesMetaData = state.getMetaData().custom(RepositoriesMetaData.TYPE);
  final String repository = request.repositoryName;
  if (repositoriesMetaData == null || repositoriesMetaData.repository(repository) == null) {
    throw new RepositoryMissingException(repository);
  }
  validate(repository, request.snapshotName);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private void innerUpdatePipelines(ClusterState previousState, ClusterState state) {
  if (state.blocks().hasGlobalBlock(GatewayService.STATE_NOT_RECOVERED_BLOCK)) {
    return;
  }
  IngestMetadata ingestMetadata = state.getMetaData().custom(IngestMetadata.TYPE);
  IngestMetadata previousIngestMetadata = previousState.getMetaData().custom(IngestMetadata.TYPE);
  if (Objects.equals(ingestMetadata, previousIngestMetadata)) {
    return;
  }
  Map<String, Pipeline> pipelines = new HashMap<>();
  List<ElasticsearchParseException> exceptions = new ArrayList<>();
  for (PipelineConfiguration pipeline : ingestMetadata.getPipelines().values()) {
    try {
      pipelines.put(
        pipeline.getId(),
        Pipeline.create(pipeline.getId(), pipeline.getConfigAsMap(), processorFactories, scriptService)
      );
    } catch (ElasticsearchParseException e) {
      pipelines.put(pipeline.getId(), substitutePipeline(pipeline.getId(), e));
      exceptions.add(e);
    } catch (Exception e) {
      ElasticsearchParseException parseException = new ElasticsearchParseException(
        "Error updating pipeline with id [" + pipeline.getId() + "]", e);
      pipelines.put(pipeline.getId(), substitutePipeline(pipeline.getId(), parseException));
      exceptions.add(parseException);
    }
  }
  this.pipelines = Collections.unmodifiableMap(pipelines);
  ExceptionsHelper.rethrowAndSuppress(exceptions);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

static ClusterState innerDelete(DeletePipelineRequest request, ClusterState currentState) {
  IngestMetadata currentIngestMetadata = currentState.metaData().custom(IngestMetadata.TYPE);
  if (currentIngestMetadata == null) {
    return currentState;
  }
  Map<String, PipelineConfiguration> pipelines = currentIngestMetadata.getPipelines();
  Set<String> toRemove = new HashSet<>();
  for (String pipelineKey : pipelines.keySet()) {
    if (Regex.simpleMatch(request.getId(), pipelineKey)) {
      toRemove.add(pipelineKey);
    }
  }
  if (toRemove.isEmpty() && Regex.isMatchAllPattern(request.getId()) == false) {
    throw new ResourceNotFoundException("pipeline [{}] is missing", request.getId());
  } else if (toRemove.isEmpty()) {
    return currentState;
  }
  final Map<String, PipelineConfiguration> pipelinesCopy = new HashMap<>(pipelines);
  for (String key : toRemove) {
    pipelinesCopy.remove(key);
  }
  ClusterState.Builder newState = ClusterState.builder(currentState);
  newState.metaData(MetaData.builder(currentState.getMetaData())
      .putCustom(IngestMetadata.TYPE, new IngestMetadata(pipelinesCopy))
      .build());
  return newState.build();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

static ClusterState innerPut(PutPipelineRequest request, ClusterState currentState) {
  IngestMetadata currentIngestMetadata = currentState.metaData().custom(IngestMetadata.TYPE);
  Map<String, PipelineConfiguration> pipelines;
  if (currentIngestMetadata != null) {
    pipelines = new HashMap<>(currentIngestMetadata.getPipelines());
  } else {
    pipelines = new HashMap<>();
  }
  pipelines.put(request.getId(), new PipelineConfiguration(request.getId(), request.getSource(), request.getXContentType()));
  ClusterState.Builder newState = ClusterState.builder(currentState);
  newState.metaData(MetaData.builder(currentState.getMetaData())
    .putCustom(IngestMetadata.TYPE, new IngestMetadata(pipelines))
    .build());
  return newState.build();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@SuppressWarnings("unchecked")
  @Override
  public void clusterStateProcessed(String source, ClusterState oldState, ClusterState newState) {
    PersistentTasksCustomMetaData tasks = newState.getMetaData().custom(PersistentTasksCustomMetaData.TYPE);
    if (tasks != null) {
      PersistentTask<?> task = tasks.getTask(taskId);
      listener.onResponse(task);
      if (task != null && task.isAssigned() == false && periodicRechecker.isScheduled() == false) {
        periodicRechecker.rescheduleIfNecessary();
      }
    } else {
      listener.onResponse(null);
    }
  }
});

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  public ClusterState execute(ClusterState currentState) throws Exception {
    ScriptMetaData smd = currentState.metaData().custom(ScriptMetaData.TYPE);
    smd = ScriptMetaData.putStoredScript(smd, request.id(), source);
    MetaData.Builder mdb = MetaData.builder(currentState.getMetaData()).putCustom(ScriptMetaData.TYPE, smd);
    return ClusterState.builder(currentState).metaData(mdb).build();
  }
});

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  public ClusterState execute(ClusterState currentState) throws Exception {
    ScriptMetaData smd = currentState.metaData().custom(ScriptMetaData.TYPE);
    smd = ScriptMetaData.deleteStoredScript(smd, request.id());
    MetaData.Builder mdb = MetaData.builder(currentState.getMetaData()).putCustom(ScriptMetaData.TYPE, smd);
    return ClusterState.builder(currentState).metaData(mdb).build();
  }
});

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Returns true if the cluster state change(s) require to reassign some persistent tasks. It can happen in the following
 * situations: a node left or is added, the routing table changed, the master node changed, the metadata changed or the
 * persistent tasks changed.
 */
boolean shouldReassignPersistentTasks(final ClusterChangedEvent event) {
  final PersistentTasksCustomMetaData tasks = event.state().getMetaData().custom(PersistentTasksCustomMetaData.TYPE);
  if (tasks == null) {
    return false;
  }
  boolean masterChanged = event.previousState().nodes().isLocalNodeElectedMaster() == false;
  if (persistentTasksChanged(event)
    || event.nodesChanged()
    || event.routingTableChanged()
    || event.metaDataChanged()
    || masterChanged) {
    for (PersistentTask<?> task : tasks.tasks()) {
      if (needsReassignment(task.getAssignment(), event.state().nodes())) {
        Assignment assignment = createAssignment(task.getTaskName(), task.getParams(), event.state());
        if (Objects.equals(assignment, task.getAssignment()) == false) {
          return true;
        }
      }
    }
  }
  return false;
}

相关文章

微信公众号

最新文章

更多