package org.ovirt.engine.api.restapi.resource;
import java.util.Collections;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Host;
import org.ovirt.engine.api.model.UnmanagedNetwork;
import org.ovirt.engine.api.resource.UnmanagedNetworkResource;
import org.ovirt.engine.core.common.action.HostSetupNetworksParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.queries.UnmanagedNetworkParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.core.compat.Guid;
public class BackendUnmanagedNetworkResource extends AbstractBackendSubResource<UnmanagedNetwork,
org.ovirt.engine.core.common.businessentities.UnmanagedNetwork> implements UnmanagedNetworkResource {
private final Guid hostId;
public BackendUnmanagedNetworkResource(String id, Guid hostId) {
super(id, UnmanagedNetwork.class, org.ovirt.engine.core.common.businessentities.UnmanagedNetwork.class);
this.hostId = hostId;
}
@Override
public UnmanagedNetwork get() {
return performGet(VdcQueryType.GetUnmanagedNetworkByHostIdAndName, new UnmanagedNetworkParameters(hostId, id), Host.class);
}
@Override
public Response remove() {
get();
HostSetupNetworksParameters parameters = new HostSetupNetworksParameters(hostId);
parameters.setRemovedUnmanagedNetworks(Collections.singleton(id));
return performAction(VdcActionType.HostSetupNetworks, parameters);
}
@Override
protected Guid asGuidOr404(String id) {
// The identifier isn't a UUID.
return null;
}
@Override
protected UnmanagedNetwork addParents(UnmanagedNetwork model) {
Host host = new Host();
model.setHost(host);
model.getHost().setId(hostId.toString());
if (model.isSetHostNic()) {
model.getHostNic().setHost(host);
}
return model;
}
}