This repository has been archived by the owner on Jun 5, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: introduce node compatibility status API
CP modifies the configuration based on the version of DP. These modifications need to be tracked and exposed to the end-user to inform the user of (potentially adverse) configuration mutations This patch contains the user-facing API as well as internal API for this, Specifically, - User facing "Node" resource gets a new CompatibilityStatus message. The user can consult this object to determine compatibility status and issues (if any) associated with the node. The "state" field will be an enum that will be defined in code in a subsequent patch. The currently planned values are "FULLY-COMPATIBLE" and "PARTIALLY-COMPATIBLE". - Compatibility for each node is tracked as a separate resource internally. CP (ws.Manager) is responsible for tracking compatibility status of each node in the database (via the relay service). Foreign key relationships ensure easy clean up of NodeStatus resources. The (internal) API will be responsible of merging Node and NodeStatus resouces and presenting it as a unified single Node resource to the end user. The separation is done for performance reasons: Node resource sees frequent u pdates (once every 30s) while NodeStatus is expected to see far fewer updates which may be very large (128 possible changes with 128 resources each can result in > 7000 kilobytes of data)
- Loading branch information