@Override public Response add(AffinityLabel label) { validateParameters(label, "id"); IdQueryParameters parameters = new IdQueryParameters(GuidUtils.asGuid(label.getId())); org.ovirt.engine.core.common.businessentities.Label entity = getEntity( org.ovirt.engine.core.common.businessentities.Label.class, QueryType.GetLabelById, parameters, label.getId(), true); BusinessEntity<Guid> parent = constructor.create(); parent.setId(GuidUtils.asGuid(parentId)); org.ovirt.engine.core.common.businessentities.Label updatedLabel = new LabelBuilder(entity) .entity(parent) .build(); // Add the affinity label using the backend "update" operation. As the backend will return the added label as // the result of the operation, we can fetch it using a simple "identity" resolver, that just returns the same // value it is passed. LabelActionParameters updateParams = new LabelActionParameters(updatedLabel); return performCreate(ActionType.UpdateLabel, updateParams, (IResolver<Label, Label>) result -> result); }
@Mapping(from = org.ovirt.engine.api.model.AffinityLabel.class, to = Label.class) public static Label map(org.ovirt.engine.api.model.AffinityLabel model, Label template) { LabelBuilder entity = template != null ? new LabelBuilder(template) : new LabelBuilder(); if (model.isSetId()) { entity.id(GuidUtils.asGuid(model.getId())); } if (model.isSetName()) { entity.name(model.getName()); } if (model.isSetReadOnly()) { entity.readOnly(model.isReadOnly()); } if (model.isSetVms() && model.getVms().isSetVms()) { model.getVms().getVms().forEach(vm -> entity.vm(GuidUtils.asGuid(vm.getId()))); } if (model.isSetHosts() && model.getHosts().isSetHosts()) { model.getHosts().getHosts().forEach(host -> entity.host(GuidUtils.asGuid(host.getId()))); } return entity.build(); } }