if (repositories == null) { logger.info("put repository [{}]", request.name); repositories = new RepositoriesMetaData( Collections.singletonList(new RepositoryMetaData(request.name, request.type, request.settings))); } else { boolean found = false; List<RepositoryMetaData> repositoriesMetaData = new ArrayList<>(repositories.repositories().size() + 1); for (RepositoryMetaData repositoryMetaData : repositories.repositories()) { if (repositoryMetaData.name().equals(newRepositoryMetaData.name())) { if (newRepositoryMetaData.equals(repositoryMetaData)) { logger.info("update repository [{}]", request.name); repositories = new RepositoriesMetaData(repositoriesMetaData);
listener.onResponse(new GetRepositoriesResponse(repositories)); } else { listener.onResponse(new GetRepositoriesResponse(new RepositoriesMetaData(Collections.emptyList()))); repositoriesToGet.add(repositoryOrPattern); } else { for (RepositoryMetaData repository : repositories.repositories()) { if (Regex.simpleMatch(repositoryOrPattern, repository.name())) { repositoriesToGet.add(repository.name()); RepositoryMetaData repositoryMetaData = repositories.repository(repository); if (repositoryMetaData == null) { listener.onFailure(new RepositoryMissingException(repository)); listener.onResponse(new GetRepositoriesResponse(new RepositoriesMetaData(repositoryListBuilder))); } else { listener.onFailure(new RepositoryMissingException(request.repositories()[0]));
/** * {@inheritDoc} */ @Override public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException { for (RepositoryMetaData repository : repositories) { toXContent(repository, builder, params); } return builder; }
if ((oldMetaData == null && newMetaData == null) || (oldMetaData != null && oldMetaData.equals(newMetaData))) { return; if (newMetaData == null || newMetaData.repository(entry.getKey()) == null) { logger.debug("unregistering repository [{}]", entry.getKey()); closeRepository(entry.getValue()); if (newMetaData != null) { for (RepositoryMetaData repositoryMetaData : newMetaData.repositories()) { Repository repository = survivors.get(repositoryMetaData.name()); if (repository != null) {
if (request.repositories().length == 0 || (request.repositories().length == 1 && "_all".equals(request.repositories()[0]))) { if (repositories != null) { listener.onResponse(new GetRepositoriesResponse(repositories.repositories())); } else { listener.onResponse(new GetRepositoriesResponse(Collections.<RepositoryMetaData>emptyList())); repositoriesToGet.add(repositoryOrPattern); } else { for (RepositoryMetaData repository : repositories.repositories()) { if (Regex.simpleMatch(repositoryOrPattern, repository.name())) { repositoriesToGet.add(repository.name()); RepositoryMetaData repositoryMetaData = repositories.repository(repository); if (repositoryMetaData == null) { listener.onFailure(new RepositoryMissingException(repository));
@Override public void readFrom(StreamInput in) throws IOException { repositories = new RepositoriesMetaData(in); }
/** * List of repositories to return * * @return list or repositories */ public List<RepositoryMetaData> repositories() { return repositories.repositories(); }
/** * 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); }
public static NamedDiff<Custom> readDiffFrom(StreamInput in) throws IOException { return readDiffFrom(Custom.class, TYPE, in); }
public static GetRepositoriesResponse fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser::getTokenLocation); return new GetRepositoriesResponse(RepositoriesMetaData.fromXContent(parser)); } }
@Override public void writeTo(StreamOutput out) throws IOException { repositories.writeTo(out); }
if ((oldMetaData == null && newMetaData == null) || (oldMetaData != null && oldMetaData.equals(newMetaData))) { return; if (newMetaData == null || newMetaData.repository(entry.getKey()) == null) { logger.debug("unregistering repository [{}]", entry.getKey()); closeRepository(entry.getValue()); if (newMetaData != null) { for (RepositoryMetaData repositoryMetaData : newMetaData.repositories()) { Repository repository = survivors.get(repositoryMetaData.name()); if (repository != null) {
if (request.repositories().length == 0 || (request.repositories().length == 1 && "_all".equals(request.repositories()[0]))) { if (repositories != null) { listener.onResponse(new GetRepositoriesResponse(repositories.repositories())); } else { listener.onResponse(new GetRepositoriesResponse(Collections.<RepositoryMetaData>emptyList())); repositoriesToGet.add(repositoryOrPattern); } else { for (RepositoryMetaData repository : repositories.repositories()) { if (Regex.simpleMatch(repositoryOrPattern, repository.name())) { repositoriesToGet.add(repository.name()); RepositoryMetaData repositoryMetaData = repositories.repository(repository); if (repositoryMetaData == null) { listener.onFailure(new RepositoryMissingException(repository));
GetRepositoriesResponse() { repositories = new RepositoriesMetaData(Collections.emptyList()); }
/** * List of repositories to return * * @return list or repositories */ public List<RepositoryMetaData> repositories() { return repositories.repositories(); }
/** * 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); }
public static NamedDiff<Custom> readDiffFrom(StreamInput in) throws IOException { return readDiffFrom(Custom.class, TYPE, in); }
public static GetRepositoriesResponse fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser::getTokenLocation); return new GetRepositoriesResponse(RepositoriesMetaData.fromXContent(parser)); } }
@Override public void writeTo(StreamOutput out) throws IOException { repositories.writeTo(out); }
@Override public ClusterState execute(ClusterState currentState) { ensureRepositoryNotInUse(currentState, request.name); MetaData metaData = currentState.metaData(); MetaData.Builder mdBuilder = MetaData.builder(currentState.metaData()); RepositoriesMetaData repositories = metaData.custom(RepositoriesMetaData.TYPE); if (repositories != null && repositories.repositories().size() > 0) { List<RepositoryMetaData> repositoriesMetaData = new ArrayList<>(repositories.repositories().size()); boolean changed = false; for (RepositoryMetaData repositoryMetaData : repositories.repositories()) { if (Regex.simpleMatch(request.name, repositoryMetaData.name())) { logger.info("delete repository [{}]", repositoryMetaData.name()); changed = true; } else { repositoriesMetaData.add(repositoryMetaData); } } if (changed) { repositories = new RepositoriesMetaData(repositoriesMetaData); mdBuilder.putCustom(RepositoriesMetaData.TYPE, repositories); return ClusterState.builder(currentState).metaData(mdBuilder).build(); } } if (Regex.isMatchAllPattern(request.name)) { // we use a wildcard so we don't barf if it's not present. return currentState; } throw new RepositoryMissingException(request.name); }