use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.tags.upgrade.UpgradeV4Request in project cloudbreak by hortonworks.
the class DistroXUpgradeAvailabilityServiceTest method testWhenRangerRazDisabledAndEntitlementGrantedThenUpgradeAllowed.
@Test
public void testWhenRangerRazDisabledAndEntitlementGrantedThenUpgradeAllowed() {
UpgradeV4Request request = new UpgradeV4Request();
UpgradeV4Response response = new UpgradeV4Response();
ImageInfoV4Response currentImage = createImageResponse(2L, "7.2.0");
ImageInfoV4Response candidateImage1 = createImageResponse(3L, "7.2.1");
ImageInfoV4Response candidateImage2 = createImageResponse(4L, "7.2.2");
response.setUpgradeCandidates(List.of(candidateImage1, candidateImage2));
response.setCurrent(currentImage);
when(entitlementService.datahubRuntimeUpgradeEnabled(ACCOUNT_ID)).thenReturn(true);
when(stackService.getByNameOrCrnInWorkspace(CLUSTER, WORKSPACE_ID)).thenReturn(stack);
when(stackUpgradeOperations.checkForClusterUpgrade(ACCOUNT_ID, stack, WORKSPACE_ID, request)).thenReturn(response);
assertDoesNotThrow(() -> underTest.checkForUpgrade(CLUSTER, WORKSPACE_ID, request, USER_CRN));
verify(clusterService, never()).getClusterByStackResourceCrn(DATALAKE_CRN);
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.tags.upgrade.UpgradeV4Request in project cloudbreak by hortonworks.
the class DistroXUpgradeAvailabilityServiceTest method testWhenRangerRazEnabledAndEntitlementNotGrantedThenUpgradeNotAllowed.
@Test
public void testWhenRangerRazEnabledAndEntitlementNotGrantedThenUpgradeNotAllowed() {
Cluster datalakeCluster = TestUtil.cluster();
datalakeCluster.setRangerRazEnabled(true);
stack.setDatalakeCrn(DATALAKE_CRN);
UpgradeV4Request request = new UpgradeV4Request();
UpgradeV4Response response = new UpgradeV4Response();
ImageInfoV4Response currentImage = createImageResponse(2L, "7.2.0");
ImageInfoV4Response candidateImage1 = createImageResponse(3L, "7.2.1");
ImageInfoV4Response candidateImage2 = createImageResponse(4L, "7.2.2");
response.setUpgradeCandidates(List.of(candidateImage1, candidateImage2));
response.setCurrent(currentImage);
when(entitlementService.datahubRuntimeUpgradeEnabled(ACCOUNT_ID)).thenReturn(false);
when(stackService.getByNameOrCrnInWorkspace(CLUSTER, WORKSPACE_ID)).thenReturn(stack);
when(stackUpgradeOperations.checkForClusterUpgrade(ACCOUNT_ID, stack, WORKSPACE_ID, request)).thenReturn(response);
when(clusterService.getClusterByStackResourceCrn(DATALAKE_CRN)).thenReturn(datalakeCluster);
when(runtimeVersionService.getRuntimeVersion(any())).thenReturn(Optional.of("7.2.0"));
BadRequestException exception = assertThrows(BadRequestException.class, () -> underTest.checkForUpgrade(CLUSTER, WORKSPACE_ID, request, USER_CRN));
assertEquals("Data Hub Upgrade is not allowed as Ranger RAZ is enabled for [dummyCluster] cluster, because runtime version is [7.2.0].", exception.getMessage());
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.tags.upgrade.UpgradeV4Request in project cloudbreak by hortonworks.
the class DistroXUpgradeAvailabilityServiceTest method testCheckForUpgradeWhenDataLakeAndDataHubIsOnTheSameVersionAndNoUpgradeIsAvailable.
@Test
@DisplayName("this test simulates when the Data Lake and Data Hub version is the same (7.1.0)" + "and the only upgrade options for Data Hub is newer than the DL (7.2.0,7.3.0,7.4.0). this will be filtered" + "since the upgrade options are newer than the Data Lake. Data Lake upgrade shall be suggested")
public void testCheckForUpgradeWhenDataLakeAndDataHubIsOnTheSameVersionAndNoUpgradeIsAvailable() {
UpgradeV4Request request = new UpgradeV4Request();
UpgradeV4Response response = new UpgradeV4Response();
ImageInfoV4Response image1 = createImageResponse(2L, "7.2.0");
ImageInfoV4Response image2 = createImageResponse(8L, "7.3.0");
ImageInfoV4Response image3 = createImageResponse(6L, "7.4.0");
response.setUpgradeCandidates(List.of(image1, image2, image3));
StackView stackView = new StackView();
ClusterView clusterView = new ClusterView();
clusterView.setId(1L);
ReflectionTestUtils.setField(stackView, "cluster", clusterView);
when(stackService.getByNameOrCrnInWorkspace(CLUSTER, WORKSPACE_ID)).thenReturn(stack);
when(stackUpgradeOperations.checkForClusterUpgrade(ACCOUNT_ID, stack, WORKSPACE_ID, request)).thenReturn(response);
when(stackViewService.findDatalakeViewByEnvironmentCrn(stack.getEnvironmentCrn())).thenReturn(Optional.of(stackView));
when(runtimeVersionService.getRuntimeVersion(eq(clusterView.getId()))).thenReturn(Optional.of("7.1.0"));
when(entitlementService.isDifferentDataHubAndDataLakeVersionAllowed(anyString())).thenReturn(false);
when(entitlementService.datahubRuntimeUpgradeEnabled(ACCOUNT_ID)).thenReturn(true);
UpgradeV4Response result = underTest.checkForUpgrade(CLUSTER, WORKSPACE_ID, request, USER_CRN);
String expectedMessage = "Data Hub can only be upgraded to the same version as the Data Lake (7.1.0). " + "To upgrade your Data Hub, please upgrade your Data Lake first.";
assertEquals(0, result.getUpgradeCandidates().size());
assertEquals(expectedMessage, result.getReason());
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.tags.upgrade.UpgradeV4Request in project cloudbreak by hortonworks.
the class DistroXUpgradeAvailabilityServiceTest method testCheckForUpgradeWhenDataHubUpgradeIsGaAndOneMaintenanceUpgradeCandidateIsAvaiable.
@Test
@DisplayName("this test simulates that a Data Hub blueprint is GA for upgrade " + " and there 3 image candidates for upgrade")
public void testCheckForUpgradeWhenDataHubUpgradeIsGaAndOneMaintenanceUpgradeCandidateIsAvaiable() {
Cluster datalakeCluster = TestUtil.cluster();
datalakeCluster.setRangerRazEnabled(false);
UpgradeV4Request request = new UpgradeV4Request();
UpgradeV4Response response = new UpgradeV4Response();
ImageInfoV4Response current = createImageResponse(1L, "7.1.0");
ImageInfoV4Response image1 = createImageResponse(2L, "7.1.0");
ImageInfoV4Response image2 = createImageResponse(8L, "7.2.0");
ImageInfoV4Response image3 = createImageResponse(6L, "7.3.0");
response.setUpgradeCandidates(List.of(image1, image2, image3));
response.setCurrent(current);
stack.getCluster().getBlueprint().setBlueprintUpgradeOption(BlueprintUpgradeOption.GA);
when(stackService.getByNameOrCrnInWorkspace(CLUSTER, WORKSPACE_ID)).thenReturn(stack);
when(stackUpgradeOperations.checkForClusterUpgrade(ACCOUNT_ID, stack, WORKSPACE_ID, request)).thenReturn(response);
UpgradeV4Response result = underTest.checkForUpgrade(CLUSTER, WORKSPACE_ID, request, USER_CRN);
verify(entitlementService, times(1)).datahubRuntimeUpgradeEnabled(ACCOUNT_ID);
assertEquals(3, result.getUpgradeCandidates().size());
assertTrue(result.getUpgradeCandidates().stream().anyMatch(img -> img.getCreated() == 2L && "7.1.0".equals(img.getComponentVersions().getCdp())));
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.tags.upgrade.UpgradeV4Request in project cloudbreak by hortonworks.
the class DistroXUpgradeAvailabilityServiceTest method testWhenRangerRazDisabledAndEntitlementNotGrantedThenUpgradeAllowed.
@Test
public void testWhenRangerRazDisabledAndEntitlementNotGrantedThenUpgradeAllowed() {
Cluster datalakeCluster = TestUtil.cluster();
datalakeCluster.setRangerRazEnabled(false);
stack.setDatalakeCrn(DATALAKE_CRN);
stack.setCluster(TestUtil.cluster());
UpgradeV4Request request = new UpgradeV4Request();
UpgradeV4Response response = new UpgradeV4Response();
ImageInfoV4Response currentImage = createImageResponse(2L, "7.2.0");
ImageInfoV4Response candidateImage1 = createImageResponse(3L, "7.2.1");
ImageInfoV4Response candidateImage2 = createImageResponse(4L, "7.2.2");
response.setUpgradeCandidates(List.of(candidateImage1, candidateImage2));
response.setCurrent(currentImage);
when(entitlementService.datahubRuntimeUpgradeEnabled(ACCOUNT_ID)).thenReturn(false);
when(stackService.getByNameOrCrnInWorkspace(CLUSTER, WORKSPACE_ID)).thenReturn(stack);
when(stackUpgradeOperations.checkForClusterUpgrade(ACCOUNT_ID, stack, WORKSPACE_ID, request)).thenReturn(response);
when(clusterService.getClusterByStackResourceCrn(any())).thenReturn(datalakeCluster);
assertDoesNotThrow(() -> underTest.checkForUpgrade(CLUSTER, WORKSPACE_ID, request, USER_CRN));
verify(clusterService, times(1)).getClusterByStackResourceCrn(DATALAKE_CRN);
}
Aggregations