)]}'
{"nova/tests/unit/virt/libvirt/volume/test_mount.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9123016d6fa73f57b2de237f205229a2d81d563c","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        # Mount vol_a from export"},{"line_number":289,"context_line":"        self._sentinel_mount(m, mock.sentinel.vol_a)"},{"line_number":290,"context_line":"        mock_ensure_tree.assert_has_calls(["},{"line_number":291,"context_line":"            mock.call(mock.sentinel.mountpoint)])"},{"line_number":292,"context_line":"        mount.utils.execute.assert_has_calls(["},{"line_number":293,"context_line":"            mock.call(\u0027mount\u0027, \u0027-t\u0027, mock.sentinel.fstype,"},{"line_number":294,"context_line":"                      mock.sentinel.option1, mock.sentinel.option2,"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f515b1d_78420211","line":291,"range":{"start_line":291,"start_character":27,"end_line":291,"end_character":35},"updated":"2017-10-02 15:28:08.000000000","message":"Missed this first time round - mocks have a \u0027sentinel\u0027 attribute? Who knew?!","commit_id":"0098645f3f278e839431a65dce640bf3307a8998"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"ac085d4be2978cb29f5ac6cc7de45b91c06c4a30","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        # Mount vol_a from export"},{"line_number":289,"context_line":"        self._sentinel_mount(m, mock.sentinel.vol_a)"},{"line_number":290,"context_line":"        mock_ensure_tree.assert_has_calls(["},{"line_number":291,"context_line":"            mock.call(mock.sentinel.mountpoint)])"},{"line_number":292,"context_line":"        mount.utils.execute.assert_has_calls(["},{"line_number":293,"context_line":"            mock.call(\u0027mount\u0027, \u0027-t\u0027, mock.sentinel.fstype,"},{"line_number":294,"context_line":"                      mock.sentinel.option1, mock.sentinel.option2,"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f515b1d_5426c318","line":291,"range":{"start_line":291,"start_character":27,"end_line":291,"end_character":35},"in_reply_to":"7f515b1d_78420211","updated":"2017-10-04 11:02:05.000000000","message":"It\u0027s pretty cool, our uuidsentinel was done that way because of it.","commit_id":"0098645f3f278e839431a65dce640bf3307a8998"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9123016d6fa73f57b2de237f205229a2d81d563c","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        mock_ensure_tree.assert_has_calls(["},{"line_number":291,"context_line":"            mock.call(mock.sentinel.mountpoint)])"},{"line_number":292,"context_line":"        mount.utils.execute.assert_has_calls(["},{"line_number":293,"context_line":"            mock.call(\u0027mount\u0027, \u0027-t\u0027, mock.sentinel.fstype,"},{"line_number":294,"context_line":"                      mock.sentinel.option1, mock.sentinel.option2,"},{"line_number":295,"context_line":"                      mock.sentinel.export, mock.sentinel.mountpoint,"},{"line_number":296,"context_line":"                      run_as_root\u003dTrue)])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # Mount vol_b from export. We shouldn\u0027t have mounted again"},{"line_number":299,"context_line":"        self._sentinel_mount(m, mock.sentinel.vol_b)"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f515b1d_785b22f5","line":296,"range":{"start_line":293,"start_character":0,"end_line":296,"end_character":41},"updated":"2017-10-02 15:28:08.000000000","message":"I also missed this - how come it was necessary to split this out? Something to do with the sentinels?","commit_id":"0098645f3f278e839431a65dce640bf3307a8998"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"ac085d4be2978cb29f5ac6cc7de45b91c06c4a30","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        mock_ensure_tree.assert_has_calls(["},{"line_number":291,"context_line":"            mock.call(mock.sentinel.mountpoint)])"},{"line_number":292,"context_line":"        mount.utils.execute.assert_has_calls(["},{"line_number":293,"context_line":"            mock.call(\u0027mount\u0027, \u0027-t\u0027, mock.sentinel.fstype,"},{"line_number":294,"context_line":"                      mock.sentinel.option1, mock.sentinel.option2,"},{"line_number":295,"context_line":"                      mock.sentinel.export, mock.sentinel.mountpoint,"},{"line_number":296,"context_line":"                      run_as_root\u003dTrue)])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # Mount vol_b from export. We shouldn\u0027t have mounted again"},{"line_number":299,"context_line":"        self._sentinel_mount(m, mock.sentinel.vol_b)"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f515b1d_34ad8731","line":296,"range":{"start_line":293,"start_character":0,"end_line":296,"end_character":41},"in_reply_to":"7f515b1d_785b22f5","updated":"2017-10-04 11:02:05.000000000","message":"I expect because the parameter passing evaluating the mock at import time is considered bad form, in the same way param\u003d{} is.\n\nI think it\u0027s fine. The overall test is a little silly otherwise honestly, because you could just run all the tests, then do a single assert_has_calls at the end with what is expected to have happened. Sprinkling them throughout seems confusing. But that\u0027s a different cleanup, and shouldn\u0027t block this moving forward.","commit_id":"0098645f3f278e839431a65dce640bf3307a8998"}],"releasenotes/notes/privsep-queens-rootwrap-adds-907aa1bc8e3eb2ca.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"85ea077404b5a6ba5a88925dbad3979b945311f5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    rootwrap configuration."},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    The following commands are no longer required to be listed in your rootwrap"},{"line_number":8,"context_line":"    configuration: cat; chown; cryptsetup; dd; mkdir; ploop; prl_disk_tool;"},{"line_number":9,"context_line":"    readlink; tee; touch."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9f5c4f37_114a9554","line":8,"range":{"start_line":8,"start_character":47,"end_line":8,"end_character":52},"updated":"2017-09-21 16:14:08.000000000","message":"But you didn\u0027t touch the rootwrap file?","commit_id":"2181ef52492d6ecc2fc27a87e1324c7543f24268"}]}
