public void map(Disk disk, String snapshotId) { disk.setSnapshot(new Snapshot()); disk.getSnapshot().setId(snapshotId); }
@Override protected Disk addLinks(Disk model, String... subCollectionMembersToExclude) { Snapshot snapshotInfo = model.getSnapshot(); model.setSnapshot(null); super.addLinks(model, subCollectionMembersToExclude); if (snapshotInfo != null) { org.ovirt.engine.core.common.businessentities.Snapshot snapshot = getEntity(org.ovirt.engine.core.common.businessentities.Snapshot.class, QueryType.GetSnapshotBySnapshotId, new IdQueryParameters(asGuid(snapshotInfo.getId())), snapshotInfo.getId()); Vm vm = new Vm(); vm.setId(snapshot.getVmId().toString()); snapshotInfo.setVm(vm); model.setSnapshot(snapshotInfo); LinkHelper.addLinks(snapshotInfo, null, false); model.setSnapshot(snapshotInfo); } return model; }
@Override protected Disk addLinks(Disk model, String... subCollectionMembersToExclude) { Snapshot snapshotInfo = model.getSnapshot(); model.setSnapshot(null); super.addLinks(model, subCollectionMembersToExclude); if (snapshotInfo != null) { org.ovirt.engine.core.common.businessentities.Snapshot snapshot = getEntity(org.ovirt.engine.core.common.businessentities.Snapshot.class, QueryType.GetSnapshotBySnapshotId, new IdQueryParameters(asGuid(snapshotInfo.getId())), snapshotInfo.getId()); Vm vm = new Vm(); vm.setId(snapshot.getVmId().toString()); snapshotInfo.setVm(vm); model.setSnapshot(snapshotInfo); LinkHelper.addLinks(snapshotInfo, null, false); model.setSnapshot(snapshotInfo); } return model; }
diskImage.setImageStatus(mapDiskStatus(disk.getStatus())); if (disk.isSetSnapshot() && disk.getSnapshot().isSetId()) { diskImage.setVmSnapshotId(GuidUtils.asGuid(disk.getSnapshot().getId()));
protected Response attachDiskToVm(AbstractBackendCollectionResource resource, DiskAttachment attachment, IResolver entityResolver) { Guid diskId = Guid.createGuidFromStringDefaultEmpty(attachment.getDisk().getId()); DiskVmElement dve = map(attachment); dve.getId().setVmId(vmId); dve.getId().setDeviceId(diskId); AttachDetachVmDiskParameters params = new AttachDetachVmDiskParameters(dve); Disk disk = attachment.getDisk(); boolean isDiskActive = false; if (attachment.isSetActive()) { isDiskActive = BooleanUtils.toBoolean(attachment.isActive()); } params.setPlugUnPlug(isDiskActive); if (disk.isSetReadOnly()) { dve.setReadOnly(BooleanUtils.toBoolean(disk.isReadOnly())); } if (disk.isSetSnapshot()) { validateParameters(disk, "snapshot.id"); params.setSnapshotId(asGuid(disk.getSnapshot().getId())); } return resource.performCreate(ActionType.AttachDiskToVm, params, entityResolver); }
@Override protected void verify(Disk model, Disk transform) { assertNotNull(transform); assertEquals(model.getId(), transform.getId()); assertEquals(model.getImageId(), transform.getImageId()); assertEquals(model.getFormat(), transform.getFormat()); assertEquals(model.getDescription(), transform.getDescription()); assertEquals(model.getLogicalName(), transform.getLogicalName()); assertEquals(model.getOpenstackVolumeType().getName(), transform.getOpenstackVolumeType().getName()); assertNotNull(model.getSnapshot()); assertEquals(model.getSnapshot().getId(), transform.getSnapshot().getId()); assertEquals(model.getStatus(), transform.getStatus(), "unexpected status"); assertEquals(model.isSparse(), transform.isSparse(), "unexpected sparse"); assertEquals(model.isPropagateErrors(), transform.isPropagateErrors(), "unexpected propagate errors"); assertEquals(model.isWipeAfterDelete(), transform.isWipeAfterDelete(), "unexpected wipe after delete"); assertEquals(model.isShareable(), transform.isShareable(), "unexpected shareable"); }
@Test public void testAttachDiskSnapshot() { setUriInfo(setUpBasicUriExpectations()); Guid snapshotId = Guid.newGuid(); Disk model = getModel(); model.setSnapshot(new Snapshot()); model.getSnapshot().setId(snapshotId.toString()); model.setId(DISK_ID.toString()); //means this is an existing disk --> attach setUpCreationExpectations( ActionType.AttachDiskToVm, AttachDetachVmDiskParameters.class, new String[] { "VmId", "EntityInfo", "SnapshotId" }, new Object[] { VM_ID, new EntityInfo(VdcObjectType.Disk, DISK_ID), snapshotId }, true, true, null, null, null, QueryType.GetDiskByDiskId, IdQueryParameters.class, new String[] { "Id" }, new Object[] { DISK_ID }, asList(getEntity(0)) ); Response response = collection.add(model); assertEquals(201, response.getStatus()); }
model.getSnapshot().setId(entity.getSnapshotId().toString());
to.setSnapshot(adaptOut(from.getSnapshot()));