28 lines
		
	
	
	
		
			923 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			923 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import logging
 | |
| 
 | |
| from util.timedeltastring import convert_to_timedelta
 | |
| 
 | |
| logger = logging.getLogger(__name__)
 | |
| 
 | |
| def _expires_after(label_dict, manifest, model):
 | |
|   """ Sets the expiration of a manifest based on the quay.expires-in label. """
 | |
|   try:
 | |
|     timedelta = convert_to_timedelta(label_dict['value'])
 | |
|   except ValueError:
 | |
|     logger.exception('Could not convert %s to timedeltastring', label_dict['value'])
 | |
|     return
 | |
| 
 | |
|   total_seconds = timedelta.total_seconds()
 | |
|   logger.debug('Labeling manifest %s with expiration of %s', manifest, total_seconds)
 | |
|   model.set_tags_expiration_for_manifest(manifest, total_seconds)
 | |
| 
 | |
| 
 | |
| _LABEL_HANDLERS = {
 | |
|   'quay.expires-after': _expires_after,
 | |
| }
 | |
| 
 | |
| def apply_label_to_manifest(label_dict, manifest, model):
 | |
|   """ Runs the handler defined, if any, for the given label. """
 | |
|   handler = _LABEL_HANDLERS.get(label_dict['key'])
 | |
|   if handler is not None:
 | |
|     handler(label_dict, manifest, model)
 |