Hi, We had a violent^Wheated discussion on IRC about how to move forward with Luiz's proposed error series. I think we reached consensus. This note attempts to outline that.
Principles ---------- 1. Errors should be free formed strings with a class code 2. There should be a small number of class codes (10-15) added strictly when there are specific users of a code. 3. The class code should be expressed as an enum data type in the normal QMP schema. Other than this, errors should have no structure in the schema.[*] 4. We should drop all dictionary arguments in the current error mechanisms beyond 'class' and 'desc'. 5. The following errors are used by libvirt: - CommandNotFound: QMP parsing - DeviceNotActive/KVMMissingCap: ballooning - DeviceNotFound: drive_del - MigrationExpected: cont 6. We need to make sure that these errors are preserved while other errors should be consolidated. - We need to state very clear for 1.2 which errors are going away. 7. We need to make sure that anything we expose in 1.2 stays that way. If we're dropping 'InvalidParameterType' as a class code, it should be dropped in 1.2. This could be achieved by making all existing codes except for those in (5) report 'UnknownError' or something.[*] [*] I took a little bit of license with these. Hopefully it's not controversial. Regards, Anthony Liguori