@PUT
@Produces(MediaType.APPLICATION_JSON)
public Response setState(String newState,
@Context UriInfo uriInfo,
@HeaderParam(GALAXY_SLOTS_VERSION_HEADER) String expectedSlotsVersion)
{
Preconditions.checkNotNull(newState, "newState must not be null");
SlotLifecycleState state = SlotLifecycleState.lookup(newState);
if (state == null || state == UNKNOWN) {
return Response.status(Response.Status.BAD_REQUEST).build();
}
List<UUID> uuids = Lists.transform(coordinator.getAllSlotStatus(), SlotStatus.uuidGetter());
Predicate<SlotStatus> slotFilter = SlotFilterBuilder.build(uriInfo, true, uuids);
List<SlotStatus> results = coordinator.setState(state, slotFilter, expectedSlotsVersion);
return Response.ok(transform(results, fromSlotStatus(coordinator.getAllSlotStatus(), repository)))
.header(GALAXY_SLOTS_VERSION_HEADER, createSlotsVersion(results))
.build();
}
}