)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27336,"name":"XiaojueGuan","email":"xiaojueguan@gmail.com","username":"XiaojueGuan"},"change_message_id":"60aa2271eb24e4c25ab44a3d5a8cd026e4834548","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For new_type is dict type not VolumeType[1],"},{"line_number":10,"context_line":"getattr[2] always return None."},{"line_number":11,"context_line":"Change fro \"getattr\" to \"get\" and update unittests"},{"line_number":12,"context_line":"for fixing retype bug."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] https://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L2836"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_71294399","line":11,"range":{"start_line":11,"start_character":7,"end_line":11,"end_character":10},"updated":"2019-05-11 15:01:51.000000000","message":"from","commit_id":"a0c35d1237c6643f9f7ece7e5d96cc790a822528"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ee55bc43830c9f117af47aed5d0157f69be03b8a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For new_type[1] should be VolumeType object not dictionary."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"[1] https://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L2836"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie7165b02119f0e49902a6393fbfd33fd35ce270c"},{"line_number":14,"context_line":"Closes-Bug: #1828386"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_c175219a","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":82},"updated":"2019-05-20 14:00:42.000000000","message":"This link will be confusing later, because it just references master and not a particular git sha/tag.\n\nIt can be removed from the commit message since it just point to the code that this patch changes.","commit_id":"f2335daeebeccdb021c02b0a0ad3aa50ca92d011"}],"cinder/tests/unit/volume/test_volume_migration.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        db.volume_type_create(elevated, {\u0027name\u0027: \u0027new\u0027,"},{"line_number":772,"context_line":"                                         \u0027extra_specs\u0027: new_specs})"},{"line_number":773,"context_line":"        vol_type \u003d db.volume_type_get_by_name(elevated, \u0027new\u0027)"},{"line_number":774,"context_line":"        new_type \u003d objects.VolumeType.get_by_name_or_id(elevated,"},{"line_number":775,"context_line":"                                                        vol_type[\u0027id\u0027])"},{"line_number":776,"context_line":"        db.quota_create(elevated, project_id, \u0027volumes_new\u0027, 10)"},{"line_number":777,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_f346497b","line":774,"updated":"2019-08-05 11:09:37.000000000","message":"Use `get_by_id`","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":824,"context_line":"                mock.patch.object(db.sqlalchemy.api, \u0027volume_get\u0027) as _vget,\\"},{"line_number":825,"context_line":"                mock.patch.object(context.RequestContext, \u0027elevated\u0027) as _ctx,\\"},{"line_number":826,"context_line":"                mock.patch.object(objects.VolumeType,"},{"line_number":827,"context_line":"                                  \u0027get_by_name_or_id\u0027) as _vtget:"},{"line_number":828,"context_line":"            _vget.return_value \u003d volume"},{"line_number":829,"context_line":"            _retype.return_value \u003d driver"},{"line_number":830,"context_line":"            _ctx.return_value \u003d self.context"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_b35c514b","line":827,"updated":"2019-08-05 11:09:37.000000000","message":"`get_by_id`","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":896,"context_line":"                                      ([\u0027INFO\u0027, \u0027volume.retype\u0027],),"},{"line_number":897,"context_line":"                                      any_order\u003dTrue)"},{"line_number":898,"context_line":"            if driver:"},{"line_number":899,"context_line":"                _vtget.assert_called_once_with(self.context, vol_type[\u0027id\u0027])"},{"line_number":900,"context_line":"        elif not exc:"},{"line_number":901,"context_line":"            self.assertEqual(old_vol_type[\u0027id\u0027], volume.volume_type_id)"},{"line_number":902,"context_line":"            self.assertEqual(\u0027retyping\u0027, volume.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_1333e515","line":899,"updated":"2019-08-05 11:09:37.000000000","message":"-1: `vol_type.id`, we know it\u0027s an OVO, so we shouldn\u0027t use the dictionary mixin","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"        with mock.patch.object(self.volume,"},{"line_number":1004,"context_line":"                               \u0027migrate_volume\u0027) as migrate_volume,\\"},{"line_number":1005,"context_line":"                mock.patch.object(objects.VolumeType,"},{"line_number":1006,"context_line":"                                  \u0027get_by_name_or_id\u0027) as vt_get:"},{"line_number":1007,"context_line":"            migrate_volume.return_value \u003d True"},{"line_number":1008,"context_line":"            vt_get.return_value \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":1009,"context_line":"                self.context, new_vol_type[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_33362105","line":1006,"updated":"2019-08-05 11:09:37.000000000","message":"`get_by_id`","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"                mock.patch.object(objects.VolumeType,"},{"line_number":1006,"context_line":"                                  \u0027get_by_name_or_id\u0027) as vt_get:"},{"line_number":1007,"context_line":"            migrate_volume.return_value \u003d True"},{"line_number":1008,"context_line":"            vt_get.return_value \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":1009,"context_line":"                self.context, new_vol_type[\u0027id\u0027])"},{"line_number":1010,"context_line":"            self.volume.retype(self.context, volume, new_vol_type[\u0027id\u0027],"},{"line_number":1011,"context_line":"                               host_obj, migration_policy\u003d\u0027on-demand\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_f33ba9e6","line":1008,"updated":"2019-08-05 11:09:37.000000000","message":"`get_by_id`","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7dbeb9f90283e7d17b8e6f59bb90d7c9d3c7d8d7","unresolved":false,"context_lines":[{"line_number":993,"context_line":"        db.volume_type_create(elevated, {\u0027name\u0027: \u0027old\u0027, \u0027extra_specs\u0027: {}})"},{"line_number":994,"context_line":"        old_vol_type \u003d db.volume_type_get_by_name(elevated, \u0027old\u0027)"},{"line_number":995,"context_line":"        new_extra_specs \u003d {\u0027replication_enabled\u0027: \u0027\u003cis\u003e True\u0027}"},{"line_number":996,"context_line":"        db.volume_type_create(elevated, {\u0027name\u0027: \u0027new\u0027,"},{"line_number":997,"context_line":"                                         \u0027extra_specs\u0027: new_extra_specs})"},{"line_number":998,"context_line":"        new_vol_type \u003d db.volume_type_get_by_name(elevated, \u0027new\u0027)"},{"line_number":999,"context_line":"        volume \u003d tests_utils.create_volume(self.context, size\u003d1,"},{"line_number":1000,"context_line":"                                           host\u003dCONF.host, status\u003d\u0027available\u0027,"},{"line_number":1001,"context_line":"                                           volume_type_id\u003dold_vol_type[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"3fa7e38b_e813925a","line":998,"range":{"start_line":996,"start_character":0,"end_line":998,"end_character":66},"updated":"2019-10-17 08:39:28.000000000","message":"-1: We should be using more OVOs here\n\n  new_type \u003d db.volume_type_create(\n      elevated, {\u0027name\u0027: \u0027new\u0027, \u0027extra_specs\u0027: new_extra_specs})\n  new_vol_type \u003d objects.VolumeType.get_by_id(self.context, new_type.id)","commit_id":"8f30d80b63495a052ac70bf9131625335545818a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7dbeb9f90283e7d17b8e6f59bb90d7c9d3c7d8d7","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"                                  \u0027get_by_id\u0027) as vt_get:"},{"line_number":1008,"context_line":"            migrate_volume.return_value \u003d True"},{"line_number":1009,"context_line":"            vt_get.return_value \u003d objects.VolumeType.get_by_id("},{"line_number":1010,"context_line":"                self.context, new_vol_type[\u0027id\u0027])"},{"line_number":1011,"context_line":"            self.volume.retype(self.context, volume, new_vol_type[\u0027id\u0027],"},{"line_number":1012,"context_line":"                               host_obj, migration_policy\u003d\u0027on-demand\u0027)"},{"line_number":1013,"context_line":"            vt_get.assert_called_once_with(self.context, new_vol_type[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"3fa7e38b_080f0e2e","line":1010,"updated":"2019-10-17 08:39:28.000000000","message":"vt_get.return_value \u003d new_vol_type","commit_id":"8f30d80b63495a052ac70bf9131625335545818a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7dbeb9f90283e7d17b8e6f59bb90d7c9d3c7d8d7","unresolved":false,"context_lines":[{"line_number":1008,"context_line":"            migrate_volume.return_value \u003d True"},{"line_number":1009,"context_line":"            vt_get.return_value \u003d objects.VolumeType.get_by_id("},{"line_number":1010,"context_line":"                self.context, new_vol_type[\u0027id\u0027])"},{"line_number":1011,"context_line":"            self.volume.retype(self.context, volume, new_vol_type[\u0027id\u0027],"},{"line_number":1012,"context_line":"                               host_obj, migration_policy\u003d\u0027on-demand\u0027)"},{"line_number":1013,"context_line":"            vt_get.assert_called_once_with(self.context, new_vol_type[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"3fa7e38b_a8191a7a","line":1011,"updated":"2019-10-17 08:39:28.000000000","message":"new_vol_type.id","commit_id":"8f30d80b63495a052ac70bf9131625335545818a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7dbeb9f90283e7d17b8e6f59bb90d7c9d3c7d8d7","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"                self.context, new_vol_type[\u0027id\u0027])"},{"line_number":1011,"context_line":"            self.volume.retype(self.context, volume, new_vol_type[\u0027id\u0027],"},{"line_number":1012,"context_line":"                               host_obj, migration_policy\u003d\u0027on-demand\u0027)"},{"line_number":1013,"context_line":"            vt_get.assert_called_once_with(self.context, new_vol_type[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"3fa7e38b_281f6a5b","line":1013,"updated":"2019-10-17 08:39:28.000000000","message":"new_vol_type.id","commit_id":"8f30d80b63495a052ac70bf9131625335545818a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c3dcd5e3454de428ccf445bf00e7a8ff7493c21b","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                                      any_order\u003dTrue)"},{"line_number":898,"context_line":"            if driver:"},{"line_number":899,"context_line":"                _vtget.assert_called_once_with(self.context,"},{"line_number":900,"context_line":"                                               new_type.id)"},{"line_number":901,"context_line":"        elif not exc:"},{"line_number":902,"context_line":"            self.assertEqual(old_vol_type[\u0027id\u0027], volume.volume_type_id)"},{"line_number":903,"context_line":"            self.assertEqual(\u0027retyping\u0027, volume.status)"}],"source_content_type":"text/x-python","patch_set":18,"id":"bf51134e_1a430b15","line":900,"updated":"2020-07-09 11:57:14.000000000","message":"Please add a check to confirm the parameters we are passing to driver.retype:\n\n   _retype.assert_called_once_with(...)","commit_id":"00748024f3ee61436c31f766ec8cb5f6842f3084"}],"cinder/volume/manager.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f713de7c468e417a535c1a5a977d032f6c98998c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"from cinder.message import api as message_api"},{"line_number":71,"context_line":"from cinder.message import message_field"},{"line_number":72,"context_line":"from cinder import objects"},{"line_number":73,"context_line":"from cinder.objects import cgsnapshot"},{"line_number":74,"context_line":"from cinder.objects import consistencygroup"},{"line_number":75,"context_line":"from cinder.objects import fields"},{"line_number":76,"context_line":"from cinder.objects import volume_type"},{"line_number":77,"context_line":"from cinder import quota"},{"line_number":78,"context_line":"from cinder import utils"},{"line_number":79,"context_line":"from cinder import volume as cinder_volume"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_43b8d1e3","line":76,"range":{"start_line":73,"start_character":0,"end_line":76,"end_character":38},"updated":"2019-05-14 09:27:59.000000000","message":"nit: We don\u0027t need to import volume_type, the VolumeType class is already present in objects","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f713de7c468e417a535c1a5a977d032f6c98998c","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2835,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2836,"context_line":"            try:"},{"line_number":2837,"context_line":"                new_type \u003d volume_type.VolumeType.get_by_name_or_id("},{"line_number":2838,"context_line":"                    context.elevated(),"},{"line_number":2839,"context_line":"                    new_type_id)"},{"line_number":2840,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_43e9b1b4","line":2837,"range":{"start_line":2837,"start_character":50,"end_line":2837,"end_character":67},"updated":"2019-05-14 09:27:59.000000000","message":"-1: The `new_type_id` will not be a name (we were using `get_volume_type` and not `get_by_name_or_id`), so we should use `get_by_id` instead.\n\nnit: We can use `objects.VolumeType.get_by_id` directly.","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"d5a09e7528c7d2c2ed64fb810fa88af79c142946","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2835,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2836,"context_line":"            try:"},{"line_number":2837,"context_line":"                new_type \u003d volume_type.VolumeType.get_by_name_or_id("},{"line_number":2838,"context_line":"                    context.elevated(),"},{"line_number":2839,"context_line":"                    new_type_id)"},{"line_number":2840,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_43b3f098","line":2837,"range":{"start_line":2837,"start_character":50,"end_line":2837,"end_character":67},"in_reply_to":"dfbec78f_43e9b1b4","updated":"2019-05-14 10:25:31.000000000","message":"Refer to the get_by_name_or_id(https://github.com/openstack/cinder/blob/master/cinder/volume/volume_types.py#L143), the db query only once when arg is uuid. \nIMO, get_by_id may be a little deplicated code.","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"04d59c2b04fc9d725dd3415ab858ecc32830eba9","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2835,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2836,"context_line":"            try:"},{"line_number":2837,"context_line":"                new_type \u003d volume_type.VolumeType.get_by_name_or_id("},{"line_number":2838,"context_line":"                    context.elevated(),"},{"line_number":2839,"context_line":"                    new_type_id)"},{"line_number":2840,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_46145e44","line":2837,"range":{"start_line":2837,"start_character":50,"end_line":2837,"end_character":67},"in_reply_to":"dfbec78f_43e9b1b4","updated":"2019-06-06 01:04:14.000000000","message":"get_by_id is not implemanted,","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"b710da687e172acbad9df63e71cffb0868098c92","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2835,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2836,"context_line":"            try:"},{"line_number":2837,"context_line":"                new_type \u003d volume_type.VolumeType.get_by_name_or_id("},{"line_number":2838,"context_line":"                    context.elevated(),"},{"line_number":2839,"context_line":"                    new_type_id)"},{"line_number":2840,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_037418fd","line":2837,"range":{"start_line":2837,"start_character":50,"end_line":2837,"end_character":67},"in_reply_to":"dfbec78f_43e9b1b4","updated":"2019-05-14 10:19:31.000000000","message":"get_by_id method is not implemented in objects.VolumeType. Is it prerequisite to implement get_by_id only once called by retype method?","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2835,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2836,"context_line":"            try:"},{"line_number":2837,"context_line":"                new_type \u003d volume_type.VolumeType.get_by_name_or_id("},{"line_number":2838,"context_line":"                    context.elevated(),"},{"line_number":2839,"context_line":"                    new_type_id)"},{"line_number":2840,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_53a95d21","line":2837,"range":{"start_line":2837,"start_character":50,"end_line":2837,"end_character":67},"in_reply_to":"dfbec78f_46145e44","updated":"2019-08-05 11:09:37.000000000","message":"You have `get_by_id`, because VolumeType inherits from CinderPersistentObject which has the `get_by_id` method, which in turn uses cinder.db.sqlalchemy.api.get_by_id which uses `_get_get_method` and for volume types it reads the method to use from the `GET_EXCEPTIONS` dictionary since the method does not follow the standard.  In the end it uses `_volume_type_get_full` method at the DB layer.","commit_id":"c867a735afc99cd08397cbf68f63b695ef292549"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"593ca129fa7bdad8e54ce9cc91d4602ecb5f14c2","unresolved":false,"context_lines":[{"line_number":2857,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2858,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2859,"context_line":"            try:"},{"line_number":2860,"context_line":"                new_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":2861,"context_line":"                    context.elevated(),"},{"line_number":2862,"context_line":"                    new_type_id)"},{"line_number":2863,"context_line":"                with volume.obj_as_admin():"},{"line_number":2864,"context_line":"                    ret \u003d self.driver.retype(context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_8b25ad0b","line":2861,"range":{"start_line":2860,"start_character":27,"end_line":2861,"end_character":38},"updated":"2019-06-24 20:33:35.000000000","message":"I think it would be better to fix the volume_types.get_volume_type() to return the proper object.","commit_id":"eb12eddf4a77cca48c825c93eddeec38175a073f"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"73fbc931897a909b2c00dd48d049ed561ebee46d","unresolved":false,"context_lines":[{"line_number":2857,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2858,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2859,"context_line":"            try:"},{"line_number":2860,"context_line":"                new_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":2861,"context_line":"                    context.elevated(),"},{"line_number":2862,"context_line":"                    new_type_id)"},{"line_number":2863,"context_line":"                with volume.obj_as_admin():"},{"line_number":2864,"context_line":"                    ret \u003d self.driver.retype(context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_a0220bb8","line":2861,"range":{"start_line":2860,"start_character":27,"end_line":2861,"end_character":38},"in_reply_to":"9fb8cfa7_8b25ad0b","updated":"2019-06-25 01:39:10.000000000","message":"It\u0027s not correct with volume_types.get_volume_type method, because volume_tyes.get_volume_type return db object not VolumeType object. \nThat\u0027s the root cause of the bug #1828386w which this PS want to fix.\nPlease help to run this PS before confirming your comment.\nThanks.","commit_id":"eb12eddf4a77cca48c825c93eddeec38175a073f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":2860,"context_line":"                not diff.get(\u0027encryption\u0027) and"},{"line_number":2861,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2862,"context_line":"            try:"},{"line_number":2863,"context_line":"                new_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":2864,"context_line":"                    context.elevated(),"},{"line_number":2865,"context_line":"                    new_type_id)"},{"line_number":2866,"context_line":"                with volume.obj_as_admin():"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_d39c6d0f","line":2863,"updated":"2019-08-05 11:09:37.000000000","message":"-1: Use `get_by_id` method that is inherited from `CinderPersistentObject`","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7dbeb9f90283e7d17b8e6f59bb90d7c9d3c7d8d7","unresolved":false,"context_lines":[{"line_number":2863,"context_line":"                self._is_our_backend(host[\u0027host\u0027], host.get(\u0027cluster_name\u0027))):"},{"line_number":2864,"context_line":"            try:"},{"line_number":2865,"context_line":"                new_type \u003d objects.VolumeType.get_by_id("},{"line_number":2866,"context_line":"                    context.elevated(),"},{"line_number":2867,"context_line":"                    new_type_id)"},{"line_number":2868,"context_line":"                with volume.obj_as_admin():"},{"line_number":2869,"context_line":"                    ret \u003d self.driver.retype(context,"}],"source_content_type":"text/x-python","patch_set":16,"id":"3fa7e38b_ed25e4c2","line":2866,"updated":"2019-10-17 08:39:28.000000000","message":"I\u0027m OK with fixing this issue like this, but it pains me to see how we load the new volume type OVO from the DB on the API, pass it to the scheduler, only for the scheduler to pass just the id to the volume service, which then reads both types from the DB in the volume_types_diff method, and reads it from the DB again here.\n\nAt some point we should stop doing so many unnecessary DB reads.","commit_id":"8f30d80b63495a052ac70bf9131625335545818a"}],"releasenotes/notes/bug-1828386-fix-rbd-retype-dcf429e2850791d3.yaml":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"323ae671a587e5a65f26c8b0dccf0d0eee7c0098","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The retype method of VolumeManager class should pass VolumeType new_type"},{"line_number":5,"context_line":"    object same with the old volume type."},{"line_number":6,"context_line":"    For fixing rbd volume retype failed."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7faddb67_c62189fd","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":40},"updated":"2019-07-10 03:59:41.000000000","message":"This problem could have been caused in any driver treating volume type as object, IMO this is more of a manager fix than a driver fix.","commit_id":"a7c5aa43687c1b74b380eb07b8583aca2ef44e45"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b0ab6e76276296b759665b80760ce0b455a2e7e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The retype method of VolumeManager class should pass VolumeType new_type"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_04e759ae","line":1,"updated":"2019-07-31 14:57:09.000000000","message":"Same comment as before re: filename.","commit_id":"17c6e7a3cc7bd8c516308851c5122557d3cba677"}],"releasenotes/notes/bug-1828386-fix-retype-volume-type-object.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2d7db67c348e070bd8ef4649ea5e62c4615a5934","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The retype method of VolumeManager class should pass VolumeType new_type"},{"line_number":5,"context_line":"    object to driver same with the old volume type."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"7faddb67_f36de902","line":4,"updated":"2019-08-05 11:09:37.000000000","message":"-1: This makes sense for developers, but not for end users, who are the target of these release notes.","commit_id":"61708635e5e227dca47dffee6b110b24fd6de3b4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5a4abfabeba22d3c2c5886914fa8b91db97eab95","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix the bug that volume retype cannot work with rbd driver."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_afb7803a","line":4,"updated":"2019-10-07 19:28:08.000000000","message":"This release note needs some work as this is pretty much useless as it is, and is actually more likely to cause confusion than to help.\n\nA link to the bug report and an actual description of what has been fixed (note past tense in that since these are the release notes that will be read *after* the release is out).","commit_id":"730a75ca3e312ed7421b5046590ed72c52575db3"}],"releasenotes/notes/fix_rbd_retype-dcf429e2850791d3.yaml":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"81c293042ebaf09ac01d3489f5eef7ce3281cfb5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The VolumeManager retype method should be passing new_type as VolumeType"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_d454eccc","line":1,"updated":"2019-07-08 22:25:32.000000000","message":"This is not a good filename for this releasenote.","commit_id":"e80d55a7062f7f0dcd4afb7f153b4512b3b68081"}]}
