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]

Reply via email to