)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bd41023218f57c1d49fa88e259a5648b661223bd","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ProcessManager, the implementation is done in this class."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I51dc9d342c613afcbcfdc50a1d2811502748f170"},{"line_number":25,"context_line":"Closes-Bug: #1849502"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_b3cfe655","line":25,"updated":"2019-10-24 06:30:32.000000000","message":"Isn\u0027t this also fix for issue described in https://bugs.launchpad.net/neutron/+bug/1848738 ?","commit_id":"e81b517246b8d4a31f85617306ccf2c15c0f4c14"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f399f6efaf5c1ee43fe85a18ecf24b2c689ad5d4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Check dnsmasq process is active when spawned"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After spawning the \"dnsmaqs\" process in the method"},{"line_number":10,"context_line":"\"Dnsmasq._spawn_or_reload_process\", we need to check that the \"dnsmasq\""},{"line_number":11,"context_line":"process is running and could be detected by the ProcessManager instance"},{"line_number":12,"context_line":"controlling it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_25339e15","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":27},"updated":"2019-10-24 19:23:13.000000000","message":"/dnsmasq","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"57cab92031efc95cf1eccf6a08ddf1cac270a053","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Check dnsmasq process is active when spawned"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After spawning the \"dnsmaqs\" process in the method"},{"line_number":10,"context_line":"\"Dnsmasq._spawn_or_reload_process\", we need to check that the \"dnsmasq\""},{"line_number":11,"context_line":"process is running and could be detected by the ProcessManager instance"},{"line_number":12,"context_line":"controlling it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_8e070619","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":27},"in_reply_to":"3fa7e38b_25339e15","updated":"2019-10-25 12:56:33.000000000","message":"Done","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"}],"neutron/tests/unit/agent/linux/test_external_process.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f399f6efaf5c1ee43fe85a18ecf24b2c689ad5d4","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        fd, pid_file \u003d tempfile.mkstemp()"},{"line_number":190,"context_line":"        os.write(fd, six.b(str(pid)))"},{"line_number":191,"context_line":"        os.close(fd)"},{"line_number":192,"context_line":"        self.addCleanup(_delete_pid_file, pid_file)"},{"line_number":193,"context_line":"        pm \u003d ep.ProcessManager(mock.Mock(), uuid, pid_file\u003dpid_file,"},{"line_number":194,"context_line":"                               default_cmd_callback\u003d_create_cmd)"},{"line_number":195,"context_line":"        with mock.patch.object(psutil, \u0027Process\u0027) as mock_psutil_process:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_68b2cd4b","line":192,"updated":"2019-10-24 19:23:13.000000000","message":"Can\u0027t we just mock something instead of writing a temp file?","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"57cab92031efc95cf1eccf6a08ddf1cac270a053","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        fd, pid_file \u003d tempfile.mkstemp()"},{"line_number":190,"context_line":"        os.write(fd, six.b(str(pid)))"},{"line_number":191,"context_line":"        os.close(fd)"},{"line_number":192,"context_line":"        self.addCleanup(_delete_pid_file, pid_file)"},{"line_number":193,"context_line":"        pm \u003d ep.ProcessManager(mock.Mock(), uuid, pid_file\u003dpid_file,"},{"line_number":194,"context_line":"                               default_cmd_callback\u003d_create_cmd)"},{"line_number":195,"context_line":"        with mock.patch.object(psutil, \u0027Process\u0027) as mock_psutil_process:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ae7f6264","line":192,"in_reply_to":"3fa7e38b_68b2cd4b","updated":"2019-10-25 12:56:33.000000000","message":"I was trying to avoid mocking the PID retrieval, but you are right, this is a trivial process and we can avoid writing the file.","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f399f6efaf5c1ee43fe85a18ecf24b2c689ad5d4","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            mock_process \u003d mock.Mock()"},{"line_number":197,"context_line":"            mock_process.cmdline.return_value \u003d [\u0027some\u0027, \u0027command\u0027, uuid]"},{"line_number":198,"context_line":"            mock_psutil_process.return_value \u003d mock_process"},{"line_number":199,"context_line":"            pm.enable(ensure_active\u003dTrue)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def test_reload_cfg_without_custom_reload_callback(self):"},{"line_number":202,"context_line":"        with mock.patch.object(ep.ProcessManager, \u0027disable\u0027) as disable:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_e87f9d63","line":199,"updated":"2019-10-24 19:23:13.000000000","message":"This test isn\u0027t asserting anything, so will always pass.","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"57cab92031efc95cf1eccf6a08ddf1cac270a053","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            mock_process \u003d mock.Mock()"},{"line_number":197,"context_line":"            mock_process.cmdline.return_value \u003d [\u0027some\u0027, \u0027command\u0027, uuid]"},{"line_number":198,"context_line":"            mock_psutil_process.return_value \u003d mock_process"},{"line_number":199,"context_line":"            pm.enable(ensure_active\u003dTrue)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def test_reload_cfg_without_custom_reload_callback(self):"},{"line_number":202,"context_line":"        with mock.patch.object(ep.ProcessManager, \u0027disable\u0027) as disable:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_4e490e30","line":199,"in_reply_to":"3fa7e38b_e87f9d63","updated":"2019-10-25 12:56:33.000000000","message":"You are right but in case of not passing the method raises an exception. The method do not return anything.","commit_id":"e8fca00bd4870e9a9af31a63e93a50ef5b269659"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bf45ce11c98d8fafc0224263492fc57bcb23ff3e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import os"},{"line_number":16,"context_line":"import os.path"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import mock"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_23462452","line":15,"updated":"2019-10-25 17:31:20.000000000","message":"not required, was part of previous PS","commit_id":"2b82199d6194a49fbd68893136b0251b3891b4f5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bf45ce11c98d8fafc0224263492fc57bcb23ff3e","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            return [\u0027sleep\u0027, 0]"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        uuid \u003d uuidutils.generate_uuid()"},{"line_number":180,"context_line":"        pm \u003d ep.ProcessManager(mock.Mock(), uuid, pid_file\u003d\u0027some_file\u0027,"},{"line_number":181,"context_line":"                               default_cmd_callback\u003d_create_cmd)"},{"line_number":182,"context_line":"        with mock.patch.object(psutil, \u0027Process\u0027) as mock_psutil_process, \\"},{"line_number":183,"context_line":"                mock.patch.object(ep.ProcessManager, \u0027pid\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_23b4e435","line":180,"range":{"start_line":180,"start_character":31,"end_line":180,"end_character":42},"updated":"2019-10-25 17:31:20.000000000","message":"all the other tests in this file use self.conf here, and \u0027uuid\u0027 for the uuid since it really doesn\u0027t matter","commit_id":"2b82199d6194a49fbd68893136b0251b3891b4f5"}]}
