use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.image.Image in project cloudbreak by hortonworks.
the class FreeIpaImageProviderTest method testGetImagesGivenAllInputNonExistentOS.
@Test
public void testGetImagesGivenAllInputNonExistentOS() {
ImageSettingsRequest is = setupImageSettingsRequest(EXISTING_ID, CUSTOM_IMAGE_CATALOG_URL, NON_EXISTING_OS);
List<ImageWrapper> images = underTest.getImages(is, DEFAULT_REGION, DEFAULT_PLATFORM);
assertEquals(1, images.size());
ImageWrapper imageWrapper = images.get(0);
assertEquals(CUSTOM_IMAGE_CATALOG_URL, imageWrapper.getCatalogUrl());
assertNull(imageWrapper.getCatalogName());
Image image = imageWrapper.getImage();
assertEquals(DEFAULT_OS, image.getOs());
assertEquals(LATEST_DATE, image.getDate());
assertEquals(IMAGE_UUID, image.getUuid());
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.image.Image in project cloudbreak by hortonworks.
the class FreeIpaCreationHandler method setImage.
private void setImage(EnvironmentDto environment, CreateFreeIpaRequest createFreeIpaRequest) {
if (environment.getFreeIpaCreation() != null) {
String imageCatalog = environment.getFreeIpaCreation().getImageCatalog();
String imageId = environment.getFreeIpaCreation().getImageId();
if (!Strings.isNullOrEmpty(imageId)) {
LOGGER.info("FreeIPA creation with a pre-defined image catalog and image id: '{}', '{}'", imageCatalog, imageId);
ImageSettingsRequest imageSettings = new ImageSettingsRequest();
imageSettings.setCatalog(imageCatalog);
imageSettings.setId(imageId);
createFreeIpaRequest.setImage(imageSettings);
} else {
LOGGER.info("FreeIPA creation without pre-defined image settings. FreeIpa serivce is going to handle default settings.");
}
}
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.image.Image in project cloudbreak by hortonworks.
the class CoreImageProvider method getImage.
@Override
public Optional<ImageWrapper> getImage(ImageSettingsRequest imageSettings, String region, String platform) {
try {
ImageV4Response imageV4Response = imageCatalogV4Endpoint.getSingleImageByCatalogNameAndImageId(WORKSPACE_ID_DEFAULT, imageSettings.getCatalog(), imageSettings.getId());
Optional<Image> image = convert(imageV4Response);
return image.map(i -> new ImageWrapper(i, defaultCatalogUrl, imageSettings.getCatalog()));
} catch (Exception ex) {
LOGGER.warn("Image lookup failed: {}", ex.getMessage());
return Optional.empty();
}
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.image.Image in project cloudbreak by hortonworks.
the class FreeIpaImageProvider method retryAfterEvictingCache.
private Optional<Image> retryAfterEvictingCache(String region, String platform, String imageId, String catalogUrl, String imageOs) {
LOGGER.debug("Image not found with the parameters: imageId: {}, imageOs: {}, region: {}, platform: {}", imageId, imageOs, region, platform);
LOGGER.debug("Evicting image catalog cache to retry.");
imageCatalogProvider.evictImageCatalogCache(catalogUrl);
ImageCatalog renewedImageCatalog = imageCatalogProvider.getImageCatalog(catalogUrl);
return findImageForAppVersion(region, platform, imageId, imageOs, renewedImageCatalog);
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.image.Image in project cloudbreak by hortonworks.
the class ImageCatalogChangeService method changeImageCatalog.
public void changeImageCatalog(String environmentCrn, String accountId, String imageCatalog) {
try {
final Stack stack = stackService.getByEnvironmentCrnAndAccountId(environmentCrn, accountId);
MDCBuilder.buildMdcContext(stack);
if (flowLogService.isOtherFlowRunning(stack.getId())) {
throw new CloudbreakServiceException(String.format("Operation is running for stack '%s'. Please try again later.", stack.getName()));
}
final ImageSettingsRequest imageRequest = getImageSettingsRequestForNewCatalogWithCurrentImageSettings(imageCatalog, stack.getImage());
imageService.changeImage(stack, imageRequest);
} catch (ImageNotFoundException e) {
LOGGER.info("Could not find current image in new catalog", e);
throw new CloudbreakServiceException("Could not find current image in new catalog", e);
}
}
Aggregations