Update object placement in a rack or chassis
Place a node or chassis into a rack, place a node into a chassis, move one that is already placed, or remove it from its container. Body uses JSON merge-patch semantics: properties present are applied and properties omitted are left untouched. null clears the value only for containerId, imageFront, imageRear and chassisPlacement; sending null for position, height or orientation is rejected with 400. Setting containerId to null or 0 removes the object from its container.
A node may be placed in a rack or in a chassis; a chassis may only be placed in a rack. When the container is a rack, position and height must leave the object entirely within the rack's unit range. That range is checked only when the document supplies containerId, position or height, so an object whose stored position or height a rack would reject stays patchable, and can always be removed from its container. Placing an object into a rack therefore requires a valid position, either sent in the same document or already stored: an object that has never been placed has position 0 and must be given one, otherwise the request is rejected with 400. Overlapping placements are not rejected: the model has always allowed them and some installations rely on it.
Requires modify access on the object being placed. Modify access on the target container is not required, matching the behaviour of the native client protocol.
The same property group is also accepted as the physicalPlacement property of PATCH /v1/objects/{object-id}. Clients should prefer this sub-resource: a server that predates it answers 404, which is a usable feature check, whereas the top-level patch silently ignores property groups it does not recognise.
Path parameters
Request body
Response
Placement updated; full updated object returned.