)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"47f5461cf7f6feb155cc3ff778071a3df94288ee","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zengyingzhe \u003czengyingzhe@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-22 15:33:52 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Use requests lib instead for Huawei array connection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Updates Huawei driver logic to use requests lib for Huawei"},{"line_number":10,"context_line":"array connection instead."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5ff73747_f793a0a2","line":7,"range":{"start_line":7,"start_character":17,"end_line":7,"end_character":25},"updated":"2017-04-22 08:10:07.000000000","message":"remove","commit_id":"46e3f9ea7de592369787e616395ec22d7a680940"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"47f5461cf7f6feb155cc3ff778071a3df94288ee","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        if data:"},{"line_number":79,"context_line":"            kwargs[\u0027data\u0027] \u003d json.dumps(data)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if method in (None, \u0027POST\u0027):"},{"line_number":82,"context_line":"            func \u003d self.session.post"},{"line_number":83,"context_line":"        elif method in (\u0027PUT\u0027,):"},{"line_number":84,"context_line":"            func \u003d self.session.put"},{"line_number":85,"context_line":"        elif method in (\u0027GET\u0027,):"},{"line_number":86,"context_line":"            func \u003d self.session.get"},{"line_number":87,"context_line":"        elif method in (\u0027DELETE\u0027,):"},{"line_number":88,"context_line":"            func \u003d self.session.delete"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            msg \u003d _(\"Request method %s is invalid.\") % method"},{"line_number":91,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_f7aa80d0","line":88,"range":{"start_line":81,"start_character":8,"end_line":88,"end_character":38},"updated":"2017-04-22 08:10:07.000000000","message":"if method in (None, \u0027POST\u0027, \u0027PUT\u0027, \u0027GET\u0027, \u0027DELETE\u0027):\n  method \u003d method or \u0027POST\u0027\n  func \u003d getattr(self.session, method.lower())","commit_id":"46e3f9ea7de592369787e616395ec22d7a680940"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d5d3d10182597dc01715c8a79ef053fb2b697543","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            json_msg \u003d (\u0027{\"error\":{\"code\": %(code)s,\u0027"},{"line_number":107,"context_line":"                        \u0027\"description\": \"%(reason)s\"}}\u0027"},{"line_number":108,"context_line":"                        ) % {\u0027code\u0027: exc.response.status_code,"},{"line_number":109,"context_line":"                             \u0027reason\u0027: exc}"},{"line_number":110,"context_line":"            return json.loads(json_msg)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        res_json \u003d res.json()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_ce4cf443","line":109,"updated":"2017-04-27 15:29:40.000000000","message":"What happens here if the exception contains json-ish characters?  I think json.loads() may fail.","commit_id":"46e3f9ea7de592369787e616395ec22d7a680940"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"60474aa39822080ad66b61c373bfb8884e150be1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.url \u003d None"},{"line_number":51,"context_line":"        self.device_id \u003d None"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        LOG.warning(\"Suppressing requests library SSL Warnings\")"},{"line_number":54,"context_line":"        requests.packages.urllib3.disable_warnings("},{"line_number":55,"context_line":"            requests.packages.urllib3.exceptions.InsecureRequestWarning)"},{"line_number":56,"context_line":"        requests.packages.urllib3.disable_warnings("}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_b02e5c89","line":53,"updated":"2017-06-06 13:10:02.000000000","message":"This should be controlled by the config option:\n\nhttps://github.com/openstack/cinder/blob/067b767bf56737985c763a45cad99dd9a415e4dd/cinder/volume/manager.py#L240","commit_id":"df0ce86fa0cabcfe5e887d9e0d223c0959297c4a"}],"releasenotes/notes/huawei-driver-update-array-connection-logic-d668f55a017f6b8f.yaml":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"47f5461cf7f6feb155cc3ff778071a3df94288ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Huawei driver uses *requests* lib as the utility to"},{"line_number":5,"context_line":"    communicate with Huawei array."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5ff73747_97833c57","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":33},"updated":"2017-04-22 08:10:07.000000000","message":"``requests``","commit_id":"46e3f9ea7de592369787e616395ec22d7a680940"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"de318a3eb98c4d075b6c9ef6f6d4929828d1ddbf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Huawei driver uses \"requests\" lib as the utility to"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"df140735_8200f702","line":1,"updated":"2017-06-02 20:09:33.000000000","message":"I don\u0027t think this needs a release note.  From a deployer\u0027s point of view, this is an implementation detail.  It doesn\u0027t change functionality or bring any particular deployment concerns.","commit_id":"cfc48e0354c5491cea2c16c3251f2f31d1886d99"}]}
