Merge "Fix set state to available after removing"

This commit is contained in:
Zuul
2024-08-12 22:09:17 +00:00
committed by Gerrit Code Review
2 changed files with 20 additions and 11 deletions

View File

@@ -73,6 +73,9 @@ class ReleaseState(object):
return True
return False
def has_release_id(self):
return self._release_ids is not None and len(self._release_ids) > 0
def available(self):
self.transform(states.AVAILABLE)

View File

@@ -2923,19 +2923,25 @@ class PatchController(PatchService):
if DEPLOY_STATES.COMPLETED == deploy_state_instance.get_deploy_state():
deploying_release_state = ReleaseState(release_state=states.DEPLOYING)
is_major_release = deploying_release_state.is_major_release_deployment()
is_applying = deploying_release_state.has_release_id()
major_release = utils.get_major_release_version(from_release)
# In case of a major release deployment set all the releases related to from_release to unavailable
if is_major_release:
unavailable_releases = []
for release in self.release_collection.iterate_releases():
if release.sw_version == major_release:
unavailable_releases.append(release.id)
ReleaseState(release_ids=unavailable_releases).replaced()
if is_applying:
is_major_release = deploying_release_state.is_major_release_deployment()
# Set deploying releases to deployed state.
deploying_release_state.deploy_completed()
major_release = utils.get_major_release_version(from_release)
# In case of a major release deployment set all the releases related to from_release to unavailable
if is_major_release:
unavailable_releases = []
for release in self.release_collection.iterate_releases():
if release.sw_version == major_release:
unavailable_releases.append(release.id)
ReleaseState(release_ids=unavailable_releases).replaced()
# Set deploying releases to deployed state.
deploying_release_state.deploy_completed()
else:
removing_release_state = ReleaseState(release_state=states.REMOVING)
removing_release_state.available()
elif DEPLOY_STATES.HOST_ROLLBACK_DONE == deploy_state_instance.get_deploy_state():
major_release = utils.get_major_release_version(from_release)