)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2a00f80855eec6c96b7072fc290f84f3a69eaf4f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shunei Shiono \u003cs-shiono@ti.jp.nec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-16 06:18:25 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support non disruptive backup to NEC volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds non-disruptive backup support for the"},{"line_number":10,"context_line":"NEC volume driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f231b9d_11205bb0","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":54},"updated":"2017-06-20 03:15:04.000000000","message":"Actually non-disruptive backup support is already available for every volume driver using the default approach (temp volume).  Please change to the following (I\u0027m trying to limit it to 50 chars):\n\nNEC driver: Optimal path for non-disruptive backup","commit_id":"be8462bdd29d81f3cd1fb04e07a177c9c358f9d5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2a00f80855eec6c96b7072fc290f84f3a69eaf4f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support non disruptive backup to NEC volume driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds non-disruptive backup support for the"},{"line_number":10,"context_line":"NEC volume driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ied9f3353be02a1b80081ab0d41f45f1a7c563468"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f231b9d_d129c39b","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":45},"updated":"2017-06-20 03:15:04.000000000","message":"Similarly please change this description.\n\nThis patch enables optimal path for non-disruptive backup for the NEC volume driver.","commit_id":"be8462bdd29d81f3cd1fb04e07a177c9c358f9d5"}],"cinder/volume/drivers/nec/volume_helper.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2a00f80855eec6c96b7072fc290f84f3a69eaf4f","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        if len(nominated) \u003d\u003d 0:"},{"line_number":284,"context_line":"            raise exception.NotFound("},{"line_number":285,"context_line":"                _(\u0027Any portal not match to any host ports.\u0027))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        return nominated"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_8c9e90b6","line":285,"range":{"start_line":285,"start_character":19,"end_line":285,"end_character":58},"updated":"2017-06-20 03:15:04.000000000","message":"No portal matches to any host ports.","commit_id":"be8462bdd29d81f3cd1fb04e07a177c9c358f9d5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fd143527e23799a4201621e3d9e1abc1a1dbece3","unresolved":false,"context_lines":[{"line_number":267,"context_line":"                continue"},{"line_number":268,"context_line":"            dirportal \u003d []"},{"line_number":269,"context_line":"            for port in hostports[director]:"},{"line_number":270,"context_line":"                if not port[\u0027protocol\u0027] \u003d\u003d \u0027iSCSI\u0027:"},{"line_number":271,"context_line":"                    continue"},{"line_number":272,"context_line":"                for portal in ldset[\u0027portal_list\u0027]:"},{"line_number":273,"context_line":"                    if portal.startswith(port[\u0027ip\u0027] + \u0027:\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_ca3b2536","line":270,"range":{"start_line":270,"start_character":23,"end_line":270,"end_character":50},"updated":"2017-06-21 20:20:24.000000000","message":"It\u0027s better to make port[\u0027protocol\u0027] lower case and just compare that with \u0027iscsi\u0027 so it covers iSCSI, ISCSI, iscsi, etc.","commit_id":"0134f56b61cf84cbd4e1ab9b222266b2729399fa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fd143527e23799a4201621e3d9e1abc1a1dbece3","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                    if portal.startswith(port[\u0027ip\u0027] + \u0027:\u0027):"},{"line_number":274,"context_line":"                        dirportal.append(portal)"},{"line_number":275,"context_line":"                        break"},{"line_number":276,"context_line":"            if ((self._properties[\u0027portal_number\u0027] \u003e 0) and"},{"line_number":277,"context_line":"                    (len(dirportal) \u003e self._properties[\u0027portal_number\u0027])):"},{"line_number":278,"context_line":"                nominated.extend(random.sample("},{"line_number":279,"context_line":"                    dirportal, self._properties[\u0027portal_number\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_8af08d92","line":276,"range":{"start_line":276,"start_character":16,"end_line":276,"end_character":55},"updated":"2017-06-21 20:20:24.000000000","message":"This inner () is not needed.","commit_id":"0134f56b61cf84cbd4e1ab9b222266b2729399fa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fd143527e23799a4201621e3d9e1abc1a1dbece3","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                        dirportal.append(portal)"},{"line_number":275,"context_line":"                        break"},{"line_number":276,"context_line":"            if ((self._properties[\u0027portal_number\u0027] \u003e 0) and"},{"line_number":277,"context_line":"                    (len(dirportal) \u003e self._properties[\u0027portal_number\u0027])):"},{"line_number":278,"context_line":"                nominated.extend(random.sample("},{"line_number":279,"context_line":"                    dirportal, self._properties[\u0027portal_number\u0027]))"},{"line_number":280,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_4a303557","line":277,"range":{"start_line":277,"start_character":20,"end_line":277,"end_character":72},"updated":"2017-06-21 20:20:24.000000000","message":"Same here.  Inner () not needed.","commit_id":"0134f56b61cf84cbd4e1ab9b222266b2729399fa"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"088ebf14188ecad3b416f88863df7a35854723c4","unresolved":false,"context_lines":[{"line_number":912,"context_line":"                       \u0027iqn\u0027: ldset[\u0027lds\u0027][ld[\u0027ldn\u0027]][\u0027iqn\u0027],"},{"line_number":913,"context_line":"                       \u0027lun\u0027: ldset[\u0027lds\u0027][ld[\u0027ldn\u0027]][\u0027lun\u0027]})"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        LOG.debug(\u0027create_export_snapshot location:(%s)\u0027 % location)"},{"line_number":916,"context_line":"        return {\u0027provider_location\u0027: location}"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    def fc_do_export_snapshot(self, context, snapshot, connector,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_7c917299","line":915,"range":{"start_line":915,"start_character":56,"end_line":915,"end_character":58},"updated":"2017-07-13 15:52:28.000000000","message":"A new check must have been adding that (correctly) caught this issue. Change % to , so the string formatting is only performed if the log level actually requires it.","commit_id":"f3bd4499795ab934e6224d2e75d5ed94c8b5d3bb"}]}
