
Hi all, This idea was born from this bug: https://bugzilla.redhat.com/730619 If, for example, creating a new storage domain fails because there's no space left, the user gets: "Error creating a storage domain" which is not very helpful, since the real problem (no space) is not reported. "Error creating a storage domain" [i] No space left on device Where [i] is some widget the user can open to see details, or other element the UX team find acceptable. Nir Soffer and I believe a good solution is the following: 1. Currently VDSM sends a dictionary {'status': {'code': code, 'message': msg}}. The code is some number that Engine recognizes and has a localized message for. The msg parameter is ignored by Engine, and contains a default, not informative, string like "Error creating a storage domain" 2. We suggest adding a new key to this dictionary, call it "details", which will contain the string representation of the actual exception thrown in Python (in this case, OSError with the string "[Errno 28] No space left on device" 3. The Engine will look for this key, and display the string inside a "details" section which will be added to the current dialog box. The user gets the usual error indication, but has a small "details" icon, which he can click to see more information. The advantages are: 1. Simple to implement 2. Will improve the situation for any error thrown from Python - the user will get a clearer message. 3. New VDSM with old Engine is not a problem, the engine will not look for this key at all 4. New Engine with old VDSM is also easy to handle: the engine will not display "details" if this key is absent. Disadvatage is that the "details" will be non-localized, but this is natural for technical details. Why not use the existing "msg" field? because a new engine with an old VDSM will display uninformative, duplicate messages for all errors (the current msg field is simply a duplicate of the engine error name). What do you think? Yoav K