package org.ovirt.engine.api.restapi.resource; import org.ovirt.engine.api.model.Network; import org.ovirt.engine.api.resource.AssignedPermissionsResource; import org.ovirt.engine.api.resource.AssignedVnicProfilesResource; import org.ovirt.engine.api.resource.NetworkLabelsResource; import org.ovirt.engine.api.resource.NetworkResource; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; import org.ovirt.engine.core.common.action.RemoveNetworkParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendNetworkResource extends AbstractBackendNetworkResource implements NetworkResource { public BackendNetworkResource(String id, BackendNetworksResource parent) { super(id, parent, VdcActionType.RemoveNetwork); } @Override public Network get() { org.ovirt.engine.core.common.businessentities.network.Network entity = parent.lookupNetwork(guid); if (entity == null) { return notFound(); } Network network = map(entity); network.setDisplay(null); return addLinks(network); } @Override protected Network addParents(Network model) { return parent.addParents(model); } @Override public Network update(Network incoming) { return performUpdate(incoming, getParent().getNetworkIdResolver(), VdcActionType.UpdateNetwork, new UpdateParametersProvider()); } protected class UpdateParametersProvider implements ParametersProvider<Network, org.ovirt.engine.core.common.businessentities.network.Network> { @Override public VdcActionParametersBase getParameters(Network incoming, org.ovirt.engine.core.common.businessentities.network.Network entity) { org.ovirt.engine.core.common.businessentities.network.Network updated = getMapper(modelType, org.ovirt.engine.core.common.businessentities.network.Network.class).map(incoming, entity); return new AddNetworkStoragePoolParameters(entity.getDataCenterId(), updated); } } @Override public AssignedPermissionsResource getPermissionsResource() { return inject(new BackendAssignedPermissionsResource(guid, VdcQueryType.GetPermissionsForObject, new GetPermissionsForObjectParameters(guid), Network.class, VdcObjectType.Network)); } @Override public AssignedVnicProfilesResource getVnicProfilesResource() { return inject(new BackendAssignedVnicProfilesResource(id)); } @Override public NetworkLabelsResource getNetworkLabelsResource() { return inject(new BackendNetworkLabelsResource(asGuid(id))); } @Override protected VdcActionParametersBase getRemoveParameters(org.ovirt.engine.core.common.businessentities.network.Network entity) { return new RemoveNetworkParameters(entity.getId()); } }