summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2023-05-27 15:01:48 +0300
committerLars Wirzenius <liw@liw.fi>2023-05-27 16:20:49 +0300
commite4d591ae30dbf18e43d594a0ba2d281ca8900691 (patch)
tree1a4a52030344c4cc0e6b704c937e2b198573a1d9
parentdc52befc03ad1164fb2faadcd78e49e882209c80 (diff)
downloadvmdb2-e4d591ae30dbf18e43d594a0ba2d281ca8900691.tar.gz
fix(cryptsetup): bugs introduced by merging with luks plugin
Sponsored-by: author
-rw-r--r--vmdb/plugins/cryptsetup_plugin.py30
1 files changed, 15 insertions, 15 deletions
diff --git a/vmdb/plugins/cryptsetup_plugin.py b/vmdb/plugins/cryptsetup_plugin.py
index be8ea4c..a73438f 100644
--- a/vmdb/plugins/cryptsetup_plugin.py
+++ b/vmdb/plugins/cryptsetup_plugin.py
@@ -32,18 +32,18 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
def get_key_spec(self):
return {
"cryptsetup": str,
- "tag": str,
+ "name": str,
"password": "",
"key-file": "",
"key-cmd": "",
}
def run(self, step, settings, state):
- underlying = values["cryptsetup"]
- crypt_name = values["tag"]
- password = values["password"] or None
- key_file = values["key-file"] or None
- key_cmd = values["key-cmd"] or None
+ underlying = step["cryptsetup"]
+ crypt_name = step["name"]
+ password = step["password"] or None
+ key_file = step["key-file"] or None
+ key_cmd = step["key-cmd"] or None
if not isinstance(underlying, str):
raise vmdb.NotString("cryptsetup", underlying)
@@ -76,14 +76,14 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
if password is not None:
key_file = self._write_temp(password)
- rmtp = True
+ rmtmp = True
if key_cmd is not None:
output = vmdb.runcmd(["sh", "-ec", key_cmd])
output = output.decode("UTF-8")
key = output.splitlines()[0]
key_file = self._write_temp(key)
- rmtp = True
+ rmtmp = True
assert key_file is not None
@@ -105,7 +105,6 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
"--batch-mode",
"--type=luks2",
"--pbkdf=argon2id",
- "--allow-discards",
dev,
key_file,
]
@@ -116,6 +115,7 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
"open",
"--key-file",
key_file,
+ "--allow-discards",
dev,
crypt_name,
]
@@ -124,12 +124,12 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
crypt_dev = "/dev/mapper/{}".format(crypt_name)
assert os.path.exists(crypt_dev)
- uuid = vmdb.runcmd(["cryptsetup", "luksUUID", device]).decode("UTF8").strip()
+ uuid = vmdb.runcmd(["cryptsetup", "luksUUID", dev]).decode("UTF8").strip()
state.tags.append(crypt_name)
state.tags.set_dev(crypt_name, crypt_dev)
- state.tags.set_luksuuid(name, uuid)
- state.tags.set_dm(name, name)
+ state.tags.set_luksuuid(crypt_name, uuid)
+ state.tags.set_dm(crypt_name, crypt_name)
vmdb.progress(
f"LUKS: name={crypt_name} dev={crypt_dev} luksuuid={uuid} dm={crypt_name}"
@@ -140,18 +140,18 @@ class CryptsetupStepRunner(vmdb.StepRunnerInterface):
if rmtmp:
os.remove(key_file)
- def _write_temp(self, passord):
+ def _write_temp(self, password):
fd, filename = tempfile.mkstemp()
os.close(fd)
open(filename, "w").write(password)
return filename
- def teardown(self, values, settings, state):
+ def teardown(self, step, settings, state):
x = state.tmp_key_file
if x is not None and os.path.exists(x):
os.remove(x)
- crypt_name = values["name"]
+ crypt_name = step["name"]
crypt_dev = "/dev/mapper/{}".format(crypt_name)
vmdb.runcmd(["cryptsetup", "close", crypt_dev])