use of com.palantir.atlasdb.backup.api.CompletedBackup in project atlasdb by palantir.
the class AtlasRestoreServiceTest method restoresToNewNamespaceCorrectly.
@Test
public void restoresToNewNamespaceCorrectly() {
RestoreRequest restoreRequest = RestoreRequest.builder().oldNamespace(WITH_BACKUP).newNamespace(NO_BACKUP).build();
// prepare
DisableNamespacesResponse successfulDisable = DisableNamespacesResponse.successful(SuccessfulDisableNamespacesResponse.of(BACKUP_ID));
DisableNamespacesRequest request = DisableNamespacesRequest.of(ImmutableSet.of(NO_BACKUP), BACKUP_ID);
when(timeLockManagementService.disableTimelock(authHeader, request)).thenReturn(successfulDisable);
Set<Namespace> disabledNamespaces = atlasRestoreService.prepareRestore(ImmutableSet.of(restoreRequest), BACKUP_ID);
assertThat(disabledNamespaces).containsExactly(NO_BACKUP);
// repair
BiConsumer<String, RangesForRepair> doNothingConsumer = (_unused1, _unused2) -> {
};
Set<Namespace> repairedNamespaces = atlasRestoreService.repairInternalTables(ImmutableSet.of(restoreRequest), doNothingConsumer);
assertThat(repairedNamespaces).containsExactly(NO_BACKUP);
verify(cassandraRepairHelper).repairInternalTables(NO_BACKUP, doNothingConsumer);
verify(cassandraRepairHelper).repairTransactionsTables(eq(NO_BACKUP), anyList(), eq(doNothingConsumer));
verify(cassandraRepairHelper).cleanTransactionsTables(eq(NO_BACKUP), eq(BACKUP_START_TIMESTAMP), anyList());
verifyNoMoreInteractions(cassandraRepairHelper);
// complete
CompletedBackup completedBackup = backupPersister.getCompletedBackup(WITH_BACKUP).orElseThrow();
CompleteRestoreRequest completeRestoreRequest = CompleteRestoreRequest.of(ImmutableMap.of(NO_BACKUP, completedBackup));
when(atlasRestoreClient.completeRestore(authHeader, completeRestoreRequest)).thenReturn(CompleteRestoreResponse.of(ImmutableSet.of(NO_BACKUP)));
ReenableNamespacesRequest reenableRequest = ReenableNamespacesRequest.of(ImmutableSet.of(NO_BACKUP), BACKUP_ID);
Set<Namespace> completedNamespaces = atlasRestoreService.completeRestore(ImmutableSet.of(restoreRequest), BACKUP_ID);
assertThat(completedNamespaces).containsExactly(NO_BACKUP);
verify(atlasRestoreClient).completeRestore(authHeader, completeRestoreRequest);
verify(timeLockManagementService).reenableTimelock(authHeader, reenableRequest);
}
use of com.palantir.atlasdb.backup.api.CompletedBackup in project atlasdb by palantir.
the class AtlasBackupResourceTest method completeBackupFiltersOutUnsuccessfulNamespaces.
@Test
public void completeBackupFiltersOutUnsuccessfulNamespaces() {
when(mockTimelock.getFreshTimestamp()).thenReturn(BACKUP_END_TIMESTAMP);
InProgressBackupToken validToken = validBackupToken();
InProgressBackupToken invalidToken = invalidBackupToken(OTHER_NAMESPACE, otherTimelock);
CompletedBackup expected = completedBackup(validToken);
assertThat(AtlasFutures.getUnchecked(atlasBackupService.completeBackup(AUTH_HEADER, completeBackupRequest(validToken, invalidToken)))).isEqualTo(completeBackupResponseWith(expected));
}
use of com.palantir.atlasdb.backup.api.CompletedBackup in project atlasdb by palantir.
the class AtlasBackupResourceTest method completeBackupContainsNamespaceWhenLockIsHeld.
@Test
public void completeBackupContainsNamespaceWhenLockIsHeld() {
when(mockTimelock.getFreshTimestamp()).thenReturn(BACKUP_END_TIMESTAMP);
InProgressBackupToken backupToken = validBackupToken();
CompletedBackup expected = completedBackup(backupToken);
assertThat(AtlasFutures.getUnchecked(atlasBackupService.completeBackup(AUTH_HEADER, completeBackupRequest(backupToken)))).isEqualTo(completeBackupResponseWith(expected));
verify(authHeaderValidator).suppliedHeaderMatchesConfig(AUTH_HEADER);
}
use of com.palantir.atlasdb.backup.api.CompletedBackup in project atlasdb by palantir.
the class AtlasRestoreResourceTest method completesRestoreSuccessfully.
@Test
public void completesRestoreSuccessfully() {
Namespace newNamespace = Namespace.of("newNamespace");
CompletedBackup completedBackup = completedBackup();
CompleteRestoreResponse response = AtlasFutures.getUnchecked(atlasRestoreResource.completeRestore(AUTH_HEADER, CompleteRestoreRequest.of(ImmutableMap.of(newNamespace, completedBackup))));
assertThat(response.getSuccessfulNamespaces()).containsExactly(newNamespace);
verify(otherTimelock).fastForwardTimestamp(completedBackup.getBackupEndTimestamp());
}
use of com.palantir.atlasdb.backup.api.CompletedBackup in project atlasdb by palantir.
the class AtlasRestoreResourceTest method throwsIfWrongAuthHeaderIsProvided.
@Test
public void throwsIfWrongAuthHeaderIsProvided() {
CompletedBackup completedBackup = completedBackup();
AuthHeader wrongHeader = AuthHeader.of(BearerToken.valueOf("imposter"));
CompleteRestoreRequest request = CompleteRestoreRequest.of(ImmutableMap.of(NAMESPACE, completedBackup));
assertThatServiceExceptionThrownBy(() -> AtlasFutures.getUnchecked(atlasRestoreResource.completeRestore(wrongHeader, request))).hasType(ErrorType.PERMISSION_DENIED);
}
Aggregations