package org.ovirt.engine.api.restapi.resource;
import java.util.List;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.DiskProfile;
import org.ovirt.engine.api.model.DiskProfiles;
import org.ovirt.engine.api.model.StorageDomain;
import org.ovirt.engine.api.resource.AssignedDiskProfileResource;
import org.ovirt.engine.api.resource.AssignedDiskProfilesResource;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendAssignedDiskProfilesResource extends AbstractBackendDiskProfilesResource implements AssignedDiskProfilesResource {
private final String storageDomainId;
public BackendAssignedDiskProfilesResource(String storageDomainId) {
this.storageDomainId = storageDomainId;
}
@Override
public DiskProfiles list() {
return performList();
}
@Override
public Response add(DiskProfile diskProfile) {
if (!diskProfile.isSetStorageDomain() || !diskProfile.getStorageDomain().isSetId()) {
diskProfile.setStorageDomain(new StorageDomain());
diskProfile.getStorageDomain().setId(storageDomainId);
}
return super.add(diskProfile);
}
@Override
protected void validateParameters(DiskProfile diskProfile) {
validateParameters(diskProfile, "name");
}
@Override
public AssignedDiskProfileResource getProfileResource(String id) {
return inject(new BackendAssignedDiskProfileResource(id, this));
}
@Override
public DiskProfile addParents(DiskProfile diskProfile) {
diskProfile.setStorageDomain(new StorageDomain());
diskProfile.getStorageDomain().setId(storageDomainId);
return diskProfile;
}
@Override
protected List<org.ovirt.engine.core.common.businessentities.profiles.DiskProfile> getDiskProfilesCollection() {
return getBackendCollection(VdcQueryType.GetDiskProfilesByStorageDomainId,
new IdQueryParameters(asGuidOr404(storageDomainId)));
}
}