package org.ovirt.engine.api.restapi.resource;
import org.ovirt.engine.core.common.action.ChangeDiskCommandParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.api.common.util.QueryHelper;
import org.ovirt.engine.api.model.CdRom;
import org.ovirt.engine.api.model.CdRoms;
import org.ovirt.engine.api.resource.DeviceResource;
public class BackendCdRomResource extends BackendDeviceResource<CdRom, CdRoms, VM> implements DeviceResource<CdRom>{
public static final String CURRENT_CONSTRAINT_PARAMETER = "current";
public BackendCdRomResource(Class<CdRom> modelType,
Class<VM> entityType,
final Guid guid,
final AbstractBackendReadOnlyDevicesResource<CdRom, CdRoms, VM> collection,
VdcActionType updateType,
ParametersProvider<CdRom, VM> updateParametersProvider,
String[] requiredUpdateFields,
String... subCollections) {
super(modelType, entityType, guid, collection, updateType, updateParametersProvider, requiredUpdateFields, subCollections);
}
@Override
public CdRom update(CdRom resource) {
if (QueryHelper.hasConstraint(getUriInfo().getQueryParameters(), CURRENT_CONSTRAINT_PARAMETER)) {
validateParameters(resource, requiredUpdateFields);
performAction(VdcActionType.ChangeDisk,
new ChangeDiskCommandParameters(getEntity(entityResolver, true).getvm_guid(),
resource.getFile().getId()));
return resource;
} else {
return super.update(resource);
}
}
}