Merge "Resolve mypy error"

This commit is contained in:
Zuul 2023-12-20 15:03:38 +00:00 committed by Gerrit Code Review
commit a43728d33b
1 changed files with 9 additions and 4 deletions

View File

@ -122,12 +122,17 @@ TRAITS_CPU_MAPPING = make_reverse_cpu_traits_mapping()
VTPM_DIR = '/var/lib/libvirt/swtpm/'
class EncryptionOptions(ty.TypedDict):
secret: str
format: str
def create_image(
path: str,
disk_format: str,
disk_size: ty.Optional[ty.Union[str, int]],
backing_file: ty.Optional[str] = None,
encryption: ty.Optional[ty.Dict[str, ty.Any]] = None
encryption: ty.Optional[EncryptionOptions] = None
) -> None:
"""Disk image creation with qemu-img
:param path: Desired location of the disk image
@ -140,7 +145,7 @@ def create_image(
Can be None in the case of a COW image.
:param backing_file: (Optional) Backing file to use.
:param encryption: (Optional) Dict detailing various encryption attributes
such as the format and passphrase.
such as the format and passphrase.
"""
cmd = [
'env', 'LC_ALL=C', 'LANG=C', 'qemu-img', 'create', '-f', disk_format
@ -170,7 +175,7 @@ def create_image(
if encryption:
with tempfile.NamedTemporaryFile(mode='tr+', encoding='utf-8') as f:
# Write out the passphrase secret to a temp file
f.write(encryption.get('secret'))
f.write(encryption['secret'])
# Ensure the secret is written to disk, we can't .close() here as
# that removes the file when using NamedTemporaryFile
@ -180,7 +185,7 @@ def create_image(
encryption_opts = [
'--object', f"secret,id=sec,file={f.name}",
'-o', 'encrypt.key-secret=sec',
'-o', f"encrypt.format={encryption.get('format')}",
'-o', f"encrypt.format={encryption['format']}",
]
# Supported luks options:
# cipher-alg=<str> - Name of cipher algorithm and key length