)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"d62ec91183238bd69f0eeb0b6d5bcc01013f7234","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-02 00:48:52 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume manage using source-name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only source-id is accepted for IBM storwize/SVC"},{"line_number":10,"context_line":"volume manage command right now. volume manage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a8ffd7b_90f0dbfe","line":7,"updated":"2015-12-02 17:31:29.000000000","message":"Better alter the title to - Storwize/SVC: Volume manage using source-name","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-02 00:48:52 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume manage using source-name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only source-id is accepted for IBM storwize/SVC"},{"line_number":10,"context_line":"volume manage command right now. volume manage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a740942_de8906cc","line":7,"in_reply_to":"9a8ffd7b_90f0dbfe","updated":"2015-12-04 10:08:28.000000000","message":"Hi, Zhiteng. Done. Thanks a lot!","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"17b53df259b34ed9280fc30621921037f9a9c9fd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Storwize/SVC: Volume manage using source-name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only source-id is accepted for IBM storwize/SVC"},{"line_number":10,"context_line":"volume manage command right now. volume manage"},{"line_number":11,"context_line":"command using source-name or source-id should be"},{"line_number":12,"context_line":"both working."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a7b0d38_d94c54a0","line":10,"updated":"2015-12-28 13:53:34.000000000","message":"s/volume/Volume","commit_id":"f10ed546973815123c3a63a4d24e24b835581337"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"d5a9e4b4649852e4e21899735a449cf99f926fd5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Storwize/SVC: Volume manage using source-name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only source-id is accepted for IBM storwize/SVC"},{"line_number":10,"context_line":"volume manage command right now. volume manage"},{"line_number":11,"context_line":"command using source-name or source-id should be"},{"line_number":12,"context_line":"both working."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa69d971_f328149c","line":10,"updated":"2016-01-06 13:18:00.000000000","message":"s/volume/Volume","commit_id":"f3dff444530f0f20bfa149c52f10fcb2d030fdad"}],"cinder/tests/unit/test_storwize_svc.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"73ef35beb186da2f0ee0fb4b32f87e31ee085489","unresolved":false,"context_lines":[{"line_number":3542,"context_line":"        ref \u003d {\u0027source-name\u0027: \u0027bad_name\u0027}"},{"line_number":3543,"context_line":"        self.assertRaises(exception.ManageExistingInvalidReference,"},{"line_number":3544,"context_line":"                          self.driver.manage_existing_get_size, volume, ref)"},{"line_number":3545,"context_line":"        pass"},{"line_number":3546,"context_line":""},{"line_number":3547,"context_line":"    def test_manage_existing_bad_ref(self):"},{"line_number":3548,"context_line":"        \"\"\"Error on manage with bad reference."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_89b6e388","line":3545,"updated":"2015-12-04 11:11:59.000000000","message":"I think \"pass\" can be safely removed.","commit_id":"a6681bba3eca4aee5c495d785a8f648927fd70e3"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9a3ba1650b09ef294db8dc5e9adf1ada3d53c2cf","unresolved":false,"context_lines":[{"line_number":3542,"context_line":"        ref \u003d {\u0027source-name\u0027: \u0027bad_name\u0027}"},{"line_number":3543,"context_line":"        self.assertRaises(exception.ManageExistingInvalidReference,"},{"line_number":3544,"context_line":"                          self.driver.manage_existing_get_size, volume, ref)"},{"line_number":3545,"context_line":"        pass"},{"line_number":3546,"context_line":""},{"line_number":3547,"context_line":"    def test_manage_existing_bad_ref(self):"},{"line_number":3548,"context_line":"        \"\"\"Error on manage with bad reference."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_0acb9a1f","line":3545,"in_reply_to":"7a740942_89b6e388","updated":"2015-12-05 14:39:01.000000000","message":"Sure. Done!","commit_id":"a6681bba3eca4aee5c495d785a8f648927fd70e3"}],"cinder/volume/drivers/ibm/storwize_svc/__init__.py":[{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ef3a79a7b5efdd66e7e3dd37f2e3f07c002dda10","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        Renames the vdisk to match the expected name for the volume."},{"line_number":966,"context_line":"        Error checking done by manage_existing_get_size is not repeated -"},{"line_number":967,"context_line":"        if we got here then we have a vdisk that isn\u0027t in use (or we don\u0027t"},{"line_number":968,"context_line":"        care if it is in use."},{"line_number":969,"context_line":"        \"\"\""},{"line_number":970,"context_line":"        # Check that the reference is valid"},{"line_number":971,"context_line":"        if \u0027source-name\u0027 in ref:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_f74ffdbb","line":968,"updated":"2015-12-02 10:13:30.000000000","message":"Lack of \u0027)\u0027 in the end","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        Renames the vdisk to match the expected name for the volume."},{"line_number":966,"context_line":"        Error checking done by manage_existing_get_size is not repeated -"},{"line_number":967,"context_line":"        if we got here then we have a vdisk that isn\u0027t in use (or we don\u0027t"},{"line_number":968,"context_line":"        care if it is in use."},{"line_number":969,"context_line":"        \"\"\""},{"line_number":970,"context_line":"        # Check that the reference is valid"},{"line_number":971,"context_line":"        if \u0027source-name\u0027 in ref:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_fe8642b8","line":968,"in_reply_to":"9a8ffd7b_f74ffdbb","updated":"2015-12-04 10:08:28.000000000","message":"Done. Thanks a lot!","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ef3a79a7b5efdd66e7e3dd37f2e3f07c002dda10","unresolved":false,"context_lines":[{"line_number":971,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":972,"context_line":"            vdisk \u003d self._helpers.get_vdisk_attributes(ref[\u0027source-name\u0027])"},{"line_number":973,"context_line":"        elif \u0027source-id\u0027 in ref:"},{"line_number":974,"context_line":"            vdisk \u003d self._helpers.vdisk_by_uid(ref[\u0027source-id\u0027])"},{"line_number":975,"context_line":"        else:"},{"line_number":976,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":977,"context_line":"                       \u0027source-name element.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_774d4d98","line":974,"updated":"2015-12-02 10:13:30.000000000","message":"I believe you need to handle the case if both \u0027source-name\u0027 and \u0027source-id\u0027 are provided.","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":971,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":972,"context_line":"            vdisk \u003d self._helpers.get_vdisk_attributes(ref[\u0027source-name\u0027])"},{"line_number":973,"context_line":"        elif \u0027source-id\u0027 in ref:"},{"line_number":974,"context_line":"            vdisk \u003d self._helpers.vdisk_by_uid(ref[\u0027source-id\u0027])"},{"line_number":975,"context_line":"        else:"},{"line_number":976,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":977,"context_line":"                       \u0027source-name element.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_a073b4b0","line":974,"in_reply_to":"9a8ffd7b_774d4d98","updated":"2015-12-04 10:08:28.000000000","message":"Hi, Xin, Thanks a lot!. There is no chance for both \"source-name\" and \"source-id\" exist at the same time. Since the type of backend device identifier is specified by --id-type. It can be either source-name or source-id (Default\u003dsource-name). However, I still add the checking case for both \u0027source-name\u0027 and \u0027source-id\u0027 are provided and the unit test case there.","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ef3a79a7b5efdd66e7e3dd37f2e3f07c002dda10","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":1003,"context_line":"            vdisk \u003d self._helpers.get_vdisk_attributes(ref[\u0027source-name\u0027])"},{"line_number":1004,"context_line":"        elif \u0027source-id\u0027 in ref:"},{"line_number":1005,"context_line":"            vdisk \u003d self._helpers.vdisk_by_uid(ref[\u0027source-id\u0027])"},{"line_number":1006,"context_line":"        else:"},{"line_number":1007,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":1008,"context_line":"                       \u0027source-name element.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_3747c578","line":1005,"updated":"2015-12-02 10:13:30.000000000","message":"ditto","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":1003,"context_line":"            vdisk \u003d self._helpers.get_vdisk_attributes(ref[\u0027source-name\u0027])"},{"line_number":1004,"context_line":"        elif \u0027source-id\u0027 in ref:"},{"line_number":1005,"context_line":"            vdisk \u003d self._helpers.vdisk_by_uid(ref[\u0027source-id\u0027])"},{"line_number":1006,"context_line":"        else:"},{"line_number":1007,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":1008,"context_line":"                       \u0027source-name element.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_60adcce8","line":1005,"in_reply_to":"9a8ffd7b_3747c578","updated":"2015-12-04 10:08:28.000000000","message":"ditto.","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"a49e692fc22d5f60ad2ea229a47b7bdcac3f1df2","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"        else:"},{"line_number":1007,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":1008,"context_line":"                       \u0027source-name element.\u0027)"},{"line_number":1009,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":1010,"context_line":"                                                           reason\u003dreason)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # Check for existence of the vdisk"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_d7b0b98d","line":1009,"updated":"2015-12-02 10:12:08.000000000","message":"I couldn\u0027t find a test for this case (source-name and source-id missing).","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"        else:"},{"line_number":1007,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":1008,"context_line":"                       \u0027source-name element.\u0027)"},{"line_number":1009,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":1010,"context_line":"                                                           reason\u003dreason)"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # Check for existence of the vdisk"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_6094ec8a","line":1009,"in_reply_to":"9a8ffd7b_d7b0b98d","updated":"2015-12-04 10:08:28.000000000","message":"Hi, Vipin Thanks a lot. Add the test case for both source-name and source-id missing.","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"a49e692fc22d5f60ad2ea229a47b7bdcac3f1df2","unresolved":false,"context_lines":[{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # Check for existence of the vdisk"},{"line_number":1013,"context_line":"        if vdisk is None:"},{"line_number":1014,"context_line":"            reason \u003d (_(\u0027No vdisk with the UID specified by ref %s.\u0027)"},{"line_number":1015,"context_line":"                      % ref)"},{"line_number":1016,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":1017,"context_line":"                                                           reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_577929fb","line":1014,"updated":"2015-12-02 10:12:08.000000000","message":"I think we should save the ref (name or id) in if..else block and use it here instead of printing the dictionary.","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"5e98bc55a502edea9b028b44f2b05ef97db32c66","unresolved":false,"context_lines":[{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"        # Check for existence of the vdisk"},{"line_number":1013,"context_line":"        if vdisk is None:"},{"line_number":1014,"context_line":"            reason \u003d (_(\u0027No vdisk with the UID specified by ref %s.\u0027)"},{"line_number":1015,"context_line":"                      % ref)"},{"line_number":1016,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":1017,"context_line":"                                                           reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_e0ee9c21","line":1014,"in_reply_to":"9a8ffd7b_577929fb","updated":"2015-12-04 10:08:28.000000000","message":"Done. Thanks","commit_id":"6bb950c4a8ed049e2a614e6a01627f308afb598d"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"366e263bfd47c7d67b8e0271d38968fead1358a1","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":1021,"context_line":"                       \u0027source-name element.\u0027)"},{"line_number":1022,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":1023,"context_line":"                                                           reason\u003dreason)"},{"line_number":1024,"context_line":""},{"line_number":1025,"context_line":"        # Check for existence of the vdisk"},{"line_number":1026,"context_line":"        if vdisk is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_af3c7cc8","line":1023,"range":{"start_line":1023,"start_character":72,"end_line":1023,"end_character":73},"updated":"2015-12-21 06:23:49.000000000","message":"Xiaoqin, thank you for working on this issue. It used to make me confused a lot. Line 971 to Line 985 are almost the same to the above lines from Line 1008 to Line 1023.\n\nI suggest you put these common part in a separate method and call it from here.","commit_id":"740257636c02eaaac491093a8630b30f04ecd9ee"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"47fc903808a496e1ed45c00d6ee0cd5b795ae38d","unresolved":false,"context_lines":[{"line_number":2371,"context_line":"        if \u0027source-name\u0027 in ref and \u0027source-id\u0027 in ref:"},{"line_number":2372,"context_line":"            reason \u003d _(\u0027Both source-id and source-name are provided.\u0027)"},{"line_number":2373,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":2374,"context_line":"                                                           reason\u003dreason)"},{"line_number":2375,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":2376,"context_line":"            manage_source \u003d ref[\u0027source-name\u0027]"},{"line_number":2377,"context_line":"            vdisk \u003d self._helpers.get_vdisk_attributes(manage_source)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_04787af1","line":2374,"range":{"start_line":2374,"start_character":0,"end_line":2374,"end_character":59},"updated":"2015-12-24 13:34:50.000000000","message":"As reference must contain source-id OR source-name there is no sense to raise exception when both attributes are provided. IMHO, that\u0027s redundant lines 2371-2374.","commit_id":"740bb5e49e3d81a21b0503492f27e41744e60c72"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"17b53df259b34ed9280fc30621921037f9a9c9fd","unresolved":false,"context_lines":[{"line_number":2366,"context_line":"        self._stats \u003d data"},{"line_number":2367,"context_line":""},{"line_number":2368,"context_line":"    def _manage_input_check(self, ref):"},{"line_number":2369,"context_line":"        \"\"\"verify the input of manage function\"\"\""},{"line_number":2370,"context_line":"        # Check that the reference is valid"},{"line_number":2371,"context_line":"        if \u0027source-name\u0027 in ref:"},{"line_number":2372,"context_line":"            manage_source \u003d ref[\u0027source-name\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_590f0437","line":2369,"updated":"2015-12-28 13:53:34.000000000","message":"s/verify/Verify. Also please add a \".\" at the EOL.","commit_id":"f10ed546973815123c3a63a4d24e24b835581337"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"6b90efcb953b372e5bb7b4b3a27ccf394c5f73e3","unresolved":false,"context_lines":[{"line_number":2377,"context_line":"        else:"},{"line_number":2378,"context_line":"            reason \u003d _(\u0027Reference must contain source-id or \u0027"},{"line_number":2379,"context_line":"                       \u0027source-name element.\u0027)"},{"line_number":2380,"context_line":"            raise exception.ManageExistingInvalidReference(existing_ref\u003dref,"},{"line_number":2381,"context_line":"                                                           reason\u003dreason)"},{"line_number":2382,"context_line":""},{"line_number":2383,"context_line":"        if vdisk is None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_364e5dc2","line":2380,"updated":"2015-12-30 07:34:21.000000000","message":"Looks like you need to check if the pool of the vdisk is matched with pool managed by this back-end.\n\nThanks\nPeter","commit_id":"00d1b4574c7de991cff6a4f32e71c3c618175df7"}]}
