Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions rootfs/api/models/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,9 @@ def clean(self, ptypes=None):
replica_sets = []
for replica_set in replica_sets:
current_version_name = replica_set['metadata']['labels']['version']
# skip the latest release
if current_version_name == self.version_name:
# skip the later release
current_version = int(current_version_name[1:])
if current_version >= self.version:
continue

# aggregate versions together to removal all at once
Expand All @@ -313,9 +314,9 @@ def clean(self, ptypes=None):
# handle Deployments specific cleanups
self._cleanup_deployment_secrets_and_configs(self.app.id, ptypes)
# Remove stray pods
self._cleanup_stray_pods(self.app.id, ptypes, self.version_name)
self._cleanup_stray_pods(self.app.id, ptypes, self.version)

def _cleanup_stray_pods(self, namespace, ptypes, latest_version_name):
def _cleanup_stray_pods(self, namespace, ptypes, latest_version):
labels = {'heritage': 'drycc'}
if ptypes is not None:
labels['type__in'] = ptypes
Expand All @@ -326,9 +327,9 @@ def _cleanup_stray_pods(self, namespace, ptypes, latest_version_name):
if self.scheduler().pod.deleted(pod):
continue

current_version_name = pod['metadata']['labels']['version']
# skip the latest release
if current_version_name == latest_version_name:
current_version = int(pod['metadata']['labels']['version'][1:])
# skip the later release
if current_version >= latest_version:
continue

try:
Expand All @@ -355,8 +356,11 @@ def _cleanup_deployment_secrets_and_configs(self, namespace, ptypes=None):
if not replicasets:
replicasets = []
for replicaset in replicasets:
replica_version = int(replicaset['metadata']['labels']['version'][1:])
# only remove the older releases secret
if (
'version' not in replicaset['metadata']['labels'] or
replica_version < self.version or
replicaset['metadata']['labels']['version'] in version_names
):
continue
Expand Down