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

View File

@ -19,6 +19,7 @@ import logging
import os import os
import random import random
import subprocess import subprocess
import tempfile
from typing import Any, Dict, List, Sequence from typing import Any, Dict, List, Sequence
log = logging.getLogger("subiquitycore.utils") log = logging.getLogger("subiquitycore.utils")
@ -282,3 +283,10 @@ def gen_zsys_uuid():
"""Create a 6 character identifier. Functionally equivalent to """Create a 6 character identifier. Functionally equivalent to
`head -100 /dev/urandom | tr -dc 'a-z0-9' | head -c6`""" `head -100 /dev/urandom | tr -dc 'a-z0-9' | head -c6`"""
return "".join([random.choice(_zsys_uuid_charset()) for i in range(6)]) 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