package org.ovirt.engine.api.restapi.resource; import java.util.List; import java.util.Set; import javax.ws.rs.core.Response; import org.ovirt.engine.api.common.util.DetailHelper; import org.ovirt.engine.api.model.Nic; import org.ovirt.engine.api.model.Nics; import org.ovirt.engine.api.model.Vm; import org.ovirt.engine.api.resource.VmNicResource; import org.ovirt.engine.api.resource.VmNicsResource; import org.ovirt.engine.core.common.action.AddVmInterfaceParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; public class BackendVmNicsResource extends AbstractBackendNicsResource implements VmNicsResource { private Guid vmId; public BackendVmNicsResource(Guid vmId) { super(vmId, VdcQueryType.GetVmInterfacesByVmId); this.vmId = vmId; } @Override public Nics list() { Nics nics = new Nics(); List<VmNetworkInterface> entities = getBackendCollection( VdcQueryType.GetVmInterfacesByVmId, new IdQueryParameters(vmId) ); for (VmNetworkInterface entity : entities) { Nic nic = populate(map(entity), entity); nics.getNics().add(addLinks(nic)); } return nics; } @Override public Response add(Nic nic) { validateParameters(nic, "name"); return performCreate( VdcActionType.AddVmInterface, new AddVmInterfaceParameters(vmId, map(nic)), new NicResolver(nic.getName()) ); } @Override protected Nic deprecatedPopulate(Nic model, VmNetworkInterface entity) { Set<String> details = DetailHelper.getDetails(httpHeaders, uriInfo); BackendNicHelper.addReportedDevices(this, model, entity); if (details.contains("statistics")) { BackendNicHelper.addStatistics( model, entity); } return model; } @Override public VmNicResource getNicResource(String id) { return inject(new BackendVmNicResource(id, vmId)); } @Override protected Nic addParents(Nic nic) { Vm vm = new Vm(); vm.setId(vmId.toString()); nic.setVm(vm); return nic; } }