)]}'
{"neutron/agent/linux/utils.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c18cff99bce9c5b7d44c8db13416e212ff38e851","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    try:"},{"line_number":167,"context_line":"        process \u003d psutil.Process(pid\u003dint(pid))"},{"line_number":168,"context_line":"    except psutil.NoSuchProcess:"},{"line_number":169,"context_line":"        return []"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    child_pids \u003d [str(p.pid) for p in process.children()]"},{"line_number":172,"context_line":"    if recursive:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_491b831a","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":17},"updated":"2020-10-19 05:53:17.000000000","message":"maybe log a warning here as well","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9cf439c0e47635c111dea417b9cb89bc9a85453e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    try:"},{"line_number":167,"context_line":"        process \u003d psutil.Process(pid\u003dint(pid))"},{"line_number":168,"context_line":"    except psutil.NoSuchProcess:"},{"line_number":169,"context_line":"        return []"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    child_pids \u003d [str(p.pid) for p in process.children()]"},{"line_number":172,"context_line":"    if recursive:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_7d05597a","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":17},"in_reply_to":"5f681702_491b831a","updated":"2020-10-19 11:18:46.000000000","message":"We didn\u0027t have this in the original implementation. The goal of this method is not to check if the process exists but to retrieve the child pids. Could happen that the PID does not exist anymore, but that\u0027s not a problem.","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"}],"neutron/tests/functional/agent/linux/test_utils.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c18cff99bce9c5b7d44c8db13416e212ff38e851","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class TestFindChildPids(functional_base.BaseSudoTestCase):"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _stop_process(self, process):"},{"line_number":149,"context_line":"        process.stop(kill_signal\u003dsignal.SIGKILL)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_find_process_pids(self):"},{"line_number":152,"context_line":"        pid \u003d os.getppid()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_89d2bb33","line":149,"range":{"start_line":148,"start_character":4,"end_line":149,"end_character":48},"updated":"2020-10-19 05:53:17.000000000","message":"Could be define once in a base class for the above 3 test cases","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d91bd84a9c096eac68dea1f4dd1f25771b301f8b","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class TestFindChildPids(functional_base.BaseSudoTestCase):"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _stop_process(self, process):"},{"line_number":149,"context_line":"        process.stop(kill_signal\u003dsignal.SIGKILL)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_find_process_pids(self):"},{"line_number":152,"context_line":"        pid \u003d os.getppid()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_98e16302","line":149,"range":{"start_line":148,"start_character":4,"end_line":149,"end_character":48},"in_reply_to":"5f681702_3835afdb","updated":"2020-10-19 11:21:26.000000000","message":"I agree but in this case, IMO, is an overkill to implement a base class just for this small method.","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9cf439c0e47635c111dea417b9cb89bc9a85453e","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class TestFindChildPids(functional_base.BaseSudoTestCase):"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _stop_process(self, process):"},{"line_number":149,"context_line":"        process.stop(kill_signal\u003dsignal.SIGKILL)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_find_process_pids(self):"},{"line_number":152,"context_line":"        pid \u003d os.getppid()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_3835afdb","line":149,"range":{"start_line":148,"start_character":4,"end_line":149,"end_character":48},"in_reply_to":"5f681702_89d2bb33","updated":"2020-10-19 11:18:46.000000000","message":"Done","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c18cff99bce9c5b7d44c8db13416e212ff38e851","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def _stop_process(self, process):"},{"line_number":149,"context_line":"        process.stop(kill_signal\u003dsignal.SIGKILL)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_find_process_pids(self):"},{"line_number":152,"context_line":"        pid \u003d os.getppid()"},{"line_number":153,"context_line":"        child_pids \u003d utils.find_child_pids(pid)"},{"line_number":154,"context_line":"        child_pids_recursive \u003d utils.find_child_pids(pid, recursive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_c9dcb348","line":151,"range":{"start_line":151,"start_character":18,"end_line":151,"end_character":25},"updated":"2020-10-19 05:53:17.000000000","message":"child","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9cf439c0e47635c111dea417b9cb89bc9a85453e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def _stop_process(self, process):"},{"line_number":149,"context_line":"        process.stop(kill_signal\u003dsignal.SIGKILL)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_find_process_pids(self):"},{"line_number":152,"context_line":"        pid \u003d os.getppid()"},{"line_number":153,"context_line":"        child_pids \u003d utils.find_child_pids(pid)"},{"line_number":154,"context_line":"        child_pids_recursive \u003d utils.find_child_pids(pid, recursive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f681702_183273f2","line":151,"range":{"start_line":151,"start_character":18,"end_line":151,"end_character":25},"in_reply_to":"5f681702_c9dcb348","updated":"2020-10-19 11:18:46.000000000","message":"Done","commit_id":"69baab6f7fd20e9b35c0cb177007cce126c2d423"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4a315aa02b0c11d25eae222112f626623d2ae995","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.assertIn(_pid, child_pids_recursive_after)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_find_non_existing_process(self):"},{"line_number":172,"context_line":"        self.assertEqual([], utils.find_child_pids(54321))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_1b5f9172","line":172,"range":{"start_line":172,"start_character":51,"end_line":172,"end_character":56},"updated":"2020-11-09 12:44:24.000000000","message":"nit: this can be the value from /proc/sys/kernel/pid_max , which is 4194304 on my desktop.\nThough I am not sure if reading this value worth here in functional envrionment","commit_id":"adde786eb82a775b1cbd0c212071da7608674d3e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"85e56d76ac290fc3657182714f3b09a94e74fd5d","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.assertIn(_pid, child_pids_recursive_after)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_find_non_existing_process(self):"},{"line_number":172,"context_line":"        self.assertEqual([], utils.find_child_pids(54321))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_35f691d8","line":172,"range":{"start_line":172,"start_character":51,"end_line":172,"end_character":56},"in_reply_to":"1f621f24_1b5f9172","updated":"2020-11-14 17:05:51.000000000","message":"Done","commit_id":"adde786eb82a775b1cbd0c212071da7608674d3e"}]}
