)]}'
{"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1c2b3e1e2d72f9b09efde27df5a6dba5bc052930","unresolved":false,"context_lines":[{"line_number":6128,"context_line":"            # We don\u0027t want duplicated field values"},{"line_number":6129,"context_line":"            values.pop(\u0027group_type_id\u0027, None)"},{"line_number":6130,"context_line":"            values.pop(\u0027availability_zone\u0027, None)"},{"line_number":6131,"context_line":"            values.pop(\u0027host\u0027, None)"},{"line_number":6132,"context_line":"            # NOTE(xyang): Save volume_type_ids to update later."},{"line_number":6133,"context_line":"            volume_type_ids \u003d values.pop(\u0027volume_type_ids\u0027, [])"},{"line_number":6134,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_7cdd3d13","line":6131,"updated":"2020-03-25 12:21:22.000000000","message":"-1: We need to pop the cluster_name as well","commit_id":"1c83de50b52162170281bbc077b1d6cbc2f61adc"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"de367873f5bf9cf33af80e81ca535dffee51e0b6","unresolved":false,"context_lines":[{"line_number":6128,"context_line":"            # We don\u0027t want duplicated field values"},{"line_number":6129,"context_line":"            values.pop(\u0027group_type_id\u0027, None)"},{"line_number":6130,"context_line":"            values.pop(\u0027availability_zone\u0027, None)"},{"line_number":6131,"context_line":"            values.pop(\u0027host\u0027, None)"},{"line_number":6132,"context_line":"            # NOTE(xyang): Save volume_type_ids to update later."},{"line_number":6133,"context_line":"            volume_type_ids \u003d values.pop(\u0027volume_type_ids\u0027, [])"},{"line_number":6134,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_1ffea3ad","line":6131,"in_reply_to":"df33271e_7cdd3d13","updated":"2020-03-25 13:06:37.000000000","message":"Done","commit_id":"1c83de50b52162170281bbc077b1d6cbc2f61adc"}],"cinder/group/api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1c2b3e1e2d72f9b09efde27df5a6dba5bc052930","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        kwargs \u003d {\u0027group_id\u0027: group.id,"},{"line_number":248,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties(size\u003dsize)}"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        host \u003d group.cluster_name if group.cluster_name else group.host"},{"line_number":251,"context_line":"        if not host or not self.scheduler_rpcapi.validate_host_capacity("},{"line_number":252,"context_line":"                context, host, objects.RequestSpec(**kwargs)):"},{"line_number":253,"context_line":"            msg \u003d _(\"No valid host to create group %s.\") % group.id"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_dcf4498a","line":250,"updated":"2020-03-25 12:21:22.000000000","message":"-1: Better use the OVO\u0027s property\n\n    host \u003d group.resource_backend","commit_id":"1c83de50b52162170281bbc077b1d6cbc2f61adc"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"de367873f5bf9cf33af80e81ca535dffee51e0b6","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        kwargs \u003d {\u0027group_id\u0027: group.id,"},{"line_number":248,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties(size\u003dsize)}"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        host \u003d group.cluster_name if group.cluster_name else group.host"},{"line_number":251,"context_line":"        if not host or not self.scheduler_rpcapi.validate_host_capacity("},{"line_number":252,"context_line":"                context, host, objects.RequestSpec(**kwargs)):"},{"line_number":253,"context_line":"            msg \u003d _(\"No valid host to create group %s.\") % group.id"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_3f03a7ba","line":250,"in_reply_to":"df33271e_dcf4498a","updated":"2020-03-25 13:06:37.000000000","message":"Done","commit_id":"1c83de50b52162170281bbc077b1d6cbc2f61adc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1a0e82e162f610b0d004adbdf63010dc4a73cb8c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        return availability_zone"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _update_volumes_host(self, context, group):"},{"line_number":101,"context_line":"        volumes \u003d objects.VolumeList.get_all_by_generic_group(context,"},{"line_number":102,"context_line":"                                                              group.id)"},{"line_number":103,"context_line":"        for vol in volumes:"},{"line_number":104,"context_line":"            # Update the host field for the volume."}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_efbd84b7","line":101,"updated":"2020-04-29 14:39:09.000000000","message":"note: This could be racy, if we create a new volume after listing, right?\nShould we have a method in the DB layer to do it like we do in the group_include_in_cluster method?\nI won\u0027t downvote because of it because that\u0027s what we already have in the code.","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7b1c384ca2b6f2837d7170dc6dd84877fe1e3e00","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        return availability_zone"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _update_volumes_host(self, context, group):"},{"line_number":101,"context_line":"        volumes \u003d objects.VolumeList.get_all_by_generic_group(context,"},{"line_number":102,"context_line":"                                                              group.id)"},{"line_number":103,"context_line":"        for vol in volumes:"},{"line_number":104,"context_line":"            # Update the host field for the volume."}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_856f8129","line":101,"in_reply_to":"1f493fa4_62a06b91","updated":"2020-04-29 15:50:24.000000000","message":"That would be best.  :-)","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bad78b86395a68b670daecbc45dd752b39f17efd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        return availability_zone"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _update_volumes_host(self, context, group):"},{"line_number":101,"context_line":"        volumes \u003d objects.VolumeList.get_all_by_generic_group(context,"},{"line_number":102,"context_line":"                                                              group.id)"},{"line_number":103,"context_line":"        for vol in volumes:"},{"line_number":104,"context_line":"            # Update the host field for the volume."}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_62a06b91","line":101,"in_reply_to":"1f493fa4_efbd84b7","updated":"2020-04-29 15:40:12.000000000","message":"IMO, it should be fixed in a separate patch","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"}],"cinder/scheduler/filter_scheduler.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"48546ca93705e01eac80f9a4a54c8445af8c467f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        # If backend has no pool defined we will ignore it in the comparison"},{"line_number":120,"context_line":"        ignore_pool \u003d not bool(volume_utils.extract_host(backend, \u0027pool\u0027))"},{"line_number":121,"context_line":"        for weighed_backend in weighed_backends:"},{"line_number":122,"context_line":"            backend_id \u003d weighed_backend.obj.host"},{"line_number":123,"context_line":"            if ignore_pool:"},{"line_number":124,"context_line":"                backend_id \u003d volume_utils.extract_host(backend_id)"},{"line_number":125,"context_line":"            if backend_id \u003d\u003d backend:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_af2afe28","line":122,"updated":"2020-03-19 09:48:22.000000000","message":"-1: This is wrong, we should use backend_id like we are doing, because it is a property that selects the cluster name if we are clustered, and the host if we are not.","commit_id":"250a402f061eac64bf1d8f20a4cd5620f7654bba"}],"cinder/tests/unit/group/test_groups_api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1a0e82e162f610b0d004adbdf63010dc4a73cb8c","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        group_api \u003d cinder.group.api.API()"},{"line_number":819,"context_line":"        group_api._update_volumes_host(None, grp)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_6fc97457","line":821,"updated":"2020-04-29 14:39:09.000000000","message":"nit: mock_cluster_name.assert_called()","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ebec2491f06af45c84708366a4f808f1a89897c2","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        group_api \u003d cinder.group.api.API()"},{"line_number":819,"context_line":"        group_api._update_volumes_host(None, grp)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_65ceb55a","line":821,"in_reply_to":"1f493fa4_6fc97457","updated":"2020-04-29 20:51:53.000000000","message":"Done","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1a0e82e162f610b0d004adbdf63010dc4a73cb8c","unresolved":false,"context_lines":[{"line_number":819,"context_line":"        group_api._update_volumes_host(None, grp)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"},{"line_number":825,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_afbffca7","line":822,"updated":"2020-04-29 14:39:09.000000000","message":"nit: mock_host.assert_called()","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ebec2491f06af45c84708366a4f808f1a89897c2","unresolved":false,"context_lines":[{"line_number":819,"context_line":"        group_api._update_volumes_host(None, grp)"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"},{"line_number":825,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_85d30104","line":822,"in_reply_to":"1f493fa4_afbffca7","updated":"2020-04-29 20:51:53.000000000","message":"Done","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1a0e82e162f610b0d004adbdf63010dc4a73cb8c","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        grp.destroy()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_8fd32004","line":823,"updated":"2020-04-29 14:39:09.000000000","message":"-1: We should test that we have actually set the values and called save, right?\n\n   self.assertEqual(grp.host, mock_volume.host)\n   self.assertEqual(grp.cluster_name, mock_volume.cluster_name)\n   mock_volume.save.assert_called_once_with()","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ebec2491f06af45c84708366a4f808f1a89897c2","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        self.assertTrue(mock_cluster_name.called)"},{"line_number":822,"context_line":"        self.assertTrue(mock_host.called)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        vol1.destroy()"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        grp.destroy()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_c5ab4972","line":823,"in_reply_to":"1f493fa4_8fd32004","updated":"2020-04-29 20:51:53.000000000","message":"Done","commit_id":"ed3216ab4c459e1ba2e33eb55fd02fa757a88d0c"}]}
