Search in sources :

Example 46 with RestoreSnapshotResponse

use of org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse in project OpenSearch by opensearch-project.

the class SnapshotClientDocumentationIT method testRestoreSnapshot.

public void testRestoreSnapshot() throws IOException {
    RestHighLevelClient client = highLevelClient();
    createTestRepositories();
    createTestIndex();
    createTestSnapshots();
    // tag::restore-snapshot-request
    RestoreSnapshotRequest request = new RestoreSnapshotRequest(repositoryName, snapshotName);
    // end::restore-snapshot-request
    // we need to restore as a different index name
    // tag::restore-snapshot-request-masterTimeout
    // <1>
    request.masterNodeTimeout(TimeValue.timeValueMinutes(1));
    // <2>
    request.masterNodeTimeout("1m");
    // end::restore-snapshot-request-masterTimeout
    // tag::restore-snapshot-request-waitForCompletion
    // <1>
    request.waitForCompletion(true);
    // end::restore-snapshot-request-waitForCompletion
    // tag::restore-snapshot-request-partial
    // <1>
    request.partial(false);
    // end::restore-snapshot-request-partial
    // tag::restore-snapshot-request-include-global-state
    // <1>
    request.includeGlobalState(false);
    // end::restore-snapshot-request-include-global-state
    // tag::restore-snapshot-request-include-aliases
    // <1>
    request.includeAliases(false);
    // end::restore-snapshot-request-include-aliases
    // tag::restore-snapshot-request-indices
    // <1>
    request.indices("test_index");
    // end::restore-snapshot-request-indices
    String restoredIndexName = "restored_index";
    // tag::restore-snapshot-request-rename
    // <1>
    request.renamePattern("test_(.+)");
    // <2>
    request.renameReplacement("restored_$1");
    // end::restore-snapshot-request-rename
    // tag::restore-snapshot-request-index-settings
    // <1>
    request.indexSettings(Settings.builder().put("index.number_of_replicas", 0).build());
    // <2>
    request.ignoreIndexSettings("index.refresh_interval", "index.search.idle.after");
    request.indicesOptions(new // <3>
    IndicesOptions(EnumSet.of(IndicesOptions.Option.IGNORE_UNAVAILABLE), EnumSet.of(IndicesOptions.WildcardStates.OPEN)));
    // end::restore-snapshot-request-index-settings
    // tag::restore-snapshot-execute
    RestoreSnapshotResponse response = client.snapshot().restore(request, RequestOptions.DEFAULT);
    // end::restore-snapshot-execute
    // tag::restore-snapshot-response
    RestoreInfo restoreInfo = response.getRestoreInfo();
    // <1>
    List<String> indices = restoreInfo.indices();
    // end::restore-snapshot-response
    assertEquals(Collections.singletonList(restoredIndexName), indices);
    assertEquals(0, restoreInfo.failedShards());
    assertTrue(restoreInfo.successfulShards() > 0);
}
Also used : RestoreInfo(org.opensearch.snapshots.RestoreInfo) RestoreSnapshotRequest(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest) RestHighLevelClient(org.opensearch.client.RestHighLevelClient) RestoreSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse)

Example 47 with RestoreSnapshotResponse

use of org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse in project OpenSearch by opensearch-project.

the class SnapshotIT method testRestoreSnapshot.

public void testRestoreSnapshot() throws IOException {
    String testRepository = "test";
    String testSnapshot = "snapshot_1";
    String testIndex = "test_index";
    String restoredIndex = testIndex + "_restored";
    AcknowledgedResponse putRepositoryResponse = createTestRepository(testRepository, FsRepository.TYPE, "{\"location\": \".\"}");
    assertTrue(putRepositoryResponse.isAcknowledged());
    createIndex(testIndex, Settings.EMPTY);
    assertTrue("index [" + testIndex + "] should have been created", indexExists(testIndex));
    CreateSnapshotRequest createSnapshotRequest = new CreateSnapshotRequest(testRepository, testSnapshot);
    createSnapshotRequest.indices(testIndex);
    createSnapshotRequest.waitForCompletion(true);
    if (randomBoolean()) {
        createSnapshotRequest.userMetadata(randomUserMetadata());
    }
    CreateSnapshotResponse createSnapshotResponse = createTestSnapshot(createSnapshotRequest);
    assertEquals(RestStatus.OK, createSnapshotResponse.status());
    deleteIndex(testIndex);
    assertFalse("index [" + testIndex + "] should have been deleted", indexExists(testIndex));
    RestoreSnapshotRequest request = new RestoreSnapshotRequest(testRepository, testSnapshot);
    request.waitForCompletion(true);
    request.renamePattern(testIndex);
    request.renameReplacement(restoredIndex);
    RestoreSnapshotResponse response = execute(request, highLevelClient().snapshot()::restore, highLevelClient().snapshot()::restoreAsync);
    RestoreInfo restoreInfo = response.getRestoreInfo();
    assertThat(restoreInfo.name(), equalTo(testSnapshot));
    assertThat(restoreInfo.indices(), equalTo(Collections.singletonList(restoredIndex)));
    assertThat(restoreInfo.successfulShards(), greaterThan(0));
    assertThat(restoreInfo.failedShards(), equalTo(0));
}
Also used : RestoreInfo(org.opensearch.snapshots.RestoreInfo) CreateSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse) CreateSnapshotRequest(org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) RestoreSnapshotRequest(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest) RestoreSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse)

Example 48 with RestoreSnapshotResponse

use of org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse in project OpenSearch by opensearch-project.

the class SnapshotIT method testSnapshotHidden.

public void testSnapshotHidden() throws IOException {
    String testRepository = "test";
    String testSnapshot = "snapshot_1";
    String testIndex = "test_index";
    AcknowledgedResponse putRepositoryResponse = createTestRepository(testRepository, FsRepository.TYPE, "{\"location\": \".\"}");
    assertTrue(putRepositoryResponse.isAcknowledged());
    createIndex(testIndex, Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, randomIntBetween(1, 3)).put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0).put(IndexMetadata.SETTING_INDEX_HIDDEN, true).build());
    assertTrue("index [" + testIndex + "] should have been created", indexExists(testIndex));
    CreateSnapshotRequest createSnapshotRequest = new CreateSnapshotRequest(testRepository, testSnapshot);
    createSnapshotRequest.indices("*");
    createSnapshotRequest.waitForCompletion(true);
    if (randomBoolean()) {
        createSnapshotRequest.userMetadata(randomUserMetadata());
    }
    CreateSnapshotResponse createSnapshotResponse = createTestSnapshot(createSnapshotRequest);
    assertEquals(RestStatus.OK, createSnapshotResponse.status());
    deleteIndex(testIndex);
    assertFalse("index [" + testIndex + "] should have been deleted", indexExists(testIndex));
    RestoreSnapshotRequest request = new RestoreSnapshotRequest(testRepository, testSnapshot);
    request.waitForCompletion(true);
    request.indices(randomFrom(testIndex, "test_*"));
    request.renamePattern(testIndex);
    RestoreSnapshotResponse response = execute(request, highLevelClient().snapshot()::restore, highLevelClient().snapshot()::restoreAsync);
    RestoreInfo restoreInfo = response.getRestoreInfo();
    assertThat(restoreInfo.name(), equalTo(testSnapshot));
    assertThat(restoreInfo.indices(), equalTo(Collections.singletonList(testIndex)));
    assertThat(restoreInfo.successfulShards(), greaterThan(0));
    assertThat(restoreInfo.failedShards(), equalTo(0));
}
Also used : RestoreInfo(org.opensearch.snapshots.RestoreInfo) CreateSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse) CreateSnapshotRequest(org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) RestoreSnapshotRequest(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest) RestoreSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse)

Example 49 with RestoreSnapshotResponse

use of org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse in project OpenSearch by opensearch-project.

the class HdfsTests method testSimpleWorkflow.

public void testSimpleWorkflow() {
    Client client = client();
    AcknowledgedResponse putRepositoryResponse = client.admin().cluster().preparePutRepository("test-repo").setType("hdfs").setSettings(Settings.builder().put("uri", "hdfs:///").put("conf.fs.AbstractFileSystem.hdfs.impl", TestingFs.class.getName()).put("path", "foo").put("chunk_size", randomIntBetween(100, 1000) + "k").put("compress", randomBoolean())).get();
    assertThat(putRepositoryResponse.isAcknowledged(), equalTo(true));
    createIndex("test-idx-1");
    createIndex("test-idx-2");
    createIndex("test-idx-3");
    ensureGreen();
    logger.info("--> indexing some data");
    for (int i = 0; i < 100; i++) {
        client().prepareIndex("test-idx-1").setId(Integer.toString(i)).setSource("foo", "bar" + i).get();
        client().prepareIndex("test-idx-2").setId(Integer.toString(i)).setSource("foo", "bar" + i).get();
        client().prepareIndex("test-idx-3").setId(Integer.toString(i)).setSource("foo", "bar" + i).get();
    }
    client().admin().indices().prepareRefresh().get();
    assertThat(count(client, "test-idx-1"), equalTo(100L));
    assertThat(count(client, "test-idx-2"), equalTo(100L));
    assertThat(count(client, "test-idx-3"), equalTo(100L));
    logger.info("--> snapshot");
    CreateSnapshotResponse createSnapshotResponse = client.admin().cluster().prepareCreateSnapshot("test-repo", "test-snap").setWaitForCompletion(true).setIndices("test-idx-*", "-test-idx-3").get();
    assertThat(createSnapshotResponse.getSnapshotInfo().successfulShards(), greaterThan(0));
    assertThat(createSnapshotResponse.getSnapshotInfo().successfulShards(), equalTo(createSnapshotResponse.getSnapshotInfo().totalShards()));
    assertThat(client.admin().cluster().prepareGetSnapshots("test-repo").setSnapshots("test-snap").get().getSnapshots().get(0).state(), equalTo(SnapshotState.SUCCESS));
    logger.info("--> delete some data");
    for (int i = 0; i < 50; i++) {
        client.prepareDelete("test-idx-1", Integer.toString(i)).get();
    }
    for (int i = 50; i < 100; i++) {
        client.prepareDelete("test-idx-2", Integer.toString(i)).get();
    }
    for (int i = 0; i < 100; i += 2) {
        client.prepareDelete("test-idx-3", Integer.toString(i)).get();
    }
    client().admin().indices().prepareRefresh().get();
    assertThat(count(client, "test-idx-1"), equalTo(50L));
    assertThat(count(client, "test-idx-2"), equalTo(50L));
    assertThat(count(client, "test-idx-3"), equalTo(50L));
    logger.info("--> close indices");
    client.admin().indices().prepareClose("test-idx-1", "test-idx-2").get();
    logger.info("--> restore all indices from the snapshot");
    RestoreSnapshotResponse restoreSnapshotResponse = client.admin().cluster().prepareRestoreSnapshot("test-repo", "test-snap").setWaitForCompletion(true).execute().actionGet();
    assertThat(restoreSnapshotResponse.getRestoreInfo().totalShards(), greaterThan(0));
    ensureGreen();
    assertThat(count(client, "test-idx-1"), equalTo(100L));
    assertThat(count(client, "test-idx-2"), equalTo(100L));
    assertThat(count(client, "test-idx-3"), equalTo(50L));
    // Test restore after index deletion
    logger.info("--> delete indices");
    client().admin().indices().prepareDelete("test-idx-1", "test-idx-2").get();
    logger.info("--> restore one index after deletion");
    restoreSnapshotResponse = client.admin().cluster().prepareRestoreSnapshot("test-repo", "test-snap").setWaitForCompletion(true).setIndices("test-idx-*", "-test-idx-2").execute().actionGet();
    assertThat(restoreSnapshotResponse.getRestoreInfo().totalShards(), greaterThan(0));
    ensureGreen();
    assertThat(count(client, "test-idx-1"), equalTo(100L));
    ClusterState clusterState = client.admin().cluster().prepareState().get().getState();
    assertThat(clusterState.getMetadata().hasIndex("test-idx-1"), equalTo(true));
    assertThat(clusterState.getMetadata().hasIndex("test-idx-2"), equalTo(false));
    final BlobStoreRepository repo = (BlobStoreRepository) getInstanceFromNode(RepositoriesService.class).repository("test-repo");
    BlobStoreTestUtil.assertConsistency(repo, repo.threadPool().executor(ThreadPool.Names.GENERIC));
}
Also used : ClusterState(org.opensearch.cluster.ClusterState) CreateSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse) BlobStoreRepository(org.opensearch.repositories.blobstore.BlobStoreRepository) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) Client(org.opensearch.client.Client) RestoreSnapshotResponse(org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse)

Aggregations

RestoreSnapshotResponse (org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse)49 CreateSnapshotResponse (org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse)24 Client (org.opensearch.client.Client)23 Path (java.nio.file.Path)18 Matchers.containsString (org.hamcrest.Matchers.containsString)17 Settings (org.opensearch.common.settings.Settings)11 ClusterState (org.opensearch.cluster.ClusterState)8 RepositoriesService (org.opensearch.repositories.RepositoriesService)8 List (java.util.List)6 Map (java.util.Map)6 SnapshotsStatusResponse (org.opensearch.action.admin.cluster.snapshots.status.SnapshotsStatusResponse)6 AcknowledgedResponse (org.opensearch.action.support.master.AcknowledgedResponse)6 Collections (java.util.Collections)5 Matchers.is (org.hamcrest.Matchers.is)5 RestoreSnapshotRequest (org.opensearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest)5 ClusterStateResponse (org.opensearch.action.admin.cluster.state.ClusterStateResponse)5 IndexRequestBuilder (org.opensearch.action.index.IndexRequestBuilder)5 IOException (java.io.IOException)4 HashMap (java.util.HashMap)4 TimeUnit (java.util.concurrent.TimeUnit)4