I agree that the parser is not nice - although nicer than before where even the objects where created in the loop and the values reset by the add functions.

A real improvement would be to use vgs, lvs and pvs to get the informations are the output of those is more suited for parsing. But since the mapping isn't always 1 to 1 this is significant more work.