Search in sources :

Example 36 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class BackendAffinityLabelResource method update.

@Override
public AffinityLabel update(AffinityLabel incoming) {
    QueryIdResolver<Guid> labelResolver = new QueryIdResolver<>(QueryType.GetLabelById, IdQueryParameters.class);
    Label entity = getEntity(labelResolver, true);
    AffinityLabel label = performUpdate(incoming, entity, map(entity), labelResolver, ActionType.UpdateLabel, new UpdateParametersProvider());
    return label;
}
Also used : AffinityLabel(org.ovirt.engine.api.model.AffinityLabel) Label(org.ovirt.engine.core.common.businessentities.Label) AffinityLabel(org.ovirt.engine.api.model.AffinityLabel) Guid(org.ovirt.engine.core.compat.Guid)

Example 37 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class BackendAffinityLabelVmResource method remove.

public Response remove() {
    // First we need to check if the affinity label does contain the virtual machine:
    Label label = BackendAffinityLabelHelper.getLabel(this, labelId);
    if (!label.getVms().contains(guid)) {
        throw new WebApplicationException(Response.Status.NOT_FOUND);
    }
    // Remove the virtual machine from the label:
    VM entity = new VM();
    entity.setId(guid);
    Label updatedLabel = new LabelBuilder(label).removeEntity(entity).build();
    return performAction(ActionType.UpdateLabel, new LabelActionParameters(updatedLabel));
}
Also used : WebApplicationException(javax.ws.rs.WebApplicationException) LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) VM(org.ovirt.engine.core.common.businessentities.VM) Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder)

Example 38 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class BackendAffinityLabelVmsResource method add.

@Override
public Response add(Vm model) {
    validateParameters(model, "id");
    Label label = BackendAffinityLabelHelper.getLabel(this, labelId);
    VM entity = new VM();
    entity.setId(GuidUtils.asGuid(model.getId()));
    Label updatedLabel = new LabelBuilder(label).entity(entity).build();
    // The command used to add the virtual machine to the label returns the label, but we need to return the virtual
    // machine, so we ignore the result and return a link to the added virtual machine:
    LabelActionParameters updateParams = new LabelActionParameters(updatedLabel);
    try {
        doAction(ActionType.UpdateLabel, updateParams);
    } catch (BackendFailureException exception) {
        handleError(exception, false);
    }
    Vm result = BackendAffinityLabelHelper.makeVmLink(entity.getId());
    return Response.ok(Response.Status.CREATED).entity(result).build();
}
Also used : LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) VM(org.ovirt.engine.core.common.businessentities.VM) Vm(org.ovirt.engine.api.model.Vm) Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder)

Example 39 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class BackendAssignedAffinityLabelsResource method add.

@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);
}
Also used : AffinityLabels(org.ovirt.engine.api.model.AffinityLabels) QueryType(org.ovirt.engine.core.common.queries.QueryType) PathParam(javax.ws.rs.PathParam) Guid(org.ovirt.engine.core.compat.Guid) BusinessEntity(org.ovirt.engine.core.common.businessentities.BusinessEntity) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder) LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) GuidUtils(org.ovirt.engine.api.restapi.utils.GuidUtils) AssignedAffinityLabelsResource(org.ovirt.engine.api.resource.AssignedAffinityLabelsResource) ActionType(org.ovirt.engine.core.common.action.ActionType) List(java.util.List) AssignedAffinityLabelResource(org.ovirt.engine.api.resource.AssignedAffinityLabelResource) Response(javax.ws.rs.core.Response) Label(org.ovirt.engine.core.common.businessentities.Label) AffinityLabel(org.ovirt.engine.api.model.AffinityLabel) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) Label(org.ovirt.engine.core.common.businessentities.Label) AffinityLabel(org.ovirt.engine.api.model.AffinityLabel) Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder) Guid(org.ovirt.engine.core.compat.Guid)

Example 40 with Label

use of org.ovirt.engine.core.common.businessentities.Label in project ovirt-engine by oVirt.

the class DrMappingHelper method mapAffinityLabels.

public List<Label> mapAffinityLabels(Map<String, String> affinityLabelMap, String vmName, List<Label> affinityLabelsFromParam) {
    if (affinityLabelsFromParam == null) {
        return Collections.emptyList();
    }
    List<Label> affinityLabelsToAdd = new ArrayList<>();
    affinityLabelsFromParam.forEach(affinityLabel -> {
        log.info("Mapping affinity label '{}' for vm '{}'.", affinityLabel, vmName);
        String mappedAffinityLabelName = affinityLabelMap.get(affinityLabel.getName());
        if (mappedAffinityLabelName == null) {
            affinityLabelsToAdd.add(affinityLabel);
            log.warn("Mapping for affinity label '{}' not found, will use the affinity label name from OVF", affinityLabel.getName());
        } else {
            if (labelDao.getByName(mappedAffinityLabelName) == null) {
                log.warn("Mapping for affinity label '{}' not found, will use the affinity label name from OVF", affinityLabel.getName());
                affinityLabelsToAdd.add(affinityLabel);
            } else {
                log.info("Mapping for affinity label '{}' found, attempting to map to '{}'", affinityLabel.getName(), mappedAffinityLabelName);
                Label mappedAffinityLabel = labelDao.getByName(mappedAffinityLabelName);
                Label affinityLabelToAdd = Optional.ofNullable(mappedAffinityLabel).orElse(affinityLabel);
                log.info("Will try to add affinity label '{}'", affinityLabelToAdd.getName());
                affinityLabelsToAdd.add(affinityLabelToAdd);
            }
        }
    });
    return affinityLabelsToAdd;
}
Also used : Label(org.ovirt.engine.core.common.businessentities.Label) ArrayList(java.util.ArrayList)

Aggregations

Label (org.ovirt.engine.core.common.businessentities.Label)47 Test (org.junit.Test)19 LabelBuilder (org.ovirt.engine.core.common.businessentities.LabelBuilder)19 Guid (org.ovirt.engine.core.compat.Guid)14 LabelActionParameters (org.ovirt.engine.core.common.action.LabelActionParameters)7 VmStatic (org.ovirt.engine.core.common.businessentities.VmStatic)7 ArrayList (java.util.ArrayList)5 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)3 VM (org.ovirt.engine.core.common.businessentities.VM)3 PerHostMessages (org.ovirt.engine.core.common.scheduling.PerHostMessages)3 WebApplicationException (javax.ws.rs.WebApplicationException)2 AffinityLabel (org.ovirt.engine.api.model.AffinityLabel)2 Host (org.ovirt.engine.api.model.Host)2 Vm (org.ovirt.engine.api.model.Vm)2 VDS (org.ovirt.engine.core.common.businessentities.VDS)2 DbUser (org.ovirt.engine.core.common.businessentities.aaa.DbUser)2 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)2 FullEntityOvfData (org.ovirt.engine.core.common.businessentities.storage.FullEntityOvfData)2 LunDisk (org.ovirt.engine.core.common.businessentities.storage.LunDisk)2