use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.Status in project cloudbreak by hortonworks.
the class UserSyncStatusToUserSyncStatusResponseConverterTest method convertJsonException.
@Test
void convertJsonException() throws IOException {
Json eventGenerationIds = mock(Json.class);
IOException e = new IOException("test exception");
when(eventGenerationIds.get(any(Class.class))).thenThrow(e);
UserSyncStatus status = new UserSyncStatus();
status.setStack(mock(Stack.class));
status.setUmsEventGenerationIds(eventGenerationIds);
UserSyncStatusResponse response = underTest.convert(status);
assertThat(response).returns(null, UserSyncStatusResponse::getLastStartedUserSyncId).returns(null, UserSyncStatusResponse::getLastSuccessfulUserSyncId).returns(null, UserSyncStatusResponse::getEventGenerationIds);
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.Status in project cloudbreak by hortonworks.
the class UserV1ControllerTest method getStatusInternal.
@Test
void getStatusInternal() {
String operationId = "testId";
Operation operation = mock(Operation.class);
when(operationService.getOperationForAccountIdAndOperationId(ACCOUNT_ID, operationId)).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
assertEquals(status, ThreadBasedUserCrnProvider.doAsInternalActor("crn", () -> underTest.getSyncOperationStatusInternal(ACCOUNT_ID, operationId)));
verify(operationService, times(1)).getOperationForAccountIdAndOperationId(ACCOUNT_ID, operationId);
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.Status in project cloudbreak by hortonworks.
the class UserV1ControllerTest method synchronizeUserRejected.
@Test
void synchronizeUserRejected() {
Operation operation = mock(Operation.class);
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(Set.of(USER_CRN), Set.of(), Optional.empty());
when(userSyncService.synchronizeUsersWithCustomPermissionCheck(ACCOUNT_ID, USER_CRN, Set.of(), userSyncFilter, WorkloadCredentialsUpdateType.UPDATE_IF_CHANGED, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT)).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(status.getStatus()).thenReturn(SynchronizationStatus.REJECTED);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
SynchronizeUserRequest request = mock(SynchronizeUserRequest.class);
assertThrows(SyncOperationAlreadyRunningException.class, () -> ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> underTest.synchronizeUser(request)));
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.Status in project cloudbreak by hortonworks.
the class UserV1ControllerTest method synchronizeAllUsersNullDeleteWorkloadUser.
@Test
void synchronizeAllUsersNullDeleteWorkloadUser() {
Set<String> environments = Set.of(ENV_CRN);
Set<String> users = Set.of(USER_CRN);
Set<String> machineUsers = Set.of(MACHINE_USER_CRN);
SynchronizeAllUsersRequest request = new SynchronizeAllUsersRequest();
request.setEnvironments(environments);
request.setUsers(users);
request.setMachineUsers(machineUsers);
request.setWorkloadCredentialsUpdateType(WorkloadCredentialsUpdateType.FORCE_UPDATE);
request.setDeletedWorkloadUsers(null);
Operation operation = mock(Operation.class);
when(userSyncService.synchronizeUsersWithCustomPermissionCheck(any(), any(), any(), any(), any(), any())).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
assertEquals(status, ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> underTest.synchronizeAllUsers(request)));
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(users, machineUsers, Optional.empty());
verify(userSyncService, times(1)).synchronizeUsersWithCustomPermissionCheck(ACCOUNT_ID, USER_CRN, environments, userSyncFilter, WorkloadCredentialsUpdateType.FORCE_UPDATE, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT);
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.Status in project cloudbreak by hortonworks.
the class ProviderChecker method updateAndGetStatuses.
public List<ProviderSyncResult> updateAndGetStatuses(Stack stack, Set<InstanceMetaData> checkableInstances, Map<InstanceMetaData, DetailedStackStatus> instanceHealthStatusMap, boolean updateStatusFromFlow) {
return checkedMeasure(() -> {
List<ProviderSyncResult> results = new ArrayList<>();
List<CloudVmInstanceStatus> statuses = stackInstanceProviderChecker.checkStatus(stack, checkableInstances);
if (!updateStatusFromFlow && flowLogService.isOtherFlowRunning(stack.getId())) {
throw new InterruptSyncingException(":::Auto sync::: interrupt syncing in updateAndGetStatuses, flow is running on freeipa stack " + stack.getName());
} else {
statuses.forEach(s -> {
Optional<InstanceMetaData> instanceMetaData = checkableInstances.stream().filter(i -> s.getCloudInstance().getInstanceId().equals(i.getInstanceId())).findFirst();
if (instanceMetaData.isPresent()) {
InstanceStatus instanceStatus = updateStatuses(s, instanceMetaData.get(), instanceHealthStatusMap);
if (instanceStatus != null) {
results.add(new ProviderSyncResult("", instanceStatus, false, s.getCloudInstance().getInstanceId()));
}
} else {
LOGGER.info(":::Auto sync::: Cannot find instanceMetaData");
}
});
checkableInstances.forEach(instanceMetaData -> {
if (statuses.stream().noneMatch(s -> s.getCloudInstance().getInstanceId().equals(instanceMetaData.getInstanceId()))) {
if (updateStatus) {
setStatusIfNotTheSame(instanceMetaData, InstanceStatus.DELETED_ON_PROVIDER_SIDE);
instanceMetaDataService.save(instanceMetaData);
} else {
LOGGER.debug("updateStatus flag is false, don't update status");
}
}
});
return results;
}
}, LOGGER, ":::Auto sync::: provider is checked in {}ms");
}
Aggregations