)]}'
{"neutron/privileged/agent/linux/__init__.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2c3abf14a1eb6dec20da65df326ca959e105fad9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bf51134e_8e554120","updated":"2020-06-19 13:05:35.000000000","message":"The move of this get_cdll seems to be a logical step, but unrelated to this change\nIs it possible to move this to another change?","commit_id":"9e57311b7bee63463c6246cbae94bf65af7645e0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f848e796c0d0d555151e6e66d3efa815bd47fb72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bf51134e_94ef0eaf","in_reply_to":"bf51134e_8e554120","updated":"2020-06-19 14:43:52.000000000","message":"I\u0027ll push a patch under this one to move out this method. Agree with this.","commit_id":"9e57311b7bee63463c6246cbae94bf65af7645e0"}],"neutron/privileged/agent/linux/utils.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"394b103aebb4bba8950617798a1bcd368992b0d7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    \"\"\"Retrieve a list of pids of listening processes within the given netns\"\"\""},{"line_number":28,"context_line":"    pids \u003d set()"},{"line_number":29,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, namespace, \u0027netstat\u0027, \u0027-nlp\u0027]"},{"line_number":30,"context_line":"    output, _ \u003d processutils.execute(*cmd)"},{"line_number":31,"context_line":"    for line in output.splitlines():"},{"line_number":32,"context_line":"        m \u003d NETSTAT_PIDS_REGEX.match(line)"},{"line_number":33,"context_line":"        if m:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_79b7f5f6","line":30,"updated":"2020-06-11 17:35:54.000000000","message":"pep8: N341: _ from python builtins module is used. Use _ from neutron._i18n instead.","commit_id":"6d0aacb16fbf66646b33ca4c56f84154c6fc2310"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"85606ea174cc1a664477f924ac286632ed861276","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    This method is implemented separately to allow unit testing."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    pids \u003d set()"},{"line_number":36,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, namespace, \u0027netstat\u0027, \u0027-nlp\u0027]"},{"line_number":37,"context_line":"    output \u003d processutils.execute(*cmd)"},{"line_number":38,"context_line":"    for line in output[0].splitlines():"},{"line_number":39,"context_line":"        m \u003d NETSTAT_PIDS_REGEX.match(line)"},{"line_number":40,"context_line":"        if m:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_f0958b34","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":39},"updated":"2020-06-23 05:35:48.000000000","message":"just curious, why not using ip_lib.IPWrapper?","commit_id":"0c1818fbb02b5ff6a9a5157d4bbb58314242c806"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"f42e42c5380970a66adefd92c50d7dbe466b7194","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    This method is implemented separately to allow unit testing."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    pids \u003d set()"},{"line_number":36,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, namespace, \u0027netstat\u0027, \u0027-nlp\u0027]"},{"line_number":37,"context_line":"    output \u003d processutils.execute(*cmd)"},{"line_number":38,"context_line":"    for line in output[0].splitlines():"},{"line_number":39,"context_line":"        m \u003d NETSTAT_PIDS_REGEX.match(line)"},{"line_number":40,"context_line":"        if m:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_33c2665a","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":39},"in_reply_to":"bf51134e_d374ca6a","updated":"2020-06-23 13:29:15.000000000","message":"got it, thanks for clarification!","commit_id":"0c1818fbb02b5ff6a9a5157d4bbb58314242c806"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b1f4adb2e6315e4b101eb0d061a1257f6e92d336","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    This method is implemented separately to allow unit testing."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    pids \u003d set()"},{"line_number":36,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, namespace, \u0027netstat\u0027, \u0027-nlp\u0027]"},{"line_number":37,"context_line":"    output \u003d processutils.execute(*cmd)"},{"line_number":38,"context_line":"    for line in output[0].splitlines():"},{"line_number":39,"context_line":"        m \u003d NETSTAT_PIDS_REGEX.match(line)"},{"line_number":40,"context_line":"        if m:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_d374ca6a","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":39},"in_reply_to":"bf51134e_f0958b34","updated":"2020-06-23 13:24:12.000000000","message":"IPWrapper will call SubProcessBase._execute, that will call linux.utils.execute that will call create_process (non root, we are already in a root env), that will call subprocess_popen\n\nThis is already implemented and maintained in processutils and used by other projects like Nova. We can skip implementing those functions in Neutron if we have this common library.","commit_id":"0c1818fbb02b5ff6a9a5157d4bbb58314242c806"}]}
