utils: extract write_named_tempfile

This commit is contained in:
Dan Bungert 2024-02-22 18:40:05 -07:00
parent d886dcd97d
commit 1b00eb5616
2 changed files with 10 additions and 4 deletions

View File

@ -36,6 +36,7 @@ from curtin.util import human2bytes
from probert.storage import StorageInfo
from subiquity.common.types import Bootloader, OsProber, RecoveryKey
from subiquitycore.utils import write_named_tempfile
log = logging.getLogger("subiquity.models.filesystem")
@ -1135,10 +1136,7 @@ class DM_Crypt(_Formattable):
def serialize_key(self):
if self.key and not self.keyfile:
f = tempfile.NamedTemporaryFile(prefix="luks-key-", mode="w", delete=False)
f.write(self.key)
f.close()
return {"keyfile": f.name}
return {"keyfile": write_named_tempfile("luks-key-", self.key)}
else:
return {}

View File

@ -19,6 +19,7 @@ import logging
import os
import random
import subprocess
import tempfile
from typing import Any, Dict, List, Sequence
log = logging.getLogger("subiquitycore.utils")
@ -282,3 +283,10 @@ def gen_zsys_uuid():
"""Create a 6 character identifier. Functionally equivalent to
`head -100 /dev/urandom | tr -dc 'a-z0-9' | head -c6`"""
return "".join([random.choice(_zsys_uuid_charset()) for i in range(6)])
def write_named_tempfile(prefix, contents):
f = tempfile.NamedTemporaryFile(prefix=prefix, mode="w", delete=False)
with f:
f.write(contents)
return f.name