|
29 | 29 | import org.elasticsearch.client.core.AcknowledgedResponse; |
30 | 30 | import org.elasticsearch.client.indexlifecycle.DeleteAction; |
31 | 31 | import org.elasticsearch.client.indexlifecycle.DeleteLifecyclePolicyRequest; |
| 32 | +import org.elasticsearch.client.indexlifecycle.GetLifecyclePolicyRequest; |
| 33 | +import org.elasticsearch.client.indexlifecycle.GetLifecyclePolicyResponse; |
32 | 34 | import org.elasticsearch.client.indexlifecycle.LifecycleAction; |
33 | 35 | import org.elasticsearch.client.indexlifecycle.LifecyclePolicy; |
| 36 | +import org.elasticsearch.client.indexlifecycle.LifecyclePolicyMetadata; |
34 | 37 | import org.elasticsearch.client.indexlifecycle.Phase; |
35 | 38 | import org.elasticsearch.client.indexlifecycle.PutLifecyclePolicyRequest; |
36 | 39 | import org.elasticsearch.client.indexlifecycle.RolloverAction; |
| 40 | +import org.elasticsearch.client.indexlifecycle.ShrinkAction; |
| 41 | +import org.elasticsearch.common.collect.ImmutableOpenMap; |
37 | 42 | import org.elasticsearch.common.unit.ByteSizeUnit; |
38 | 43 | import org.elasticsearch.common.unit.ByteSizeValue; |
39 | 44 | import org.elasticsearch.common.unit.TimeValue; |
@@ -119,6 +124,108 @@ public void onFailure(Exception e) { |
119 | 124 |
|
120 | 125 | } |
121 | 126 |
|
| 127 | + public void testGetLifecyclePolicy() throws IOException, InterruptedException { |
| 128 | + RestHighLevelClient client = highLevelClient(); |
| 129 | + |
| 130 | + LifecyclePolicy myPolicyAsPut; |
| 131 | + LifecyclePolicy otherPolicyAsPut; |
| 132 | + // Set up some policies so we have something to get |
| 133 | + { |
| 134 | + Map<String, Phase> phases = new HashMap<>(); |
| 135 | + Map<String, LifecycleAction> hotActions = new HashMap<>(); |
| 136 | + hotActions.put(RolloverAction.NAME, new RolloverAction( |
| 137 | + new ByteSizeValue(50, ByteSizeUnit.GB), null, null)); |
| 138 | + phases.put("hot", new Phase("hot", TimeValue.ZERO, hotActions)); |
| 139 | + |
| 140 | + Map<String, LifecycleAction> deleteActions = |
| 141 | + Collections.singletonMap(DeleteAction.NAME, |
| 142 | + new DeleteAction()); |
| 143 | + phases.put("delete", |
| 144 | + new Phase("delete", |
| 145 | + new TimeValue(90, TimeUnit.DAYS), deleteActions)); |
| 146 | + |
| 147 | + myPolicyAsPut = new LifecyclePolicy("my_policy", phases); |
| 148 | + PutLifecyclePolicyRequest putRequest = new PutLifecyclePolicyRequest(myPolicyAsPut); |
| 149 | + |
| 150 | + Map<String, Phase> otherPolicyPhases = new HashMap<>(phases); |
| 151 | + Map<String, LifecycleAction> warmActions = Collections.singletonMap(ShrinkAction.NAME, new ShrinkAction(1)); |
| 152 | + otherPolicyPhases.put("warm", new Phase("warm", new TimeValue(30, TimeUnit.DAYS), warmActions)); |
| 153 | + otherPolicyAsPut = new LifecyclePolicy("other_policy", otherPolicyPhases); |
| 154 | + |
| 155 | + PutLifecyclePolicyRequest putRequest2 = new PutLifecyclePolicyRequest(otherPolicyAsPut); |
| 156 | + |
| 157 | + AcknowledgedResponse putResponse = client.indexLifecycle(). |
| 158 | + putLifecyclePolicy(putRequest, RequestOptions.DEFAULT); |
| 159 | + assertTrue(putResponse.isAcknowledged()); |
| 160 | + AcknowledgedResponse putResponse2 = client.indexLifecycle(). |
| 161 | + putLifecyclePolicy(putRequest2, RequestOptions.DEFAULT); |
| 162 | + assertTrue(putResponse2.isAcknowledged()); |
| 163 | + } |
| 164 | + |
| 165 | + // tag::ilm-get-lifecycle-policy-request |
| 166 | + GetLifecyclePolicyRequest allRequest = |
| 167 | + new GetLifecyclePolicyRequest(); // <1> |
| 168 | + GetLifecyclePolicyRequest request = |
| 169 | + new GetLifecyclePolicyRequest("my_policy", "other_policy"); // <2> |
| 170 | + // end::ilm-get-lifecycle-policy-request |
| 171 | + |
| 172 | + // tag::ilm-get-lifecycle-policy-execute |
| 173 | + GetLifecyclePolicyResponse response = client.indexLifecycle() |
| 174 | + .getLifecyclePolicy(request, RequestOptions.DEFAULT); |
| 175 | + // end::ilm-get-lifecycle-policy-execute |
| 176 | + |
| 177 | + // tag::ilm-get-lifecycle-policy-response |
| 178 | + ImmutableOpenMap<String, LifecyclePolicyMetadata> policies = |
| 179 | + response.getPolicies(); |
| 180 | + LifecyclePolicyMetadata myPolicyMetadata = |
| 181 | + policies.get("my_policy"); // <1> |
| 182 | + String myPolicyName = myPolicyMetadata.getName(); |
| 183 | + long version = myPolicyMetadata.getVersion(); |
| 184 | + String lastModified = myPolicyMetadata.getModifiedDateString(); |
| 185 | + long lastModifiedDate = myPolicyMetadata.getModifiedDate(); |
| 186 | + LifecyclePolicy myPolicy = myPolicyMetadata.getPolicy(); // <2> |
| 187 | + // end::ilm-get-lifecycle-policy-response |
| 188 | + |
| 189 | + assertEquals(myPolicyAsPut, myPolicy); |
| 190 | + assertEquals("my_policy", myPolicyName); |
| 191 | + assertNotNull(lastModified); |
| 192 | + assertNotEquals(0, lastModifiedDate); |
| 193 | + |
| 194 | + LifecyclePolicyMetadata otherPolicyMetadata = policies.get("other_policy"); |
| 195 | + assertEquals(otherPolicyAsPut, otherPolicyMetadata.getPolicy()); |
| 196 | + assertEquals("other_policy", otherPolicyMetadata.getName()); |
| 197 | + assertNotNull(otherPolicyMetadata.getModifiedDateString()); |
| 198 | + assertNotEquals(0, otherPolicyMetadata.getModifiedDate()); |
| 199 | + |
| 200 | + // tag::ilm-get-lifecycle-policy-execute-listener |
| 201 | + ActionListener<GetLifecyclePolicyResponse> listener = |
| 202 | + new ActionListener<GetLifecyclePolicyResponse>() { |
| 203 | + @Override |
| 204 | + public void onResponse(GetLifecyclePolicyResponse response) |
| 205 | + { |
| 206 | + ImmutableOpenMap<String, LifecyclePolicyMetadata> |
| 207 | + policies = response.getPolicies(); // <1> |
| 208 | + } |
| 209 | + |
| 210 | + @Override |
| 211 | + public void onFailure(Exception e) { |
| 212 | + // <2> |
| 213 | + } |
| 214 | + }; |
| 215 | + // end::ilm-get-lifecycle-policy-execute-listener |
| 216 | + |
| 217 | + // Replace the empty listener by a blocking listener in test |
| 218 | + final CountDownLatch latch = new CountDownLatch(1); |
| 219 | + listener = new LatchedActionListener<>(listener, latch); |
| 220 | + |
| 221 | + // tag::ilm-get-lifecycle-policy-execute-async |
| 222 | + client.indexLifecycle().getLifecyclePolicyAsync(request, |
| 223 | + RequestOptions.DEFAULT, listener); // <1> |
| 224 | + // end::ilm-get-lifecycle-policy-execute-async |
| 225 | + |
| 226 | + assertTrue(latch.await(30L, TimeUnit.SECONDS)); |
| 227 | + } |
| 228 | + |
122 | 229 | static Map<String, Object> toMap(Response response) throws IOException { |
123 | 230 | return XContentHelper.convertToMap(JsonXContent.jsonXContent, EntityUtils.toString(response.getEntity()), false); |
124 | 231 | } |
|
0 commit comments