Search in sources :

Example 31 with Label

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

the class AffinityLabelListModel method edit.

private void edit() {
    if (getWindow() != null) {
        return;
    }
    Label affinityLabel = getSelectedItem();
    if (affinityLabel == null) {
        return;
    }
    AffinityLabelModel model = new EditAffinityLabelModel(affinityLabel, this, getClusterId(), getClusterName());
    model.init();
    setWindow(model);
}
Also used : NewAffinityLabelModel(org.ovirt.engine.ui.uicommonweb.models.configure.labels.model.NewAffinityLabelModel) EditAffinityLabelModel(org.ovirt.engine.ui.uicommonweb.models.configure.labels.model.EditAffinityLabelModel) AffinityLabelModel(org.ovirt.engine.ui.uicommonweb.models.configure.labels.model.AffinityLabelModel) Label(org.ovirt.engine.core.common.businessentities.Label) EditAffinityLabelModel(org.ovirt.engine.ui.uicommonweb.models.configure.labels.model.EditAffinityLabelModel)

Example 32 with Label

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

the class HostAffinityLabelListModel method getNewAffinityLabel.

@Override
protected Label getNewAffinityLabel() {
    Label affinityLabel = super.getNewAffinityLabel();
    affinityLabel.addHost(getEntity());
    return affinityLabel;
}
Also used : Label(org.ovirt.engine.core.common.businessentities.Label)

Example 33 with Label

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

the class AffinityLabelModel method onSave.

void onSave() {
    if (!validate() || (getProgress() != null)) {
        return;
    }
    Label label = getAffinityLabel();
    label.setName(getName().getEntity());
    label.setVms(new HashSet<>(getVmsSelectionModel().getSelectedVmIds()));
    label.setHosts(new HashSet<>(getHostsSelectionModel().getSelectedHostIds()));
    startProgress();
    Frontend.getInstance().runAction(saveActionType, new LabelActionParameters(label), result -> {
        stopProgress();
        if (result != null && result.getReturnValue() != null && result.getReturnValue().getSucceeded()) {
            cancel();
        }
    }, this);
}
Also used : LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) Label(org.ovirt.engine.core.common.businessentities.Label)

Example 34 with Label

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

the class LabelFilterPolicyUnit method filter.

@Override
public List<VDS> filter(Cluster cluster, List<VDS> hosts, VM vm, Map<String, String> parameters, PerHostMessages messages) {
    Map<Guid, Set<Guid>> objectToTags = new HashMap<>();
    final List<Guid> objects = hosts.stream().map(VDS::getId).collect(Collectors.toList());
    objects.add(vm.getId());
    // Prepare the entity -> label reverse mapping
    for (Label label : labelDao.getAllByEntityIds(objects)) {
        for (Guid entity : label.getVms()) {
            objectToTags.putIfAbsent(entity, new HashSet<>());
            objectToTags.get(entity).add(label.getId());
        }
        for (Guid entity : label.getHosts()) {
            objectToTags.putIfAbsent(entity, new HashSet<>());
            objectToTags.get(entity).add(label.getId());
        }
    }
    return hosts.stream().filter(new TagMatcher(objectToTags, vm)).collect(Collectors.toList());
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) Label(org.ovirt.engine.core.common.businessentities.Label) Guid(org.ovirt.engine.core.compat.Guid)

Example 35 with Label

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

the class BackendAffinityLabelHostsResource method add.

@Override
public Response add(Host model) {
    validateParameters(model, "id");
    Label label = BackendAffinityLabelHelper.getLabel(this, labelId);
    VDS entity = new VDS();
    entity.setId(GuidUtils.asGuid(model.getId()));
    Label updatedLabel = new LabelBuilder(label).entity(entity).build();
    // The command used to add the host 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 host:
    LabelActionParameters updateParams = new LabelActionParameters(updatedLabel);
    try {
        doAction(ActionType.UpdateLabel, updateParams);
    } catch (BackendFailureException exception) {
        handleError(exception, false);
    }
    Host result = BackendAffinityLabelHelper.makeHostLink(entity.getId());
    return Response.ok(Response.Status.CREATED).entity(result).build();
}
Also used : VDS(org.ovirt.engine.core.common.businessentities.VDS) LabelActionParameters(org.ovirt.engine.core.common.action.LabelActionParameters) Label(org.ovirt.engine.core.common.businessentities.Label) LabelBuilder(org.ovirt.engine.core.common.businessentities.LabelBuilder) Host(org.ovirt.engine.api.model.Host)

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