package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Network;
import org.ovirt.engine.api.model.NetworkLabel;
import org.ovirt.engine.api.model.NetworkLabels;
import org.ovirt.engine.api.resource.NetworkLabelResource;
import org.ovirt.engine.core.common.action.UnlabelNetworkParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
public class BackendNetworkLabelResource
extends AbstractBackendSubResource<NetworkLabel, org.ovirt.engine.core.common.businessentities.network.pseudo.NetworkLabel>
implements NetworkLabelResource {
private BackendNetworkLabelsResource parent;
protected BackendNetworkLabelResource(String id, BackendNetworkLabelsResource parent) {
super("", NetworkLabel.class, org.ovirt.engine.core.common.businessentities.network.pseudo.NetworkLabel.class);
this.id = id;
this.parent = parent;
}
public BackendNetworkLabelsResource getParent() {
return parent;
}
@Override
public NetworkLabel get() {
NetworkLabels labels = parent.list();
if (labels != null) {
for (NetworkLabel label : labels.getNetworkLabels()) {
if (label.getId().equals(id)) {
label.setNetwork(new Network());
label.getNetwork().setId(parent.getNetworkId().toString());
return addLinks(label);
}
}
}
return notFound();
}
@Override
public Response remove() {
get();
return performAction(VdcActionType.UnlabelNetwork, new UnlabelNetworkParameters(parent.getNetworkId()));
}
}