1919
2020package org .elasticsearch .client .documentation ;
2121
22- import org .apache .http .entity .ContentType ;
23- import org .apache .http .entity .StringEntity ;
2422import org .elasticsearch .action .ActionListener ;
2523import org .elasticsearch .action .LatchedActionListener ;
2624import org .elasticsearch .action .admin .cluster .repositories .get .GetRepositoriesRequest ;
2725import org .elasticsearch .action .admin .cluster .repositories .get .GetRepositoriesResponse ;
26+ import org .elasticsearch .action .admin .cluster .repositories .put .PutRepositoryRequest ;
27+ import org .elasticsearch .action .admin .cluster .repositories .put .PutRepositoryResponse ;
2828import org .elasticsearch .client .ESRestHighLevelClientTestCase ;
2929import org .elasticsearch .client .RestHighLevelClient ;
3030import org .elasticsearch .cluster .metadata .RepositoryMetaData ;
31+ import org .elasticsearch .common .settings .Settings ;
3132import org .elasticsearch .common .unit .TimeValue ;
33+ import org .elasticsearch .common .xcontent .XContentType ;
34+ import org .elasticsearch .repositories .fs .FsRepository ;
3235
3336import java .io .IOException ;
34- import java .util .Collections ;
37+ import java .util .HashMap ;
3538import java .util .List ;
39+ import java .util .Map ;
3640import java .util .concurrent .CountDownLatch ;
3741import java .util .concurrent .TimeUnit ;
3842
5862 */
5963public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase {
6064
61- private static final String testRepository = "test_repository" ;
65+ private static final String repositoryName = "test_repository" ;
66+
67+ public void testSnapshotCreateRepository () throws IOException {
68+ RestHighLevelClient client = highLevelClient ();
69+
70+ // tag::create-repository-request
71+ PutRepositoryRequest request = new PutRepositoryRequest ();
72+ // end::create-repository-request
73+
74+ // tag::create-repository-create-settings
75+ String locationKey = FsRepository .LOCATION_SETTING .getKey ();
76+ String locationValue = "." ;
77+ String compressKey = FsRepository .COMPRESS_SETTING .getKey ();
78+ boolean compressValue = true ;
79+
80+ Settings settings = Settings .builder ()
81+ .put (locationKey , locationValue )
82+ .put (compressKey , compressValue )
83+ .build (); // <1>
84+ // end::create-repository-create-settings
85+
86+ // tag::create-repository-request-repository-settings
87+ request .settings (settings ); // <1>
88+ // end::create-repository-request-repository-settings
89+
90+ {
91+ // tag::create-repository-settings-builder
92+ Settings .Builder settingsBuilder = Settings .builder ()
93+ .put (locationKey , locationValue )
94+ .put (compressKey , compressValue );
95+ request .settings (settingsBuilder ); // <1>
96+ // end::create-repository-settings-builder
97+ }
98+ {
99+ // tag::create-repository-settings-map
100+ Map <String , Object > map = new HashMap <>();
101+ map .put (locationKey , locationValue );
102+ map .put (compressKey , compressValue );
103+ request .settings (map ); // <1>
104+ // end::create-repository-settings-map
105+ }
106+ {
107+ // tag::create-repository-settings-source
108+ request .settings ("{\" location\" : \" .\" , \" compress\" : \" true\" }" ,
109+ XContentType .JSON ); // <1>
110+ // end::create-repository-settings-source
111+ }
112+
113+ // tag::create-repository-request-name
114+ request .name (repositoryName ); // <1>
115+ // end::create-repository-request-name
116+ // tag::create-repository-request-type
117+ request .type (FsRepository .TYPE ); // <1>
118+ // end::create-repository-request-type
119+
120+ // tag::create-repository-request-masterTimeout
121+ request .masterNodeTimeout (TimeValue .timeValueMinutes (1 )); // <1>
122+ request .masterNodeTimeout ("1m" ); // <2>
123+ // end::create-repository-request-masterTimeout
124+ // tag::create-repository-request-timeout
125+ request .timeout (TimeValue .timeValueMinutes (1 )); // <1>
126+ request .timeout ("1m" ); // <2>
127+ // end::create-repository-request-timeout
128+ // tag::create-repository-request-verify
129+ request .verify (true ); // <1>
130+ // end::create-repository-request-verify
131+
132+ // tag::create-repository-execute
133+ PutRepositoryResponse response = client .snapshot ().createRepository (request );
134+ // end::create-repository-execute
135+
136+ // tag::create-repository-response
137+ boolean acknowledged = response .isAcknowledged (); // <1>
138+ // end::create-repository-response
139+ assertTrue (acknowledged );
140+ }
141+
142+ public void testSnapshotCreateRepositoryAsync () throws InterruptedException {
143+ RestHighLevelClient client = highLevelClient ();
144+ {
145+ PutRepositoryRequest request = new PutRepositoryRequest (repositoryName );
146+
147+ // tag::create-repository-execute-listener
148+ ActionListener <PutRepositoryResponse > listener =
149+ new ActionListener <PutRepositoryResponse >() {
150+ @ Override
151+ public void onResponse (PutRepositoryResponse putRepositoryResponse ) {
152+ // <1>
153+ }
154+
155+ @ Override
156+ public void onFailure (Exception e ) {
157+ // <2>
158+ }
159+ };
160+ // end::create-repository-execute-listener
161+
162+ // Replace the empty listener by a blocking listener in test
163+ final CountDownLatch latch = new CountDownLatch (1 );
164+ listener = new LatchedActionListener <>(listener , latch );
165+
166+ // tag::create-repository-execute-async
167+ client .snapshot ().createRepositoryAsync (request , listener ); // <1>
168+ // end::create-repository-execute-async
169+
170+ assertTrue (latch .await (30L , TimeUnit .SECONDS ));
171+ }
172+ }
62173
63174 public void testSnapshotGetRepository () throws IOException {
64175 RestHighLevelClient client = highLevelClient ();
@@ -70,7 +181,7 @@ public void testSnapshotGetRepository() throws IOException {
70181 // end::get-repository-request
71182
72183 // tag::get-repository-request-repositories
73- String [] repositories = new String [] { testRepository };
184+ String [] repositories = new String [] {repositoryName };
74185 request .repositories (repositories ); // <1>
75186 // end::get-repository-request-repositories
76187 // tag::get-repository-request-local
@@ -89,7 +200,7 @@ public void testSnapshotGetRepository() throws IOException {
89200 List <RepositoryMetaData > repositoryMetaDataResponse = response .repositories ();
90201 // end::get-repository-response
91202 assertThat (1 , equalTo (repositoryMetaDataResponse .size ()));
92- assertThat (testRepository , equalTo (repositoryMetaDataResponse .get (0 ).name ()));
203+ assertThat (repositoryName , equalTo (repositoryMetaDataResponse .get (0 ).name ()));
93204 }
94205
95206 public void testSnapshotGetRepositoryAsync () throws InterruptedException {
@@ -122,14 +233,12 @@ public void onFailure(Exception e) {
122233
123234 assertTrue (latch .await (30L , TimeUnit .SECONDS ));
124235 }
125-
126236 }
127237
128238 private void createTestRepositories () throws IOException {
129- RestHighLevelClient client = highLevelClient ();
130- String repositorySettings = "{\" type\" :\" fs\" , \" settings\" :{\" location\" : \" .\" }}" ;
131- highLevelClient ().getLowLevelClient ().performRequest ("put" , "_snapshot/" + testRepository , Collections .emptyMap (),
132- new StringEntity (repositorySettings , ContentType .APPLICATION_JSON ));
133-
239+ PutRepositoryRequest request = new PutRepositoryRequest (repositoryName );
240+ request .type (FsRepository .TYPE );
241+ request .settings ("{\" location\" : \" .\" }" , XContentType .JSON );
242+ assertTrue (highLevelClient ().snapshot ().createRepository (request ).isAcknowledged ());
134243 }
135244}
0 commit comments