use of org.ovirt.engine.core.common.action.LabelActionParameters 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();
}
use of org.ovirt.engine.core.common.action.LabelActionParameters 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));
}
use of org.ovirt.engine.core.common.action.LabelActionParameters 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();
}
use of org.ovirt.engine.core.common.action.LabelActionParameters in project ovirt-engine by oVirt.
the class BackendAssignedAffinityLabelResource method remove.
@Override
public Response remove() {
QueryIdResolver<Guid> labelResolver = new QueryIdResolver<>(QueryType.GetLabelById, IdQueryParameters.class);
org.ovirt.engine.core.common.businessentities.Label entity = getEntity(labelResolver, true);
BusinessEntity<Guid> parent = constructor.create();
parent.setId(GuidUtils.asGuid(parentId));
org.ovirt.engine.core.common.businessentities.Label updatedLabel = new LabelBuilder(entity).removeEntity(parent).build();
return performAction(ActionType.UpdateLabel, new LabelActionParameters(updatedLabel));
}
use of org.ovirt.engine.core.common.action.LabelActionParameters 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);
}
Aggregations