)]}'
{"cinder/volume/drivers/emc/emc_vmax_common.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"b7fb6ff5dac1c58858ea1265ae9c5d79ca8a59ce","unresolved":false,"context_lines":[{"line_number":831,"context_line":"                    assocStorageGroupInstanceName,"},{"line_number":832,"context_line":"                    volumeInstance.path, volumeName, extraSpecs)"},{"line_number":833,"context_line":"            else:"},{"line_number":834,"context_line":"                # The volume is already in the default"},{"line_number":835,"context_line":"                return_to_default \u003d False"},{"line_number":836,"context_line":"        if return_to_default:"},{"line_number":837,"context_line":"            self.add_to_default_SG("}],"source_content_type":"text/x-python","patch_set":7,"id":"9af37de9_6ac5ed59","line":834,"updated":"2015-05-11 10:00:57.000000000","message":"More better to add a \".\" to the end of the comment.","commit_id":"1fc4ebfd53f186a310677885ccd353cd86e7bf3c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"27e7f4ce91d9edf4c582aaf51c534e9b0802f523","unresolved":false,"context_lines":[{"line_number":831,"context_line":"                    assocStorageGroupInstanceName,"},{"line_number":832,"context_line":"                    volumeInstance.path, volumeName, extraSpecs)"},{"line_number":833,"context_line":"            else:"},{"line_number":834,"context_line":"                # The volume is already in the default"},{"line_number":835,"context_line":"                return_to_default \u003d False"},{"line_number":836,"context_line":"        if return_to_default:"},{"line_number":837,"context_line":"            self.add_to_default_SG("}],"source_content_type":"text/x-python","patch_set":7,"id":"9af37de9_8b880924","line":834,"in_reply_to":"9af37de9_6ac5ed59","updated":"2015-05-11 15:46:24.000000000","message":"Done","commit_id":"1fc4ebfd53f186a310677885ccd353cd86e7bf3c"}],"cinder/volume/drivers/emc/emc_vmax_masking.py":[{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"5174175e656568ec74cd88f91260003f69a69f03","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                                            defaultStorageGroupInstanceName))"},{"line_number":134,"context_line":"            LOG.debug("},{"line_number":135,"context_line":"                \"The masking view in the attach operation is \""},{"line_number":136,"context_line":"                \"%(maskingViewInstanceName)s.\","},{"line_number":137,"context_line":"                {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":138,"context_line":"        except Exception as e:"},{"line_number":139,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_d1a0b9a1","line":136,"updated":"2015-04-08 20:57:56.000000000","message":"Log the storageGroupInstanceName as well?","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                                            defaultStorageGroupInstanceName))"},{"line_number":134,"context_line":"            LOG.debug("},{"line_number":135,"context_line":"                \"The masking view in the attach operation is \""},{"line_number":136,"context_line":"                \"%(maskingViewInstanceName)s.\","},{"line_number":137,"context_line":"                {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":138,"context_line":"        except Exception as e:"},{"line_number":139,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_e571e8a9","line":136,"in_reply_to":"9aa53dc9_d1a0b9a1","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4021c88681494df608c873cd2937c6ad35a5be39","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                \"%(maskingViewInstanceName)s.\","},{"line_number":137,"context_line":"                {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":138,"context_line":"        except Exception as e:"},{"line_number":139,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"},{"line_number":140,"context_line":"            errorMessage \u003d e"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        if not errorMessage:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_f548895d","line":139,"updated":"2015-04-02 17:29:56.000000000","message":"This needs some context to be useful I think.  \"Exception validating masking view: %s\" or something like that ?","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                \"%(maskingViewInstanceName)s.\","},{"line_number":137,"context_line":"                {\u0027maskingViewInstanceName\u0027: maskingViewInstanceName})"},{"line_number":138,"context_line":"        except Exception as e:"},{"line_number":139,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"},{"line_number":140,"context_line":"            errorMessage \u003d e"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        if not errorMessage:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_c5694cc0","line":139,"in_reply_to":"baa041b7_f548895d","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4021c88681494df608c873cd2937c6ad35a5be39","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"                            {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1243,"context_line":"                             \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1244,"context_line":"                    message \u003d (_(\"V2 rollback, volume is not in any storage \""},{"line_number":1245,"context_line":"                                 \"group\"))"},{"line_number":1246,"context_line":"                else:"},{"line_number":1247,"context_line":"                    LOG.info(_LI("},{"line_number":1248,"context_line":"                        \"The storage group found is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_f51ac96d","line":1245,"updated":"2015-04-02 17:29:56.000000000","message":"Suggest \u0027.\u0027 here.","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"                            {\u0027volumeName\u0027: rollbackDict[\u0027volumeName\u0027],"},{"line_number":1243,"context_line":"                             \u0027fastPolicyName\u0027: rollbackDict[\u0027fastPolicyName\u0027]})"},{"line_number":1244,"context_line":"                    message \u003d (_(\"V2 rollback, volume is not in any storage \""},{"line_number":1245,"context_line":"                                 \"group\"))"},{"line_number":1246,"context_line":"                else:"},{"line_number":1247,"context_line":"                    LOG.info(_LI("},{"line_number":1248,"context_line":"                        \"The storage group found is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_459c1cc0","line":1245,"in_reply_to":"baa041b7_f51ac96d","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4021c88681494df608c873cd2937c6ad35a5be39","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"                            rollbackDict[\u0027volumeName\u0027],"},{"line_number":1264,"context_line":"                            rollbackDict[\u0027extraSpecs\u0027])"},{"line_number":1265,"context_line":"                    message \u003d (_(\"V2 rollback - Volume in another storage \""},{"line_number":1266,"context_line":"                                 \"group besides default storage group\"))"},{"line_number":1267,"context_line":"        except Exception as e:"},{"line_number":1268,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"},{"line_number":1269,"context_line":"            errorMessage \u003d (_("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_35115153","line":1266,"updated":"2015-04-02 17:29:56.000000000","message":"Suggest \u0027.\u0027 here.","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"                            rollbackDict[\u0027volumeName\u0027],"},{"line_number":1264,"context_line":"                            rollbackDict[\u0027extraSpecs\u0027])"},{"line_number":1265,"context_line":"                    message \u003d (_(\"V2 rollback - Volume in another storage \""},{"line_number":1266,"context_line":"                                 \"group besides default storage group\"))"},{"line_number":1267,"context_line":"        except Exception as e:"},{"line_number":1268,"context_line":"            LOG.error(_LE(\"Exception: %s.\"), e)"},{"line_number":1269,"context_line":"            errorMessage \u003d (_("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_a5abe0d5","line":1266,"in_reply_to":"baa041b7_35115153","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"039cc0adee65f842e68e1dbd39eaab0cd739ece8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                \"Masking View creation or retrieval was not successful \""},{"line_number":143,"context_line":"                \"for masking view %(maskingViewName)s. \""},{"line_number":144,"context_line":"                \"The exception was %(ex)s. Attempting rollback.\")"},{"line_number":145,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewDict[\u0027maskingViewName\u0027],"},{"line_number":146,"context_line":"                   \u0027ex\u0027: e})"},{"line_number":147,"context_line":"            errorMessage \u003d e"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a0c5dc1_b852f711","line":145,"updated":"2015-05-12 22:09:59.000000000","message":"Change % to , otherwise e needs to be wrapped in six.text_type().","commit_id":"182879c8b4fbac948c417884f974e390a2b350b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5ce8a5cd695cdff9448ad6610b1c91ad5721e5d1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                \"Masking View creation or retrieval was not successful \""},{"line_number":143,"context_line":"                \"for masking view %(maskingViewName)s. \""},{"line_number":144,"context_line":"                \"The exception was %(ex)s. Attempting rollback.\")"},{"line_number":145,"context_line":"                % {\u0027maskingViewName\u0027: maskingViewDict[\u0027maskingViewName\u0027],"},{"line_number":146,"context_line":"                   \u0027ex\u0027: e})"},{"line_number":147,"context_line":"            errorMessage \u003d e"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a0c5dc1_1e93265d","line":145,"in_reply_to":"9a0c5dc1_b852f711","updated":"2015-05-13 15:57:32.000000000","message":"Changed this to LOG.exception(_LE(xxxx)). e is still needed for code below.","commit_id":"182879c8b4fbac948c417884f974e390a2b350b6"}],"cinder/volume/drivers/emc/emc_vmax_utils.py":[{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"5174175e656568ec74cd88f91260003f69a69f03","unresolved":false,"context_lines":[{"line_number":507,"context_line":"            ResultClass\u003d\u0027CIM_DeviceMaskingGroup\u0027)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        if len(storageGroupInstanceNames) \u003e 1:"},{"line_number":510,"context_line":"            LOG.warning(_LW("},{"line_number":511,"context_line":"                \"The volume belongs to more than one storage group. \""},{"line_number":512,"context_line":"                \"Returning storage group %(sgName)s.\"),"},{"line_number":513,"context_line":"                {\u0027sgName\u0027: sgName})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_e43d3dbc","line":510,"updated":"2015-04-08 20:57:56.000000000","message":"This probably is just INFOrmational and need not be a warning, right? Also, the message is a little misleading because the method could still return None if a match is not found.","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":507,"context_line":"            ResultClass\u003d\u0027CIM_DeviceMaskingGroup\u0027)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        if len(storageGroupInstanceNames) \u003e 1:"},{"line_number":510,"context_line":"            LOG.warning(_LW("},{"line_number":511,"context_line":"                \"The volume belongs to more than one storage group. \""},{"line_number":512,"context_line":"                \"Returning storage group %(sgName)s.\"),"},{"line_number":513,"context_line":"                {\u0027sgName\u0027: sgName})"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_05f4d4ef","line":510,"in_reply_to":"9aa53dc9_e43d3dbc","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"5174175e656568ec74cd88f91260003f69a69f03","unresolved":false,"context_lines":[{"line_number":516,"context_line":"                conn, storageGroupInstanceName)"},{"line_number":517,"context_line":"            if instance is None:"},{"line_number":518,"context_line":"                # Storage group not found."},{"line_number":519,"context_line":"                foundStorageGroupInstanceName \u003d None"},{"line_number":520,"context_line":"            elif sgName \u003d\u003d instance[\u0027ElementName\u0027]:"},{"line_number":521,"context_line":"                foundStorageGroupInstanceName \u003d storageGroupInstanceName"},{"line_number":522,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_440aa922","line":519,"updated":"2015-04-08 20:57:56.000000000","message":"I don\u0027t think this \"foundStorageGroupInstanceName \u003d None\" has any affect. So this could be made into a single if check without an elif. Not a big deal though.","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a6922fb578e4af4d9faf768108c169b1466ea69c","unresolved":false,"context_lines":[{"line_number":516,"context_line":"                conn, storageGroupInstanceName)"},{"line_number":517,"context_line":"            if instance is None:"},{"line_number":518,"context_line":"                # Storage group not found."},{"line_number":519,"context_line":"                foundStorageGroupInstanceName \u003d None"},{"line_number":520,"context_line":"            elif sgName \u003d\u003d instance[\u0027ElementName\u0027]:"},{"line_number":521,"context_line":"                foundStorageGroupInstanceName \u003d storageGroupInstanceName"},{"line_number":522,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_c5deec6c","line":519,"in_reply_to":"9aa53dc9_440aa922","updated":"2015-04-14 04:00:35.000000000","message":"Done","commit_id":"d2aac06de83e76d8132ed3df839b63312698fba4"}]}
