|
40 | 40 | import org.elasticsearch.client.ml.DeleteForecastRequest;
|
41 | 41 | import org.elasticsearch.client.ml.DeleteJobRequest;
|
42 | 42 | import org.elasticsearch.client.ml.DeleteJobResponse;
|
| 43 | +import org.elasticsearch.client.ml.DeleteModelSnapshotRequest; |
43 | 44 | import org.elasticsearch.client.ml.FlushJobRequest;
|
44 | 45 | import org.elasticsearch.client.ml.FlushJobResponse;
|
45 | 46 | import org.elasticsearch.client.ml.ForecastJobRequest;
|
@@ -1867,6 +1868,73 @@ public void onFailure(Exception e) {
|
1867 | 1868 | }
|
1868 | 1869 | }
|
1869 | 1870 |
|
| 1871 | + public void testDeleteModelSnapshot() throws IOException, InterruptedException { |
| 1872 | + RestHighLevelClient client = highLevelClient(); |
| 1873 | + |
| 1874 | + String jobId = "test-delete-model-snapshot"; |
| 1875 | + String snapshotId = "1541587919"; |
| 1876 | + Job job = MachineLearningIT.buildJob(jobId); |
| 1877 | + client.machineLearning().putJob(new PutJobRequest(job), RequestOptions.DEFAULT); |
| 1878 | + |
| 1879 | + // Let us index a snapshot |
| 1880 | + IndexRequest indexRequest = new IndexRequest(".ml-anomalies-shared", "doc"); |
| 1881 | + indexRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); |
| 1882 | + indexRequest.source("{\"job_id\":\"" + jobId + "\", \"timestamp\":1541587919000, " + |
| 1883 | + "\"description\":\"State persisted due to job close at 2018-11-07T10:51:59+0000\", " + |
| 1884 | + "\"snapshot_id\":\"" + snapshotId + "\", \"snapshot_doc_count\":1, \"model_size_stats\":{" + |
| 1885 | + "\"job_id\":\"" + jobId + "\", \"result_type\":\"model_size_stats\",\"model_bytes\":51722, " + |
| 1886 | + "\"total_by_field_count\":3, \"total_over_field_count\":0, \"total_partition_field_count\":2," + |
| 1887 | + "\"bucket_allocation_failures_count\":0, \"memory_status\":\"ok\", \"log_time\":1541587919000, " + |
| 1888 | + "\"timestamp\":1519930800000}, \"latest_record_time_stamp\":1519931700000," + |
| 1889 | + "\"latest_result_time_stamp\":1519930800000, \"retain\":false}", XContentType.JSON); |
| 1890 | + { |
| 1891 | + client.index(indexRequest, RequestOptions.DEFAULT); |
| 1892 | + |
| 1893 | + // tag::delete-model-snapshot-request |
| 1894 | + DeleteModelSnapshotRequest request = new DeleteModelSnapshotRequest(jobId, snapshotId); // <1> |
| 1895 | + // end::delete-model-snapshot-request |
| 1896 | + |
| 1897 | + // tag::delete-model-snapshot-execute |
| 1898 | + AcknowledgedResponse response = client.machineLearning().deleteModelSnapshot(request, RequestOptions.DEFAULT); |
| 1899 | + // end::delete-model-snapshot-execute |
| 1900 | + |
| 1901 | + // tag::delete-model-snapshot-response |
| 1902 | + boolean isAcknowledged = response.isAcknowledged(); // <1> |
| 1903 | + // end::delete-model-snapshot-response |
| 1904 | + |
| 1905 | + assertTrue(isAcknowledged); |
| 1906 | + } |
| 1907 | + { |
| 1908 | + client.index(indexRequest, RequestOptions.DEFAULT); |
| 1909 | + |
| 1910 | + // tag::delete-model-snapshot-execute-listener |
| 1911 | + ActionListener<AcknowledgedResponse> listener = new ActionListener<AcknowledgedResponse>() { |
| 1912 | + @Override |
| 1913 | + public void onResponse(AcknowledgedResponse acknowledgedResponse) { |
| 1914 | + // <1> |
| 1915 | + } |
| 1916 | + |
| 1917 | + @Override |
| 1918 | + public void onFailure(Exception e) { |
| 1919 | + // <2> |
| 1920 | + } |
| 1921 | + }; |
| 1922 | + // end::delete-model-snapshot-execute-listener |
| 1923 | + |
| 1924 | + // Replace the empty listener by a blocking listener in test |
| 1925 | + final CountDownLatch latch = new CountDownLatch(1); |
| 1926 | + listener = new LatchedActionListener<>(listener, latch); |
| 1927 | + |
| 1928 | + DeleteModelSnapshotRequest deleteModelSnapshotRequest = new DeleteModelSnapshotRequest(jobId, "1541587919"); |
| 1929 | + |
| 1930 | + // tag::delete-model-snapshot-execute-async |
| 1931 | + client.machineLearning().deleteModelSnapshotAsync(deleteModelSnapshotRequest, RequestOptions.DEFAULT, listener); // <1> |
| 1932 | + // end::delete-model-snapshot-execute-async |
| 1933 | + |
| 1934 | + assertTrue(latch.await(30L, TimeUnit.SECONDS)); |
| 1935 | + } |
| 1936 | + } |
| 1937 | + |
1870 | 1938 | public void testGetModelSnapshots() throws IOException, InterruptedException {
|
1871 | 1939 | RestHighLevelClient client = highLevelClient();
|
1872 | 1940 |
|
|
0 commit comments