@@ -44,14 +44,18 @@ class Meta:
4444 unique_together = (('app' , 'version' ),)
4545
4646 def __str__ (self ):
47- return "{0}-v {1}" .format (self .app .id , self .version )
47+ return "{0}-{1}" .format (self .app .id , self .version_name )
4848
4949 @property
5050 def procfile_types (self ):
5151 if self .build is not None :
5252 return self .build .procfile_types
5353 return []
5454
55+ @property
56+ def version_name (self ):
57+ return f'v{ self .version } '
58+
5559 def get_run_image (self ):
5660 """
5761 In the run phase of dryccfile
@@ -272,9 +276,8 @@ def cleanup_old(self, procfile_types=None):
272276 Secrets no longer tied to any ReplicaSet
273277 Stray pods no longer relevant to the latest release
274278 """
275- latest_version = 'v{}' .format (self .version )
276279 self .log (
277- 'Cleaning up RSs for releases older than {} (latest)' .format (latest_version ),
280+ 'Cleaning up RSs for releases older than {} (latest)' .format (self . version_name ),
278281 level = logging .DEBUG
279282 )
280283 # base labels
@@ -287,29 +290,30 @@ def cleanup_old(self, procfile_types=None):
287290 if not replica_sets :
288291 replica_sets = []
289292 for replica_set in replica_sets :
290- current_version = replica_set ['metadata' ]['labels' ]['version' ]
293+ current_version_name = replica_set ['metadata' ]['labels' ]['version' ]
291294 # skip the latest release
292- if current_version == latest_version :
295+ if current_version_name == self . version_name :
293296 continue
294297
295298 # aggregate versions together to removal all at once
296- if current_version not in replica_sets_removal :
297- replica_sets_removal .append (current_version )
299+ if current_version_name not in replica_sets_removal :
300+ replica_sets_removal .append (current_version_name )
298301
299302 if replica_sets_removal :
300303 self .log (
301- 'Found the following versions to cleanup: {}' .format (', ' .join (replica_sets_removal )), # noqa
304+ 'Found the following versions to cleanup: {}' .format (
305+ ', ' .join (replica_sets_removal )),
302306 level = logging .DEBUG
303307 )
304308 # this is RC related
305- for version in replica_sets_removal :
306- self ._delete_release_in_scheduler (self .app .id , procfile_types , version )
309+ for version_name in replica_sets_removal :
310+ self ._delete_release_in_scheduler (self .app .id , procfile_types , version_name )
307311 # handle Deployments specific cleanups
308312 self ._cleanup_deployment_secrets_and_configs (self .app .id , procfile_types )
309313 # Remove stray pods
310- self ._cleanup_stray_pods (self .app .id , procfile_types , latest_version )
314+ self ._cleanup_stray_pods (self .app .id , procfile_types , self . version_name )
311315
312- def _cleanup_stray_pods (self , namespace , procfile_types , latest_version ):
316+ def _cleanup_stray_pods (self , namespace , procfile_types , latest_version_name ):
313317 labels = {'heritage' : 'drycc' }
314318 if procfile_types is not None :
315319 labels ['type__in' ] = procfile_types
@@ -320,9 +324,9 @@ def _cleanup_stray_pods(self, namespace, procfile_types, latest_version):
320324 if self .scheduler ().pod .deleted (pod ):
321325 continue
322326
323- current_version = pod ['metadata' ]['labels' ]['version' ]
327+ current_version_name = pod ['metadata' ]['labels' ]['version' ]
324328 # skip the latest release
325- if current_version == latest_version :
329+ if current_version_name == latest_version_name :
326330 continue
327331
328332 try :
@@ -343,27 +347,27 @@ def _cleanup_deployment_secrets_and_configs(self, namespace, procfile_types=None
343347 """
344348
345349 # Find all ReplicaSets
346- versions = ['v{}' . format ( self .version ) , ]
350+ version_names = [self .version_name , ]
347351 labels = {'heritage' : 'drycc' , 'app' : namespace }
348352 replicasets = self .scheduler ().rs .get (namespace , labels = labels ).json ()['items' ]
349353 if not replicasets :
350354 replicasets = []
351355 for replicaset in replicasets :
352356 if (
353357 'version' not in replicaset ['metadata' ]['labels' ] or
354- replicaset ['metadata' ]['labels' ]['version' ] in versions
358+ replicaset ['metadata' ]['labels' ]['version' ] in version_names
355359 ):
356360 continue
357361
358- versions .append (replicaset ['metadata' ]['labels' ]['version' ])
362+ version_names .append (replicaset ['metadata' ]['labels' ]['version' ])
359363
360364 # find all env secrets not owned by any replicaset
361365 labels = {
362366 'heritage' : 'drycc' ,
363367 'app' : namespace ,
364368 'class' : 'env' ,
365369 # http://kubernetes.io/docs/user-guide/labels/#set-based-requirement
366- 'version__notin' : versions
370+ 'version__notin' : version_names
367371 }
368372 if procfile_types is not None :
369373 labels ['type__in' ] = procfile_types
@@ -374,7 +378,7 @@ def _cleanup_deployment_secrets_and_configs(self, namespace, procfile_types=None
374378 for secret in secrets :
375379 self .scheduler ().secret .delete (namespace , secret ['metadata' ]['name' ])
376380
377- def _delete_release_in_scheduler (self , namespace , procfile_types , version ):
381+ def _delete_release_in_scheduler (self , namespace , procfile_types , version_name ):
378382 """
379383 Deletes a specific release in k8s based on ReplicationController
380384
@@ -384,7 +388,7 @@ def _delete_release_in_scheduler(self, namespace, procfile_types, version):
384388 labels = {
385389 'heritage' : 'drycc' ,
386390 'app' : namespace ,
387- 'version' : version
391+ 'version' : version_name
388392 }
389393 if procfile_types is not None :
390394 labels ['type__in' ] = procfile_types
0 commit comments