package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.IscsiBond;
import org.ovirt.engine.api.resource.IscsiBondResource;
import org.ovirt.engine.api.resource.NetworksResource;
import org.ovirt.engine.api.resource.StorageServerConnectionsResource;
import org.ovirt.engine.core.common.action.EditIscsiBondParameters;
import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendIscsiBondResource
extends AbstractBackendActionableResource<IscsiBond, org.ovirt.engine.core.common.businessentities.IscsiBond>
implements IscsiBondResource {
public BackendIscsiBondResource(String id) {
super(id, IscsiBond.class, org.ovirt.engine.core.common.businessentities.IscsiBond.class);
}
@Override
public IscsiBond get() {
return performGet(VdcQueryType.GetIscsiBondById, new IdQueryParameters(guid));
}
@Override
public IscsiBond update(IscsiBond iscsiBond) {
return performUpdate(iscsiBond,
new QueryIdResolver<>(VdcQueryType.GetIscsiBondById, IdQueryParameters.class),
VdcActionType.EditIscsiBond,
(incoming, entity) -> new EditIscsiBondParameters(
getMapper(modelType, org.ovirt.engine.core.common.businessentities.IscsiBond.class).map(incoming, entity)
));
}
@Override
public NetworksResource getNetworksResource() {
return inject(new BackendIscsiBondNetworksResource(id));
}
@Override
public StorageServerConnectionsResource getStorageServerConnectionsResource() {
return inject(new BackendIscsiBondStorageConnectionsResource(id));
}
@Override
public Response remove() {
get();
return performAction(VdcActionType.RemoveIscsiBond, new RemoveIscsiBondParameters(guid));
}
}