)]}'
{"neutron/agent/linux/utils.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fc86d0e48848b7540228a7e5576c2c044897327d","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"def get_cmdline_from_pid(pid):"},{"line_number":324,"context_line":"    if not process_is_running(pid):"},{"line_number":325,"context_line":"        return []"},{"line_number":326,"context_line":"    # NOTE(jh): Even after the above check, the process may terminate"},{"line_number":327,"context_line":"    # before the open below happens"},{"line_number":328,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_eb942538","line":325,"range":{"start_line":324,"start_character":0,"end_line":325,"end_character":17},"updated":"2019-11-21 11:54:39.000000000","message":"nit: Not voting -1, because I see that the change on master was already merged and this change is just a backport of that. But it may be worth noting that since you added proper (i.e. atomic) error handling below, this original check became pointless.","commit_id":"41206ebc319315dedcbca06f85efc9c8aaf2efbe"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fb4fda14d30761407cbf9222c0be3401e416d276","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"def get_cmdline_from_pid(pid):"},{"line_number":324,"context_line":"    if not process_is_running(pid):"},{"line_number":325,"context_line":"        return []"},{"line_number":326,"context_line":"    # NOTE(jh): Even after the above check, the process may terminate"},{"line_number":327,"context_line":"    # before the open below happens"},{"line_number":328,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_d60d4c35","line":325,"range":{"start_line":324,"start_character":0,"end_line":325,"end_character":17},"in_reply_to":"3fa7e38b_eb942538","updated":"2019-11-21 12:19:24.000000000","message":"I think I considered that, but the case of pid\u003dNone would still better be handled here instead via the exception handling below. Might be simplified to just \"if not pid: return []\", though. Feel free to propose a followup.","commit_id":"41206ebc319315dedcbca06f85efc9c8aaf2efbe"}],"neutron/tests/unit/agent/linux/test_utils.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e76edff51ddcee2e6232a0250b3a6c854d4d7309","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    def test_cmdline_process_disappearing(self):"},{"line_number":340,"context_line":"        self.process_is_running_mock.return_value \u003d True"},{"line_number":341,"context_line":"        mock_open \u003d self.useFixture("},{"line_number":342,"context_line":"            lib_fixtures.OpenFixture(\u0027/proc/%s/cmdline\u0027 % self.pid, \u0027process\u0027)"},{"line_number":343,"context_line":"        ).mock_open"},{"line_number":344,"context_line":"        mock_open.side_effect \u003d IOError()"},{"line_number":345,"context_line":"        cmdline \u003d utils.get_cmdline_from_pid(self.pid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ebf31708","line":342,"range":{"start_line":342,"start_character":12,"end_line":342,"end_character":24},"updated":"2019-11-14 18:01:41.000000000","message":"You need to import this module.","commit_id":"fe6617b80fb63469e7cd5adb0217e4a62803b0bb"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"8775578edefeac668ef581ba34b55ab5e2f75190","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    def test_cmdline_process_disappearing(self):"},{"line_number":340,"context_line":"        self.process_is_running_mock.return_value \u003d True"},{"line_number":341,"context_line":"        mock_open \u003d self.useFixture("},{"line_number":342,"context_line":"            lib_fixtures.OpenFixture(\u0027/proc/%s/cmdline\u0027 % self.pid, \u0027process\u0027)"},{"line_number":343,"context_line":"        ).mock_open"},{"line_number":344,"context_line":"        mock_open.side_effect \u003d IOError()"},{"line_number":345,"context_line":"        cmdline \u003d utils.get_cmdline_from_pid(self.pid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3975c5cc","line":342,"range":{"start_line":342,"start_character":12,"end_line":342,"end_character":24},"in_reply_to":"3fa7e38b_ebf31708","updated":"2019-11-20 14:37:17.000000000","message":"Not tested locally, but using tools.OpenFixture() should work here? (stein location of OpenFixture before it was moved to neutron-lib)","commit_id":"fe6617b80fb63469e7cd5adb0217e4a62803b0bb"}]}
