use of com.sequenceiq.sdx.api.model.SdxClusterResponse in project cloudbreak by hortonworks.
the class TelemetryConverterTest method testConvertFromEnvAndSdxResponseWithWADisabledGlobally.
@Test
public void testConvertFromEnvAndSdxResponseWithWADisabledGlobally() {
// GIVEN
TelemetryResponse response = new TelemetryResponse();
SdxClusterResponse sdxClusterResponse = new SdxClusterResponse();
sdxClusterResponse.setCrn("crn:cdp:cloudbreak:us-west-1:someone:sdxcluster:sdxId");
sdxClusterResponse.setName("sdxName");
AltusDatabusConfiguration altusDatabusConfiguration = new AltusDatabusConfiguration(DATABUS_ENDPOINT, DATABUS_S3_BUCKET, false, "", null);
MeteringConfiguration meteringConfiguration = new MeteringConfiguration(true, null, null);
ClusterLogsCollectionConfiguration logCollectionConfig = new ClusterLogsCollectionConfiguration(true, null, null);
MonitoringConfiguration monitoringConfig = new MonitoringConfiguration();
monitoringConfig.setEnabled(true);
TelemetryConfiguration telemetryConfiguration = new TelemetryConfiguration(altusDatabusConfiguration, meteringConfiguration, logCollectionConfig, monitoringConfig, null);
TelemetryConverter converter = new TelemetryConverter(telemetryConfiguration, false, true);
// WHEN
TelemetryRequest result = converter.convert(response, sdxClusterResponse);
// THEN
assertNull(result.getWorkloadAnalytics());
}
use of com.sequenceiq.sdx.api.model.SdxClusterResponse in project cloudbreak by hortonworks.
the class SdxConverterTest method testGetSharedServiceWhenSdxIsNotRunning.
@Test
public void testGetSharedServiceWhenSdxIsNotRunning() {
SdxClusterResponse sdxClusterResponse = new SdxClusterResponse();
sdxClusterResponse.setName("some-sdx");
sdxClusterResponse.setEnvironmentName("some-env");
sdxClusterResponse.setStatusReason("external db creation in progress");
sdxClusterResponse.setStatus(SdxClusterStatusResponse.EXTERNAL_DATABASE_CREATION_IN_PROGRESS);
BadRequestException exception = Assertions.assertThrows(BadRequestException.class, () -> underTest.getSharedService(sdxClusterResponse));
Assertions.assertEquals(exception.getMessage(), "Your current Environment some-env contains one Data Lake " + "the name of which is some-sdx. This Data Lake should be in running/available state but currently it " + "is in 'EXTERNAL_DATABASE_CREATION_IN_PROGRESS' instead of Running. Please make sure your Data Lake" + " is up and running before you provision the Data Hub. If your Data Lake is in stopped state, please" + " restart it. If your Data Lake has failed to provision please check our documentation" + " https://docs.cloudera.com/management-console/cloud/data-lakes/topics/mc-data-lake.html or" + " contact the Cloudera support to get some help or try to provision a new Data Lake with the" + " correct configuration.");
}
use of com.sequenceiq.sdx.api.model.SdxClusterResponse in project cloudbreak by hortonworks.
the class CloudStorageDecoratorTest method testConvertWhenRequestHasNotCloudStorageLocationsAndSdxHasShouldTheSdxOnesBeUsed.
@Test
void testConvertWhenRequestHasNotCloudStorageLocationsAndSdxHasShouldTheSdxOnesBeUsed() {
CloudStorageCdpService storageLocationType = CloudStorageCdpService.RANGER_AUDIT;
SdxClusterResponse sdxReponse = new SdxClusterResponse();
String storageLocationValue = "MYBUCKET/CONTAINER2";
sdxReponse.setCloudStorageBaseLocation(storageLocationValue);
sdxReponse.setCloudStorageFileSystemType(FileSystemType.S3);
when(sdxClientService.getByEnvironmentCrn(any())).thenReturn(List.of(sdxReponse));
ConfigQueryEntry sdxConfigQueryEntry = new ConfigQueryEntry();
sdxConfigQueryEntry.setType(storageLocationType);
sdxConfigQueryEntry.setDefaultPath(storageLocationValue);
when(blueprintService.queryFileSystemParameters(any(), any(), any(), any(), any(), eq(Boolean.TRUE), eq(Boolean.FALSE), eq(0L))).thenReturn(Set.of(sdxConfigQueryEntry));
CloudStorageRequest result = underTest.decorate(BLUEPRINT_NAME, CLUSTER_NAME, null, new DetailedEnvironmentResponse());
assertNotNull(result);
assertTrue(result.getLocations().stream().anyMatch(loc -> storageLocationType.equals(loc.getType()) && storageLocationValue.equals(loc.getValue())));
}
use of com.sequenceiq.sdx.api.model.SdxClusterResponse in project cloudbreak by hortonworks.
the class CloudStorageDecoratorTest method testConvertWhenRequestHasCloudStorageLocationsAndSdxHasDifferentStorageLocationsShouldTheRequestLocationsBeUsed.
@Test
void testConvertWhenRequestHasCloudStorageLocationsAndSdxHasDifferentStorageLocationsShouldTheRequestLocationsBeUsed() {
CloudStorageCdpService storageLocationType = CloudStorageCdpService.RANGER_AUDIT;
String eStorageLocationValue = "MYBUCKET/CONTAINER";
StorageLocationBase storageLocationBase = new StorageLocationBase();
storageLocationBase.setType(storageLocationType);
storageLocationBase.setValue(eStorageLocationValue);
List<StorageLocationBase> storageLocations = List.of(storageLocationBase);
CloudStorageRequest request = new CloudStorageRequest();
request.setLocations(storageLocations);
SdxClusterResponse sdxReponse = new SdxClusterResponse();
String storageLocationValue = "MYBUCKET/CONTAINER2";
sdxReponse.setCloudStorageBaseLocation(storageLocationValue);
sdxReponse.setCloudStorageFileSystemType(FileSystemType.S3);
when(sdxClientService.getByEnvironmentCrn(any())).thenReturn(List.of(sdxReponse));
CloudStorageRequest result = underTest.decorate(BLUEPRINT_NAME, CLUSTER_NAME, request, new DetailedEnvironmentResponse());
assertNotNull(result);
assertTrue(result.getLocations().stream().anyMatch(loc -> storageLocationType.equals(loc.getType()) && eStorageLocationValue.equals(loc.getValue())));
}
use of com.sequenceiq.sdx.api.model.SdxClusterResponse in project cloudbreak by hortonworks.
the class CloudStorageDecoratorTest method testUpdateCloudStorageLocationsWhenRequestContainsOneTemplatedLocationAndOneWithoutTemplatePlaceholderThenThatShouldBeReplaced.
@Test
void testUpdateCloudStorageLocationsWhenRequestContainsOneTemplatedLocationAndOneWithoutTemplatePlaceholderThenThatShouldBeReplaced() {
String templatedStorageLocationBaseValue = "s3a://some-dir/some-other-dir/";
CloudStorageCdpService templatedStorageLocationType = CloudStorageCdpService.DEFAULT_FS;
String templatedStorageLocationValue = templatedStorageLocationBaseValue + "{{{clusterName}}}";
StorageLocationBase templatedStorageLocationBase = new StorageLocationBase();
templatedStorageLocationBase.setType(templatedStorageLocationType);
templatedStorageLocationBase.setValue(templatedStorageLocationValue);
CloudStorageCdpService storageLocationType = CloudStorageCdpService.FLINK_JOBMANAGER_ARCHIVE;
String eStorageLocationValue = "s3a://some-awesome-dir/some-other-awesome-dir/" + CLUSTER_NAME;
StorageLocationBase storageLocationBase = new StorageLocationBase();
storageLocationBase.setType(storageLocationType);
storageLocationBase.setValue(eStorageLocationValue);
List<StorageLocationBase> storageLocations = new ArrayList<>(2);
storageLocations.add(storageLocationBase);
storageLocations.add(templatedStorageLocationBase);
ConfigQueryEntry cqe = new ConfigQueryEntry();
cqe.setType(CloudStorageCdpService.DEFAULT_FS);
cqe.setDefaultPath(templatedStorageLocationBaseValue + CLUSTER_NAME);
CloudStorageRequest request = new CloudStorageRequest();
request.setLocations(storageLocations);
SdxClusterResponse sdxReponse = new SdxClusterResponse();
String storageLocationValue = eStorageLocationValue;
sdxReponse.setCloudStorageBaseLocation(storageLocationValue);
sdxReponse.setCloudStorageFileSystemType(FileSystemType.S3);
ConfigQueryEntry cqeFlink = new ConfigQueryEntry();
cqeFlink.setType(CloudStorageCdpService.FLINK_JOBMANAGER_ARCHIVE);
cqeFlink.setDefaultPath(storageLocationValue);
Set<ConfigQueryEntry> cqes = new LinkedHashSet<>(1);
cqes.add(cqe);
cqes.add(cqeFlink);
when(blueprintService.queryFileSystemParameters(BLUEPRINT_NAME, CLUSTER_NAME, storageLocationValue, FileSystemType.S3.name(), "", true, false, 0L)).thenReturn(cqes);
Pair<Blueprint, String> mockBt = mock(Pair.class);
when(blueprintService.getBlueprintAndText(BLUEPRINT_NAME, 0L)).thenReturn(mockBt);
FileSystemConfigQueryObject mockfscqo = mock(FileSystemConfigQueryObject.class);
when(blueprintService.createFileSystemConfigQueryObject(mockBt, CLUSTER_NAME, sdxReponse.getCloudStorageBaseLocation(), sdxReponse.getCloudStorageFileSystemType().name(), "", true, false)).thenReturn(mockfscqo);
when(cmCloudStorageConfigProvider.queryParameters(any(), eq(mockfscqo))).thenReturn(cqes);
CloudStorageRequest result = underTest.updateCloudStorageLocations(BLUEPRINT_NAME, CLUSTER_NAME, request, List.of(sdxReponse));
assertNotNull(result);
assertEquals(0, result.getLocations().stream().filter(slb -> slb.getValue().contains("{{{") && slb.getValue().contains("}}}")).count());
}
Aggregations