package org.ovirt.engine.api.restapi.resource.externalhostproviders; import java.util.List; import org.ovirt.engine.api.model.KatelloErrata; import org.ovirt.engine.api.model.KatelloErratum; import org.ovirt.engine.api.model.Vm; import org.ovirt.engine.api.resource.externalhostproviders.KatelloErrataResource; import org.ovirt.engine.api.resource.externalhostproviders.KatelloErratumResource; import org.ovirt.engine.api.restapi.resource.AbstractBackendCollectionResource; import org.ovirt.engine.core.common.businessentities.ErrataData; import org.ovirt.engine.core.common.businessentities.Erratum; import org.ovirt.engine.core.common.queries.GetErrataCountsParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendVmKatelloErrataResource extends AbstractBackendCollectionResource<KatelloErratum, Erratum> implements KatelloErrataResource { private String vmId; public BackendVmKatelloErrataResource(String vmId) { super(KatelloErratum.class, Erratum.class); this.vmId = vmId; } @Override public KatelloErrata list() { ErrataData errataData = null; try { VdcQueryReturnValue returnValue = runQuery(VdcQueryType.GetErrataForVm, new GetErrataCountsParameters(asGuid(vmId))); if (!returnValue.getSucceeded()) { backendFailure(returnValue.getExceptionString()); } errataData = returnValue.getReturnValue(); } catch (Exception e) { handleError(e, false); } if (errataData == null) { return new KatelloErrata(); } return mapCollection(errataData.getErrata()); } private KatelloErrata mapCollection(List<Erratum> entities) { KatelloErrata collection = new KatelloErrata(); for (org.ovirt.engine.core.common.businessentities.Erratum entity : entities) { collection.getKatelloErrata().add(addLinks(populate(map(entity), entity), Vm.class)); } return collection; } @Override public KatelloErratumResource getKatelloErratumResource(String id) { return inject(new BackendVmKatelloErratumResource(id, vmId)); } @Override protected KatelloErratum addParents(KatelloErratum erratum) { Vm vm = new Vm(); vm.setId(vmId); erratum.setVm(vm); return super.addParents(erratum); } }