)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14274,"name":"XinXiaohui","email":"xiaohui.xin@intel.com","username":"XinXiaohui"},"change_message_id":"a2319704f097e5ac25e13c8855cac9601758f238","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex O\u0027Rourke \u003calex.orourke@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-22 14:27:49 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"LeftHand: Implement un/manage snapshot support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements support for managing and unmanaging snapshots to"},{"line_number":10,"context_line":"the HPE LeftHand driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5a5ae5dd_33bbcac6","line":7,"range":{"start_line":7,"start_character":29,"end_line":7,"end_character":30},"updated":"2016-02-03 08:29:32.000000000","message":"Maybe manage/unmanage is better here.","commit_id":"41139f9f90526c947aad2f5d209e780a7aff26e0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f6af5163640d9350dd67c47aba6bed8a67f43188","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex O\u0027Rourke \u003calex.orourke@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-22 14:27:49 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"LeftHand: Implement un/manage snapshot support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements support for managing and unmanaging snapshots to"},{"line_number":10,"context_line":"the HPE LeftHand driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5a5ae5dd_27bb4ee7","line":7,"range":{"start_line":7,"start_character":29,"end_line":7,"end_character":30},"in_reply_to":"5a5ae5dd_33bbcac6","updated":"2016-02-04 03:35:13.000000000","message":"That will be longer than 50 characters.","commit_id":"41139f9f90526c947aad2f5d209e780a7aff26e0"}],"cinder/volume/drivers/hpe/hpe_lefthand_iscsi.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4ec0f16129d1589d63d56aa3219c1cf1e28954b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    (c) Copyright 2014-2015 Hewlett Packard Enterprise Development LP"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_49ca6151","line":1,"updated":"2016-01-11 22:16:24.000000000","message":"2016","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"b502cc400de55f69e575d80025c0f6c447e74c4f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    (c) Copyright 2014-2015 Hewlett Packard Enterprise Development LP"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_697405cf","line":1,"in_reply_to":"da6ed579_49ca6151","updated":"2016-01-11 22:26:10.000000000","message":"Done","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"15108c24bc772dec68890533dc63583cb33b2d05","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                     \"not allowed.\"))"},{"line_number":996,"context_line":"            raise exception.InvalidInput(reason\u003derr)"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"        target_snap_name \u003d self._get_existing_volume_ref_name(existing_ref)"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        # Check for the existence of the virtual volume."},{"line_number":1001,"context_line":"        client \u003d self._login()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_a31186b1","line":998,"range":{"start_line":998,"start_character":74,"end_line":998,"end_character":75},"updated":"2016-01-08 03:23:37.000000000","message":"Dict existing_ref contains source_id ( Id of virtual volume or snapshot ), can\u0027t find a snapshot by id ?","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"f1d67c5e849e8ff3a3b0093d6bbab1af392ed2a1","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                     \"not allowed.\"))"},{"line_number":996,"context_line":"            raise exception.InvalidInput(reason\u003derr)"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"        target_snap_name \u003d self._get_existing_volume_ref_name(existing_ref)"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        # Check for the existence of the virtual volume."},{"line_number":1001,"context_line":"        client \u003d self._login()"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_4d5e70ea","line":998,"range":{"start_line":998,"start_character":74,"end_line":998,"end_character":75},"in_reply_to":"fa69d971_a31186b1","updated":"2016-01-08 23:53:11.000000000","message":"We only use the \u0027source-name\u0027 field from existing_ref for managing volumes and the same logic was duplicated here for snapshots. We currently don\u0027t use the \u0027source-id\u0027 property from existing_ref but if we do add the ability to use it in the future a different patch will be created to add that feature to the LeftHand driver.","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"86a12924c743ce11df80e40bbdb0018992f2b21b","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                     \"not allowed.\"))"},{"line_number":996,"context_line":"            raise exception.InvalidInput(reason\u003derr)"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"        target_snap_name \u003d self._get_existing_volume_ref_name(existing_ref)"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        # Check for the existence of the virtual volume."},{"line_number":1001,"context_line":"        client \u003d self._login()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_a9867d11","line":998,"range":{"start_line":998,"start_character":74,"end_line":998,"end_character":75},"in_reply_to":"fa69d971_a31186b1","updated":"2016-01-11 22:14:25.000000000","message":"we use source-name for manage volume as well.  It\u0027s driver\u0027s choice which one to use.","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":18026,"name":"huanan","email":"huanan@huawei.com","username":"huanan"},"change_message_id":"15108c24bc772dec68890533dc63583cb33b2d05","unresolved":false,"context_lines":[{"line_number":1080,"context_line":"        # Check API version."},{"line_number":1081,"context_line":"        self._check_api_version()"},{"line_number":1082,"context_line":""},{"line_number":1083,"context_line":"        target_snap_name \u003d self._get_existing_volume_ref_name(existing_ref)"},{"line_number":1084,"context_line":""},{"line_number":1085,"context_line":"        # Make sure the reference is not in use."},{"line_number":1086,"context_line":"        if re.match(\u0027volume-*|snapshot-*|unm-*\u0027, target_snap_name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_237cb61f","line":1083,"range":{"start_line":1083,"start_character":74,"end_line":1083,"end_character":75},"updated":"2016-01-08 03:23:37.000000000","message":"Same","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"f1d67c5e849e8ff3a3b0093d6bbab1af392ed2a1","unresolved":false,"context_lines":[{"line_number":1080,"context_line":"        # Check API version."},{"line_number":1081,"context_line":"        self._check_api_version()"},{"line_number":1082,"context_line":""},{"line_number":1083,"context_line":"        target_snap_name \u003d self._get_existing_volume_ref_name(existing_ref)"},{"line_number":1084,"context_line":""},{"line_number":1085,"context_line":"        # Make sure the reference is not in use."},{"line_number":1086,"context_line":"        if re.match(\u0027volume-*|snapshot-*|unm-*\u0027, target_snap_name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_ad67ecb5","line":1083,"range":{"start_line":1083,"start_character":74,"end_line":1083,"end_character":75},"in_reply_to":"fa69d971_237cb61f","updated":"2016-01-08 23:53:11.000000000","message":"above","commit_id":"e3526c963d5c890a1b3fab8cd5337f89eb7898ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f6af5163640d9350dd67c47aba6bed8a67f43188","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"            LOG.error(err)"},{"line_number":1202,"context_line":"            raise exception.InvalidInput(reason\u003derr)"},{"line_number":1203,"context_line":"        finally:"},{"line_number":1204,"context_line":"            self._logout(client)"},{"line_number":1205,"context_line":""},{"line_number":1206,"context_line":"        parent_vol_name \u003d \u0027volume-\u0027 + snapshot[\u0027volume_id\u0027]"},{"line_number":1207,"context_line":"        if parent_vol_name !\u003d parent_vol[\u0027name\u0027]:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a5ae5dd_4709aadc","line":1204,"updated":"2016-02-04 03:35:13.000000000","message":"Why do you login and logout for every call?  I think it is more efficient to login in the beginning of the function and logout at the end.","commit_id":"41139f9f90526c947aad2f5d209e780a7aff26e0"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"1197c01a6bb8b30f0dfb5ac463925a4a82850092","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"            LOG.error(err)"},{"line_number":1202,"context_line":"            raise exception.InvalidInput(reason\u003derr)"},{"line_number":1203,"context_line":"        finally:"},{"line_number":1204,"context_line":"            self._logout(client)"},{"line_number":1205,"context_line":""},{"line_number":1206,"context_line":"        parent_vol_name \u003d \u0027volume-\u0027 + snapshot[\u0027volume_id\u0027]"},{"line_number":1207,"context_line":"        if parent_vol_name !\u003d parent_vol[\u0027name\u0027]:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a5ae5dd_764a59c7","line":1204,"in_reply_to":"5a5ae5dd_4709aadc","updated":"2016-02-04 04:48:15.000000000","message":"I was doing it ensure that in the case of an error while logged in that the client is logged out properly. Logging in only once would be more efficient, though, so I will change this to only need a single login in the next patch.","commit_id":"41139f9f90526c947aad2f5d209e780a7aff26e0"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"13267a860dfa6c2eeede62ea2c5cc3501b632d25","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                     \"now being managed.\"),"},{"line_number":1236,"context_line":"                 {\u0027disp\u0027: display_name, \u0027new\u0027: new_snap_name})"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        self._logout(client)"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"        # Return display name to update the name displayed in the GUI and"},{"line_number":1241,"context_line":"        # any model updates from retype."}],"source_content_type":"text/x-python","patch_set":12,"id":"5a5ae5dd_93d1035a","line":1238,"updated":"2016-02-04 16:32:00.000000000","message":"why not wrap everything in a try: except: reraise finally: logout ?","commit_id":"acff3b8bc689d1c16d44559c27f476983032df4f"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"503b86392062799beab861eb2cd8107dbec8fee4","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"                     \"now being managed.\"),"},{"line_number":1236,"context_line":"                 {\u0027disp\u0027: display_name, \u0027new\u0027: new_snap_name})"},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"        self._logout(client)"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":"        # Return display name to update the name displayed in the GUI and"},{"line_number":1241,"context_line":"        # any model updates from retype."}],"source_content_type":"text/x-python","patch_set":12,"id":"5a5ae5dd_822766b5","line":1238,"in_reply_to":"5a5ae5dd_93d1035a","updated":"2016-02-04 18:22:07.000000000","message":"Done","commit_id":"acff3b8bc689d1c16d44559c27f476983032df4f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"70fc4fe720b9abd0b6ac3c185a822eade12f2844","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"                                            snapshot,"},{"line_number":1188,"context_line":"                                            target_snap_name,"},{"line_number":1189,"context_line":"                                            existing_ref)"},{"line_number":1190,"context_line":"        except Exception:"},{"line_number":1191,"context_line":"            # Re-raise any exceptions that occured."},{"line_number":1192,"context_line":"            raise"},{"line_number":1193,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a5ae5dd_16a94f7b","line":1190,"updated":"2016-02-05 15:21:19.000000000","message":"This except section should be removed and just have try/finally.","commit_id":"83a7944b7c99bbee66167a8eb19378b5c31dd884"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"50e15fd6566e415f6192507dea155f8178688eb1","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"                                            snapshot,"},{"line_number":1188,"context_line":"                                            target_snap_name,"},{"line_number":1189,"context_line":"                                            existing_ref)"},{"line_number":1190,"context_line":"        except Exception:"},{"line_number":1191,"context_line":"            # Re-raise any exceptions that occured."},{"line_number":1192,"context_line":"            raise"},{"line_number":1193,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a5ae5dd_a20b5029","line":1190,"in_reply_to":"5a5ae5dd_16a94f7b","updated":"2016-02-05 16:53:36.000000000","message":"good call, lets spin another patch and then shove it through?","commit_id":"83a7944b7c99bbee66167a8eb19378b5c31dd884"},{"author":{"_account_id":11903,"name":"Anthony Lee","email":"anthony.mic.lee@hpe.com","username":"leeantho"},"change_message_id":"a05162feda070340483e832b004f88a43a6cfa64","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"                                            snapshot,"},{"line_number":1188,"context_line":"                                            target_snap_name,"},{"line_number":1189,"context_line":"                                            existing_ref)"},{"line_number":1190,"context_line":"        except Exception:"},{"line_number":1191,"context_line":"            # Re-raise any exceptions that occured."},{"line_number":1192,"context_line":"            raise"},{"line_number":1193,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a5ae5dd_2865ffb3","line":1190,"in_reply_to":"5a5ae5dd_a20b5029","updated":"2016-02-05 17:25:21.000000000","message":"Done","commit_id":"83a7944b7c99bbee66167a8eb19378b5c31dd884"}]}
