)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lol \u003c821328772@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-02 10:42:08 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix comment feedback in patch sets 19 and 20"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Changed the cinder driver code according to the review comments"},{"line_number":10,"context_line":"- Corrected the guidance document"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_5e741dfe","line":7,"updated":"2019-08-02 11:56:55.000000000","message":"The commit message should actually state what is being done, not reference something contextual that someone 6 months from now will have no idea what it is referring to.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9ee5f84a4b0c95ca6c3a72a1fd48617abfb219c4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lol \u003c821328772@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-07 19:00:10 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removing unnecessary os-brick code and refactor/optimize driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Changed the cinder driver code according to the review comments.Link:https://review.opendev.org/#/c/612311/"},{"line_number":10,"context_line":"- Corrected the guidance document"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_cdf7ba59","line":7,"updated":"2019-08-07 13:59:45.000000000","message":"\"Address review comments for MacroSAN driver\"","commit_id":"74eb644cd4a3efb3e21eb5ba76f52055526c8e5b"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lol \u003c821328772@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-07 19:00:10 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removing unnecessary os-brick code and refactor/optimize driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Changed the cinder driver code according to the review comments.Link:https://review.opendev.org/#/c/612311/"},{"line_number":10,"context_line":"- Corrected the guidance document"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_ca253cb0","line":7,"in_reply_to":"7faddb67_cdf7ba59","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"74eb644cd4a3efb3e21eb5ba76f52055526c8e5b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9ee5f84a4b0c95ca6c3a72a1fd48617abfb219c4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removing unnecessary os-brick code and refactor/optimize driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Changed the cinder driver code according to the review comments.Link:https://review.opendev.org/#/c/612311/"},{"line_number":10,"context_line":"- Corrected the guidance document"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I0a6b13941936cd9e8521e3fcbe8fb61d3da3c45c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_2d9c4e0d","line":9,"updated":"2019-08-07 13:59:45.000000000","message":"Keep this wrapped within 72 characters whenever possible.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"74eb644cd4a3efb3e21eb5ba76f52055526c8e5b"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removing unnecessary os-brick code and refactor/optimize driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Changed the cinder driver code according to the review comments.Link:https://review.opendev.org/#/c/612311/"},{"line_number":10,"context_line":"- Corrected the guidance document"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I0a6b13941936cd9e8521e3fcbe8fb61d3da3c45c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_ea2a787c","line":9,"in_reply_to":"7faddb67_2d9c4e0d","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"74eb644cd4a3efb3e21eb5ba76f52055526c8e5b"}],"cinder/tests/unit/test_macrosan_drivers.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":44,"context_line":"              \u0027macrosan uuid:0x00b34201-025b0000-46b35ae7-b7deec47\u0027}))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"test_volume.size \u003d 10"},{"line_number":47,"context_line":"test_volume.volume_type_id \u003d None"},{"line_number":48,"context_line":"test_volume.volume_attachment \u003d []"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"test_migrate_volume \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_5e4dfdc1","line":47,"range":{"start_line":47,"start_character":29,"end_line":47,"end_character":33},"updated":"2019-08-02 11:56:55.000000000","message":"This was also pointed out in the driver review.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":44,"context_line":"              \u0027macrosan uuid:0x00b34201-025b0000-46b35ae7-b7deec47\u0027}))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"test_volume.size \u003d 10"},{"line_number":47,"context_line":"test_volume.volume_type_id \u003d None"},{"line_number":48,"context_line":"test_volume.volume_attachment \u003d []"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"test_migrate_volume \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_ea783890","line":47,"range":{"start_line":47,"start_character":29,"end_line":47,"end_character":33},"in_reply_to":"7faddb67_5e4dfdc1","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":58,"context_line":"    \u0027display_name\u0027: \u0027test\u0027,"},{"line_number":59,"context_line":"    \u0027display_description\u0027: \u0027test\u0027,"},{"line_number":60,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":61,"context_line":"    \u0027_name_id\u0027: None,"},{"line_number":62,"context_line":"    \u0027host\u0027: \u0027controller@macrosan#MacroSAN\u0027,"},{"line_number":63,"context_line":"    \u0027provider_location\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_be52f165","line":60,"range":{"start_line":60,"start_character":22,"end_line":60,"end_character":26},"updated":"2019-08-02 11:56:55.000000000","message":"And here.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":58,"context_line":"    \u0027display_name\u0027: \u0027test\u0027,"},{"line_number":59,"context_line":"    \u0027display_description\u0027: \u0027test\u0027,"},{"line_number":60,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":61,"context_line":"    \u0027_name_id\u0027: None,"},{"line_number":62,"context_line":"    \u0027host\u0027: \u0027controller@macrosan#MacroSAN\u0027,"},{"line_number":63,"context_line":"    \u0027provider_location\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_aa7240ac","line":60,"range":{"start_line":60,"start_character":22,"end_line":60,"end_character":26},"in_reply_to":"7faddb67_be52f165","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    def _get_client_name(self, host):"},{"line_number":188,"context_line":"        return \u0027devstack\u0027"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @utils.synchronized(\u0027MacroSAN-Attach-Detach\u0027, external\u003dTrue)"},{"line_number":191,"context_line":"    def _attach_volume(self, context, volume, properties, remote\u003dFalse):"},{"line_number":192,"context_line":"        return super(FakeMacroSANISCSIDriver, self)._attach_volume("},{"line_number":193,"context_line":"            context, volume, properties, remote)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_1e646549","line":190,"updated":"2019-08-02 11:56:55.000000000","message":"Do we actually even need these decorators at all in unit tests?","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    def _get_client_name(self, host):"},{"line_number":188,"context_line":"        return \u0027devstack\u0027"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @utils.synchronized(\u0027MacroSAN-Attach-Detach\u0027, external\u003dTrue)"},{"line_number":191,"context_line":"    def _attach_volume(self, context, volume, properties, remote\u003dFalse):"},{"line_number":192,"context_line":"        return super(FakeMacroSANISCSIDriver, self)._attach_volume("},{"line_number":193,"context_line":"            context, volume, properties, remote)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4a670cec","line":190,"in_reply_to":"7faddb67_1e646549","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":511,"context_line":"    @mock.patch.object(qos_specs, \u0027get_qos_specs\u0027,"},{"line_number":512,"context_line":"                       return_value\u003d{\u0027specs\u0027: {\u0027qos-strategy\u0027: \u0027QoS-1\u0027}})"},{"line_number":513,"context_line":"    def test_terminate_connection(self, mock_volume_type, mock_qos):"},{"line_number":514,"context_line":"        ret \u003d self.driver.terminate_connection(test_volume, test_connector)"},{"line_number":515,"context_line":"        self.assertIsNone(ret)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def test_get_raid_list(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_7edd59db","line":514,"updated":"2019-08-02 11:56:55.000000000","message":"I think Jay\u0027s point was that this test should actually validate more of the expected behavior, but at least there is some assertion now.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":511,"context_line":"    @mock.patch.object(qos_specs, \u0027get_qos_specs\u0027,"},{"line_number":512,"context_line":"                       return_value\u003d{\u0027specs\u0027: {\u0027qos-strategy\u0027: \u0027QoS-1\u0027}})"},{"line_number":513,"context_line":"    def test_terminate_connection(self, mock_volume_type, mock_qos):"},{"line_number":514,"context_line":"        ret \u003d self.driver.terminate_connection(test_volume, test_connector)"},{"line_number":515,"context_line":"        self.assertIsNone(ret)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def test_get_raid_list(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_6a6448e6","line":514,"in_reply_to":"7faddb67_7edd59db","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"}],"cinder/volume/drivers/macrosan/config.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                Important warning, Client_name has the following requirements:"},{"line_number":81,"context_line":"                    [a-zA-Z0-9.-_:], the maximum number of characters is 31"},{"line_number":82,"context_line":"                E.g:"},{"line_number":83,"context_line":"                (controller1; decive1; eth-1:0; eth-2:0),"},{"line_number":84,"context_line":"                (controller2; decive2; eth-1:0/eth-1:1; eth-2:0/eth-2:1),"},{"line_number":85,"context_line":"                \"\"\"),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027macrosan_client_default\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_feeaa971","line":83,"range":{"start_line":83,"start_character":30,"end_line":83,"end_character":36},"updated":"2019-08-02 11:56:55.000000000","message":"Minor typos.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                Important warning, Client_name has the following requirements:"},{"line_number":81,"context_line":"                    [a-zA-Z0-9.-_:], the maximum number of characters is 31"},{"line_number":82,"context_line":"                E.g:"},{"line_number":83,"context_line":"                (controller1; decive1; eth-1:0; eth-2:0),"},{"line_number":84,"context_line":"                (controller2; decive2; eth-1:0/eth-1:1; eth-2:0/eth-2:1),"},{"line_number":85,"context_line":"                \"\"\"),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027macrosan_client_default\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_ca73fcb3","line":83,"range":{"start_line":83,"start_character":30,"end_line":83,"end_character":36},"in_reply_to":"7faddb67_feeaa971","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"}],"cinder/volume/drivers/macrosan/driver.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        pass"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def _timing(fn):"},{"line_number":63,"context_line":"    def __timing(*vargs, **kv):"},{"line_number":64,"context_line":"        start \u003d time.time()"},{"line_number":65,"context_line":"        if timing_on:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_feb86975","line":62,"range":{"start_line":62,"start_character":4,"end_line":62,"end_character":11},"updated":"2019-08-02 11:56:55.000000000","message":"This was pointed out as redundant early on in reviews. Get rid of this decorator and use cinder.utils.trace instead and clean up the extra logging in the methods that are not needed by using that. cinder.utils.trace_method is the recommended decorator to use so operators can control when tracing is done.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        pass"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def _timing(fn):"},{"line_number":63,"context_line":"    def __timing(*vargs, **kv):"},{"line_number":64,"context_line":"        start \u003d time.time()"},{"line_number":65,"context_line":"        if timing_on:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4a3e2cba","line":62,"range":{"start_line":62,"start_character":4,"end_line":62,"end_character":11},"in_reply_to":"7faddb67_feb86975","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    @synchronized(lock_name)"},{"line_number":485,"context_line":"    @record_request_id"},{"line_number":486,"context_line":"    @_timing"},{"line_number":487,"context_line":"    @utils.trace"},{"line_number":488,"context_line":"    def delete_volume(self, volume):"},{"line_number":489,"context_line":"        \"\"\"Delete a volume.\"\"\""},{"line_number":490,"context_line":"        name \u003d self._volume_name(volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_5ea97d21","line":487,"range":{"start_line":486,"start_character":4,"end_line":487,"end_character":16},"updated":"2019-08-02 11:56:55.000000000","message":"Now you are double tracing.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"    @synchronized(lock_name)"},{"line_number":485,"context_line":"    @record_request_id"},{"line_number":486,"context_line":"    @_timing"},{"line_number":487,"context_line":"    @utils.trace"},{"line_number":488,"context_line":"    def delete_volume(self, volume):"},{"line_number":489,"context_line":"        \"\"\"Delete a volume.\"\"\""},{"line_number":490,"context_line":"        name \u003d self._volume_name(volume)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_aa59e035","line":487,"range":{"start_line":486,"start_character":4,"end_line":487,"end_character":16},"in_reply_to":"7faddb67_5ea97d21","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":990,"context_line":"        owner \u003d self.client.get_lun_sp(src_name)"},{"line_number":991,"context_line":"        pool \u003d host[\u0027capabilities\u0027].get(\u0027pool_name\u0027, self.pool)"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"        LOG.info(\u0027Migrating volume: host: %(host)s, \u0027"},{"line_number":994,"context_line":"                 \u0027backend: %(volume_backend_name)s\u0027,"},{"line_number":995,"context_line":"                 {\u0027host\u0027: host,"},{"line_number":996,"context_line":"                  \u0027volume_backend_name\u0027: self.volume_backend_name})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9e7855c4","line":993,"updated":"2019-08-02 11:56:55.000000000","message":"Capturing which volume is being migrated would be useful.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":990,"context_line":"        owner \u003d self.client.get_lun_sp(src_name)"},{"line_number":991,"context_line":"        pool \u003d host[\u0027capabilities\u0027].get(\u0027pool_name\u0027, self.pool)"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"        LOG.info(\u0027Migrating volume: host: %(host)s, \u0027"},{"line_number":994,"context_line":"                 \u0027backend: %(volume_backend_name)s\u0027,"},{"line_number":995,"context_line":"                 {\u0027host\u0027: host,"},{"line_number":996,"context_line":"                  \u0027volume_backend_name\u0027: self.volume_backend_name})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_6a3be8c7","line":993,"in_reply_to":"7faddb67_9e7855c4","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"                                             self.sdas_client,"},{"line_number":1419,"context_line":"                                             sdas_initr_port_map)"},{"line_number":1420,"context_line":"            LOG.debug(\u0027%(fr)sdas_initr_port_map %(sdas_initr_port_map)s\u0027,"},{"line_number":1421,"context_line":"                      {\u0027fr\u0027: \u0027\u003d\u0027 * 10,"},{"line_number":1422,"context_line":"                       \u0027sdas_initr_port_map\u0027: sdas_initr_port_map})"},{"line_number":1423,"context_line":"            self._map_itl(self.sdas_client, sdas_initr_port_map, name, lun_id)"},{"line_number":1424,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_fe46297b","line":1421,"range":{"start_line":1421,"start_character":29,"end_line":1421,"end_character":37},"updated":"2019-08-02 11:56:55.000000000","message":"Remove this. Don\u0027t dynamically generate static text.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"                                             self.sdas_client,"},{"line_number":1419,"context_line":"                                             sdas_initr_port_map)"},{"line_number":1420,"context_line":"            LOG.debug(\u0027%(fr)sdas_initr_port_map %(sdas_initr_port_map)s\u0027,"},{"line_number":1421,"context_line":"                      {\u0027fr\u0027: \u0027\u003d\u0027 * 10,"},{"line_number":1422,"context_line":"                       \u0027sdas_initr_port_map\u0027: sdas_initr_port_map})"},{"line_number":1423,"context_line":"            self._map_itl(self.sdas_client, sdas_initr_port_map, name, lun_id)"},{"line_number":1424,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_0a48345a","line":1421,"range":{"start_line":1421,"start_character":29,"end_line":1421,"end_character":37},"in_reply_to":"7faddb67_fe46297b","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b8063aecc6cc5e599949b8d3aec9353b3306d515","unresolved":false,"context_lines":[{"line_number":1392,"context_line":""},{"line_number":1393,"context_line":"        has_port_not_mapped, initr_port_map \u003d ("},{"line_number":1394,"context_line":"            self._map_initr_tgt(self.client, client_name, wwns))"},{"line_number":1395,"context_line":"        LOG.debug(\u0027\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003dinitr_port_map %(initr_port_map)s\u0027,"},{"line_number":1396,"context_line":"                  {\u0027initr_port_map\u0027: initr_port_map})"},{"line_number":1397,"context_line":""},{"line_number":1398,"context_line":"        if vol_params and vol_params[\u0027sdas\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_735b3921","line":1395,"range":{"start_line":1395,"start_character":19,"end_line":1395,"end_character":30},"updated":"2019-08-20 15:51:30.000000000","message":"Adding this to draw attention to this message in particular is probably unnecessary.","commit_id":"b6a5be1e4fb6acc64b8a28531164a3f2344fe308"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b8063aecc6cc5e599949b8d3aec9353b3306d515","unresolved":false,"context_lines":[{"line_number":1401,"context_line":"            lun_id \u003d self._get_unused_lun_id(self.client, initr_port_map,"},{"line_number":1402,"context_line":"                                             self.sdas_client,"},{"line_number":1403,"context_line":"                                             sdas_initr_port_map)"},{"line_number":1404,"context_line":"            LOG.debug(\u0027\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003dsdas_initr_port_map \u0027"},{"line_number":1405,"context_line":"                      \u0027%(sdas_initr_port_map)s\u0027,"},{"line_number":1406,"context_line":"                      {\u0027sdas_initr_port_map\u0027: sdas_initr_port_map})"},{"line_number":1407,"context_line":"            self._map_itl(self.sdas_client, sdas_initr_port_map, name, lun_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_139c45be","line":1404,"range":{"start_line":1404,"start_character":23,"end_line":1404,"end_character":29},"updated":"2019-08-20 15:51:30.000000000","message":"Same","commit_id":"b6a5be1e4fb6acc64b8a28531164a3f2344fe308"}],"doc/source/configuration/block-storage/drivers/MacroSAN-storage-driver.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":13,"context_line":"- MacroSAN Storage arrays with:"},{"line_number":14,"context_line":"  - iSCSI or FC host interfaces"},{"line_number":15,"context_line":"  - Enable RESTful service on the MacroSAN Storage Appliance. (The service is"},{"line_number":16,"context_line":"  automatically turned on in the device. You can check if"},{"line_number":17,"context_line":"  `python /odsp/scripts/devop/devop.py` is available via `ps -aux|grep python`.)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- Network connectivity between the OpenStack host and the array management"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_fe3b89e6","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":4},"updated":"2019-08-02 11:56:55.000000000","message":"Indentation is off here.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":13,"context_line":"- MacroSAN Storage arrays with:"},{"line_number":14,"context_line":"  - iSCSI or FC host interfaces"},{"line_number":15,"context_line":"  - Enable RESTful service on the MacroSAN Storage Appliance. (The service is"},{"line_number":16,"context_line":"  automatically turned on in the device. You can check if"},{"line_number":17,"context_line":"  `python /odsp/scripts/devop/devop.py` is available via `ps -aux|grep python`.)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- Network connectivity between the OpenStack host and the array management"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7faddb67_2a3090e8","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":4},"in_reply_to":"7faddb67_fe3b89e6","updated":"2019-08-09 06:04:47.000000000","message":"If I indent here, I will get an error, /root/cinder/doc/source/configuration/block-storage/drivers/MacroSAN-storage-driver.rst:16: D000 Unexpected indentation.","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"}],"releasenotes/notes/bug-1837920-0f07216ac5ef13a3.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"94397c2a0ba4e4f66c6c72213f1f436243027098","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed the question of comment feedback in patch sets 19 and 20."},{"line_number":4,"context_line":"    (`bug #1837920 \u003chttps://bugs.launchpad.net/cinder/+bug/1837920\u003e`)"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_0123a4a8","line":3,"updated":"2019-08-02 11:56:55.000000000","message":"Drop this release note. Release notes are to provide operators information about what changes are in a new release or to make them aware of things they need to modify when upgrading to the new release. This is internal detail that they don\u0027t need to know (and has very little context for them to understand just by reading this).","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"},{"author":{"_account_id":29620,"name":"hjy","email":"821328772@qq.com","username":"lol"},"change_message_id":"753d6e18bedfba343d429a04f6f60a46392c0d11","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed the question of comment feedback in patch sets 19 and 20."},{"line_number":4,"context_line":"    (`bug #1837920 \u003chttps://bugs.launchpad.net/cinder/+bug/1837920\u003e`)"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_0a1a746e","line":3,"in_reply_to":"7faddb67_0123a4a8","updated":"2019-08-09 06:04:47.000000000","message":"done","commit_id":"88a8f7170e7196bedb2cd4d86749fcf2b9d15792"}]}
