)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8b16a2605eb2c9718e7fe544301a36e5c5b17bcf","unresolved":false,"context_lines":[{"line_number":10,"context_line":"collapse/expand working."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia9ff81694fc7a84417ea2c998721475332a7e772"},{"line_number":13,"context_line":"Closes: Bug #1895570"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_a57344e8","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":11},"updated":"2020-09-16 09:43:20.000000000","message":"nit: It needs to be \"Closes-bug\" but it is linked to launchpad bug so it is fine for me.","commit_id":"c42ca16eac9f04515e43c6633f7625910b85531c"}],"horizon/static/horizon/js/horizon.messages.js":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1926a75569ff891d0e1568771c1929cbb53e527c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    return str.split(\u0027\\u2026\u0027);"},{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  var id \u003d Date.now();"},{"line_number":43,"context_line":"  var template \u003d horizon.templates.compiled_templates[\"#alert_message_template\"],"},{"line_number":44,"context_line":"    params \u003d {"},{"line_number":45,"context_line":"      \"type\": type || \u0027default\u0027,"}],"source_content_type":"text/javascript","patch_set":4,"id":"9f560f44_ddc9775a","line":42,"updated":"2020-09-23 07:48:00.000000000","message":"The resolution of Date.now() is a milisecond.\n\nI tested client-side error message. What I tried is to drop redirect from [1], add another exceptions.handle() after there and add time.sleep() between two exceptions.handle().\n\nThe result was two message IDs are different only 2 or 3 milliseconds. I guess it is because ID here is assigned in JS side, so the difference of ID would be very small.\nMy environment is not so fast, but I got this result, so I don\u0027t think it is safe.\n\nPerhaps it is better to use UUID as ID here.\n\n[1] https://opendev.org/openstack/horizon/src/branch/master/openstack_dashboard/dashboards/admin/volume_types/forms.py#L132","commit_id":"54e3497e4358c76f5811d8b963b0f6000323a760"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b3fbc2804054be91df637d731170bd33ee1b45ca","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    return str.split(\u0027\\u2026\u0027);"},{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  var id \u003d Date.now();"},{"line_number":43,"context_line":"  var template \u003d horizon.templates.compiled_templates[\"#alert_message_template\"],"},{"line_number":44,"context_line":"    params \u003d {"},{"line_number":45,"context_line":"      \"type\": type || \u0027default\u0027,"}],"source_content_type":"text/javascript","patch_set":4,"id":"9f560f44_22932f02","line":42,"in_reply_to":"9f560f44_ddc9775a","updated":"2020-09-23 11:21:56.000000000","message":"I\u0027ll try to switch to UUID here. The reason I didn\u0027t use it here: JS doesn\u0027t have UUID generator out of the box and we\u0027ve got UUID generator only for angularized views","commit_id":"54e3497e4358c76f5811d8b963b0f6000323a760"}],"horizon/templates/horizon/client_side/_alert_message.html":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"4b078b8b6c2c7d59cf12106eed06d59e09b7ee8d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    [[/safe]]"},{"line_number":16,"context_line":"    [[^safe]]"},{"line_number":17,"context_line":"      [[message]]"},{"line_number":18,"context_line":"      \u003ca href\u003d\"#message_details\"  data-toggle\u003d\"collapse\" data-target\u003d\"#message_details_[[id]]\"\u003eDetails!!\u003c/a\u003e"},{"line_number":19,"context_line":"      \u003cdiv id\u003d\"message_details_[[id]]\" class\u003d\"collapse\"\u003e"},{"line_number":20,"context_line":"      [[details]]"},{"line_number":21,"context_line":"      \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"9f560f44_66f02993","line":18,"range":{"start_line":18,"start_character":102,"end_line":18,"end_character":104},"updated":"2020-09-15 11:29:33.000000000","message":"why this is added?","commit_id":"80d85b67f14a473b3554c1cd39c60e2d8a8a9251"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"559b8b998d3fcd06db384617c6a9315cf4e9ea1e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    [[/safe]]"},{"line_number":16,"context_line":"    [[^safe]]"},{"line_number":17,"context_line":"      [[message]]"},{"line_number":18,"context_line":"      \u003ca href\u003d\"#message_details\"  data-toggle\u003d\"collapse\" data-target\u003d\"#message_details_[[id]]\"\u003eDetails!!\u003c/a\u003e"},{"line_number":19,"context_line":"      \u003cdiv id\u003d\"message_details_[[id]]\" class\u003d\"collapse\"\u003e"},{"line_number":20,"context_line":"      [[details]]"},{"line_number":21,"context_line":"      \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"9f560f44_668f89cd","line":18,"range":{"start_line":18,"start_character":102,"end_line":18,"end_character":104},"in_reply_to":"9f560f44_66f02993","updated":"2020-09-15 11:42:26.000000000","message":"Forgot to remove debug code:(","commit_id":"80d85b67f14a473b3554c1cd39c60e2d8a8a9251"}]}
