bhouse-nexthop commented on PR #14609: URL: https://github.com/apache/cloudstack/pull/14609#issuecomment-6706742985
Updated the commit (now `fee9834af4`) after another review pass: - **Workers hold their state.** Once a worker has started its operation, it only moves the cluster while the cluster is in a state that operation moved it to. A failure or completion therefore no longer ends another operation that has taken the cluster since. An operation that went ahead without a state change (stop from Created or Error, start from Error) leaves the state alone when it ends. Before, a stop of an Error cluster racing a delete could move Destroying to Destroyed. A retried destroy still completes Destroying. - **Start from Alert takes the cluster.** New `Alert -StartRequested-> Starting` transition. So adding or removing nodes, a stop, or the scanner's Alert reconciliation can no longer take the cluster partway through a start. A start from Error still goes ahead without a state, so that a cluster whose create failed stays in Error if the start fails too. - **A failed autoscaler deployment now fails the Scaling state.** Before, the cluster was left in Scaling. - **Restoring the cluster object after a missed update.** `KubernetesClusterDaoImpl.updateState` now puts back the state the caller read when the conditional update matches no row. Before, the object reported the next state, which the database never had. - **Older management servers only hold back the clusters they name.** A job in progress on a management server of an older version only stops recovery of the cluster that its parameters name by UUID, not of every cluster. Recovery also lists the clusters with one query instead of one per state. `KubernetesClusterResourceModifierActionWorker` keeps its own copy of the start state, rather than reusing `KubernetesClusterScaleWorker.originalState`, to avoid conflicting with #14604, which edits those lines. `mvn -pl api,plugins/integrations/kubernetes-service install` passes (100 plugin unit tests, checkstyle). Still not tested on a live cluster. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
