)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"897515ec2d58f8d8071d3111c8a9078ed68affa6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, while creating volume from snapshot or cloning volume,"},{"line_number":10,"context_line":"Huawei driver always specifies the copy speed as medium."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch lets user can specify the copy speed they want, via"},{"line_number":13,"context_line":"the metadata optional argument."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic70f2fee06866932b1c105d657a864553307c835"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a89bdaa_f065d344","line":12,"updated":"2016-09-13 13:36:23.000000000","message":"s/user/users\n\nRemove \"can\"","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d87fd3141a50016b6872ec05197ec576c801715b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, while creating volume from snapshot or cloning volume,"},{"line_number":10,"context_line":"Huawei driver always specifies the copy speed as medium."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch lets user can specify the copy speed they want, via"},{"line_number":13,"context_line":"the metadata optional argument."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic70f2fee06866932b1c105d657a864553307c835"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a8ec9b2_f679e430","line":12,"in_reply_to":"9a89bdaa_f065d344","updated":"2016-09-14 09:51:27.000000000","message":"Done","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5f17f17271e14aa945c2a2666f84943bdb94e00","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch lets users specify the copy speed they want, via"},{"line_number":13,"context_line":"the metadata optional argument."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic70f2fee06866932b1c105d657a864553307c835"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a74a57a_ad50bad5","line":14,"updated":"2016-12-01 06:33:15.000000000","message":"If you need to do another update, please link this to the separately filed bug:\n\nCloses-bug: #1646019","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"b2a7b5c43a4909e3b796368b48633f58ee8de473","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch lets users specify the copy speed they want, via"},{"line_number":13,"context_line":"the metadata optional argument."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic70f2fee06866932b1c105d657a864553307c835"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da36d5c6_05081827","line":14,"in_reply_to":"5a74a57a_ad50bad5","updated":"2017-02-27 07:32:39.000000000","message":"Done","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"}],"cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py":[{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"fb863a397c9a8dffd020a22bf2171e7661fa0d5f","unresolved":false,"context_lines":[{"line_number":2202,"context_line":"        self.assertEqual(11, lun_info[\u0027provider_location\u0027])"},{"line_number":2203,"context_line":""},{"line_number":2204,"context_line":"    @ddt.data(\u00271\u0027, \u0027\u0027, \u00270\u0027)"},{"line_number":2205,"context_line":"    def test__copy_volume(self, input_speed):"},{"line_number":2206,"context_line":"        self.driver.configuration.lun_copy_wait_interval \u003d 0"},{"line_number":2207,"context_line":"        self.volume.metadata \u003d {\u0027copyspeed\u0027: input_speed}"},{"line_number":2208,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6895a0_b54ca071","line":2205,"range":{"start_line":2205,"start_character":13,"end_line":2205,"end_character":14},"updated":"2016-10-24 03:54:35.000000000","message":"Redundant symbol.","commit_id":"2681c4edb2d5a7cfa6cba794773d2308af3b5827"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d9b83e61a1e229589454d1fd97b87f076c986de3","unresolved":false,"context_lines":[{"line_number":2202,"context_line":"        self.assertEqual(11, lun_info[\u0027provider_location\u0027])"},{"line_number":2203,"context_line":""},{"line_number":2204,"context_line":"    @ddt.data(\u00271\u0027, \u0027\u0027, \u00270\u0027)"},{"line_number":2205,"context_line":"    def test__copy_volume(self, input_speed):"},{"line_number":2206,"context_line":"        self.driver.configuration.lun_copy_wait_interval \u003d 0"},{"line_number":2207,"context_line":"        self.volume.metadata \u003d {\u0027copyspeed\u0027: input_speed}"},{"line_number":2208,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6895a0_fd6ee4c7","line":2205,"range":{"start_line":2205,"start_character":13,"end_line":2205,"end_character":14},"in_reply_to":"da6895a0_b54ca071","updated":"2016-10-25 06:21:32.000000000","message":"Hi huanan, thanks for your review. It\u0027s not redundant, because the tested method is _copy_volume, these two underlines indicate to test an inner method.","commit_id":"2681c4edb2d5a7cfa6cba794773d2308af3b5827"}],"cinder/volume/drivers/huawei/rest_client.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"36c29eb4bd864e061c46f8b77ee597cd0e165ee1","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        return self._get_id_from_result(result, name, \u0027NAME\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def create_luncopy(self, luncopyname, srclunid, tgtlunid, copyspeed):"},{"line_number":364,"context_line":"        \"\"\"Create a luncopy.\"\"\""},{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_bc5f0674","line":364,"updated":"2016-09-12 02:22:21.000000000","message":"It\u0027s better to use dictionary when considering the reading convenience\n{\u0027SPEED_ONE\u0027,\u00271\u0027,SPEED_TWO:\u00272\u0027} something like that :)","commit_id":"51466f00465a72347ddf5decf0d2097594847c62"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"295ab7f4950847560beed39b31f34f03a8460999","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        return self._get_id_from_result(result, name, \u0027NAME\u0027)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def create_luncopy(self, luncopyname, srclunid, tgtlunid, copyspeed):"},{"line_number":364,"context_line":"        \"\"\"Create a luncopy.\"\"\""},{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_abe7b0e2","line":364,"in_reply_to":"9a89bdaa_bc5f0674","updated":"2016-09-12 09:54:31.000000000","message":"Hi TommyLike, thanks for your suggestion. I\u0027ve made some changes in constants.py, the meaning of each number will indicate more visually.","commit_id":"51466f00465a72347ddf5decf0d2097594847c62"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"897515ec2d58f8d8071d3111c8a9078ed68affa6","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        \"\"\"Create a luncopy.\"\"\""},{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_d0b60fdb","line":367,"updated":"2016-09-13 13:36:23.000000000","message":"Can you print the current non-valid copyspeed in the message?","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d87fd3141a50016b6872ec05197ec576c801715b","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        \"\"\"Create a luncopy.\"\"\""},{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_568ff822","line":367,"in_reply_to":"9a89bdaa_d0b60fdb","updated":"2016-09-14 09:51:27.000000000","message":"Done","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"897515ec2d58f8d8071d3111c8a9078ed68affa6","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        data \u003d {\"TYPE\": 219,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_70f62390","line":368,"updated":"2016-09-13 13:36:23.000000000","message":"Can you use the variable copyspeed you defined on line 369 instead of having \"2\" hardcoded?","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d87fd3141a50016b6872ec05197ec576c801715b","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        data \u003d {\"TYPE\": 219,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_7694f436","line":368,"in_reply_to":"9a89bdaa_70f62390","updated":"2016-09-14 09:51:27.000000000","message":"Done","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"897515ec2d58f8d8071d3111c8a9078ed68affa6","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        data \u003d {\"TYPE\": 219,"},{"line_number":372,"context_line":"                \"NAME\": luncopyname,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_904647be","line":369,"updated":"2016-09-13 13:36:23.000000000","message":"Better to make \u00272\u0027 a constant.","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d87fd3141a50016b6872ec05197ec576c801715b","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value \"2\" instead.\u0027))"},{"line_number":369,"context_line":"            copyspeed \u003d \u00272\u0027"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        data \u003d {\"TYPE\": 219,"},{"line_number":372,"context_line":"                \"NAME\": luncopyname,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_96998071","line":369,"in_reply_to":"9a89bdaa_904647be","updated":"2016-09-14 09:51:27.000000000","message":"Done","commit_id":"2d7503c8b5746e110a16cbcdceedb206ecbb0af7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5f17f17271e14aa945c2a2666f84943bdb94e00","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed %(copyspeed)s is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value %(default)s instead.\u0027),"},{"line_number":369,"context_line":"                        {\u0027copyspeed\u0027: copyspeed,"},{"line_number":370,"context_line":"                         \u0027default\u0027: constants.LUN_COPY_SPEED_MEDIUM})"},{"line_number":371,"context_line":"            copyspeed \u003d constants.LUN_COPY_SPEED_MEDIUM"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a74a57a_4df9e6c7","line":368,"range":{"start_line":368,"start_character":29,"end_line":368,"end_character":40},"updated":"2016-12-01 06:33:15.000000000","message":"s/use default/using default/","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"b2a7b5c43a4909e3b796368b48633f58ee8de473","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        url \u003d \"/luncopy\""},{"line_number":366,"context_line":"        if copyspeed not in constants.LUN_COPY_SPEED_TYPES:"},{"line_number":367,"context_line":"            LOG.warning(_LW(\u0027The copy speed %(copyspeed)s is not valid, \u0027"},{"line_number":368,"context_line":"                            \u0027use default value %(default)s instead.\u0027),"},{"line_number":369,"context_line":"                        {\u0027copyspeed\u0027: copyspeed,"},{"line_number":370,"context_line":"                         \u0027default\u0027: constants.LUN_COPY_SPEED_MEDIUM})"},{"line_number":371,"context_line":"            copyspeed \u003d constants.LUN_COPY_SPEED_MEDIUM"}],"source_content_type":"text/x-python","patch_set":5,"id":"da36d5c6_9a00e703","line":368,"range":{"start_line":368,"start_character":29,"end_line":368,"end_character":40},"in_reply_to":"5a74a57a_4df9e6c7","updated":"2017-02-27 07:32:39.000000000","message":"Done","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"}],"releasenotes/notes/allow-huawei-driver-lun-copy-speed-configurable-361a480e7b7e361d.yaml":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c1dcc1fb97ae3a2834fd8baba3380b2a0a1dddeb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Allow users to specify the copy speed while using Huawei"},{"line_number":4,"context_line":"    driver to create volume from snapshot or clone volume."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ba5da102_5b3605e8","line":4,"updated":"2016-10-29 23:37:40.000000000","message":"Please mention how the user uses this in the release notes.","commit_id":"2681c4edb2d5a7cfa6cba794773d2308af3b5827"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"0fd2c29573b08d434ed6b089c6b119ba15e952dc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Allow users to specify the copy speed while using Huawei"},{"line_number":4,"context_line":"    driver to create volume from snapshot or clone volume, by"},{"line_number":5,"context_line":"    the new added metadata \u0027copyspeed\u0027."},{"line_number":6,"context_line":"    For instance, create a volume from a snapshot:"},{"line_number":7,"context_line":"      * cinder create --snapshot-id ***** --metadata copyspeed\u003d1"},{"line_number":8,"context_line":"    The valid optional range of copyspeed is [1, 2, 3, 4],"},{"line_number":9,"context_line":"    respectively representing LOW, MEDIUM, HIGH and HIGHEST."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ba5da102_5f2c23ab","line":6,"range":{"start_line":6,"start_character":49,"end_line":6,"end_character":50},"updated":"2016-10-31 12:49:48.000000000","message":"I think, there is a problem in using \":\" symbol","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"b2a7b5c43a4909e3b796368b48633f58ee8de473","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Allow users to specify the copy speed while using Huawei"},{"line_number":4,"context_line":"    driver to create volume from snapshot or clone volume, by"},{"line_number":5,"context_line":"    the new added metadata \u0027copyspeed\u0027."},{"line_number":6,"context_line":"    For instance, create a volume from a snapshot:"},{"line_number":7,"context_line":"      * cinder create --snapshot-id ***** --metadata copyspeed\u003d1"},{"line_number":8,"context_line":"    The valid optional range of copyspeed is [1, 2, 3, 4],"},{"line_number":9,"context_line":"    respectively representing LOW, MEDIUM, HIGH and HIGHEST."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"da36d5c6_250b5c25","line":6,"range":{"start_line":6,"start_character":49,"end_line":6,"end_character":50},"in_reply_to":"5a74a57a_7fbf31aa","updated":"2017-02-27 07:32:39.000000000","message":"Done","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41cee15a311be7bc428d4d62ece3f6d175bbea08","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Allow users to specify the copy speed while using Huawei"},{"line_number":4,"context_line":"    driver to create volume from snapshot or clone volume, by"},{"line_number":5,"context_line":"    the new added metadata \u0027copyspeed\u0027."},{"line_number":6,"context_line":"    For instance, create a volume from a snapshot:"},{"line_number":7,"context_line":"      * cinder create --snapshot-id ***** --metadata copyspeed\u003d1"},{"line_number":8,"context_line":"    The valid optional range of copyspeed is [1, 2, 3, 4],"},{"line_number":9,"context_line":"    respectively representing LOW, MEDIUM, HIGH and HIGHEST."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5a74a57a_7fbf31aa","line":6,"range":{"start_line":6,"start_character":49,"end_line":6,"end_character":50},"in_reply_to":"ba5da102_5f2c23ab","updated":"2016-12-01 01:56:05.000000000","message":"I think Michael is correct. This gets parsed as RST, so I think what you want is:\n\nFor intance, create a volume from a snapshot::\n\n    cinder create --snapshot-id ***** --metadata copyspeed\u003d1\n\nI think that will render the command line formatted as console text.\n\nI think it would also be good to put a blank line before \"For instance\" and before \"The valid optional\" lines.","commit_id":"7a67f19c2724d5948f3903c4e33693d260cb69ae"}]}
