package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Network;
import org.ovirt.engine.core.common.action.EditIscsiBondParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.IscsiBond;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendIscsiBondNetworkResource extends BackendNetworkResource {
private BackendIscsiBondNetworksResource parent;
public BackendIscsiBondNetworkResource(String id, BackendIscsiBondNetworksResource parent) {
super(id, parent);
this.parent = parent;
}
@Override
public Network get() {
IscsiBond iscsiBond = parent.getIscsiBond();
if (!iscsiBond.getNetworkIds().contains(guid)) {
return notFound();
}
org.ovirt.engine.core.common.businessentities.network.Network entity = getNetwork();
if (entity == null) {
return notFound();
}
return addLinks(map(entity));
}
private org.ovirt.engine.core.common.businessentities.network.Network getNetwork() {
return getEntity(org.ovirt.engine.core.common.businessentities.network.Network.class,
VdcQueryType.GetNetworkById, new IdQueryParameters(guid), guid.toString());
}
@Override
public BackendIscsiBondNetworksResource getParent() {
return parent;
}
@Override
public Response remove() {
get();
IscsiBond iscsiBond = parent.getIscsiBond();
iscsiBond.getNetworkIds().remove(guid);
return performAction(VdcActionType.EditIscsiBond, new EditIscsiBondParameters(iscsiBond));
}
}