Add support for 'tag-created-vm-with' feature
When a VM with 'tag-created-vm-with' feature set creates a VM (using Admin API), that VM will get all the tags listed in the feature. Multiple tags can be separated with spaces. This will be useful to tag VMs created during paranoid mode backup restore. QubesOS/qubes-issues#5310
This commit is contained in:
		
							parent
							
								
									4acf69e8ec
								
							
						
					
					
						commit
						6f87f310db
					
				@ -142,3 +142,12 @@ class AdminExtension(qubes.ext.Extension):
 | 
				
			|||||||
        if hasattr(self, 'policy_cache'):
 | 
					        if hasattr(self, 'policy_cache'):
 | 
				
			||||||
            self.policy_cache.cleanup()
 | 
					            self.policy_cache.cleanup()
 | 
				
			||||||
            del self.policy_cache
 | 
					            del self.policy_cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @qubes.ext.handler('domain-tag-add:created-by-*')
 | 
				
			||||||
 | 
					    def on_tag_add(self, vm, event, tag, **kwargs):
 | 
				
			||||||
 | 
					        '''Add extra tags based on creators 'tag-created-vm-with' feature'''
 | 
				
			||||||
 | 
					        # pylint: disable=unused-argument,no-self-use
 | 
				
			||||||
 | 
					        created_by = vm.app.domains[tag.partition('created-by-')[2]]
 | 
				
			||||||
 | 
					        tag_with = created_by.features.get('tag-created-vm-with', '')
 | 
				
			||||||
 | 
					        for tag_with_single in tag_with.split():
 | 
				
			||||||
 | 
					            vm.tags.add(tag_with_single)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user