From shtripat at redhat.com Wed Nov 6 05:07:38 2013 Content-Type: multipart/mixed; boundary="===============6207691197878339979==" MIME-Version: 1.0 From: Shubhendu Tripathi To: devel at ovirt.org Subject: [Engine-devel] IMP: Regarding an issue while translating the error messages for gluster using ErrorTranslator class Date: Wed, 06 Nov 2013 15:37:34 +0530 Message-ID: <527A14E6.8010809@redhat.com> --===============6207691197878339979== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format. --------------020507040501040703080208 Content-Type: text/plain; charset=3DISO-8859-1; format=3Dflowed Content-Transfer-Encoding: 7bit Hi, In the case of Gluster, as there are no one to one mappings available = for all the error messages from Gluster, we set the error in the = VdcFault object as NULL. We also populate the actual error from the Gluster as error message in = the fault object. /getReturnValue().getExecuteFailedMessages().add(error);// //getReturnValue().getFault().setMessage(error);// //getReturnValue().getFault().setError(null);/ Because of above settings and the below code snippet in /Frontend.java/ = class the error message as is gets displayed on the error dialog - / //public String translateVdcFault(final VdcFault fault) {// // return = getVdsmErrorsTranslator().TranslateErrorTextSingle(fault.getError() =3D=3D = null// // ? fault.getMessage() : fault.getError().toString());// //}// / Well and good till now !! But while translation of the error messages, all the occurrences of "." = get replaced with "_". This causes an issue for the gluster errors. If the error message sent = from gluster has "."s (say IP Address of a host or FQDN for a host), = that also gets replaced with "_" and the error message does not look = correct. Request your suggestion for handling such a case. *PS: *One thing I can think of is, introducing a flag called = /isExternalError/ in /VdcFault/ class to identify if the source of the = fault is external. From Gluster we would set the flag as /true/, and = while replacement of "." with "_", if the flag is set it will not do the = replacements. Regards, Shubhendu --------------020507040501040703080208 Content-Type: text/html; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit Hi,

In the case of Gluster, as there are no one to one mappings available for all the error messages from Gluster, we set the error in the VdcFault object as NULL.
We also populate the actual error from the Gluster as error message in the fault object.

getReturnValue().getExecuteFailedMessages().= add(error);
getReturnValue().getFault().setMessage(error);
getReturnValue().getFault().setError(null);


Because of above settings and the below code snippet in Frontend.jav= a class the error message as is gets displayed on the error dialog -

public String translateVdcFault(final VdcFault fault) {=
        return getVdsmErrorsTranslator().TranslateErrorTextSingle(fault.getError() =3D=3D null
          &n= bsp;     ? fault.getMessage() : fault.getError().toString());
}

Well and good till now !!

But while translation of the error messages, all the occurrences of "." get replaced with "_".
This causes an issue for the gluster errors. If the error message sent from gluster has "."s (say IP Address of a host or FQDN for a host), that also gets replaced with "_" and the error message does not look correct.

Request your suggestion for handling such a case.

PS: One thing I can think of is, introducing a flag called is= ExternalError in VdcFault class to identify if the source of the fault is external. From Gluster we would set the flag as true, and while replacement of "." with "_", if the flag is set it will not do the replacements.

Regards,
Shubhendu
--------------020507040501040703080208-- --===============6207691197878339979== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wMjA1MDcwNDA1MDEwNDA3MDMwODAyMDgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog N2JpdAoKSGksCgpJbiB0aGUgY2FzZSBvZiBHbHVzdGVyLCBhcyB0aGVyZSBhcmUgbm8gb25lIHRv IG9uZSBtYXBwaW5ncyBhdmFpbGFibGUgCmZvciBhbGwgdGhlIGVycm9yIG1lc3NhZ2VzIGZyb20g R2x1c3Rlciwgd2Ugc2V0IHRoZSBlcnJvciBpbiB0aGUgClZkY0ZhdWx0IG9iamVjdCBhcyBOVUxM LgpXZSBhbHNvIHBvcHVsYXRlIHRoZSBhY3R1YWwgZXJyb3IgZnJvbSB0aGUgR2x1c3RlciBhcyBl cnJvciBtZXNzYWdlIGluIAp0aGUgZmF1bHQgb2JqZWN0LgoKL2dldFJldHVyblZhbHVlKCkuZ2V0 RXhlY3V0ZUZhaWxlZE1lc3NhZ2VzKCkuYWRkKGVycm9yKTsvLwovL2dldFJldHVyblZhbHVlKCku Z2V0RmF1bHQoKS5zZXRNZXNzYWdlKGVycm9yKTsvLwovL2dldFJldHVyblZhbHVlKCkuZ2V0RmF1 bHQoKS5zZXRFcnJvcihudWxsKTsvCgpCZWNhdXNlIG9mIGFib3ZlIHNldHRpbmdzIGFuZCB0aGUg YmVsb3cgY29kZSBzbmlwcGV0IGluIC9Gcm9udGVuZC5qYXZhLyAKY2xhc3MgdGhlIGVycm9yIG1l c3NhZ2UgYXMgaXMgZ2V0cyBkaXNwbGF5ZWQgb24gdGhlIGVycm9yIGRpYWxvZyAtCi8KLy9wdWJs aWMgU3RyaW5nIHRyYW5zbGF0ZVZkY0ZhdWx0KGZpbmFsIFZkY0ZhdWx0IGZhdWx0KSB7Ly8KLy8g ICAgICAgIHJldHVybiAKZ2V0VmRzbUVycm9yc1RyYW5zbGF0b3IoKS5UcmFuc2xhdGVFcnJvclRl eHRTaW5nbGUoZmF1bHQuZ2V0RXJyb3IoKSA9PSAKbnVsbC8vCi8vICAgICAgICAgICAgICAgID8g ZmF1bHQuZ2V0TWVzc2FnZSgpIDogZmF1bHQuZ2V0RXJyb3IoKS50b1N0cmluZygpKTsvLwovL30v LwovCldlbGwgYW5kIGdvb2QgdGlsbCBub3cgISEKCkJ1dCB3aGlsZSB0cmFuc2xhdGlvbiBvZiB0 aGUgZXJyb3IgbWVzc2FnZXMsIGFsbCB0aGUgb2NjdXJyZW5jZXMgb2YgIi4iIApnZXQgcmVwbGFj ZWQgd2l0aCAiXyIuClRoaXMgY2F1c2VzIGFuIGlzc3VlIGZvciB0aGUgZ2x1c3RlciBlcnJvcnMu IElmIHRoZSBlcnJvciBtZXNzYWdlIHNlbnQgCmZyb20gZ2x1c3RlciBoYXMgIi4icyAoc2F5IElQ IEFkZHJlc3Mgb2YgYSBob3N0IG9yIEZRRE4gZm9yIGEgaG9zdCksIAp0aGF0IGFsc28gZ2V0cyBy ZXBsYWNlZCB3aXRoICJfIiBhbmQgdGhlIGVycm9yIG1lc3NhZ2UgZG9lcyBub3QgbG9vayAKY29y cmVjdC4KClJlcXVlc3QgeW91ciBzdWdnZXN0aW9uIGZvciBoYW5kbGluZyBzdWNoIGEgY2FzZS4K CipQUzogKk9uZSB0aGluZyBJIGNhbiB0aGluayBvZiBpcywgaW50cm9kdWNpbmcgYSBmbGFnIGNh bGxlZCAKL2lzRXh0ZXJuYWxFcnJvci8gaW4gL1ZkY0ZhdWx0LyBjbGFzcyB0byBpZGVudGlmeSBp ZiB0aGUgc291cmNlIG9mIHRoZSAKZmF1bHQgaXMgZXh0ZXJuYWwuIEZyb20gR2x1c3RlciB3ZSB3 b3VsZCBzZXQgdGhlIGZsYWcgYXMgL3RydWUvLCBhbmQgCndoaWxlIHJlcGxhY2VtZW50IG9mICIu IiB3aXRoICJfIiwgaWYgdGhlIGZsYWcgaXMgc2V0IGl0IHdpbGwgbm90IGRvIHRoZSAKcmVwbGFj ZW1lbnRzLgoKUmVnYXJkcywKU2h1YmhlbmR1CgotLS0tLS0tLS0tLS0tLTAyMDUwNzA0MDUwMTA0 MDcwMzA4MDIwOApDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCjxodG1sPgogIDxoZWFkPgoKICAgIDxtZXRh IGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlT Ty04ODU5LTEiPgogIDwvaGVhZD4KICA8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAw MDAwIj4KICAgIEhpLDxicj4KICAgIDxicj4KICAgIEluIHRoZSBjYXNlIG9mIEdsdXN0ZXIsIGFz IHRoZXJlIGFyZSBubyBvbmUgdG8gb25lIG1hcHBpbmdzCiAgICBhdmFpbGFibGUgZm9yIGFsbCB0 aGUgZXJyb3IgbWVzc2FnZXMgZnJvbSBHbHVzdGVyLCB3ZSBzZXQgdGhlIGVycm9yCiAgICBpbiB0 aGUgVmRjRmF1bHQgb2JqZWN0IGFzIE5VTEwuPGJyPgogICAgV2UgYWxzbyBwb3B1bGF0ZSB0aGUg YWN0dWFsIGVycm9yIGZyb20gdGhlIEdsdXN0ZXIgYXMgZXJyb3IgbWVzc2FnZQogICAgaW4gdGhl IGZhdWx0IG9iamVjdC48YnI+CiAgICA8YnI+CiAgICA8Zm9udCBjb2xvcj0iIzAwMDA5OSI+PGk+ Z2V0UmV0dXJuVmFsdWUoKS5nZXRFeGVjdXRlRmFpbGVkTWVzc2FnZXMoKS5hZGQoZXJyb3IpOzwv aT48aT48YnI+CiAgICAgIDwvaT48aT5nZXRSZXR1cm5WYWx1ZSgpLmdldEZhdWx0KCkuc2V0TWVz c2FnZShlcnJvcik7PC9pPjxpPjxicj4KICAgICAgPC9pPjxpPmdldFJldHVyblZhbHVlKCkuZ2V0 RmF1bHQoKS5zZXRFcnJvcihudWxsKTs8L2k+PC9mb250Pjxicj4KICAgIDxicj4KICAgIEJlY2F1 c2Ugb2YgYWJvdmUgc2V0dGluZ3MgYW5kIHRoZSBiZWxvdyBjb2RlIHNuaXBwZXQgaW4gPGk+RnJv bnRlbmQuamF2YTwvaT4KICAgIGNsYXNzIHRoZSBlcnJvciBtZXNzYWdlIGFzIGlzIGdldHMgZGlz cGxheWVkIG9uIHRoZSBlcnJvciBkaWFsb2cgLTxicj4KICAgIDxmb250IGNvbG9yPSIjMDAwMDk5 Ij48aT48YnI+CiAgICAgIDwvaT48aT5wdWJsaWMgU3RyaW5nIHRyYW5zbGF0ZVZkY0ZhdWx0KGZp bmFsIFZkY0ZhdWx0IGZhdWx0KSB7PC9pPjxpPjxicj4KICAgICAgPC9pPjxpPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4KICAgICAgICBnZXRWZHNtRXJy b3JzVHJhbnNsYXRvcigpLlRyYW5zbGF0ZUVycm9yVGV4dFNpbmdsZShmYXVsdC5nZXRFcnJvcigp CiAgICAgICAgPT0gbnVsbDwvaT48aT48YnI+CiAgICAgIDwvaT48aT4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgPyBmYXVsdC5nZXRNZXNzYWdlKCkgOgogICAgICAgIGZhdWx0Lmdl dEVycm9yKCkudG9TdHJpbmcoKSk7PC9pPjxpPjxicj4KICAgICAgPC9pPjxpPn08L2k+PGk+PGJy PgogICAgICA8L2k+PC9mb250Pjxicj4KICAgIFdlbGwgYW5kIGdvb2QgdGlsbCBub3cgISE8YnI+ CiAgICA8YnI+CiAgICBCdXQgd2hpbGUgdHJhbnNsYXRpb24gb2YgdGhlIGVycm9yIG1lc3NhZ2Vz LCBhbGwgdGhlIG9jY3VycmVuY2VzIG9mCiAgICAiLiIgZ2V0IHJlcGxhY2VkIHdpdGggIl8iLjxi cj4KICAgIFRoaXMgY2F1c2VzIGFuIGlzc3VlIGZvciB0aGUgZ2x1c3RlciBlcnJvcnMuIElmIHRo ZSBlcnJvciBtZXNzYWdlCiAgICBzZW50IGZyb20gZ2x1c3RlciBoYXMgIi4icyAoc2F5IElQIEFk ZHJlc3Mgb2YgYSBob3N0IG9yIEZRRE4gZm9yIGEKICAgIGhvc3QpLCB0aGF0IGFsc28gZ2V0cyBy ZXBsYWNlZCB3aXRoICJfIiBhbmQgdGhlIGVycm9yIG1lc3NhZ2UgZG9lcwogICAgbm90IGxvb2sg Y29ycmVjdC48YnI+CiAgICA8YnI+CiAgICBSZXF1ZXN0IHlvdXIgc3VnZ2VzdGlvbiBmb3IgaGFu ZGxpbmcgc3VjaCBhIGNhc2UuPGJyPgogICAgPGJyPgogICAgPGI+UFM6IDwvYj5PbmUgdGhpbmcg SSBjYW4gdGhpbmsgb2YgaXMsIGludHJvZHVjaW5nIGEgZmxhZyBjYWxsZWQgPGk+aXNFeHRlcm5h bEVycm9yPC9pPgogICAgaW4gPGk+VmRjRmF1bHQ8L2k+IGNsYXNzIHRvIGlkZW50aWZ5IGlmIHRo ZSBzb3VyY2Ugb2YgdGhlIGZhdWx0IGlzCiAgICBleHRlcm5hbC4gRnJvbSBHbHVzdGVyIHdlIHdv dWxkIHNldCB0aGUgZmxhZyBhcyA8aT50cnVlPC9pPiwgYW5kCiAgICB3aGlsZSByZXBsYWNlbWVu dCBvZiAiLiIgd2l0aCAiXyIsIGlmIHRoZSBmbGFnIGlzIHNldCBpdCB3aWxsIG5vdCBkbwogICAg dGhlIHJlcGxhY2VtZW50cy48YnI+CiAgICA8YnI+CiAgICBSZWdhcmRzLDxicj4KICAgIFNodWJo ZW5kdSA8YnI+CiAgPC9ib2R5Pgo8L2h0bWw+CgotLS0tLS0tLS0tLS0tLTAyMDUwNzA0MDUwMTA0 MDcwMzA4MDIwOC0tCg== --===============6207691197878339979==--