mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
TEST-46-HOMED: homectl unregister and friends needs the target is inactive or absent
Hence, we need to wait for the previous operation finished. Fixes the following failure: ``` TEST-46-HOMED.sh[107]: + homectl unregister signtest TEST-46-HOMED.sh[1449]: Failed to unregister home: Home signtest is currently being used, or an operation on home signtest is currently being executed. ``` Fixes #38643
This commit is contained in:
@@ -748,6 +748,7 @@ IDENTITY='{"userName":"signtest","storage":"directory","disposition":"regular","
|
||||
|
||||
# Try with stripping the foreign signature first, this should just work
|
||||
echo "$IDENTITY" | homectl create -P --identity=- --seize=yes
|
||||
wait_for_state signtest inactive
|
||||
homectl remove signtest
|
||||
|
||||
# No try again, and don't strip the signature. It will be refused.
|
||||
@@ -774,6 +775,7 @@ echo "$IDENTITY" | homectl create -P --identity=- --seize=no
|
||||
PASSWORD="test" homectl with signtest true
|
||||
|
||||
# Remove the key, and check again ,should fail now
|
||||
wait_for_state signtest inactive
|
||||
homectl remove-signing-key signtest.public
|
||||
wait_for_state signtest inactive
|
||||
(! PASSWORD="test" homectl with signtest true)
|
||||
@@ -785,15 +787,17 @@ homectl list-signing-keys | grep -q local.public
|
||||
# Test unregister + adopt
|
||||
mkdir /home/elsewhere
|
||||
mv /home/signtest.homedir /home/elsewhere/
|
||||
wait_for_state signtest absent
|
||||
homectl unregister signtest
|
||||
print_public_key | homectl add-signing-key --key-name=signtest.public
|
||||
homectl adopt /home/elsewhere/signtest.homedir
|
||||
PASSWORD="test" homectl with signtest true
|
||||
wait_for_state signtest inactive
|
||||
|
||||
# Test register
|
||||
wait_for_state signtest inactive
|
||||
homectl unregister signtest
|
||||
homectl register /home/elsewhere/signtest.homedir/.identity
|
||||
wait_for_state signtest absent
|
||||
homectl unregister signtest
|
||||
|
||||
# Test automatic fixation for anything in /home/
|
||||
@@ -801,9 +805,9 @@ mv /home/elsewhere/signtest.homedir /home
|
||||
rmdir /home/elsewhere
|
||||
wait_for_exist signtest
|
||||
PASSWORD="test" homectl with signtest true
|
||||
wait_for_state signtest inactive
|
||||
|
||||
# add signing key via credential
|
||||
wait_for_state signtest inactive
|
||||
homectl remove-signing-key signtest.public
|
||||
(! (homectl list-signing-keys | grep -q signtest.public))
|
||||
systemd-run --wait -p "SetCredential=home.add-signing-key.signtest.public:$(print_public_key)" homectl firstboot
|
||||
@@ -812,15 +816,17 @@ homectl list-signing-keys | grep -q signtest.public
|
||||
# register user via credential
|
||||
mkdir /home/elsewhere2
|
||||
mv /home/signtest.homedir /home/elsewhere2/
|
||||
wait_for_state signtest absent
|
||||
homectl unregister signtest
|
||||
systemd-run --wait -p "LoadCredential=home.register.signtest:/home/elsewhere2/signtest.homedir/.identity" homectl firstboot
|
||||
homectl inspect signtest
|
||||
wait_for_state signtest absent
|
||||
homectl unregister signtest
|
||||
mv /home/elsewhere2/signtest.homedir /home/
|
||||
rmdir /home/elsewhere2
|
||||
wait_for_exist signtest
|
||||
|
||||
# Remove it all again
|
||||
wait_for_exist signtest
|
||||
homectl remove-signing-key signtest.public
|
||||
homectl remove signtest
|
||||
|
||||
|
||||
Reference in New Issue
Block a user