@SerializedNames({ "sourceVirtualMachine", "storageProfile", "provisioningState"}) public static ImageProperties create(final IdReference sourceVirtualMachine, final StorageProfile storageProfile, final String provisioningState) { return builder() .sourceVirtualMachine(sourceVirtualMachine) .storageProfile(storageProfile) .provisioningState(provisioningState) .build(); }
public void getVirtualMachineImage() throws InterruptedException { server.enqueue(jsonResponse("/virtualmachineimageget.json")); ImageApi imageApi = api.getVirtualMachineImageApi(resourcegroup); Image result = imageApi.get(imageName); assertSent(server, "GET", PATH); assertEquals(result.name(), imageName); assertEquals(result.location(), location); assertNotNull(result.properties().sourceVirtualMachine()); assertNotNull(result.properties().storageProfile()); }
@Override public VMImage apply(Image input) { return VMImage.customImage().resourceGroup(extractResourceGroup(input.id())).customImageId(input.id()).location(input.location()).name(input.name()) .offer(input.properties().storageProfile().osDisk().osType()).build(); } }
@Override public VMImage apply(Image input) { return VMImage.customImage().resourceGroup(extractResourceGroup(input.id())).customImageId(input.id()).location(input.location()).name(input.name()) .offer(input.properties().storageProfile().osDisk().osType()).build(); } }
@SerializedNames({ "sourceVirtualMachine", "storageProfile", "provisioningState"}) public static ImageProperties create(final IdReference sourceVirtualMachine, final StorageProfile storageProfile, final String provisioningState) { return builder() .sourceVirtualMachine(sourceVirtualMachine) .storageProfile(storageProfile) .provisioningState(provisioningState) .build(); }
@Override public Image call() throws Exception { logger.debug(">> generalizing virtal machine %s...", vmName); api.getVirtualMachineApi(resourceGroupName).generalize(vmName); org.jclouds.azurecompute.arm.domain.Image imageFromVM = api.getVirtualMachineImageApi(resourceGroupName) .createOrUpdate(cloneTemplate.getName(), vm.location(), ImageProperties.builder().sourceVirtualMachine(vmIdRef).build()); checkState(imageAvailablePredicate.create(resourceGroupName).apply(imageFromVM.name()), "Image for node %s was not created within the configured time limit", cloneTemplate.getName()); return compose(vmImageToImage, customImagetoVmImage).apply(imageFromVM); } });
@Override public Image call() throws Exception { logger.debug(">> generalizing virtal machine %s...", vmName); api.getVirtualMachineApi(resourceGroupName).generalize(vmName); org.jclouds.azurecompute.arm.domain.Image imageFromVM = api.getVirtualMachineImageApi(resourceGroupName) .createOrUpdate(cloneTemplate.getName(), vm.location(), ImageProperties.builder().sourceVirtualMachine(vmIdRef).build()); checkState(imageAvailablePredicate.create(resourceGroupName).apply(imageFromVM.name()), "Image for node %s was not created within the configured time limit", cloneTemplate.getName()); return compose(vmImageToImage, customImagetoVmImage).apply(imageFromVM); } });
@Test public void testCreateImage() throws RunNodesException { NodeMetadata node = getOnlyElement(view.getComputeService().createNodesInGroup(group, 1, resourceGroup(group))); IdReference vmIdRef = IdReference.create(node.getProviderId()); view.getComputeService().suspendNode(node.getId()); api.getVirtualMachineApi(group).generalize(node.getName()); image = imageApi.createOrUpdate(imageName, location, ImageProperties.builder() .sourceVirtualMachine(vmIdRef).build()); assertNotNull(image); }
private Image newVirtualMachineImage() { return Image .builder() .name(imageName) .location(location) .properties( ImageProperties .builder() .sourceVirtualMachine(IdReference.create("vmId")) .storageProfile( StorageProfile.create(null, OSDisk.builder().osType("Linux").name("Ubuntu").build(), ImmutableList.<DataDisk> of())).provisioningState("Succeeded").build()).build(); } }