use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.repair.RepairInstancesRequest in project cloudbreak by hortonworks.
the class RepairInstancesServiceTest method testRepairForceWhenOnlyBadInstarncesRemain.
@Test
void testRepairForceWhenOnlyBadInstarncesRemain() {
Stack stack = createStack(Status.UNREACHABLE, List.of(InstanceStatus.UNREACHABLE, InstanceStatus.UNREACHABLE));
List<String> instanceIds = List.of("i-2");
OperationStatus operationStatus = new OperationStatus();
when(stackService.getByEnvironmentCrnAndAccountIdWithListsAndMdcContext(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(stack);
when(operationService.startOperation(any(), any(), any(), any())).thenReturn(createOperation());
when(operationToOperationStatusConverter.convert(any())).thenReturn(operationStatus);
when(entitlementService.freeIpaHaRepairEnabled(any())).thenReturn(Boolean.TRUE);
when(stackUpdater.updateStackStatus(anyLong(), any(), any())).thenReturn(stack);
RepairInstancesRequest request = new RepairInstancesRequest();
request.setForceRepair(true);
request.setInstanceIds(instanceIds);
request.setEnvironmentCrn(ENVIRONMENT_ID1);
assertEquals(operationStatus, underTest.repairInstances(ACCOUNT_ID, request));
ArgumentCaptor acAcceptable = ArgumentCaptor.forClass(Acceptable.class);
verify(flowManager).notify(eq("REPAIR_TRIGGER_EVENT"), (Acceptable) acAcceptable.capture());
assertTrue(acAcceptable.getValue() instanceof RepairEvent);
RepairEvent repairEvent = (RepairEvent) acAcceptable.getValue();
assertEquals(instanceIds, repairEvent.getRepairInstanceIds());
verify(stackUpdater).updateStackStatus(eq(STACK_ID), eq(DetailedStackStatus.REPAIR_REQUESTED), any());
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.repair.RepairInstancesRequest in project cloudbreak by hortonworks.
the class RepairInstancesServiceTest method testRepairInstancesWithNoneSpecified.
@Test
void testRepairInstancesWithNoneSpecified() {
Stack stack = createStack(Status.UNHEALTHY, List.of(InstanceStatus.CREATED, InstanceStatus.UNREACHABLE));
List<String> instanceIds = List.of("i-2");
OperationStatus operationStatus = new OperationStatus();
when(stackService.getByEnvironmentCrnAndAccountIdWithListsAndMdcContext(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(stack);
when(healthDetailsService.getHealthDetails(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(createHealthDetails(InstanceStatus.CREATED, InstanceStatus.UNREACHABLE));
when(operationService.startOperation(any(), any(), any(), any())).thenReturn(createOperation());
when(operationToOperationStatusConverter.convert(any())).thenReturn(operationStatus);
when(entitlementService.freeIpaHaRepairEnabled(any())).thenReturn(Boolean.TRUE);
when(stackUpdater.updateStackStatus(anyLong(), any(), any())).thenReturn(stack);
RepairInstancesRequest request = new RepairInstancesRequest();
request.setEnvironmentCrn(ENVIRONMENT_ID1);
assertEquals(operationStatus, underTest.repairInstances(ACCOUNT_ID, request));
ArgumentCaptor acAcceptable = ArgumentCaptor.forClass(Acceptable.class);
verify(flowManager).notify(eq("REPAIR_TRIGGER_EVENT"), (Acceptable) acAcceptable.capture());
assertTrue(acAcceptable.getValue() instanceof RepairEvent);
RepairEvent repairEvent = (RepairEvent) acAcceptable.getValue();
assertEquals(instanceIds, repairEvent.getRepairInstanceIds());
verify(stackUpdater).updateStackStatus(eq(STACK_ID), eq(DetailedStackStatus.REPAIR_REQUESTED), any());
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.repair.RepairInstancesRequest in project cloudbreak by hortonworks.
the class FreeIpaV1ControllerTest method repair.
@Test
void repair() {
when(crnService.getCurrentAccountId()).thenReturn(ACCOUNT_ID);
RepairInstancesRequest request = new RepairInstancesRequest();
underTest.repairInstances(request);
verify(repairInstancesService, times(1)).repairInstances(crnService.getCurrentAccountId(), request);
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.repair.RepairInstancesRequest in project cloudbreak by hortonworks.
the class RepairInstancesServiceTest method testRepairThrowsWhenOnlyDeletedInstancesAndForceIsCalledRemain.
@Test
void testRepairThrowsWhenOnlyDeletedInstancesAndForceIsCalledRemain() {
Stack stack = createStack(Status.DELETED_ON_PROVIDER_SIDE, List.of(InstanceStatus.DELETED_BY_PROVIDER, InstanceStatus.DELETED_BY_PROVIDER));
when(stackService.getByEnvironmentCrnAndAccountIdWithListsAndMdcContext(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(stack);
when(healthDetailsService.getHealthDetails(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(createHealthDetails(InstanceStatus.UNREACHABLE, InstanceStatus.UNREACHABLE));
RepairInstancesRequest request = new RepairInstancesRequest();
request.setEnvironmentCrn(ENVIRONMENT_ID1);
assertThrows(BadRequestException.class, () -> {
underTest.repairInstances(ACCOUNT_ID, request);
});
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.repair.RepairInstancesRequest in project cloudbreak by hortonworks.
the class RepairInstancesServiceTest method testRepairThrowsWhenOneBadInstancesRemain.
@Test
void testRepairThrowsWhenOneBadInstancesRemain() {
Stack stack = createStack(Status.UNHEALTHY, List.of(InstanceStatus.UNREACHABLE, InstanceStatus.UNREACHABLE));
when(stackService.getByEnvironmentCrnAndAccountIdWithListsAndMdcContext(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(stack);
when(healthDetailsService.getHealthDetails(ENVIRONMENT_ID1, ACCOUNT_ID)).thenReturn(createHealthDetails(InstanceStatus.UNREACHABLE, InstanceStatus.UNREACHABLE));
RepairInstancesRequest request = new RepairInstancesRequest();
request.setEnvironmentCrn(ENVIRONMENT_ID1);
assertThrows(BadRequestException.class, () -> {
underTest.repairInstances(ACCOUNT_ID, request);
});
}
Aggregations