Key exported from auth keyring is not imported properly
Exporting a key with " in there is exported to a file, but importing this key again seems to succeed, but the mon caps are missing:
The resulting file contains:
[client.rbd] key = AQA5R8dWPYvJCxAAvdhxx7UIKzFofSyRb4VrwQ== caps mon = "allow r, allow command "osd blacklist"" caps osd = "allow class-read object_prefix rbd_children, allow rwx pool=rbd"
If you use this command:
ceph auth import -i client.rbd
The resulting key becomes:
client.rbd key: AQA5R8dWPYvJCxAAvdhxx7UIKzFofSyRb4VrwQ== caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=rbd
The 'mon' caps are lost in this case and that is a problem.
The double quotes are causing problems here.
#1 Updated by Jing Li over 3 years ago
A backslash before double quotation mark would be the solution to this problem.
[client.demo] key=AQCudM5Z6osGIxAA2+kQKLBohgM3sjpvIfDUHw== caps mon = "allow r, allow command \"osd blacklist\""
Beside, I think this patch would help to hint if unvalid caps have been passed.