)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"983bdf4865a5dbec2b5dc07a610bd2f48783d37c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     swapnil-nilangekar \u003cswapnil.sun.nilangekar@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-21 02:46:40 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE 3PAR: CG capability in GVG for HPE-3PAR drivers."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This supports following functionality:"},{"line_number":10,"context_line":"* Create consistent group using GVG APIs"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5ff73747_8619d089","line":7,"updated":"2017-04-22 02:03:25.000000000","message":"Please don\u0027t use meaningless acronyms.  Expand GVG so that people can understand what it means outside cinder developers.","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"6af3517d2011968795852d8ae381b7f4e99a0361","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     swapnil-nilangekar \u003cswapnil.sun.nilangekar@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-21 02:46:40 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE 3PAR: CG capability in GVG for HPE-3PAR drivers."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This supports following functionality:"},{"line_number":10,"context_line":"* Create consistent group using GVG APIs"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5ff73747_475166d8","line":7,"in_reply_to":"5ff73747_8619d089","updated":"2017-04-24 15:12:08.000000000","message":"Done","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"}],"cinder/volume/drivers/hpe/hpe_3par_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                if not allow_type:"},{"line_number":538,"context_line":"                    msg \u003d _(\u0027For a volume type to be a part of consistent \u0027"},{"line_number":539,"context_line":"                            \u0027group, volume type extra spec must have \u0027"},{"line_number":540,"context_line":"                            \u0027consistent_group_snapshot_enabled\u003d\u003cis\u003e True\u0027)"},{"line_number":541,"context_line":"                    LOG.error(msg)"},{"line_number":542,"context_line":"                    raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_0f6cee05","line":540,"range":{"start_line":540,"start_character":63,"end_line":540,"end_character":72},"updated":"2017-04-11 16:39:32.000000000","message":"\"\u003cis\u003e True\"","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                if not allow_type:"},{"line_number":538,"context_line":"                    msg \u003d _(\u0027For a volume type to be a part of consistent \u0027"},{"line_number":539,"context_line":"                            \u0027group, volume type extra spec must have \u0027"},{"line_number":540,"context_line":"                            \u0027consistent_group_snapshot_enabled\u003d\u003cis\u003e True\u0027)"},{"line_number":541,"context_line":"                    LOG.error(msg)"},{"line_number":542,"context_line":"                    raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_4b2094f7","line":540,"range":{"start_line":540,"start_character":63,"end_line":540,"end_character":72},"in_reply_to":"bff0334d_0f6cee05","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":652,"context_line":"                else:"},{"line_number":653,"context_line":"                    msg \u003d (_(\u0027Volume with volume id %s is not \u0027"},{"line_number":654,"context_line":"                             \u0027supported as extra specs of this \u0027"},{"line_number":655,"context_line":"                             \u0027volume do not have \u0027"},{"line_number":656,"context_line":"                             \u0027consistent_group_snap_enable \u003d\u003cis\u003e True\u0027"},{"line_number":657,"context_line":"                             ) % volume[\u0027id\u0027])"},{"line_number":658,"context_line":"                    LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_6f281a96","line":655,"range":{"start_line":655,"start_character":37,"end_line":655,"end_character":39},"updated":"2017-04-11 16:39:32.000000000","message":"does","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":652,"context_line":"                else:"},{"line_number":653,"context_line":"                    msg \u003d (_(\u0027Volume with volume id %s is not \u0027"},{"line_number":654,"context_line":"                             \u0027supported as extra specs of this \u0027"},{"line_number":655,"context_line":"                             \u0027volume do not have \u0027"},{"line_number":656,"context_line":"                             \u0027consistent_group_snap_enable \u003d\u003cis\u003e True\u0027"},{"line_number":657,"context_line":"                             ) % volume[\u0027id\u0027])"},{"line_number":658,"context_line":"                    LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_2b70b007","line":655,"range":{"start_line":655,"start_character":37,"end_line":655,"end_character":39},"in_reply_to":"bff0334d_6f281a96","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":653,"context_line":"                    msg \u003d (_(\u0027Volume with volume id %s is not \u0027"},{"line_number":654,"context_line":"                             \u0027supported as extra specs of this \u0027"},{"line_number":655,"context_line":"                             \u0027volume do not have \u0027"},{"line_number":656,"context_line":"                             \u0027consistent_group_snap_enable \u003d\u003cis\u003e True\u0027"},{"line_number":657,"context_line":"                             ) % volume[\u0027id\u0027])"},{"line_number":658,"context_line":"                    LOG.error(msg)"},{"line_number":659,"context_line":"                    raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_8f2d9ea9","line":656,"range":{"start_line":656,"start_character":52,"end_line":656,"end_character":58},"updated":"2017-04-11 16:39:32.000000000","message":"s/enable/enabled","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":653,"context_line":"                    msg \u003d (_(\u0027Volume with volume id %s is not \u0027"},{"line_number":654,"context_line":"                             \u0027supported as extra specs of this \u0027"},{"line_number":655,"context_line":"                             \u0027volume do not have \u0027"},{"line_number":656,"context_line":"                             \u0027consistent_group_snap_enable \u003d\u003cis\u003e True\u0027"},{"line_number":657,"context_line":"                             ) % volume[\u0027id\u0027])"},{"line_number":658,"context_line":"                    LOG.error(msg)"},{"line_number":659,"context_line":"                    raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_af22a2b7","line":656,"range":{"start_line":656,"start_character":47,"end_line":656,"end_character":51},"updated":"2017-04-11 16:39:32.000000000","message":"s/snap/snapshot","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":653,"context_line":"                    msg \u003d (_(\u0027Volume with volume id %s is not \u0027"},{"line_number":654,"context_line":"                             \u0027supported as extra specs of this \u0027"},{"line_number":655,"context_line":"                             \u0027volume do not have \u0027"},{"line_number":656,"context_line":"                             \u0027consistent_group_snap_enable \u003d\u003cis\u003e True\u0027"},{"line_number":657,"context_line":"                             ) % volume[\u0027id\u0027])"},{"line_number":658,"context_line":"                    LOG.error(msg)"},{"line_number":659,"context_line":"                    raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_0b65ec45","line":656,"range":{"start_line":656,"start_character":47,"end_line":656,"end_character":51},"in_reply_to":"bff0334d_af22a2b7","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":712,"context_line":"        snapshot_model_updates \u003d []"},{"line_number":713,"context_line":"        for snapshot in snapshots:"},{"line_number":714,"context_line":"            snapshot_update \u003d {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":715,"context_line":"                               \u0027status\u0027: fields.GroupSnapshotStatus.AVAILABLE}"},{"line_number":716,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_322ef591","line":715,"range":{"start_line":715,"start_character":41,"end_line":715,"end_character":77},"updated":"2017-04-11 16:39:32.000000000","message":"fields.SnapshotStatus.AVAILABLE is correct as this is a snapshot.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":712,"context_line":"        snapshot_model_updates \u003d []"},{"line_number":713,"context_line":"        for snapshot in snapshots:"},{"line_number":714,"context_line":"            snapshot_update \u003d {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":715,"context_line":"                               \u0027status\u0027: fields.GroupSnapshotStatus.AVAILABLE}"},{"line_number":716,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_eb67684c","line":715,"range":{"start_line":715,"start_character":41,"end_line":715,"end_character":77},"in_reply_to":"bff0334d_322ef591","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":715,"context_line":"                               \u0027status\u0027: fields.GroupSnapshotStatus.AVAILABLE}"},{"line_number":716,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        return model_update, snapshot_model_updates"},{"line_number":721,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_3205d511","line":718,"range":{"start_line":718,"start_character":34,"end_line":718,"end_character":45},"updated":"2017-04-11 16:39:32.000000000","message":"fields.GroupSnapshotStatus.AVAILABLE","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":715,"context_line":"                               \u0027status\u0027: fields.GroupSnapshotStatus.AVAILABLE}"},{"line_number":716,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        return model_update, snapshot_model_updates"},{"line_number":721,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_ab5de079","line":718,"range":{"start_line":718,"start_character":34,"end_line":718,"end_character":45},"in_reply_to":"bff0334d_3205d511","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":731,"context_line":"            try:"},{"line_number":732,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":733,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":734,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.DELETED"},{"line_number":735,"context_line":"            except hpeexceptions.HTTPNotFound as ex:"},{"line_number":736,"context_line":"                # We\u0027ll let this act as if it worked"},{"line_number":737,"context_line":"                # it helps clean up the cinder entries."}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_f2588d31","line":734,"range":{"start_line":734,"start_character":44,"end_line":734,"end_character":78},"updated":"2017-04-11 16:39:32.000000000","message":"fields.SnapshotStatus.DELETED is correct.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":731,"context_line":"            try:"},{"line_number":732,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":733,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":734,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.DELETED"},{"line_number":735,"context_line":"            except hpeexceptions.HTTPNotFound as ex:"},{"line_number":736,"context_line":"                # We\u0027ll let this act as if it worked"},{"line_number":737,"context_line":"                # it helps clean up the cinder entries."}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_ebcc0836","line":734,"range":{"start_line":734,"start_character":44,"end_line":734,"end_character":78},"in_reply_to":"bff0334d_f2588d31","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":738,"context_line":"                LOG.warning(\"Delete Snapshot id not found. Removing from \""},{"line_number":739,"context_line":"                            \"cinder: %(id)s Ex: %(msg)s\","},{"line_number":740,"context_line":"                            {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027msg\u0027: ex})"},{"line_number":741,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":742,"context_line":"            except Exception as ex:"},{"line_number":743,"context_line":"                LOG.error(\"There was an error deleting snapshot %(id)s: \""},{"line_number":744,"context_line":"                          \"%(error)s.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_72447d47","line":741,"range":{"start_line":741,"start_character":44,"end_line":741,"end_character":76},"updated":"2017-04-11 16:39:32.000000000","message":"Should be SnapshotStatus.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":738,"context_line":"                LOG.warning(\"Delete Snapshot id not found. Removing from \""},{"line_number":739,"context_line":"                            \"cinder: %(id)s Ex: %(msg)s\","},{"line_number":740,"context_line":"                            {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027msg\u0027: ex})"},{"line_number":741,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":742,"context_line":"            except Exception as ex:"},{"line_number":743,"context_line":"                LOG.error(\"There was an error deleting snapshot %(id)s: \""},{"line_number":744,"context_line":"                          \"%(error)s.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_cbcf0427","line":741,"range":{"start_line":741,"start_character":44,"end_line":741,"end_character":76},"in_reply_to":"bff0334d_72447d47","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                          \"%(error)s.\","},{"line_number":745,"context_line":"                          {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":746,"context_line":"                           \u0027error\u0027: six.text_type(ex)})"},{"line_number":747,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":748,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"        model_update \u003d {\u0027status\u0027: group_snapshot.status}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_d26c69cf","line":747,"range":{"start_line":747,"start_character":51,"end_line":747,"end_character":70},"updated":"2017-04-11 16:39:32.000000000","message":"Should be SnapshotStatus.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                          \"%(error)s.\","},{"line_number":745,"context_line":"                          {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":746,"context_line":"                           \u0027error\u0027: six.text_type(ex)})"},{"line_number":747,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":748,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"        model_update \u003d {\u0027status\u0027: group_snapshot.status}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_0bf3ac75","line":747,"range":{"start_line":747,"start_character":51,"end_line":747,"end_character":70},"in_reply_to":"bff0334d_d26c69cf","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":748,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"        model_update \u003d {\u0027status\u0027: group_snapshot.status}"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        return model_update, snapshot_model_updates"},{"line_number":753,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_328a7569","line":750,"range":{"start_line":750,"start_character":34,"end_line":750,"end_character":55},"updated":"2017-04-11 16:39:32.000000000","message":"fields.GroupSnapshotStatus.DELETED","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                snapshot_update[\u0027status\u0027] \u003d fields.GroupSnapshotStatus.ERROR"},{"line_number":748,"context_line":"            snapshot_model_updates.append(snapshot_update)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"        model_update \u003d {\u0027status\u0027: group_snapshot.status}"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        return model_update, snapshot_model_updates"},{"line_number":753,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_abeba075","line":750,"range":{"start_line":750,"start_character":34,"end_line":750,"end_character":55},"in_reply_to":"bff0334d_328a7569","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"                   \u0027vol_name\u0027: volume[\u0027name\u0027],"},{"line_number":1915,"context_line":"                   \u0027id\u0027: self._get_3par_vol_name(volume[\u0027id\u0027]),"},{"line_number":1916,"context_line":"                   \u0027host\u0027: volume[\u0027host\u0027]})"},{"line_number":1917,"context_line":"        LOG.debug(\u0027Value of Volume is %s :\u0027, volume)"},{"line_number":1918,"context_line":"        try:"},{"line_number":1919,"context_line":"            comments \u003d {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":1920,"context_line":"                        \u0027name\u0027: volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_b2956589","line":1917,"range":{"start_line":1917,"start_character":8,"end_line":1917,"end_character":52},"updated":"2017-04-11 16:39:32.000000000","message":"This seems to be an unnecessary debug msg.  You already have a debug msg above.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"                   \u0027vol_name\u0027: volume[\u0027name\u0027],"},{"line_number":1915,"context_line":"                   \u0027id\u0027: self._get_3par_vol_name(volume[\u0027id\u0027]),"},{"line_number":1916,"context_line":"                   \u0027host\u0027: volume[\u0027host\u0027]})"},{"line_number":1917,"context_line":"        LOG.debug(\u0027Value of Volume is %s :\u0027, volume)"},{"line_number":1918,"context_line":"        try:"},{"line_number":1919,"context_line":"            comments \u003d {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":1920,"context_line":"                        \u0027name\u0027: volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_4bfc143d","line":1917,"range":{"start_line":1917,"start_character":8,"end_line":1917,"end_character":52},"in_reply_to":"bff0334d_b2956589","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"16842affa875ec0f6beee0556f8d65f203f1c688","unresolved":false,"context_lines":[{"line_number":532,"context_line":"            raise NotImplementedError()"},{"line_number":533,"context_line":"        if group.volume_type_ids is not None:"},{"line_number":534,"context_line":"            for vol_type_id in group.volume_type_ids:"},{"line_number":535,"context_line":"                allow_type \u003d self.is_volume_group_snap_type("},{"line_number":536,"context_line":"                    vol_type_id)"},{"line_number":537,"context_line":"                if not allow_type:"},{"line_number":538,"context_line":"                    msg \u003d _(\u0027For a volume type to be a part of consistent \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_f07133e2","line":535,"updated":"2017-04-17 17:25:36.000000000","message":"group.volume_types is a list of VolumeType objects.  Each VolumeType object contains extra_specs attributes already.  So you should just loop around group.volume_types and get extra_specs directly from volume_type.extra_specs so you don\u0027t need to retrieve volume type by volume type id (avoid an extra call to db).","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"9840a83e17f3a62e8de3dea3f5b90e9e313ff422","unresolved":false,"context_lines":[{"line_number":532,"context_line":"            raise NotImplementedError()"},{"line_number":533,"context_line":"        if group.volume_type_ids is not None:"},{"line_number":534,"context_line":"            for vol_type_id in group.volume_type_ids:"},{"line_number":535,"context_line":"                allow_type \u003d self.is_volume_group_snap_type("},{"line_number":536,"context_line":"                    vol_type_id)"},{"line_number":537,"context_line":"                if not allow_type:"},{"line_number":538,"context_line":"                    msg \u003d _(\u0027For a volume type to be a part of consistent \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_eca9d78f","line":535,"in_reply_to":"7ffa3b31_f07133e2","updated":"2017-04-21 09:25:15.000000000","message":"Done","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"16842affa875ec0f6beee0556f8d65f203f1c688","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        for volume in add_volumes:"},{"line_number":645,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume[\u0027id\u0027])"},{"line_number":646,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":647,"context_line":"                volume[\u0027volume_type_id\u0027])"},{"line_number":648,"context_line":"            try:"},{"line_number":649,"context_line":"                if grp_snap_enable and vol_snap_enable:"},{"line_number":650,"context_line":"                    self.client.addVolumeToVolumeSet(volume_set_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_9059cf5b","line":647,"updated":"2017-04-17 17:25:36.000000000","message":"volume.volume_type is an object of VolumeType.  No need to retrieve volume type by volume type id from db.","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"9840a83e17f3a62e8de3dea3f5b90e9e313ff422","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        for volume in add_volumes:"},{"line_number":645,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume[\u0027id\u0027])"},{"line_number":646,"context_line":"            vol_snap_enable \u003d self.is_volume_group_snap_type("},{"line_number":647,"context_line":"                volume[\u0027volume_type_id\u0027])"},{"line_number":648,"context_line":"            try:"},{"line_number":649,"context_line":"                if grp_snap_enable and vol_snap_enable:"},{"line_number":650,"context_line":"                    self.client.addVolumeToVolumeSet(volume_set_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_8c7b7326","line":647,"in_reply_to":"7ffa3b31_9059cf5b","updated":"2017-04-21 09:25:15.000000000","message":"Done","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"16842affa875ec0f6beee0556f8d65f203f1c688","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"    def is_volume_group_snap_type(self, volume_type_id):"},{"line_number":3306,"context_line":"        consis_group_snap_type \u003d False"},{"line_number":3307,"context_line":"        if volume_type_id:"},{"line_number":3308,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":3309,"context_line":""},{"line_number":3310,"context_line":"            extra_specs \u003d volume_type.get(\u0027extra_specs\u0027)"},{"line_number":3311,"context_line":"            if \u0027consistent_group_snapshot_enabled\u0027 in extra_specs:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_0b09102b","line":3308,"updated":"2017-04-17 17:25:36.000000000","message":"As I said in previous comments, no need to get volume type from db again.  You should already have volume type to start with.  This Is_volume_group_snap_type should be modified.","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"9840a83e17f3a62e8de3dea3f5b90e9e313ff422","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"    def is_volume_group_snap_type(self, volume_type_id):"},{"line_number":3306,"context_line":"        consis_group_snap_type \u003d False"},{"line_number":3307,"context_line":"        if volume_type_id:"},{"line_number":3308,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":3309,"context_line":""},{"line_number":3310,"context_line":"            extra_specs \u003d volume_type.get(\u0027extra_specs\u0027)"},{"line_number":3311,"context_line":"            if \u0027consistent_group_snapshot_enabled\u0027 in extra_specs:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_2c921f4d","line":3308,"in_reply_to":"7ffa3b31_0b09102b","updated":"2017-04-21 09:25:15.000000000","message":"Done","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"983bdf4865a5dbec2b5dc07a610bd2f48783d37c","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        3.0.29 - Fix convert snapshot volume to base volume type. bug #1656186"},{"line_number":255,"context_line":"        3.0.30 - Handle manage and unmanage hosts present. bug #1648067"},{"line_number":256,"context_line":"        3.0.31 - Enable HPE-3PAR Compression Feature."},{"line_number":257,"context_line":"        3.0.32 - Add CG capability to GVG in HPE-3APR"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    \"\"\""},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_a62a8c8d","line":257,"updated":"2017-04-22 02:03:25.000000000","message":"Please use meaningful descriptions.  GVG doesn\u0027t mean much to anyone other than driver developers.  Remember, that admins that deploy Cinder and use the drivers read these.","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"6af3517d2011968795852d8ae381b7f4e99a0361","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        3.0.29 - Fix convert snapshot volume to base volume type. bug #1656186"},{"line_number":255,"context_line":"        3.0.30 - Handle manage and unmanage hosts present. bug #1648067"},{"line_number":256,"context_line":"        3.0.31 - Enable HPE-3PAR Compression Feature."},{"line_number":257,"context_line":"        3.0.32 - Add CG capability to GVG in HPE-3APR"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    \"\"\""},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_87f52ece","line":257,"in_reply_to":"5ff73747_a62a8c8d","updated":"2017-04-24 15:12:08.000000000","message":"Done","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"}],"cinder/volume/drivers/hpe/hpe_3par_fc.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"983bdf4865a5dbec2b5dc07a610bd2f48783d37c","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    \"\"\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    VERSION \u003d \"3.0.11\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # The name of the CI wiki page."},{"line_number":119,"context_line":"    CI_WIKI_NAME \u003d \"HPE_Storage_CI\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_7103200f","line":116,"updated":"2017-04-22 02:03:25.000000000","message":"you need to bump the version of this file as well, since there are changes.","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"6af3517d2011968795852d8ae381b7f4e99a0361","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    \"\"\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    VERSION \u003d \"3.0.11\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # The name of the CI wiki page."},{"line_number":119,"context_line":"    CI_WIKI_NAME \u003d \"HPE_Storage_CI\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_4718461c","line":116,"in_reply_to":"5ff73747_7103200f","updated":"2017-04-24 15:12:08.000000000","message":"Done","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c3d6e115ea39d786d031787eb4e08d4d9572a9f3","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                by another host, while creating 3PAR FC Host. bug #1597454"},{"line_number":111,"context_line":"        3.0.10 - Added Entry point tracing"},{"line_number":112,"context_line":"        3.0.11 - Handle manage and unmanage hosts present. bug #1648067"},{"line_number":113,"context_line":"        3.0.12 - Adds consistecncy group capability in generic volume groups."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_f6aa6283","line":113,"updated":"2017-04-24 17:48:16.000000000","message":"consistency","commit_id":"71565a8582692d63fdc505342186c7df839b31ae"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"c485f72953437135d9cf458a63e71b957f90d4b1","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                by another host, while creating 3PAR FC Host. bug #1597454"},{"line_number":111,"context_line":"        3.0.10 - Added Entry point tracing"},{"line_number":112,"context_line":"        3.0.11 - Handle manage and unmanage hosts present. bug #1648067"},{"line_number":113,"context_line":"        3.0.12 - Adds consistecncy group capability in generic volume groups."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_b60dfa3f","line":113,"in_reply_to":"5ff73747_f6aa6283","updated":"2017-04-24 18:02:32.000000000","message":"Done","commit_id":"71565a8582692d63fdc505342186c7df839b31ae"}],"cinder/volume/drivers/hpe/hpe_3par_iscsi.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"983bdf4865a5dbec2b5dc07a610bd2f48783d37c","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    \"\"\""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    VERSION \u003d \"3.0.14\""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    # The name of the CI wiki page."},{"line_number":131,"context_line":"    CI_WIKI_NAME \u003d \"HPE_Storage_CI\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_11129c59","line":128,"updated":"2017-04-22 02:03:25.000000000","message":"you need to bump the version of this file since there are changes.","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"6af3517d2011968795852d8ae381b7f4e99a0361","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    \"\"\""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    VERSION \u003d \"3.0.14\""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    # The name of the CI wiki page."},{"line_number":131,"context_line":"    CI_WIKI_NAME \u003d \"HPE_Storage_CI\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_87e3ee05","line":128,"in_reply_to":"5ff73747_11129c59","updated":"2017-04-24 15:12:08.000000000","message":"Done","commit_id":"8b8c8e62f5301b61ace6ecc1ffb9b7744742a000"}],"releasenotes/notes/HPE-3par-Generic-Volume-Group-e048002e1c3469a3.yaml":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f611fe0273e7895af738345fde8e3950c55468ce","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    * Delete consistent group snapshot using GVG APIs"},{"line_number":10,"context_line":"    * Update (add/remove) volume from a group using GVG APIs"},{"line_number":11,"context_line":"    * Create group from a source using GVG APIs, where source can be"},{"line_number":12,"context_line":"      a group or a snapshot of a group"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bff0334d_2fbe92b3","line":12,"updated":"2017-04-11 16:39:32.000000000","message":"Let\u0027s be consistent with other similar patches.  Please change to the following:\n\n---\nfeatures:\n  - Add consistency group capability to generic volume groups in the HPE 3PAR driver.","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"555d5fa20eed45e22cde52969b2542f115254169","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    * Delete consistent group snapshot using GVG APIs"},{"line_number":10,"context_line":"    * Update (add/remove) volume from a group using GVG APIs"},{"line_number":11,"context_line":"    * Create group from a source using GVG APIs, where source can be"},{"line_number":12,"context_line":"      a group or a snapshot of a group"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bff0334d_abb96079","line":12,"in_reply_to":"bff0334d_2fbe92b3","updated":"2017-04-12 07:20:08.000000000","message":"Done","commit_id":"5ad0aa11b15e17f2a6bf0d4577023ba5521e4997"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"16842affa875ec0f6beee0556f8d65f203f1c688","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added consistency group capability to generic volume groups in the "},{"line_number":4,"context_line":"    HPE 3PAR driver."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7ffa3b31_b0d72bc0","line":3,"updated":"2017-04-17 17:25:36.000000000","message":"Please remove the trailing white space.","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"},{"author":{"_account_id":23100,"name":"Swapnil Nilangekar","email":"swapnil.sun.nilangekar@hpe.com","username":"swapnil-nilangekar"},"change_message_id":"9840a83e17f3a62e8de3dea3f5b90e9e313ff422","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added consistency group capability to generic volume groups in the "},{"line_number":4,"context_line":"    HPE 3PAR driver."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7ffa3b31_4cbfaba9","line":3,"in_reply_to":"7ffa3b31_b0d72bc0","updated":"2017-04-21 09:25:15.000000000","message":"Done","commit_id":"b17defb7a1197d1d99d98dcbb0f9374456de8cbd"}]}
