Search in sources :

Example 11 with VmImage

use of com.sequenceiq.cloudbreak.domain.VmImage in project cloudbreak by hortonworks.

the class CustomImageCatalogServiceTest method testUpdateCustomImageWithNewVmImage.

@Test
public void testUpdateCustomImageWithNewVmImage() throws TransactionService.TransactionExecutionException {
    CustomImage updatedCustomImage = aCustomImage();
    CustomImage savedCustomImage = new CustomImage();
    savedCustomImage.setName(IMAGE_NAME);
    ImageCatalog imageCatalog = new ImageCatalog();
    imageCatalog.getCustomImages().add(savedCustomImage);
    doAnswer(invocation -> ((Supplier<CustomImage>) invocation.getArgument(0)).get()).when(transactionService).required(any(Supplier.class));
    when(imageCatalogService.getImageCatalogByName(WORKSPACE_ID, IMAGE_CATALOG_NAME)).thenReturn(imageCatalog);
    when(imageCatalogService.pureSave(imageCatalog)).thenReturn(imageCatalog);
    CustomImage actual = victim.updateCustomImage(WORKSPACE_ID, CREATOR, IMAGE_CATALOG_NAME, updatedCustomImage);
    assertEquals(1, imageCatalog.getCustomImages().size());
    assertEquals(CUSTOMIZED_IMAGE_ID, actual.getCustomizedImageId());
    assertEquals(BASE_PARCEL_URL, actual.getBaseParcelUrl());
    assertEquals(ImageType.RUNTIME, actual.getImageType());
    assertEquals(1, actual.getVmImage().size());
    VmImage actualVmImage = actual.getVmImage().stream().findFirst().get();
    assertEquals(CREATOR, actualVmImage.getCreator());
    assertEquals(REGION, actualVmImage.getRegion());
    assertEquals(IMAGE_REFERENCE, actualVmImage.getImageReference());
}
Also used : CustomImage(com.sequenceiq.cloudbreak.domain.CustomImage) Supplier(java.util.function.Supplier) VmImage(com.sequenceiq.cloudbreak.domain.VmImage) ImageCatalog(com.sequenceiq.cloudbreak.domain.ImageCatalog) Test(org.junit.jupiter.api.Test)

Example 12 with VmImage

use of com.sequenceiq.cloudbreak.domain.VmImage in project cloudbreak by hortonworks.

the class CustomImageCatalogServiceTest method testCreateCustomImage.

@Test
public void testCreateCustomImage() throws TransactionService.TransactionExecutionException {
    CrnTestUtil.mockCrnGenerator(regionAwareCrnGenerator);
    ImageCatalog imageCatalog = new ImageCatalog();
    CustomImage expected = aCustomImage();
    doAnswer(invocation -> ((Supplier<CustomImage>) invocation.getArgument(0)).get()).when(transactionService).required(any(Supplier.class));
    when(imageCatalogService.getImageCatalogByName(WORKSPACE_ID, IMAGE_CATALOG_NAME)).thenReturn(imageCatalog);
    when(imageCatalogService.pureSave(imageCatalog)).thenReturn(imageCatalog);
    CustomImage actual = victim.createCustomImage(WORKSPACE_ID, ACCOUNT_ID, CREATOR, IMAGE_CATALOG_NAME, expected);
    VmImage actualVmImage = actual.getVmImage().stream().findFirst().get();
    assertNotEquals(IMAGE_NAME, actual.getName());
    assertEquals(CUSTOMIZED_IMAGE_ID, actual.getCustomizedImageId());
    assertEquals(BASE_PARCEL_URL, actual.getBaseParcelUrl());
    assertEquals(ImageType.RUNTIME, actual.getImageType());
    assertEquals(CREATOR, actual.getCreator());
    assertNotNull(actual.getResourceCrn());
    assertEquals(imageCatalog, actual.getImageCatalog());
    assertEquals(1, actual.getVmImage().size());
    assertEquals(CREATOR, actualVmImage.getCreator());
    assertEquals(REGION, actualVmImage.getRegion());
    assertEquals(IMAGE_REFERENCE, actualVmImage.getImageReference());
    assertEquals(actual, actualVmImage.getCustomImage());
}
Also used : CustomImage(com.sequenceiq.cloudbreak.domain.CustomImage) Supplier(java.util.function.Supplier) VmImage(com.sequenceiq.cloudbreak.domain.VmImage) ImageCatalog(com.sequenceiq.cloudbreak.domain.ImageCatalog) Test(org.junit.jupiter.api.Test)

Example 13 with VmImage

use of com.sequenceiq.cloudbreak.domain.VmImage in project cloudbreak by hortonworks.

the class CustomImageCatalogServiceTest method aCustomImage.

private CustomImage aCustomImage() {
    CustomImage customImage = new CustomImage();
    VmImage vmImage = new VmImage();
    vmImage.setImageReference(IMAGE_REFERENCE);
    vmImage.setRegion(REGION);
    customImage.setName(IMAGE_NAME);
    customImage.setCustomizedImageId(CUSTOMIZED_IMAGE_ID);
    customImage.setImageType(ImageType.RUNTIME);
    customImage.setBaseParcelUrl(BASE_PARCEL_URL);
    customImage.setVmImage(Collections.singleton(vmImage));
    return customImage;
}
Also used : CustomImage(com.sequenceiq.cloudbreak.domain.CustomImage) VmImage(com.sequenceiq.cloudbreak.domain.VmImage)

Aggregations

VmImage (com.sequenceiq.cloudbreak.domain.VmImage)13 CustomImage (com.sequenceiq.cloudbreak.domain.CustomImage)10 Test (org.junit.jupiter.api.Test)7 ImageCatalog (com.sequenceiq.cloudbreak.domain.ImageCatalog)6 Supplier (java.util.function.Supplier)5 Strings (com.google.common.base.Strings)1 CustomImageCatalogV4CreateImageRequest (com.sequenceiq.cloudbreak.api.endpoint.v4.customimage.request.CustomImageCatalogV4CreateImageRequest)1 CustomImageCatalogV4UpdateImageRequest (com.sequenceiq.cloudbreak.api.endpoint.v4.customimage.request.CustomImageCatalogV4UpdateImageRequest)1 CrnResourceDescriptor (com.sequenceiq.cloudbreak.auth.crn.CrnResourceDescriptor)1 RegionAwareCrnGenerator (com.sequenceiq.cloudbreak.auth.crn.RegionAwareCrnGenerator)1 Image (com.sequenceiq.cloudbreak.cloud.model.catalog.Image)1 BadRequestException (com.sequenceiq.cloudbreak.common.exception.BadRequestException)1 NotFoundException (com.sequenceiq.cloudbreak.common.exception.NotFoundException)1 TransactionService (com.sequenceiq.cloudbreak.common.service.TransactionService)1 CloudbreakImageCatalogException (com.sequenceiq.cloudbreak.core.CloudbreakImageCatalogException)1 CloudbreakImageNotFoundException (com.sequenceiq.cloudbreak.core.CloudbreakImageNotFoundException)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Set (java.util.Set)1