소스 검색

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
Marek Marczykowski-Górecki 4 년 전
부모
커밋
6f87f310db
1개의 변경된 파일9개의 추가작업 그리고 0개의 파일을 삭제
  1. 9 0
      qubes/ext/admin.py

+ 9 - 0
qubes/ext/admin.py

@@ -142,3 +142,12 @@ class AdminExtension(qubes.ext.Extension):
         if hasattr(self, 'policy_cache'):
             self.policy_cache.cleanup()
             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)