@Override protected void masterOperation(final PutRepositoryRequest request, ClusterState state, final ActionListener<AcknowledgedResponse> listener) { repositoriesService.registerRepository( new RepositoriesService.RegisterRepositoryRequest("put_repository [" + request.name() + "]", request.name(), request.type(), request.verify()) .settings(request.settings()) .masterNodeTimeout(request.masterNodeTimeout()) .ackTimeout(request.timeout()), new ActionListener<ClusterStateUpdateResponse>() { @Override public void onResponse(ClusterStateUpdateResponse response) { listener.onResponse(new AcknowledgedResponse(response.isAcknowledged())); } @Override public void onFailure(Exception e) { listener.onFailure(e); } }); }
tc.index(new IndexRequest("vulcangov").type("kolinahr").setRefreshPolicy(RefreshPolicy.IMMEDIATE).source("{\"content\":1}", XContentType.JSON)).actionGet(); tc.admin().cluster().putRepository(new PutRepositoryRequest("vulcangov").type("fs").settings(Settings.builder().put("location", repositoryPath.getRoot().getAbsolutePath() + "/vulcangov"))).actionGet(); tc.admin().cluster().createSnapshot(new CreateSnapshotRequest("vulcangov", "vulcangov_1").indices("vulcangov").includeGlobalState(true).waitForCompletion(true)).actionGet(); tc.admin().cluster().putRepository(new PutRepositoryRequest("searchguard").type("fs").settings(Settings.builder().put("location", repositoryPath.getRoot().getAbsolutePath() + "/searchguard"))).actionGet(); tc.admin().cluster().createSnapshot(new CreateSnapshotRequest("searchguard", "searchguard_1").indices("searchguard").includeGlobalState(false).waitForCompletion(true)).actionGet(); tc.admin().cluster().putRepository(new PutRepositoryRequest("all").type("fs").settings(Settings.builder().put("location", repositoryPath.getRoot().getAbsolutePath() + "/all"))).actionGet(); tc.admin().cluster().createSnapshot(new CreateSnapshotRequest("all", "all_1").indices("*").includeGlobalState(false).waitForCompletion(true)).actionGet();
@Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { PutRepositoryRequest putRepositoryRequest = putRepositoryRequest(request.param("repository")); try (XContentParser parser = request.contentParser()) { putRepositoryRequest.source(parser.mapOrdered()); } putRepositoryRequest.verify(request.paramAsBoolean("verify", true)); putRepositoryRequest.masterNodeTimeout(request.paramAsTime("master_timeout", putRepositoryRequest.masterNodeTimeout())); putRepositoryRequest.timeout(request.paramAsTime("timeout", putRepositoryRequest.timeout())); return channel -> client.admin().cluster().putRepository(putRepositoryRequest, new RestToXContentListener<>(channel)); } }
/** * Parses repository definition. * * @param repositoryDefinition repository definition */ public PutRepositoryRequest source(Map<String, Object> repositoryDefinition) { for (Map.Entry<String, Object> entry : repositoryDefinition.entrySet()) { String name = entry.getKey(); if (name.equals("type")) { type(entry.getValue().toString()); } else if (name.equals("settings")) { if (!(entry.getValue() instanceof Map)) { throw new IllegalArgumentException("Malformed settings section, should include an inner object"); } @SuppressWarnings("unchecked") Map<String, Object> sub = (Map<String, Object>) entry.getValue(); settings(sub); } } return this; }
static Request createRepository(PutRepositoryRequest putRepositoryRequest) throws IOException { String endpoint = new RequestConverters.EndpointBuilder().addPathPart("_snapshot").addPathPart(putRepositoryRequest.name()).build(); Request request = new Request(HttpPut.METHOD_NAME, endpoint); RequestConverters.Params parameters = new RequestConverters.Params(request); parameters.withMasterTimeout(putRepositoryRequest.masterNodeTimeout()); parameters.withTimeout(putRepositoryRequest.timeout()); parameters.withVerify(putRepositoryRequest.verify()); request.setEntity(RequestConverters.createEntity(putRepositoryRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; }
/** * Sets the repository settings * * @param settings repository settings * @return this builder */ public PutRepositoryRequestBuilder setSettings(Settings settings) { request.settings(settings); return this; }
/** * Registers snapshot repository * * @param name repository name * @return repository registration request */ public static PutRepositoryRequest putRepositoryRequest(String name) { return new PutRepositoryRequest(name); }
/** * Sets the repository name * * @param name repository name * @return this builder */ public PutRepositoryRequestBuilder setName(String name) { request.name(name); return this; }
/** * Sets whether or not repository should be verified after creation * * @param verify true if repository should be verified after registration, false otherwise * @return this builder */ public PutRepositoryRequestBuilder setVerify(boolean verify) { request.verify(verify); return this; } }
/** * Sets the repository type * * @param type repository type * @return this builder */ public PutRepositoryRequestBuilder setType(String type) { request.type(type); return this; }
/** * Parses repository definition. * JSON, Smile and YAML formats are supported * * @param repositoryDefinition repository definition */ public PutRepositoryRequest source(byte[] repositoryDefinition) { return source(repositoryDefinition, 0, repositoryDefinition.length); }
@Override public void readFrom(StreamInput in) throws IOException { super.readFrom(in); name = in.readString(); type = in.readString(); settings = readSettingsFromStream(in); readTimeout(in); verify = in.readBoolean(); }
static Request createRepository(PutRepositoryRequest putRepositoryRequest) throws IOException { String endpoint = new RequestConverters.EndpointBuilder().addPathPart("_snapshot").addPathPart(putRepositoryRequest.name()).build(); Request request = new Request(HttpPut.METHOD_NAME, endpoint); RequestConverters.Params parameters = new RequestConverters.Params(request); parameters.withMasterTimeout(putRepositoryRequest.masterNodeTimeout()); parameters.withTimeout(putRepositoryRequest.timeout()); parameters.withVerify(putRepositoryRequest.verify()); request.setEntity(RequestConverters.createEntity(putRepositoryRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; }
/** * Sets the repository settings * * @param settings repository settings builder * @return this builder */ public PutRepositoryRequestBuilder setSettings(Settings.Builder settings) { request.settings(settings); return this; }
/** * Parses repository definition. * * @param repositoryDefinition repository definition */ public PutRepositoryRequest source(Map repositoryDefinition) { Map<String, Object> source = repositoryDefinition; for (Map.Entry<String, Object> entry : source.entrySet()) { String name = entry.getKey(); if (name.equals("type")) { type(entry.getValue().toString()); } else if (name.equals("settings")) { if (!(entry.getValue() instanceof Map)) { throw new IllegalArgumentException("Malformed settings section, should include an inner object"); } settings((Map<String, Object>) entry.getValue()); } } return this; }
/** * Constructs register repository request */ public PutRepositoryRequestBuilder(ElasticsearchClient client, PutRepositoryAction action) { super(client, action, new PutRepositoryRequest()); }
/** * Sets the repository name * * @param name repository name * @return this builder */ public PutRepositoryRequestBuilder setName(String name) { request.name(name); return this; }
/** * Sets whether or not repository should be verified after creation * * @param verify true if repository should be verified after registration, false otherwise * @return this builder */ public PutRepositoryRequestBuilder setVerify(boolean verify) { request.verify(verify); return this; } }
/** * Sets the repository type * * @param type repository type * @return this builder */ public PutRepositoryRequestBuilder setType(String type) { request.type(type); return this; }
/** * Parses repository definition. * * @param repositoryDefinition repository definition */ public PutRepositoryRequest source(XContentBuilder repositoryDefinition) { return source(repositoryDefinition.bytes()); }