)]}'
{"cinder/volume/drivers/swordfish.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\u0027\u0027\u0027"},{"line_number":14,"context_line":"Driver for Swordfish-based systems."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\u0027\u0027\u0027"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import requests"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_99e76b10","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":3},"updated":"2019-12-20 16:44:29.000000000","message":"nit: should follow pep257\n\n\"\"\"Driver for Swordfish-based systems.\"\"\"","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            return response.json()"},{"line_number":123,"context_line":"        except (requests.exceptions.RequestException, ValueError) as e:"},{"line_number":124,"context_line":"            err_msg \u003d \u0027GET {} failed: {}\u0027.format(url, e)"},{"line_number":125,"context_line":"            LOG.exception(err_msg)"},{"line_number":126,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _put_resource(self, res, data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f9a69fc0","line":125,"range":{"start_line":125,"start_character":16,"end_line":125,"end_character":25},"updated":"2019-12-20 16:44:29.000000000","message":"LOG.exception will log the details of any in-scope exceptions, so these will results in double logging of e. Change these to LOG.error or get rid of the formatting of e into the message string.\n\nLOG.warning may be more appropriate?","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                pool \u003d self._get_resource(stor_pool_url)"},{"line_number":214,"context_line":"                pool_capacity_gb \u003d int("},{"line_number":215,"context_line":"                    pool[\u0027Capacity\u0027][\u0027Data\u0027][\u0027GuaranteedBytes\u0027]) / units.Gi"},{"line_number":216,"context_line":"                if required_capacity_gb \\"},{"line_number":217,"context_line":"                   and required_capacity_gb \u003e pool_capacity_gb:"},{"line_number":218,"context_line":"                    LOG.debug(\u0027Skipping storage pool {}: Not enough available \u0027"},{"line_number":219,"context_line":"                              \u0027capacity.\u0027.format(stor_pool_url))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_799aaf6f","line":216,"range":{"start_line":216,"start_character":40,"end_line":216,"end_character":41},"updated":"2019-12-20 16:44:29.000000000","message":"Please avoid using \\ to span multiple lines. Wrap the conditions in () to allow it instead.","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                if required_capacity_gb \\"},{"line_number":217,"context_line":"                   and required_capacity_gb \u003e pool_capacity_gb:"},{"line_number":218,"context_line":"                    LOG.debug(\u0027Skipping storage pool {}: Not enough available \u0027"},{"line_number":219,"context_line":"                              \u0027capacity.\u0027.format(stor_pool_url))"},{"line_number":220,"context_line":"                    continue"},{"line_number":221,"context_line":"                pools.append(stor_pool_url)"},{"line_number":222,"context_line":"        return pools"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_19837b05","line":219,"range":{"start_line":219,"start_character":42,"end_line":219,"end_character":48},"updated":"2019-12-20 16:44:29.000000000","message":"Do not preformat logging strings. This should change {} to %s and pass stor_pool_url as an argument to the logger call.","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"}],"doc/source/configuration/block-storage/drivers/swordfish-volume-driver.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Swordfish Scalable Storage Management API driver"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_79738f4f","line":1,"range":{"start_line":1,"start_character":48,"end_line":1,"end_character":49},"updated":"2019-12-20 16:44:29.000000000","message":"Extra character too long.","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"6d4a116292182e45625362087c7bf06d437d97d8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"To use the Swordfish driver, the following requirements are needed:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"* Swordfish system should be reachable"},{"line_number":15,"context_line":"* ``nvme-cli`` tool (built with libuuid-devel) should be installed on"},{"line_number":16,"context_line":"  ``cinder-volume`` and ``nova-compute`` nodes."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Supported operations"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_19985b67","line":15,"updated":"2019-12-20 16:44:29.000000000","message":"Why would this be needed for a Swordfish enabled system? It might not have anything to do with NVMe.","commit_id":"194d5e7f97fbfedaa0f4f312602538bf0f39f088"}]}
