Review STOPPING and STARTING scenarios in actual_state_calculator.rb
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
MR: Pending
Description
Address TODOs in ee/lib/remote_development/workspaces/reconcile/input/actual_state_calculator.rb
:
# TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/409777
# This does not appear to be the normal STOPPING or STARTING scenario, because the progressing_reason
# always remains 'NewReplicaSetAvailable' even when transitioning between Running and Stopped.
# TODO: This appears to be the normal STOPPING scenario, because the progressing_reason always remains
# 'NewReplicaSetAvailable' when transitioning between Running and Stopped. Confirm if different
# handling of STOPPING status above is also necessary.
# In normal usage (at least in local dev), this transition always happens so fast that this
# state is never sent in a reconciliation request, even with a 1-second polling interval.
# It always stopped immediately in under a second, and thus the next poll after a Stopped
# request always ends up with spec_replicas == 0 && status_available_replicas == 0 and
# matches the STOPPED state above.
# TODO: This appears to be the normal STARTING scenario, because the progressing_reason always remains
# 'NewReplicaSetAvailable' and available_reason is either 'MinimumReplicasAvailable' or
# 'MinimumReplicasUnavailable' when transitioning between Stopped and Running. Confirm if different
# handling of STARTING status above is also necessary.
# TODO: This is unreachable by any of the currently implemented fixture scenarios, because it matches the
# normal behavior when transioning between Stopped and Running. We need to determine what
# a failure scenario actually looks like and how it differs, if at all, from a normal STARTING
# scenario. Logic is commented out to avoid undercoverage failure. See related TODOs above.
Acceptance Criteria
TODO: Fill out (required)
-
All TODOs mentioned above should be resolved, either by changing the logic, or adding an appropriate explanatory comment.
Edited by 🤖 GitLab Bot 🤖