package org.ovirt.engine.api.restapi.resource; import java.util.List; import org.ovirt.engine.api.model.Host; import org.ovirt.engine.api.model.UnmanagedNetwork; import org.ovirt.engine.api.model.UnmanagedNetworks; import org.ovirt.engine.api.resource.UnmanagedNetworkResource; import org.ovirt.engine.api.resource.UnmanagedNetworksResource; import org.ovirt.engine.api.restapi.utils.HexUtils; import org.ovirt.engine.core.common.businessentities.VDS; 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 BackendUnmanagedNetworksResource extends AbstractBackendCollectionResource<UnmanagedNetwork, org.ovirt.engine.core.common.businessentities.UnmanagedNetwork> implements UnmanagedNetworksResource { private Guid hostId; public BackendUnmanagedNetworksResource(Guid hostId) { super(UnmanagedNetwork.class, org.ovirt.engine.core.common.businessentities.UnmanagedNetwork.class); this.hostId = hostId; } @Override public UnmanagedNetworks list() { verifyIfHostExistsToHandle404StatusCode(); return mapCollection(getAllUnmanagedNetworksByVdsId()); } private void verifyIfHostExistsToHandle404StatusCode() { getEntity(VDS.class, VdcQueryType.GetVdsByVdsId, new IdQueryParameters(hostId), hostId.toString(), true); } private List<org.ovirt.engine.core.common.businessentities.UnmanagedNetwork> getAllUnmanagedNetworksByVdsId() { return getBackendCollection(VdcQueryType.GetAllUnmanagedNetworksByHostId, new IdQueryParameters(hostId)); } private UnmanagedNetworks mapCollection(List<org.ovirt.engine.core.common.businessentities.UnmanagedNetwork> unmanagedNetworks) { UnmanagedNetworks result = new UnmanagedNetworks(); for (org.ovirt.engine.core.common.businessentities.UnmanagedNetwork unmanagedNetwork : unmanagedNetworks) { result.getUnmanagedNetworks().add(addLinks(populate(map(unmanagedNetwork), null), Host.class)); } return result; } @Override public UnmanagedNetworkResource getUnmanagedNetworkResource(String id) { return inject(new BackendUnmanagedNetworkResource(HexUtils.hex2string(id), hostId)); } @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; } }