)]}'
{"aodh/api/controllers/v2/alarms.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"9ca41f41b7118b256bca0b373386bc69461b5646","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                for index, action in enumerate(actions[:]):"},{"line_number":414,"context_line":"                    url \u003d netutils.urlsplit(action)"},{"line_number":415,"context_line":"                    if self._is_trust_url(url):"},{"line_number":416,"context_line":"                        if \u0027@\u0027 in url.netloc:"},{"line_number":417,"context_line":"                            if trust_id !\u003d url.username:"},{"line_number":418,"context_line":"                                errmsg \u003d _(\"trust URL cannot contain a \""},{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_08e2dda0","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":56},"updated":"2018-01-31 15:13:53.000000000","message":"i don\u0027t see a reason that these two conditions are separate.","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"fc72bdc29180be528fcee3a182088ad185ea5a80","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                for index, action in enumerate(actions[:]):"},{"line_number":414,"context_line":"                    url \u003d netutils.urlsplit(action)"},{"line_number":415,"context_line":"                    if self._is_trust_url(url):"},{"line_number":416,"context_line":"                        if \u0027@\u0027 in url.netloc:"},{"line_number":417,"context_line":"                            if trust_id !\u003d url.username:"},{"line_number":418,"context_line":"                                errmsg \u003d _(\"trust URL cannot contain a \""},{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_b3631e42","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":56},"in_reply_to":"5f93b717_08e2dda0","updated":"2018-01-31 15:31:23.000000000","message":"because when you merge into one (as was in PS 1), it will go to line 430, and then action in line 439 will be updated.\nSo url will be look like:\n| [u\u0027trust+http://af672f0b57ea4baf828f8fe0afb30540:delete@af672f0b57ea4baf828f8fe0afb30540:delete@localhost:1234\u0027] |","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a54564ce446448626797adece40b7b40726ae847","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                for index, action in enumerate(actions[:]):"},{"line_number":414,"context_line":"                    url \u003d netutils.urlsplit(action)"},{"line_number":415,"context_line":"                    if self._is_trust_url(url):"},{"line_number":416,"context_line":"                        if \u0027@\u0027 in url.netloc:"},{"line_number":417,"context_line":"                            if trust_id !\u003d url.username:"},{"line_number":418,"context_line":"                                errmsg \u003d _(\"trust URL cannot contain a \""},{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_c60a7d1e","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":56},"in_reply_to":"5f93b717_6e25a95b","updated":"2018-02-01 21:06:42.000000000","message":"It would be nice to check that trust_id is not None explicitly here:\n\n  if trust_id is None or trust_id !\u003d url.username:","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"73ad0a4e5e9df2142997411bfaba592bd478a5ec","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                for index, action in enumerate(actions[:]):"},{"line_number":414,"context_line":"                    url \u003d netutils.urlsplit(action)"},{"line_number":415,"context_line":"                    if self._is_trust_url(url):"},{"line_number":416,"context_line":"                        if \u0027@\u0027 in url.netloc:"},{"line_number":417,"context_line":"                            if trust_id !\u003d url.username:"},{"line_number":418,"context_line":"                                errmsg \u003d _(\"trust URL cannot contain a \""},{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_6e25a95b","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":56},"in_reply_to":"5f93b717_b3631e42","updated":"2018-01-31 16:07:45.000000000","message":"but if you combine them, the else would still cause it to skip.","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"9ca41f41b7118b256bca0b373386bc69461b5646","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_e820d1ae","line":422,"updated":"2018-01-31 15:13:53.000000000","message":"so just to clarify, if \u0027@\u0027 in url.netloc, it means trust_id is not None?\n\ni don\u0027t understand trust code but the code right now looks like a dangerous mess of sequential if/else (which is not your fault).\n\nis the code below only applicable if (self._is_trust_url(url) and \u0027@\u0027 not in url.netloc and trust_id \u003d\u003d url.username)? if so why would trust_id is None unless url.username is None\n\nsorry, i really don\u0027t understand the existing code and what it\u0027s doing.","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"73ad0a4e5e9df2142997411bfaba592bd478a5ec","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_4ed9cdf0","line":422,"in_reply_to":"5f93b717_1371b20c","updated":"2018-01-31 16:07:45.000000000","message":"i had some questions above... i\u0027m trying to understand what the issue is.\n\nare you trying to make this support the scenario where you have action \u003d\u003d \"trust+http://trust_id@host/action?","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":24680,"name":"Daniel Pawlik","username":"danpawlik","inactive":true},"change_message_id":"21ce3399e97dcda7687d90ec8c4e484f0cd4dba2","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_eb1ad4c3","line":422,"in_reply_to":"5f93b717_46442d47","updated":"2018-02-02 10:34:16.000000000","message":"The main problem was, that the url has been duplicated to something like this: \n\u0027trust+http://af672f0b57ea4baf828f8fe0afb30540:delete@af672f0b57ea4baf828f8fe0afb30540:delete@localhost:1234\u0027]","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a54564ce446448626797adece40b7b40726ae847","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_46442d47","line":422,"in_reply_to":"5f93b717_4ed9cdf0","updated":"2018-02-01 21:06:42.000000000","message":"I don\u0027t think we want to jump to the beginning of the loop here. The code on lines 430-433 ensures that exactly one action ends up with \u0027delete\u0027 in the password field, so that the trust gets deleted iff there are no more actions with trust URLs. We still want to do that part. What was the issue you found in patch set 2?","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"fc72bdc29180be528fcee3a182088ad185ea5a80","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_1371b20c","line":422,"in_reply_to":"5f93b717_e820d1ae","updated":"2018-01-31 15:31:23.000000000","message":"as above","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"fed4814f19934af46193e53d0f6a8c4a3e960b19","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"},{"line_number":421,"context_line":"                            else:"},{"line_number":422,"context_line":"                                continue"},{"line_number":423,"context_line":"                        if trust_id is None:"},{"line_number":424,"context_line":"                            # We have a trust action without a trust ID,"},{"line_number":425,"context_line":"                            # create it"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_bb737515","line":422,"in_reply_to":"5f93b717_eb1ad4c3","updated":"2018-02-06 14:46:49.000000000","message":"Ah, right.","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":24680,"name":"Daniel Pawlik","username":"danpawlik","inactive":true},"change_message_id":"21ce3399e97dcda7687d90ec8c4e484f0cd4dba2","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                        else:"},{"line_number":433,"context_line":"                            pw \u003d \u0027:delete\u0027"},{"line_number":434,"context_line":"                            trust_id_used \u003d True"},{"line_number":435,"context_line":"                        netloc \u003d \u0027%s%s@%s\u0027 % (trust_id, pw, url.netloc)"},{"line_number":436,"context_line":"                        url \u003d urlparse.SplitResult(url.scheme, netloc,"},{"line_number":437,"context_line":"                                                   url.path, url.query,"},{"line_number":438,"context_line":"                                                   url.fragment)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_8b7b10f3","line":435,"range":{"start_line":435,"start_character":24,"end_line":435,"end_character":71},"updated":"2018-02-02 10:34:16.000000000","message":"it seems that I need to \"redesign\" the line (but it also require to change the loop logic).","commit_id":"c4be4cea5f624ca9901203b5ece3249560b4c62f"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"fed4814f19934af46193e53d0f6a8c4a3e960b19","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                    url \u003d netutils.urlsplit(action)"},{"line_number":415,"context_line":"                    if self._is_trust_url(url):"},{"line_number":416,"context_line":"                        if \u0027@\u0027 in url.netloc:"},{"line_number":417,"context_line":"                            if trust_id is None or trust_id !\u003d url.username:"},{"line_number":418,"context_line":"                                errmsg \u003d _(\"trust URL cannot contain a \""},{"line_number":419,"context_line":"                                           \"trust ID.\")"},{"line_number":420,"context_line":"                                raise base.ClientSideError(errmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_5ba111a9","line":417,"range":{"start_line":417,"start_character":51,"end_line":417,"end_character":75},"updated":"2018-02-06 14:46:49.000000000","message":"nitpick: this reads like a \u0027yoda conditional\u0027 to me - I\u0027d find it easier to read if it were the other way around:\n\n  url.username !\u003d trust_id\n\nAlso this could be combined into the previous if statement now.","commit_id":"af7fedfab7b2b28daa9ee17d21c2c31745931960"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"fed4814f19934af46193e53d0f6a8c4a3e960b19","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                        # NOTE(danpawlik) We don\u0027t want to change the url"},{"line_number":434,"context_line":"                        # on alarm edit."},{"line_number":435,"context_line":"                        if old_alarm and \u0027@\u0027 in url.netloc:"},{"line_number":436,"context_line":"                            netloc \u003d url.netloc"},{"line_number":437,"context_line":"                        else:"},{"line_number":438,"context_line":"                            netloc \u003d \u0027%s%s@%s\u0027 % (trust_id, pw, url.netloc)"},{"line_number":439,"context_line":"                        url \u003d urlparse.SplitResult(url.scheme, netloc,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_fbc25d85","line":436,"updated":"2018-02-06 14:46:49.000000000","message":"Nope, you want:\n\n  \u0027%s%s@%s\u0027 % (trust_id, pw, url.netloc.rsplit(\u0027@\u0027, 1)[-1])\n\n(That would also suffice for the \u0027else\u0027 case.)","commit_id":"af7fedfab7b2b28daa9ee17d21c2c31745931960"}]}
