use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.image.ImageSettingsRequest 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.common.image.ImageSettingsRequest 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.common.image.ImageSettingsRequest in project cloudbreak by hortonworks.
the class FreeIpaImageProvider method getImage.
@Override
public Optional<ImageWrapper> getImage(ImageSettingsRequest imageSettings, String region, String platform) {
String imageId = imageSettings.getId();
String catalogUrl = StringUtils.isNotBlank(imageSettings.getCatalog()) ? imageSettings.getCatalog() : defaultCatalogUrl;
String imageOs = StringUtils.isNotBlank(imageSettings.getOs()) ? imageSettings.getOs() : defaultOs;
ImageCatalog cachedImageCatalog = imageCatalogProvider.getImageCatalog(catalogUrl);
return findImageForAppVersion(region, platform, imageId, imageOs, cachedImageCatalog).or(() -> retryAfterEvictingCache(region, platform, imageId, catalogUrl, imageOs)).map(i -> new ImageWrapper(i, catalogUrl, null));
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.image.ImageSettingsRequest 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);
}
}
use of com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.image.ImageSettingsRequest in project cloudbreak by hortonworks.
the class ImageService method imageEntityToImageSettingsRequest.
private ImageSettingsRequest imageEntityToImageSettingsRequest(ImageEntity imageEntity) {
final ImageSettingsRequest imageSettings = new ImageSettingsRequest();
imageSettings.setCatalog(Objects.requireNonNullElse(imageEntity.getImageCatalogName(), imageEntity.getImageCatalogUrl()));
imageSettings.setId(imageEntity.getImageId());
return imageSettings;
}
Aggregations