)]}'
{"neutron/agent/linux/utils.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9d2350bcbf9e3dc14948a93654d39bdad17ab307","unresolved":false,"context_lines":[{"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:"},{"line_number":329,"context_line":"        with open(\u0027/proc/%s/cmdline\u0027 % pid, \u0027r\u0027) as f:"},{"line_number":330,"context_line":"            cmdline \u003d f.readline().split(\u0027\\0\u0027)[:-1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_12c94d77","line":327,"updated":"2019-09-18 12:51:20.000000000","message":"Then do we even need to call process_is_running() now?","commit_id":"5747bc1c33292834697820bfd6c8b9dee2cd9f7d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a6a8435ebe19ebfffcbef4792fbcc654d45b96e5","unresolved":false,"context_lines":[{"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:"},{"line_number":329,"context_line":"        with open(\u0027/proc/%s/cmdline\u0027 % pid, \u0027r\u0027) as f:"},{"line_number":330,"context_line":"            cmdline \u003d f.readline().split(\u0027\\0\u0027)[:-1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f21831d4","line":327,"in_reply_to":"3fa7e38b_12c94d77","updated":"2019-09-18 13:00:30.000000000","message":"I had dropped it at first, but then noted that it also checks for pid\u003dNone or pid\u003d0 implicitly, so instead of duplicating that check I kept that call in.","commit_id":"5747bc1c33292834697820bfd6c8b9dee2cd9f7d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5d1acd26e428612cea383dec4942d78c7730d542","unresolved":false,"context_lines":[{"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:"},{"line_number":329,"context_line":"        with open(\u0027/proc/%s/cmdline\u0027 % pid, \u0027r\u0027) as f:"},{"line_number":330,"context_line":"            cmdline \u003d f.readline().split(\u0027\\0\u0027)[:-1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_886c3009","line":327,"in_reply_to":"3fa7e38b_c54c5178","updated":"2019-09-18 14:23:46.000000000","message":"Done","commit_id":"5747bc1c33292834697820bfd6c8b9dee2cd9f7d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b8ecca0cec2e5e0c7a8349cd365a45de423126f1","unresolved":false,"context_lines":[{"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:"},{"line_number":329,"context_line":"        with open(\u0027/proc/%s/cmdline\u0027 % pid, \u0027r\u0027) as f:"},{"line_number":330,"context_line":"            cmdline \u003d f.readline().split(\u0027\\0\u0027)[:-1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c54c5178","line":327,"in_reply_to":"3fa7e38b_f21831d4","updated":"2019-09-18 13:21:39.000000000","message":"Ack.\n\nWe should add a test for this, should be easy enough to add one to the TestGetCmdlineFromPid class.","commit_id":"5747bc1c33292834697820bfd6c8b9dee2cd9f7d"}],"neutron/tests/unit/agent/linux/test_utils.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"98ea9fe74164fef6b15b64f4c7017d9b78c1d7d8","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        cmdline \u003d utils.get_cmdline_from_pid(self.pid)"},{"line_number":346,"context_line":"        mock_open.assert_called_once_with(\u0027/proc/%s/cmdline\u0027 % self.pid, \u0027r\u0027)"},{"line_number":347,"context_line":"        self.assertEqual([], cmdline)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"class TestFindChildPids(base.BaseTestCase):"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    def test_returns_empty_list_for_exit_code_1(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b494da45","line":348,"updated":"2019-09-19 01:31:09.000000000","message":"pep8 picked up only one blank line here, I\u0027ll fix it.","commit_id":"ecc674847fa3ab67698808053a0e1bbd151273aa"}]}
