)]}'
{"cinder/tests/unit/test_quobyte.py":[{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"fda84343d9f7e1980943b6807ea9baf2e29cc4e7","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        \"\"\"Based on /proc/mount, the file system is not mounted yet. However,"},{"line_number":170,"context_line":"           mount.quobyte returns with an \u0027already mounted\u0027 error."},{"line_number":171,"context_line":"           This is a last-resort safe-guard in case /proc/mount parsing was not"},{"line_number":172,"context_line":"           successful."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"           Because _mount_quobyte gets called with ensure\u003dTrue, the error will"},{"line_number":175,"context_line":"           be suppressed and logged instead."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_00bf16fc","line":172,"updated":"2015-08-04 11:23:24.000000000","message":"•[H401] Docstrings should not start with a space.\n•[H403] Multi line docstrings should end on a new line.\n•[H404] Multi line docstrings should start without a leading new line.\n•[H405] Multi line docstrings should start with a one line summary followed by an empty line.\n\n\nhttp://docs.openstack.org/developer/hacking/","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3ab5feb14598c6114f9d84c5e48f1e4ce7cd7c42","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        \"\"\"Based on /proc/mount, the file system is not mounted yet. However,"},{"line_number":170,"context_line":"           mount.quobyte returns with an \u0027already mounted\u0027 error."},{"line_number":171,"context_line":"           This is a last-resort safe-guard in case /proc/mount parsing was not"},{"line_number":172,"context_line":"           successful."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"           Because _mount_quobyte gets called with ensure\u003dTrue, the error will"},{"line_number":175,"context_line":"           be suppressed and logged instead."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_83e1bd00","line":172,"in_reply_to":"1a4dcd0f_00bf16fc","updated":"2015-08-05 06:11:51.000000000","message":"In the future, don\u0027t minus one a patch for hacking reasons. Jenkins already does this. If you have anything else to contribute to a review, please do so, otherwise, please don\u0027t. Thanks.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"fda84343d9f7e1980943b6807ea9baf2e29cc4e7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    def test_mount_quobyte_should_reraise_already_mounted_error(self):"},{"line_number":201,"context_line":"        \"\"\"Same as"},{"line_number":202,"context_line":"           test_mount_quobyte_should_suppress_and_log_already_mounted_error"},{"line_number":203,"context_line":"           but with ensure\u003dFalse."},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":"        with mock.patch.object(self._driver, \u0027_execute\u0027) as mock_execute, \\"},{"line_number":206,"context_line":"                mock.patch(\u0027cinder.volume.drivers.quobyte.QuobyteDriver\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_a01422f5","line":203,"updated":"2015-08-04 11:23:24.000000000","message":"Ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3ab5feb14598c6114f9d84c5e48f1e4ce7cd7c42","unresolved":false,"context_lines":[{"line_number":200,"context_line":"    def test_mount_quobyte_should_reraise_already_mounted_error(self):"},{"line_number":201,"context_line":"        \"\"\"Same as"},{"line_number":202,"context_line":"           test_mount_quobyte_should_suppress_and_log_already_mounted_error"},{"line_number":203,"context_line":"           but with ensure\u003dFalse."},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":"        with mock.patch.object(self._driver, \u0027_execute\u0027) as mock_execute, \\"},{"line_number":206,"context_line":"                mock.patch(\u0027cinder.volume.drivers.quobyte.QuobyteDriver\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_23d0e91e","line":203,"in_reply_to":"1a4dcd0f_a01422f5","updated":"2015-08-05 06:11:51.000000000","message":"Ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16973,"name":"Skyler Berg","email":"skylertheberg@gmail.com","username":"sberg"},"change_message_id":"2e166fdebbfe3108cac580ad22c47d16c7b2f156","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        drv.get_active_image_from_info.assert_called_once_with(volume)"},{"line_number":789,"context_line":"        image_utils.qemu_img_info.assert_called_once_with(vol_path)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_89e65342","line":791,"updated":"2015-08-06 22:27:31.000000000","message":"AssertEqual should take arguments in order (expected, observed).","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"056906fc3819db457d2535e6b07a06e2ae1bfe69","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        drv.get_active_image_from_info.assert_called_once_with(volume)"},{"line_number":789,"context_line":"        image_utils.qemu_img_info.assert_called_once_with(vol_path)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_8ca55eb6","line":791,"in_reply_to":"1a4dcd0f_89e65342","updated":"2015-08-19 13:46:11.000000000","message":"Done","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":16973,"name":"Skyler Berg","email":"skylertheberg@gmail.com","username":"sberg"},"change_message_id":"2e166fdebbfe3108cac580ad22c47d16c7b2f156","unresolved":false,"context_lines":[{"line_number":789,"context_line":"        image_utils.qemu_img_info.assert_called_once_with(vol_path)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_a9e1cf2b","line":792,"updated":"2015-08-06 22:27:31.000000000","message":"AssertEqual should take arguments in order (expected, observed).","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"056906fc3819db457d2535e6b07a06e2ae1bfe69","unresolved":false,"context_lines":[{"line_number":789,"context_line":"        image_utils.qemu_img_info.assert_called_once_with(vol_path)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_4caf4694","line":792,"in_reply_to":"1a4dcd0f_a9e1cf2b","updated":"2015-08-19 13:46:11.000000000","message":"Done","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":16973,"name":"Skyler Berg","email":"skylertheberg@gmail.com","username":"sberg"},"change_message_id":"2e166fdebbfe3108cac580ad22c47d16c7b2f156","unresolved":false,"context_lines":[{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"},{"line_number":796,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_49d36b60","line":793,"updated":"2015-08-06 22:27:31.000000000","message":"AssertEqual should take arguments in order (expected, observed).","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"056906fc3819db457d2535e6b07a06e2ae1bfe69","unresolved":false,"context_lines":[{"line_number":790,"context_line":""},{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"},{"line_number":796,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_ec965a4b","line":793,"in_reply_to":"1a4dcd0f_49d36b60","updated":"2015-08-19 13:46:11.000000000","message":"Done","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":16973,"name":"Skyler Berg","email":"skylertheberg@gmail.com","username":"sberg"},"change_message_id":"2e166fdebbfe3108cac580ad22c47d16c7b2f156","unresolved":false,"context_lines":[{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def test_copy_volume_to_image_raw_image(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_09c9e3ab","line":794,"updated":"2015-08-06 22:27:31.000000000","message":"AssertEqual should take arguments in order (expected, observed).","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"056906fc3819db457d2535e6b07a06e2ae1bfe69","unresolved":false,"context_lines":[{"line_number":791,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027format\u0027], \u0027raw\u0027)"},{"line_number":792,"context_line":"        self.assertEqual(conn_info[\u0027driver_volume_type\u0027], \u0027quobyte\u0027)"},{"line_number":793,"context_line":"        self.assertEqual(conn_info[\u0027data\u0027][\u0027name\u0027], volume[\u0027name\u0027])"},{"line_number":794,"context_line":"        self.assertEqual(conn_info[\u0027mount_point_base\u0027],"},{"line_number":795,"context_line":"                         self.TEST_MNT_POINT_BASE)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def test_copy_volume_to_image_raw_image(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_aca062a0","line":794,"in_reply_to":"1a4dcd0f_09c9e3ab","updated":"2015-08-19 13:46:11.000000000","message":"Done","commit_id":"136507615cc4b407f5da2ffa324843657ba3dc01"}],"cinder/volume/drivers/quobyte.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027quobyte_sparsed_volumes\u0027,"},{"line_number":45,"context_line":"                default\u003dTrue,"},{"line_number":46,"context_line":"                help\u003d(\u0027Create volumes as sparse files which take no space.\u0027"},{"line_number":47,"context_line":"                      \u0027 If set to False, volume is created as regular file.\u0027"},{"line_number":48,"context_line":"                      \u0027In such case volume creation takes a lot of time.\u0027)),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027quobyte_qcow2_volumes\u0027,"},{"line_number":50,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_76303f57","line":47,"updated":"2015-08-03 22:31:26.000000000","message":"Need space at the end for next lines continuation.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        if not self.configuration.quobyte_volume_url:"},{"line_number":105,"context_line":"            msg \u003d (_(\"There\u0027s no Quobyte volume configured (%s). Example:\""},{"line_number":106,"context_line":"                     \" quobyte://\u003cDIR host\u003e/\u003cvolume name\u003e\") %"},{"line_number":107,"context_line":"                   \u0027quobyte_volume_url\u0027)"},{"line_number":108,"context_line":"            LOG.warning(msg)"},{"line_number":109,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_160c5b93","line":107,"updated":"2015-08-03 22:31:26.000000000","message":"Why is string formatting being used for two static strings?","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        qcow2."},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        LOG.debug(\"snapshot: %(snap)s, volume: %(vol)s, \","},{"line_number":152,"context_line":"                  {\u0027snap\u0027: snapshot[\u0027id\u0027],"},{"line_number":153,"context_line":"                   \u0027vol\u0027: volume[\u0027id\u0027],"},{"line_number":154,"context_line":"                   \u0027size\u0027: volume_size})"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_60237abe","line":151,"updated":"2015-08-04 11:37:57.000000000","message":"Missing \"size: %()\"?","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        path_to_new_vol \u003d self._local_path_volume(volume)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        LOG.debug(\"will copy from snapshot at %s\", path_to_snap_img)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if self.configuration.quobyte_qcow2_volumes:"},{"line_number":173,"context_line":"            out_format \u003d \u0027qcow2\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_6b383bd4","line":170,"updated":"2015-08-04 11:37:57.000000000","message":"s/will/Will.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # Find active qcow2 file"},{"line_number":226,"context_line":"        active_file \u003d self.get_active_image_from_info(volume)"},{"line_number":227,"context_line":"        path \u003d \u0027%s/%s/%s\u0027 % (self.configuration.quobyte_mount_point_base,"},{"line_number":228,"context_line":"                             self._get_hash_str(volume[\u0027provider_location\u0027]),"},{"line_number":229,"context_line":"                             active_file)"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_1683fbcd","line":227,"updated":"2015-08-03 22:31:26.000000000","message":"Should really use named variables.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self._set_rw_permissions_for_all(volume_path)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def _load_shares_config(self, share_file\u003dNone):"},{"line_number":295,"context_line":"        \"\"\"Put \u0027quobyte_volume_url\u0027 into the \u0027shares\u0027 list."},{"line_number":296,"context_line":"        :param share_file: string, Not used because the user has to specify the"},{"line_number":297,"context_line":"                                   the Quobyte volume directly."},{"line_number":298,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_56c74312","line":295,"updated":"2015-08-03 22:31:26.000000000","message":"We have done some docstring cleanup since this driver was removed and enabled hacking checks to enforce it. This docstring just needs a blank line between the summary line and the details to be compliant.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        LOG.debug(\"Quobyte Volume URL set to: %s\", self.shares)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def _ensure_share_mounted(self, quobyte_volume):"},{"line_number":313,"context_line":"        \"\"\"Mount Quobyte volume."},{"line_number":314,"context_line":"        :param quobyte_volume: string"},{"line_number":315,"context_line":"        \"\"\""},{"line_number":316,"context_line":"        mount_path \u003d self._get_mount_point_for_share(quobyte_volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_d6db53ec","line":313,"updated":"2015-08-03 22:31:26.000000000","message":"Same.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        if not self._mounted_shares:"},{"line_number":351,"context_line":"            raise exception.NotFound()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        assert len(self._mounted_shares) \u003d\u003d 1, \u0027There must be exactly\u0027 \\"},{"line_number":354,"context_line":"            \u0027 one Quobyte volume.\u0027"},{"line_number":355,"context_line":"        target_volume \u003d self._mounted_shares[0]"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_36edd78b","line":353,"updated":"2015-08-03 22:31:26.000000000","message":"Shouldn\u0027t really be using assert here, and \\ should be avoided for line continuation.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59ba3a83447f865bb8bc64add203f8bb211b658f","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        return target_volume"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def _get_mount_point_for_share(self, quobyte_volume):"},{"line_number":362,"context_line":"        \"\"\"Return mount point for Quobyte volume."},{"line_number":363,"context_line":"        :param quobyte_volume: Example: storage-host/openstack-volumes"},{"line_number":364,"context_line":"        \"\"\""},{"line_number":365,"context_line":"        return os.path.join(self.configuration.quobyte_mount_point_base,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_d602733e","line":362,"updated":"2015-08-03 22:31:26.000000000","message":"Blank line needed.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                      run_as_root\u003dFalse)"},{"line_number":392,"context_line":"                    except processutils.ProcessExecutionError as exc:"},{"line_number":393,"context_line":"                        LOG.warning(_LW(\"Failed to unmount previous mount: \""},{"line_number":394,"context_line":"                                        \"%s\"), exc)"},{"line_number":395,"context_line":"                else:"},{"line_number":396,"context_line":"                    # TODO(quobyte): Extend exc analysis in here?"},{"line_number":397,"context_line":"                    LOG.warning(_LW(\"Unknown error occurred while checking \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_60f61a91","line":394,"updated":"2015-08-04 11:37:57.000000000","message":"Missing . after %s.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bf7efae16bf8d3d8a6d9437ab7a43676c6c69e4a","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                      run_as_root\u003dFalse)"},{"line_number":392,"context_line":"                    except processutils.ProcessExecutionError as exc:"},{"line_number":393,"context_line":"                        LOG.warning(_LW(\"Failed to unmount previous mount: \""},{"line_number":394,"context_line":"                                        \"%s\"), exc)"},{"line_number":395,"context_line":"                else:"},{"line_number":396,"context_line":"                    # TODO(quobyte): Extend exc analysis in here?"},{"line_number":397,"context_line":"                    LOG.warning(_LW(\"Unknown error occurred while checking \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_234d493e","line":394,"in_reply_to":"1a4dcd0f_60f61a91","updated":"2015-08-05 06:09:49.000000000","message":"Please don\u0027t minus one for this reason. Please also take note this is a *revert*","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                else:"},{"line_number":396,"context_line":"                    # TODO(quobyte): Extend exc analysis in here?"},{"line_number":397,"context_line":"                    LOG.warning(_LW(\"Unknown error occurred while checking \""},{"line_number":398,"context_line":"                                    \"mount point: %s Trying to continue.\"),"},{"line_number":399,"context_line":"                                exc)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if not mounted:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_800c8695","line":398,"updated":"2015-08-04 11:37:57.000000000","message":"Missing . after %s?","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bf7efae16bf8d3d8a6d9437ab7a43676c6c69e4a","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                else:"},{"line_number":396,"context_line":"                    # TODO(quobyte): Extend exc analysis in here?"},{"line_number":397,"context_line":"                    LOG.warning(_LW(\"Unknown error occurred while checking \""},{"line_number":398,"context_line":"                                    \"mount point: %s Trying to continue.\"),"},{"line_number":399,"context_line":"                                exc)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        if not mounted:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_4348952d","line":398,"in_reply_to":"1a4dcd0f_800c8695","updated":"2015-08-05 06:09:49.000000000","message":"ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                mounted \u003d True"},{"line_number":414,"context_line":"            except processutils.ProcessExecutionError as exc:"},{"line_number":415,"context_line":"                if ensure and \u0027already mounted\u0027 in exc.stderr:"},{"line_number":416,"context_line":"                    LOG.warning(_LW(\"%s is already mounted\"), quobyte_volume)"},{"line_number":417,"context_line":"                else:"},{"line_number":418,"context_line":"                    raise"},{"line_number":419,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_60529a69","line":416,"updated":"2015-08-04 11:37:57.000000000","message":"Missing . after \"mounted\". Please keep consistent with other LOG.warning.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bf7efae16bf8d3d8a6d9437ab7a43676c6c69e4a","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                mounted \u003d True"},{"line_number":414,"context_line":"            except processutils.ProcessExecutionError as exc:"},{"line_number":415,"context_line":"                if ensure and \u0027already mounted\u0027 in exc.stderr:"},{"line_number":416,"context_line":"                    LOG.warning(_LW(\"%s is already mounted\"), quobyte_volume)"},{"line_number":417,"context_line":"                else:"},{"line_number":418,"context_line":"                    raise"},{"line_number":419,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_03528ddd","line":416,"in_reply_to":"1a4dcd0f_60529a69","updated":"2015-08-05 06:09:49.000000000","message":"ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            self._validate_volume(mount_path)"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    def _validate_volume(self, mount_path):"},{"line_number":424,"context_line":"        \"\"\"Wraps execute calls for checking validity of a Quobyte volume\"\"\""},{"line_number":425,"context_line":"        command \u003d [\u0027getfattr\u0027, \"-n\", \"quobyte.info\", mount_path]"},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            self._execute(*command, run_as_root\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_80d1e6cf","line":424,"updated":"2015-08-04 11:37:57.000000000","message":"Missing . at EOL.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bf7efae16bf8d3d8a6d9437ab7a43676c6c69e4a","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            self._validate_volume(mount_path)"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    def _validate_volume(self, mount_path):"},{"line_number":424,"context_line":"        \"\"\"Wraps execute calls for checking validity of a Quobyte volume\"\"\""},{"line_number":425,"context_line":"        command \u003d [\u0027getfattr\u0027, \"-n\", \"quobyte.info\", mount_path]"},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            self._execute(*command, run_as_root\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_23746966","line":424,"in_reply_to":"1a4dcd0f_80d1e6cf","updated":"2015-08-05 06:09:49.000000000","message":"ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"2b5a2d65a3209e106d45770755ef9761a11577ee","unresolved":false,"context_lines":[{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        if not os.access(mount_path, os.W_OK | os.X_OK):"},{"line_number":435,"context_line":"            LOG.warning(_LW(\"Volume is not writable. Please broaden the file\""},{"line_number":436,"context_line":"                            \" permissions. Mount: %s\"), mount_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_60005a35","line":436,"updated":"2015-08-04 11:37:57.000000000","message":"Missing . after %s.","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bf7efae16bf8d3d8a6d9437ab7a43676c6c69e4a","unresolved":false,"context_lines":[{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        if not os.access(mount_path, os.W_OK | os.X_OK):"},{"line_number":435,"context_line":"            LOG.warning(_LW(\"Volume is not writable. Please broaden the file\""},{"line_number":436,"context_line":"                            \" permissions. Mount: %s\"), mount_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_a30639cc","line":436,"in_reply_to":"1a4dcd0f_60005a35","updated":"2015-08-05 06:09:49.000000000","message":"ditto","commit_id":"68a1f9a45e1323a3a85b79d9d3ec9fad238bd4c9"}]}
