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);
}
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;
}
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);
}
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());
}
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();
}
Aggregations