clevis
clevis copied to clipboard
clevis report shows error but exits with 0
I might have found a bug or edge case. An error is shown that the json of an advertisement is invalid, but the exit code is not 1. This happened with a clevis config that uses "sss" with two tang servers. It only happened occasionally in my test setup and I suspect it might be because the clevis endpoint returned an empty response or some other malformed response due to a network error (maybe). It's hard for me to reproduce this, unfortunately.
root@host:~# clevis luks report -d /dev/sda2 -s1
Invalid json!
Usage: jose fmt [OPTIONS]
Converts JSON between serialization formats
-X --not Invert the following assertion
-O --object Assert TOP to be an object
-A --array Assert TOP to be an array
-S --string Assert TOP to be a string
-I --integer Assert TOP to be an integer
-R --real Assert TOP to be a real
-N --number Assert TOP to be a number
-T --true Assert TOP to be true
-F --false Assert TOP to be false
-B --boolean Assert TOP to be a boolean
-0 --null Assert TOP to be null
-E --equal Assert TOP to be equal to PREV
-Q --query Query the stack by deep copying and pushing onto TOP
-M # --move=# Move TOP back # places on the stack
-U --unwind Discard TOP from the stack
-j JSON --json=JSON Parse JSON constant, push onto TOP
-j FILE --json=FILE Read from FILE, push onto TOP
-j - --json=- Read from STDIN, push onto TOP
-c --copy Deep copy TOP, push onto TOP
-q STR --quote=STR Convert STR to a string, push onto TOP
-o FILE --output=FILE Write TOP to FILE
-o - --output=- Write TOP to STDOUT
-f FILE --foreach=FILE Write TOP (obj./arr.) to FILE, one line/item
-f - --foreach=- Write TOP (obj./arr.) to STDOUT, one line/item
-u FILE --unquote=FILE Write TOP (str.) to FILE without quotes
-u - --unquote=- Write TOP (str.) to STDOUT without quotes
-t # --truncate=# Shrink TOP (arr.) to length #
-t -# --truncate=-# Discard last # items from TOP (arr.)
-i # --insert=# Insert TOP into PREV (arr.) at #
-a --append Append TOP to the end of PREV (arr.)
-a --append Set missing values from TOP (obj.) into PREV (obj.)
-x --extend Append items from TOP to the end of PREV (arr.)
-x --extend Set all values from TOP (obj.) into PREV (obj.)
-d NAME --delete=NAME Delete NAME from TOP (obj.)
-d # --delete=# Delete # from TOP (arr.)
-d -# --delete=-# Delete # from the end of TOP (arr.)
-l --length Push length of TOP (arr./str./obj.) to TOP
-e --empty Erase all items from TOP (arr./obj.)
-g NAME --get=NAME Get item with NAME from TOP (obj.), push to TOP
-g # --get=# Get # item from TOP (arr.), push to TOP
-g -# --get=-# Get # item from the end of TOP (arr.), push to TOP
-s NAME --set=NAME Sets TOP into PREV (obj.) with NAME
-s # --set=# Sets TOP into PREV (obj.) at #
-s -# --set=-# Sets TOP into PREV (obj.) at # from the end
-y --b64load URL-safe Base64 decode TOP (str.), push onto TOP
-Y --b64dump URL-safe Base64 encode TOP, push onto TOP
Advertisement is malformed
root@host:~# echo $?
0