)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"6fa7f773_868238ea","updated":"2021-11-10 15:23:52.000000000","message":"Some are just queries, and there may be a reason they are that way.\nThanks\nHelen","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91821e436d86369de203829296198082e39212e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"55a04954_ef90f739","updated":"2021-11-16 19:58:03.000000000","message":"One question inline, otherwise everything LGTM.","commit_id":"a64078789b5330183137ba4ecb58d720b9210172"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"264593e214bf1f36220b8c6efaad66297b827148","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"c97f48c8_76b7f10e","updated":"2021-11-16 21:36:49.000000000","message":"One more thing noted inline.","commit_id":"fdf862b1f38602143b6eb5f8a47c52a759dd732a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b3ecde44087df9c9e851b138a7c4f149bf36a9f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"8a93b2ef_826667b9","updated":"2021-11-18 22:11:07.000000000","message":"All my concerns have been addressed!  Upping the review priority because this is the mypy-patch-of-the-week.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"2f8c5e98_576dbe72","updated":"2021-11-24 11:05:46.000000000","message":"Thanks for the work Eric.\nSorry for the late review. I\u0027ve a few improvements and queries inline.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc3b88f9a0b0664a479fc3679231848d81d2dcff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"e80e0912_77ebf0dc","updated":"2021-12-14 16:04:12.000000000","message":"LGTM.  It looks like Rajat\u0027s suggestions that you have questions about are narrowing changes, and could be addressed by a follow-up if appropriate.","commit_id":"80dc6c91581bbf7e8d0c0b0af49dee0f7cfdd451"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c83bc57b7d9f8107c1a0491bfd2f9730b810f0b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"b219a94f_8039b50f","updated":"2021-12-14 16:14:42.000000000","message":"The revision looks good to me. Thanks Eric!","commit_id":"80dc6c91581bbf7e8d0c0b0af49dee0f7cfdd451"}],"cinder/api/v3/volumes.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"264593e214bf1f36220b8c6efaad66297b827148","unresolved":true,"context_lines":[{"line_number":397,"context_line":"                   \"be to specify multiattach enabled volume types.\")"},{"line_number":398,"context_line":"            versionutils.report_deprecated_feature(LOG, msg)"},{"line_number":399,"context_line":"        try:"},{"line_number":400,"context_line":"            new_volume \u003d self.volume_api.create("},{"line_number":401,"context_line":"                context, size, volume.get(\u0027display_name\u0027),"},{"line_number":402,"context_line":"                volume.get(\u0027display_description\u0027), **kwargs)"},{"line_number":403,"context_line":"        except exception.VolumeTypeDefaultMisconfiguredError as err:"},{"line_number":404,"context_line":"            raise exc.HTTPInternalServerError(explanation\u003derr.msg)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"4eef6b2a_27530e8a","line":402,"range":{"start_line":400,"start_character":0,"end_line":402,"end_character":60},"updated":"2021-11-16 21:36:49.000000000","message":"This plus lines 317-320 make me think you could definitely be passing None for name and description.","commit_id":"fdf862b1f38602143b6eb5f8a47c52a759dd732a"}],"cinder/common/constants.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8412cdca2e9e0b6c9d14cc4d1acbc6ee38bd307e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import typing"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# The maximum value a signed INT type may have"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f65232a_696483ba","line":16,"updated":"2020-10-21 21:03:39.000000000","message":"pep8: F401 \u0027typing\u0027 imported but unused","commit_id":"e50d6991dfd7fe3ec59962727def25fc0b4bc76b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"501be2598392e37c72abeea85329bdbe46b2a63c","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import typing  # noqa: F401"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# The maximum value a signed INT type may have"}],"source_content_type":"text/x-python","patch_set":12,"id":"3082bda0_4aadd216","line":16,"updated":"2021-04-16 14:59:03.000000000","message":"This is not needed","commit_id":"ecda20bfcd15439ca0b304a1ea92daf02c53c9d8"}],"cinder/volume/api.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.message \u003d message_api.API()"},{"line_number":116,"context_line":"        super(API, self).__init__(db_driver)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def list_availability_zones(self, enable_cache\u003dFalse, refresh_cache\u003dFalse) -\u003e tuple:"},{"line_number":119,"context_line":"        \"\"\"Describe the known availability zones"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        :param enable_cache: Enable az cache"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_aeea5370","line":118,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1272,"context_line":"    def get_volumes_image_metadata(self, context):"},{"line_number":1273,"context_line":"        context.authorize(vol_meta_policy.GET_POLICY)"},{"line_number":1274,"context_line":"        db_data \u003d self.db.volume_glance_metadata_get_all(context)"},{"line_number":1275,"context_line":"        results:collections.defaultdict \u003d collections.defaultdict(dict)"},{"line_number":1276,"context_line":"        for meta_entry in db_data:"},{"line_number":1277,"context_line":"            results[meta_entry[\u0027volume_id\u0027]].update({meta_entry[\u0027key\u0027]:"},{"line_number":1278,"context_line":"                                                     meta_entry[\u0027value\u0027]})"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e053f46","line":1275,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    def get_list_volumes_image_metadata(self,"},{"line_number":1291,"context_line":"                                        context: context.RequestContext,"},{"line_number":1292,"context_line":"                                        volume_id_list: ty.List[str]) -\u003e ty.DefaultDict[str, str]:"},{"line_number":1293,"context_line":"        db_data \u003d self.db.volume_glance_metadata_list_get(context,"},{"line_number":1294,"context_line":"                                                          volume_id_list)"},{"line_number":1295,"context_line":"        results:collections.defaultdict \u003d collections.defaultdict(dict)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_eeff2b31","line":1292,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E501 line too long (98 \u003e 79 characters)","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"                                        volume_id_list: ty.List[str]) -\u003e ty.DefaultDict[str, str]:"},{"line_number":1293,"context_line":"        db_data \u003d self.db.volume_glance_metadata_list_get(context,"},{"line_number":1294,"context_line":"                                                          volume_id_list)"},{"line_number":1295,"context_line":"        results:collections.defaultdict \u003d collections.defaultdict(dict)"},{"line_number":1296,"context_line":"        for meta_entry in db_data:"},{"line_number":1297,"context_line":"            results[meta_entry[\u0027volume_id\u0027]].update({meta_entry[\u0027key\u0027]:"},{"line_number":1298,"context_line":"                                                     meta_entry[\u0027value\u0027]})"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4efbb745","line":1295,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1328,"context_line":"                             context: context.RequestContext,"},{"line_number":1329,"context_line":"                             volume: objects.Volume,"},{"line_number":1330,"context_line":"                             metadata: ty.Dict[str, str],"},{"line_number":1331,"context_line":"                             force:bool) -\u003e ty.Dict[str, ty.Optional[str]]:"},{"line_number":1332,"context_line":"        \"\"\"Create a new image from the specified volume.\"\"\""},{"line_number":1333,"context_line":"        if not CONF.enable_force_upload and force:"},{"line_number":1334,"context_line":"            LOG.info(\"Force upload to image is disabled, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2ef6435e","line":1331,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1921,"context_line":"                                                           sort_dirs)"},{"line_number":1922,"context_line":""},{"line_number":1923,"context_line":"    def _get_cluster_and_services_for_replication(self, ctxt, host: str,"},{"line_number":1924,"context_line":"                                                  cluster_name: str) -\u003e ty.Tuple[ty.Any, ty.Any]:"},{"line_number":1925,"context_line":"        services \u003d objects.ServiceList.get_all("},{"line_number":1926,"context_line":"            ctxt, filters\u003d{\u0027host\u0027: host, \u0027cluster_name\u0027: cluster_name,"},{"line_number":1927,"context_line":"                           \u0027binary\u0027: constants.VOLUME_BINARY})"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e966fef","line":1924,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E501 line too long (97 \u003e 79 characters)","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1955,"context_line":"        return cluster, services"},{"line_number":1956,"context_line":""},{"line_number":1957,"context_line":"    def _replication_db_change(self, ctxt, field, expected_value, new_value,"},{"line_number":1958,"context_line":"                               host, cluster_name, check_up\u003dFalse) -\u003e ty.Tuple[ty.Any, ty.Any]:"},{"line_number":1959,"context_line":"        def _error_msg(service: str) -\u003e str:"},{"line_number":1960,"context_line":"            expected \u003d utils.build_or_str(six.text_type(expected_value))"},{"line_number":1961,"context_line":"            up_msg \u003d \u0027and must be up \u0027 if check_up else \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e995b1d","line":1958,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E501 line too long (95 \u003e 79 characters)","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f77df395a0fc9764b6feb891d23703a458ac7c21","unresolved":false,"context_lines":[{"line_number":1991,"context_line":"        # If there were some services that couldn\u0027t be changed we should at"},{"line_number":1992,"context_line":"        # least log the error."},{"line_number":1993,"context_line":"        if not_changed:"},{"line_number":1994,"context_line":"            msg \u003d _error_msg([s.host for s in not_changed][0])   # TODO: examine this change"},{"line_number":1995,"context_line":"            # If we couldn\u0027t change any of the services"},{"line_number":1996,"context_line":"            if not changed:"},{"line_number":1997,"context_line":"                # Undo the cluster change"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce9ce70f","line":1994,"updated":"2020-06-04 18:23:31.000000000","message":"pep8: E501 line too long (92 \u003e 79 characters)","commit_id":"a71c6f9b636f6604e327a85ef0fdc5adbf6275ee"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import ast"},{"line_number":20,"context_line":"import collections"},{"line_number":21,"context_line":"import datetime"},{"line_number":22,"context_line":"from typing import (Any, DefaultDict, Dict, List, Optional,   # noqa: H301"},{"line_number":23,"context_line":"                    Tuple, Union)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from castellan import key_manager"},{"line_number":26,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":13,"id":"8a1e445e_1f3cb3d2","line":23,"range":{"start_line":22,"start_character":19,"end_line":23,"end_character":33},"updated":"2021-04-30 16:06:57.000000000","message":"This looks good to me but just to explore few other options to do it,\n\nMaybe we can break it down into 2 imports:\nfrom typing import Any, DefaultDict, Dict, List\nfrom typing import Optional, Tuple, Union\n\nOr break line with backslash:\nfrom typing import Any, DefaultDict, Dict, List, Optional, \\\n    Tuple, Union","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f8b601968434ad66c9c4c29c21fd622da30fdb71","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import ast"},{"line_number":20,"context_line":"import collections"},{"line_number":21,"context_line":"import datetime"},{"line_number":22,"context_line":"from typing import (Any, DefaultDict, Dict, List, Optional,   # noqa: H301"},{"line_number":23,"context_line":"                    Tuple, Union)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from castellan import key_manager"},{"line_number":26,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":13,"id":"58968bda_58bba307","line":23,"range":{"start_line":22,"start_character":19,"end_line":23,"end_character":33},"in_reply_to":"8a1e445e_1f3cb3d2","updated":"2021-04-30 21:12:38.000000000","message":"FWIW, I\u0027m ok with the parentheses so that we have all the data types in a single statement.  If we had to import the \u0027cast\u0027 function, though, I\u0027d probably do it on a different line.","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":139,"context_line":"            services \u003d objects.ServiceList.get_all_by_topic(ctxt, topic)"},{"line_number":140,"context_line":"            az_data \u003d [(s.availability_zone, s.disabled)"},{"line_number":141,"context_line":"                       for s in services]"},{"line_number":142,"context_line":"            disabled_map: Dict[str, Union[str, bool]] \u003d {}"},{"line_number":143,"context_line":"            for (az_name, disabled) in az_data:"},{"line_number":144,"context_line":"                tracked_disabled \u003d disabled_map.get(az_name, True)"},{"line_number":145,"context_line":"                disabled_map[az_name] \u003d tracked_disabled and disabled"}],"source_content_type":"text/x-python","patch_set":13,"id":"e73974f1_15b4c0c2","line":142,"range":{"start_line":142,"start_character":42,"end_line":142,"end_character":45},"updated":"2021-04-30 16:06:57.000000000","message":"The disabled column is boolean in the database, when can we expect a str here?","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e2bbf0eb1915008d8e2c9d1cb08157b6cb0d7ede","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            services \u003d objects.ServiceList.get_all_by_topic(ctxt, topic)"},{"line_number":140,"context_line":"            az_data \u003d [(s.availability_zone, s.disabled)"},{"line_number":141,"context_line":"                       for s in services]"},{"line_number":142,"context_line":"            disabled_map: Dict[str, Union[str, bool]] \u003d {}"},{"line_number":143,"context_line":"            for (az_name, disabled) in az_data:"},{"line_number":144,"context_line":"                tracked_disabled \u003d disabled_map.get(az_name, True)"},{"line_number":145,"context_line":"                disabled_map[az_name] \u003d tracked_disabled and disabled"}],"source_content_type":"text/x-python","patch_set":13,"id":"248622f0_160ed04a","line":142,"range":{"start_line":142,"start_character":42,"end_line":142,"end_character":45},"in_reply_to":"e73974f1_15b4c0c2","updated":"2021-04-30 18:53:36.000000000","message":"Done","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _retype_is_possible(self,"},{"line_number":161,"context_line":"                            context: context.RequestContext,"},{"line_number":162,"context_line":"                            source_type: objects.VolumeType,"},{"line_number":163,"context_line":"                            target_type: objects.VolumeType) -\u003e bool:"},{"line_number":164,"context_line":"        elevated \u003d context.elevated()"},{"line_number":165,"context_line":"        # If encryptions are different, it is not allowed"}],"source_content_type":"text/x-python","patch_set":13,"id":"b1fe1da2_a5584ca9","line":162,"range":{"start_line":162,"start_character":28,"end_line":162,"end_character":39},"updated":"2021-04-30 16:06:57.000000000","message":"currently our code assumes volume type to be object at some places and dictionary at other places. are we 100% certain that we will receive an object here?","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e2bbf0eb1915008d8e2c9d1cb08157b6cb0d7ede","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _retype_is_possible(self,"},{"line_number":161,"context_line":"                            context: context.RequestContext,"},{"line_number":162,"context_line":"                            source_type: objects.VolumeType,"},{"line_number":163,"context_line":"                            target_type: objects.VolumeType) -\u003e bool:"},{"line_number":164,"context_line":"        elevated \u003d context.elevated()"},{"line_number":165,"context_line":"        # If encryptions are different, it is not allowed"}],"source_content_type":"text/x-python","patch_set":13,"id":"091d51a4_9e9ee283","line":162,"range":{"start_line":162,"start_character":28,"end_line":162,"end_character":39},"in_reply_to":"b1fe1da2_a5584ca9","updated":"2021-04-30 18:53:36.000000000","message":"It has to be an object already, see line 181.","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Union[str, int],  # TODO: examine"},{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot\u003dNone,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7647d5c3_dedfc7e6","line":218,"range":{"start_line":218,"start_character":27,"end_line":218,"end_character":35},"updated":"2021-04-30 16:06:57.000000000","message":"I think this is to cover both cases when client sends a string type value and when calling the API directly we might pass an integer value.\nNot sure why we don\u0027t already convert size to int before this call.","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot\u003dNone,"},{"line_number":222,"context_line":"               image_id: str \u003d None,"},{"line_number":223,"context_line":"               volume_type \u003d None,"},{"line_number":224,"context_line":"               metadata: dict \u003d None,"},{"line_number":225,"context_line":"               availability_zone: str \u003d None,"}],"source_content_type":"text/x-python","patch_set":13,"id":"30dbc92a_d9ad8b5b","line":222,"range":{"start_line":222,"start_character":25,"end_line":222,"end_character":28},"updated":"2021-04-30 16:06:57.000000000","message":"do we have a way to use uuid type here? It would be more accurate","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bb96fdc1d1d1c2c483da23114bc9ef75d83485eb","unresolved":true,"context_lines":[{"line_number":233,"context_line":"               group: objects.Group \u003d None,"},{"line_number":234,"context_line":"               group_snapshot\u003dNone,"},{"line_number":235,"context_line":"               source_group\u003dNone,"},{"line_number":236,"context_line":"               backup\u003dNone):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if image_id:"},{"line_number":239,"context_line":"            context.authorize(vol_policy.CREATE_FROM_IMAGE_POLICY)"}],"source_content_type":"text/x-python","patch_set":13,"id":"840c493f_0dbad187","line":236,"range":{"start_line":236,"start_character":15,"end_line":236,"end_character":21},"updated":"2021-04-30 16:06:57.000000000","message":"i think this could also be objects.Backup since we fetch it\nhttps://github.com/openstack/cinder/blob/master/cinder/api/v3/volumes.py#L366-L368","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e2bbf0eb1915008d8e2c9d1cb08157b6cb0d7ede","unresolved":false,"context_lines":[{"line_number":233,"context_line":"               group: objects.Group \u003d None,"},{"line_number":234,"context_line":"               group_snapshot\u003dNone,"},{"line_number":235,"context_line":"               source_group\u003dNone,"},{"line_number":236,"context_line":"               backup\u003dNone):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if image_id:"},{"line_number":239,"context_line":"            context.authorize(vol_policy.CREATE_FROM_IMAGE_POLICY)"}],"source_content_type":"text/x-python","patch_set":13,"id":"359ca632_f0323eba","line":236,"range":{"start_line":236,"start_character":15,"end_line":236,"end_character":21},"in_reply_to":"840c493f_0dbad187","updated":"2021-04-30 18:53:36.000000000","message":"Done","commit_id":"8f3e88908891fec98672f8bf069755eb3ab97d21"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":201,"context_line":"                self.AVAILABLE_MIGRATION_STATUS)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def _is_multiattach(self,"},{"line_number":204,"context_line":"                        volume_type: objects.volume_type.VolumeType) -\u003e bool:"},{"line_number":205,"context_line":"        # TODO: getattr not needed if using obj?"},{"line_number":206,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":207,"context_line":"        return specs.get(\u0027multiattach\u0027, \u0027False\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"3e5546d1_fe24e39a","line":204,"updated":"2021-11-10 15:23:52.000000000","message":"Is this correct? Should it be objects.VolumeType rather than objects.volume_type.VolumeType","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                self.AVAILABLE_MIGRATION_STATUS)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def _is_multiattach(self,"},{"line_number":204,"context_line":"                        volume_type: objects.volume_type.VolumeType) -\u003e bool:"},{"line_number":205,"context_line":"        # TODO: getattr not needed if using obj?"},{"line_number":206,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":207,"context_line":"        return specs.get(\u0027multiattach\u0027, \u0027False\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"79ea848b_e25177f3","line":204,"in_reply_to":"3e5546d1_fe24e39a","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":207,"context_line":"        return specs.get(\u0027multiattach\u0027, \u0027False\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def _is_encrypted(self,"},{"line_number":210,"context_line":"                      volume_type: objects.volume_type.VolumeType) -\u003e bool:"},{"line_number":211,"context_line":"        specs \u003d volume_type.get(\u0027extra_specs\u0027, {})"},{"line_number":212,"context_line":"        if \u0027encryption\u0027 not in specs:"},{"line_number":213,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":19,"id":"fd42ed5a_da213367","line":210,"updated":"2021-11-10 15:23:52.000000000","message":"Should it be objects.VolumeType rather than objects.volume_type.VolumeType","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        return specs.get(\u0027multiattach\u0027, \u0027False\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def _is_encrypted(self,"},{"line_number":210,"context_line":"                      volume_type: objects.volume_type.VolumeType) -\u003e bool:"},{"line_number":211,"context_line":"        specs \u003d volume_type.get(\u0027extra_specs\u0027, {})"},{"line_number":212,"context_line":"        if \u0027encryption\u0027 not in specs:"},{"line_number":213,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":19,"id":"9061cec6_e931d84f","line":210,"in_reply_to":"fd42ed5a_da213367","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":858,"context_line":"    def detach(self,"},{"line_number":859,"context_line":"               context: context.RequestContext,"},{"line_number":860,"context_line":"               volume: objects.Volume,"},{"line_number":861,"context_line":"               attachment_id: str):"},{"line_number":862,"context_line":"        context.authorize(vol_action_policy.DETACH_POLICY,"},{"line_number":863,"context_line":"                          target_obj\u003dvolume)"},{"line_number":864,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"869baa35_f1417c42","line":861,"updated":"2021-11-10 15:23:52.000000000","message":"Should this have the return type of \u0027detach_results\u0027?","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":858,"context_line":"    def detach(self,"},{"line_number":859,"context_line":"               context: context.RequestContext,"},{"line_number":860,"context_line":"               volume: objects.Volume,"},{"line_number":861,"context_line":"               attachment_id: str):"},{"line_number":862,"context_line":"        context.authorize(vol_action_policy.DETACH_POLICY,"},{"line_number":863,"context_line":"                          target_obj\u003dvolume)"},{"line_number":864,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"9d09f04f_446c2c10","line":861,"in_reply_to":"869baa35_f1417c42","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":875,"context_line":"    def initialize_connection(self,"},{"line_number":876,"context_line":"                              context: context.RequestContext,"},{"line_number":877,"context_line":"                              volume: objects.Volume,"},{"line_number":878,"context_line":"                              connector: dict):"},{"line_number":879,"context_line":"        context.authorize(vol_action_policy.INITIALIZE_POLICY,"},{"line_number":880,"context_line":"                          target_obj\u003dvolume)"},{"line_number":881,"context_line":"        if volume.status \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"0c619cb7_06f2a11c","line":878,"updated":"2021-11-10 15:23:52.000000000","message":"Should this have the return type of \u0027init_results\u0027","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":875,"context_line":"    def initialize_connection(self,"},{"line_number":876,"context_line":"                              context: context.RequestContext,"},{"line_number":877,"context_line":"                              volume: objects.Volume,"},{"line_number":878,"context_line":"                              connector: dict):"},{"line_number":879,"context_line":"        context.authorize(vol_action_policy.INITIALIZE_POLICY,"},{"line_number":880,"context_line":"                          target_obj\u003dvolume)"},{"line_number":881,"context_line":"        if volume.status \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"14956749_5ca63309","line":878,"in_reply_to":"0c619cb7_06f2a11c","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":912,"context_line":"                        volume: objects.Volume,"},{"line_number":913,"context_line":"                        new_user: str,"},{"line_number":914,"context_line":"                        new_project: str,"},{"line_number":915,"context_line":"                        no_snapshots: bool \u003d False):"},{"line_number":916,"context_line":"        context.authorize(vol_transfer_policy.ACCEPT_POLICY,"},{"line_number":917,"context_line":"                          target_obj\u003dvolume)"},{"line_number":918,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"6dbe1c9a_f58d7326","line":915,"updated":"2021-11-10 15:23:52.000000000","message":"should this have the return type of \u0027results\u0027","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":912,"context_line":"                        volume: objects.Volume,"},{"line_number":913,"context_line":"                        new_user: str,"},{"line_number":914,"context_line":"                        new_project: str,"},{"line_number":915,"context_line":"                        no_snapshots: bool \u003d False):"},{"line_number":916,"context_line":"        context.authorize(vol_transfer_policy.ACCEPT_POLICY,"},{"line_number":917,"context_line":"                          target_obj\u003dvolume)"},{"line_number":918,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"12430a24_38dbdde5","line":915,"in_reply_to":"6dbe1c9a_f58d7326","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1257,"context_line":"    def create_volume_metadata(self,"},{"line_number":1258,"context_line":"                               context: context.RequestContext,"},{"line_number":1259,"context_line":"                               volume: objects.Volume,"},{"line_number":1260,"context_line":"                               metadata: Dict[str, Any]):"},{"line_number":1261,"context_line":"        \"\"\"Creates volume metadata.\"\"\""},{"line_number":1262,"context_line":"        context.authorize(vol_meta_policy.CREATE_POLICY, target_obj\u003dvolume)"},{"line_number":1263,"context_line":"        db_meta \u003d self._update_volume_metadata(context, volume, metadata)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9dc928b4_2d79acaa","line":1260,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type?","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"    def create_volume_metadata(self,"},{"line_number":1258,"context_line":"                               context: context.RequestContext,"},{"line_number":1259,"context_line":"                               volume: objects.Volume,"},{"line_number":1260,"context_line":"                               metadata: Dict[str, Any]):"},{"line_number":1261,"context_line":"        \"\"\"Creates volume metadata.\"\"\""},{"line_number":1262,"context_line":"        context.authorize(vol_meta_policy.CREATE_POLICY, target_obj\u003dvolume)"},{"line_number":1263,"context_line":"        db_meta \u003d self._update_volume_metadata(context, volume, metadata)"}],"source_content_type":"text/x-python","patch_set":19,"id":"d62e8d09_dc2d47eb","line":1260,"in_reply_to":"9dc928b4_2d79acaa","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1287,"context_line":"                                volume: objects.Volume,"},{"line_number":1288,"context_line":"                                metadata: Dict[str, Any],"},{"line_number":1289,"context_line":"                                delete: bool \u003d False,"},{"line_number":1290,"context_line":"                                meta_type\u003dcommon.METADATA_TYPES.user):"},{"line_number":1291,"context_line":"        if volume[\u0027status\u0027] in (\u0027maintenance\u0027, \u0027uploading\u0027):"},{"line_number":1292,"context_line":"            msg \u003d _(\u0027Updating volume metadata is not allowed for volumes in \u0027"},{"line_number":1293,"context_line":"                    \u0027%s status.\u0027) % volume[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":19,"id":"ec06d0e9_73cfb24f","line":1290,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type or -\u003e None","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1287,"context_line":"                                volume: objects.Volume,"},{"line_number":1288,"context_line":"                                metadata: Dict[str, Any],"},{"line_number":1289,"context_line":"                                delete: bool \u003d False,"},{"line_number":1290,"context_line":"                                meta_type\u003dcommon.METADATA_TYPES.user):"},{"line_number":1291,"context_line":"        if volume[\u0027status\u0027] in (\u0027maintenance\u0027, \u0027uploading\u0027):"},{"line_number":1292,"context_line":"            msg \u003d _(\u0027Updating volume metadata is not allowed for volumes in \u0027"},{"line_number":1293,"context_line":"                    \u0027%s status.\u0027) % volume[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":19,"id":"affd70af_29df0136","line":1290,"in_reply_to":"ec06d0e9_73cfb24f","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1301,"context_line":"                               volume: objects.Volume,"},{"line_number":1302,"context_line":"                               metadata: Dict[str, Any],"},{"line_number":1303,"context_line":"                               delete: bool \u003d False,"},{"line_number":1304,"context_line":"                               meta_type\u003dcommon.METADATA_TYPES.user):"},{"line_number":1305,"context_line":"        \"\"\"Updates volume metadata."},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        If delete is True, metadata items that are not specified in the"}],"source_content_type":"text/x-python","patch_set":19,"id":"ed6467d0_b8507e57","line":1304,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1301,"context_line":"                               volume: objects.Volume,"},{"line_number":1302,"context_line":"                               metadata: Dict[str, Any],"},{"line_number":1303,"context_line":"                               delete: bool \u003d False,"},{"line_number":1304,"context_line":"                               meta_type\u003dcommon.METADATA_TYPES.user):"},{"line_number":1305,"context_line":"        \"\"\"Updates volume metadata."},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        If delete is True, metadata items that are not specified in the"}],"source_content_type":"text/x-python","patch_set":19,"id":"fdf40938_59e3f866","line":1304,"in_reply_to":"ed6467d0_b8507e57","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1333,"context_line":"                                     metadata: Dict[str, Any],"},{"line_number":1334,"context_line":"                                     delete: Optional[bool] \u003d False,"},{"line_number":1335,"context_line":"                                     add: Optional[bool] \u003d True,"},{"line_number":1336,"context_line":"                                     update: Optional[bool] \u003d True):"},{"line_number":1337,"context_line":"        \"\"\"Updates or creates volume administration metadata."},{"line_number":1338,"context_line":""},{"line_number":1339,"context_line":"        If delete is True, metadata items that are not specified in the"}],"source_content_type":"text/x-python","patch_set":19,"id":"c59f92b7_2cd1db56","line":1336,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1333,"context_line":"                                     metadata: Dict[str, Any],"},{"line_number":1334,"context_line":"                                     delete: Optional[bool] \u003d False,"},{"line_number":1335,"context_line":"                                     add: Optional[bool] \u003d True,"},{"line_number":1336,"context_line":"                                     update: Optional[bool] \u003d True):"},{"line_number":1337,"context_line":"        \"\"\"Updates or creates volume administration metadata."},{"line_number":1338,"context_line":""},{"line_number":1339,"context_line":"        If delete is True, metadata items that are not specified in the"}],"source_content_type":"text/x-python","patch_set":19,"id":"e2463297_98d30e68","line":1336,"in_reply_to":"c59f92b7_2cd1db56","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"    def get_snapshot_metadata(self,"},{"line_number":1359,"context_line":"                              context: context.RequestContext,"},{"line_number":1360,"context_line":"                              snapshot: objects.Snapshot):"},{"line_number":1361,"context_line":"        \"\"\"Get all metadata associated with a snapshot.\"\"\""},{"line_number":1362,"context_line":"        context.authorize(s_meta_policy.GET_POLICY,"},{"line_number":1363,"context_line":"                          target_obj\u003dsnapshot)"}],"source_content_type":"text/x-python","patch_set":19,"id":"71f90d32_7c1fcca4","line":1360,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"    def get_snapshot_metadata(self,"},{"line_number":1359,"context_line":"                              context: context.RequestContext,"},{"line_number":1360,"context_line":"                              snapshot: objects.Snapshot):"},{"line_number":1361,"context_line":"        \"\"\"Get all metadata associated with a snapshot.\"\"\""},{"line_number":1362,"context_line":"        context.authorize(s_meta_policy.GET_POLICY,"},{"line_number":1363,"context_line":"                          target_obj\u003dsnapshot)"}],"source_content_type":"text/x-python","patch_set":19,"id":"402dd3b5_7978bc5b","line":1360,"in_reply_to":"71f90d32_7c1fcca4","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1666,"context_line":"    def migrate_volume(self,"},{"line_number":1667,"context_line":"                       context: context.RequestContext,"},{"line_number":1668,"context_line":"                       volume: objects.Volume,"},{"line_number":1669,"context_line":"                       host,"},{"line_number":1670,"context_line":"                       cluster_name: str,"},{"line_number":1671,"context_line":"                       force_copy,"},{"line_number":1672,"context_line":"                       lock_volume: bool) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ef03fc0_0a4080ac","line":1669,"updated":"2021-11-10 15:23:52.000000000","message":"\u0027host\u0027 is missing type, possibly str","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1666,"context_line":"    def migrate_volume(self,"},{"line_number":1667,"context_line":"                       context: context.RequestContext,"},{"line_number":1668,"context_line":"                       volume: objects.Volume,"},{"line_number":1669,"context_line":"                       host,"},{"line_number":1670,"context_line":"                       cluster_name: str,"},{"line_number":1671,"context_line":"                       force_copy,"},{"line_number":1672,"context_line":"                       lock_volume: bool) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":19,"id":"7e425280_7a557d98","line":1669,"in_reply_to":"9ef03fc0_0a4080ac","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":1668,"context_line":"                       volume: objects.Volume,"},{"line_number":1669,"context_line":"                       host,"},{"line_number":1670,"context_line":"                       cluster_name: str,"},{"line_number":1671,"context_line":"                       force_copy,"},{"line_number":1672,"context_line":"                       lock_volume: bool) -\u003e None:"},{"line_number":1673,"context_line":"        \"\"\"Migrate the volume to the specified host or cluster.\"\"\""},{"line_number":1674,"context_line":"        elevated \u003d context.elevated()"}],"source_content_type":"text/x-python","patch_set":19,"id":"996f05bb_952d7601","line":1671,"updated":"2021-11-10 15:23:52.000000000","message":"\u0027force_copy\u0027 possibly bool?","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":1668,"context_line":"                       volume: objects.Volume,"},{"line_number":1669,"context_line":"                       host,"},{"line_number":1670,"context_line":"                       cluster_name: str,"},{"line_number":1671,"context_line":"                       force_copy,"},{"line_number":1672,"context_line":"                       lock_volume: bool) -\u003e None:"},{"line_number":1673,"context_line":"        \"\"\"Migrate the volume to the specified host or cluster.\"\"\""},{"line_number":1674,"context_line":"        elevated \u003d context.elevated()"}],"source_content_type":"text/x-python","patch_set":19,"id":"a49d91a2_d199794c","line":1671,"in_reply_to":"996f05bb_952d7601","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":2073,"context_line":"    def manage_existing_snapshot("},{"line_number":2074,"context_line":"            self,"},{"line_number":2075,"context_line":"            context: context.RequestContext,"},{"line_number":2076,"context_line":"            ref,"},{"line_number":2077,"context_line":"            volume: objects.Volume,"},{"line_number":2078,"context_line":"            name: Optional[str] \u003d None,"},{"line_number":2079,"context_line":"            description: Optional[str] \u003d None,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3b4f602c_8e0ed7ec","line":2076,"updated":"2021-11-10 15:23:52.000000000","message":"missing type, possibly dict","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":2073,"context_line":"    def manage_existing_snapshot("},{"line_number":2074,"context_line":"            self,"},{"line_number":2075,"context_line":"            context: context.RequestContext,"},{"line_number":2076,"context_line":"            ref,"},{"line_number":2077,"context_line":"            volume: objects.Volume,"},{"line_number":2078,"context_line":"            name: Optional[str] \u003d None,"},{"line_number":2079,"context_line":"            description: Optional[str] \u003d None,"}],"source_content_type":"text/x-python","patch_set":19,"id":"5b8e27bc_6975dc2f","line":2076,"in_reply_to":"3b4f602c_8e0ed7ec","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":2103,"context_line":"                                 limit: Optional[int] \u003d None,"},{"line_number":2104,"context_line":"                                 offset: Optional[int] \u003d None,"},{"line_number":2105,"context_line":"                                 sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2106,"context_line":"                                 sort_dirs: Optional[List[str]] \u003d None):"},{"line_number":2107,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name,"},{"line_number":2108,"context_line":"                                                \u0027snapshot\u0027)"},{"line_number":2109,"context_line":"        return self.volume_rpcapi.get_manageable_snapshots(context, svc,"}],"source_content_type":"text/x-python","patch_set":19,"id":"40cf84ea_a1d369fb","line":2106,"updated":"2021-11-10 15:23:52.000000000","message":"missing return type possibly object.snapshotList","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":2103,"context_line":"                                 limit: Optional[int] \u003d None,"},{"line_number":2104,"context_line":"                                 offset: Optional[int] \u003d None,"},{"line_number":2105,"context_line":"                                 sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2106,"context_line":"                                 sort_dirs: Optional[List[str]] \u003d None):"},{"line_number":2107,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name,"},{"line_number":2108,"context_line":"                                                \u0027snapshot\u0027)"},{"line_number":2109,"context_line":"        return self.volume_rpcapi.get_manageable_snapshots(context, svc,"}],"source_content_type":"text/x-python","patch_set":19,"id":"2499b788_8d91421c","line":2106,"in_reply_to":"40cf84ea_a1d369fb","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"24dbd0f837180bf34ddfbb4c9d7c3fb578d130b9","unresolved":true,"context_lines":[{"line_number":2151,"context_line":"    def _replication_db_change(self,"},{"line_number":2152,"context_line":"                               ctxt: context.RequestContext,"},{"line_number":2153,"context_line":"                               field: str,"},{"line_number":2154,"context_line":"                               expected_value, new_value,"},{"line_number":2155,"context_line":"                               host: str,"},{"line_number":2156,"context_line":"                               cluster_name: str,"},{"line_number":2157,"context_line":"                               check_up: bool \u003d False) -\u003e tuple:"}],"source_content_type":"text/x-python","patch_set":19,"id":"1e4ad028_aafaae1b","line":2154,"updated":"2021-11-10 15:23:52.000000000","message":"possibly str?","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8322365e519904548cd06c262616ed500cb848d3","unresolved":false,"context_lines":[{"line_number":2151,"context_line":"    def _replication_db_change(self,"},{"line_number":2152,"context_line":"                               ctxt: context.RequestContext,"},{"line_number":2153,"context_line":"                               field: str,"},{"line_number":2154,"context_line":"                               expected_value, new_value,"},{"line_number":2155,"context_line":"                               host: str,"},{"line_number":2156,"context_line":"                               cluster_name: str,"},{"line_number":2157,"context_line":"                               check_up: bool \u003d False) -\u003e tuple:"}],"source_content_type":"text/x-python","patch_set":19,"id":"f1198560_69f43115","line":2154,"in_reply_to":"1e4ad028_aafaae1b","updated":"2021-11-11 21:35:02.000000000","message":"Done","commit_id":"121c5a6b64b2a4ac4a4615ae2c3aefe2c9db574a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a91821e436d86369de203829296198082e39212e","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Union[str, int],"},{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"}],"source_content_type":"text/x-python","patch_set":20,"id":"e1620dfd_87ef246a","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":36},"updated":"2021-11-16 19:58:03.000000000","message":"I think that the comment on lines 250-253 implies that this should be Optional[Union[str, int]].  Also, the type on the validation schema for v3-volume-create doesn\u0027t require size, and allows string, integer, or null for \u0027size\u0027 in the JSON.  So it may be possible to see None here.","commit_id":"a64078789b5330183137ba4ecb58d720b9210172"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a270f23ac237560f6bd95e39427154beec934edb","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Union[str, int],"},{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"}],"source_content_type":"text/x-python","patch_set":20,"id":"0c6dd274_43f68a9b","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":36},"in_reply_to":"e1620dfd_87ef246a","updated":"2021-11-16 20:07:46.000000000","message":"I agree","commit_id":"a64078789b5330183137ba4ecb58d720b9210172"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"264593e214bf1f36220b8c6efaad66297b827148","unresolved":true,"context_lines":[{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Optional[Union[str, int]],"},{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"},{"line_number":222,"context_line":"               image_id: str \u003d None,"},{"line_number":223,"context_line":"               volume_type: Optional[objects.VolumeType] \u003d None,"}],"source_content_type":"text/x-python","patch_set":21,"id":"ef8538e4_9f511ca7","line":220,"range":{"start_line":219,"start_character":0,"end_line":220,"end_character":32},"updated":"2021-11-16 21:36:49.000000000","message":"As you mentioned in IRC, these should be Optional[str] (at least that\u0027s the way I read api/v3/volumes.py)","commit_id":"fdf862b1f38602143b6eb5f8a47c52a759dd732a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"76367a67d48d4aad4a4374a8e8f3b98782c3ee81","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Optional[Union[str, int]],"},{"line_number":219,"context_line":"               name: str,"},{"line_number":220,"context_line":"               description: str,"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"},{"line_number":222,"context_line":"               image_id: str \u003d None,"},{"line_number":223,"context_line":"               volume_type: Optional[objects.VolumeType] \u003d None,"}],"source_content_type":"text/x-python","patch_set":21,"id":"c46c23c5_fa252dfa","line":220,"range":{"start_line":219,"start_character":0,"end_line":220,"end_character":32},"in_reply_to":"ef8538e4_9f511ca7","updated":"2021-11-18 15:55:25.000000000","message":"Done","commit_id":"fdf862b1f38602143b6eb5f8a47c52a759dd732a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _retype_is_possible(self,"},{"line_number":161,"context_line":"                            context: context.RequestContext,"},{"line_number":162,"context_line":"                            source_type: objects.VolumeType,"},{"line_number":163,"context_line":"                            target_type: objects.VolumeType) -\u003e bool:"},{"line_number":164,"context_line":"        elevated \u003d context.elevated()"},{"line_number":165,"context_line":"        # If encryptions are different, it is not allowed"},{"line_number":166,"context_line":"        # to create volume from source volume or snapshot."}],"source_content_type":"text/x-python","patch_set":22,"id":"3211f7ff_7f4da17d","line":163,"range":{"start_line":162,"start_character":28,"end_line":163,"end_character":59},"updated":"2021-11-24 11:05:46.000000000","message":"I\u0027m not exactly sure but we had instances where volume type is treated as an object in some places and dict in other. My question is, will it fail at runtime in scenarios when a dict is passed instead of VolumeType object?","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _retype_is_possible(self,"},{"line_number":161,"context_line":"                            context: context.RequestContext,"},{"line_number":162,"context_line":"                            source_type: objects.VolumeType,"},{"line_number":163,"context_line":"                            target_type: objects.VolumeType) -\u003e bool:"},{"line_number":164,"context_line":"        elevated \u003d context.elevated()"},{"line_number":165,"context_line":"        # If encryptions are different, it is not allowed"},{"line_number":166,"context_line":"        # to create volume from source volume or snapshot."}],"source_content_type":"text/x-python","patch_set":22,"id":"6d3f84c9_d10c67a8","line":163,"range":{"start_line":162,"start_character":28,"end_line":163,"end_character":59},"in_reply_to":"3211f7ff_7f4da17d","updated":"2021-12-02 19:51:27.000000000","message":"Yes, see line 167.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def _is_multiattach(self,"},{"line_number":204,"context_line":"                        volume_type: objects.VolumeType) -\u003e bool:"},{"line_number":205,"context_line":"        # TODO: getattr not needed if using obj?"},{"line_number":206,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":207,"context_line":"        return specs.get(\u0027multiattach\u0027, \u0027False\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7f78562b_5c512cbe","line":205,"range":{"start_line":205,"start_character":8,"end_line":205,"end_character":48},"updated":"2021-11-24 11:05:46.000000000","message":"same question as on L#162, are we sure we will always get a VolumeType object and what happens if we don\u0027t?","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Optional[Union[str, int]],"},{"line_number":219,"context_line":"               name: Optional[str],"},{"line_number":220,"context_line":"               description: Optional[str],"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"}],"source_content_type":"text/x-python","patch_set":22,"id":"bdd32200_f4772e20","line":218,"range":{"start_line":218,"start_character":41,"end_line":218,"end_character":44},"updated":"2021-11-24 11:05:46.000000000","message":"this should most probably be str but adding int also makes it more safe\nhttps://github.com/openstack/cinder/blob/master/cinder/api/v3/volumes.py#L378-L384","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":true,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    def create(self,"},{"line_number":217,"context_line":"               context: context.RequestContext,"},{"line_number":218,"context_line":"               size: Optional[Union[str, int]],"},{"line_number":219,"context_line":"               name: Optional[str],"},{"line_number":220,"context_line":"               description: Optional[str],"},{"line_number":221,"context_line":"               snapshot: Optional[objects.Snapshot] \u003d None,"}],"source_content_type":"text/x-python","patch_set":22,"id":"db004384_b6c39916","line":218,"range":{"start_line":218,"start_character":41,"end_line":218,"end_character":44},"in_reply_to":"bdd32200_f4772e20","updated":"2021-12-02 19:51:27.000000000","message":"See line 255 -- this is just describing what the code handles currently.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":628,"context_line":"    def get_all(self,"},{"line_number":629,"context_line":"                context: context.RequestContext,"},{"line_number":630,"context_line":"                marker: Optional[str] \u003d None,"},{"line_number":631,"context_line":"                limit: Optional[int] \u003d None,"},{"line_number":632,"context_line":"                sort_keys: Iterable[str] \u003d None,"},{"line_number":633,"context_line":"                sort_dirs: Iterable[str] \u003d None,"},{"line_number":634,"context_line":"                filters: Optional[dict] \u003d None,"}],"source_content_type":"text/x-python","patch_set":22,"id":"454606da_b6df620d","line":631,"range":{"start_line":631,"start_character":39,"end_line":631,"end_character":43},"updated":"2021-11-24 11:05:46.000000000","message":"the default value here also seems to be 1000\nhttps://github.com/openstack/cinder/blob/master/cinder/api/common.py#L88\nhttps://github.com/openstack/cinder/blob/master/cinder/api/common.py#L35","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":true,"context_lines":[{"line_number":628,"context_line":"    def get_all(self,"},{"line_number":629,"context_line":"                context: context.RequestContext,"},{"line_number":630,"context_line":"                marker: Optional[str] \u003d None,"},{"line_number":631,"context_line":"                limit: Optional[int] \u003d None,"},{"line_number":632,"context_line":"                sort_keys: Iterable[str] \u003d None,"},{"line_number":633,"context_line":"                sort_dirs: Iterable[str] \u003d None,"},{"line_number":634,"context_line":"                filters: Optional[dict] \u003d None,"}],"source_content_type":"text/x-python","patch_set":22,"id":"eaba6cea_25950ffe","line":631,"range":{"start_line":631,"start_character":39,"end_line":631,"end_character":43},"in_reply_to":"454606da_b6df620d","updated":"2021-12-02 19:51:27.000000000","message":"I\u0027m not sure what you mean here or in the below comments -- the method already defaulted to None before this change.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":629,"context_line":"                context: context.RequestContext,"},{"line_number":630,"context_line":"                marker: Optional[str] \u003d None,"},{"line_number":631,"context_line":"                limit: Optional[int] \u003d None,"},{"line_number":632,"context_line":"                sort_keys: Iterable[str] \u003d None,"},{"line_number":633,"context_line":"                sort_dirs: Iterable[str] \u003d None,"},{"line_number":634,"context_line":"                filters: Optional[dict] \u003d None,"},{"line_number":635,"context_line":"                viewable_admin_meta: bool \u003d False,"}],"source_content_type":"text/x-python","patch_set":22,"id":"f07f481e_c5926df0","line":632,"range":{"start_line":632,"start_character":27,"end_line":632,"end_character":35},"updated":"2021-11-24 11:05:46.000000000","message":"why are we using Iterable instead of List here?\nhttps://github.com/openstack/cinder/blob/master/cinder/api/common.py#L164-L165","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                marker: Optional[str] \u003d None,"},{"line_number":631,"context_line":"                limit: Optional[int] \u003d None,"},{"line_number":632,"context_line":"                sort_keys: Iterable[str] \u003d None,"},{"line_number":633,"context_line":"                sort_dirs: Iterable[str] \u003d None,"},{"line_number":634,"context_line":"                filters: Optional[dict] \u003d None,"},{"line_number":635,"context_line":"                viewable_admin_meta: bool \u003d False,"},{"line_number":636,"context_line":"                offset: Optional[int] \u003d None) -\u003e objects.VolumeList:"}],"source_content_type":"text/x-python","patch_set":22,"id":"37bc8afd_56781fcc","line":633,"range":{"start_line":633,"start_character":27,"end_line":633,"end_character":35},"updated":"2021-11-24 11:05:46.000000000","message":"same","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":633,"context_line":"                sort_dirs: Iterable[str] \u003d None,"},{"line_number":634,"context_line":"                filters: Optional[dict] \u003d None,"},{"line_number":635,"context_line":"                viewable_admin_meta: bool \u003d False,"},{"line_number":636,"context_line":"                offset: Optional[int] \u003d None) -\u003e objects.VolumeList:"},{"line_number":637,"context_line":"        context.authorize(vol_policy.GET_ALL_POLICY)"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        if filters is None:"}],"source_content_type":"text/x-python","patch_set":22,"id":"2a6e3c3f_bbee97ac","line":636,"range":{"start_line":636,"start_character":40,"end_line":636,"end_character":44},"updated":"2021-11-24 11:05:46.000000000","message":"offset default value is 0\nhttps://github.com/openstack/cinder/blob/master/cinder/api/common.py#L108","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":723,"context_line":"            context: context.RequestContext,"},{"line_number":724,"context_line":"            search_opts: Optional[dict] \u003d None,"},{"line_number":725,"context_line":"            marker: Optional[str] \u003d None,"},{"line_number":726,"context_line":"            limit: Optional[int] \u003d None,"},{"line_number":727,"context_line":"            sort_keys: Optional[List[str]] \u003d None,"},{"line_number":728,"context_line":"            sort_dirs: Optional[List[str]] \u003d None,"},{"line_number":729,"context_line":"            offset: Optional[int] \u003d None) -\u003e objects.SnapshotList:"},{"line_number":730,"context_line":"        context.authorize(snapshot_policy.GET_ALL_POLICY)"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        search_opts \u003d search_opts or {}"}],"source_content_type":"text/x-python","patch_set":22,"id":"96a5094f_2abc679c","line":729,"range":{"start_line":726,"start_character":12,"end_line":729,"end_character":40},"updated":"2021-11-24 11:05:46.000000000","message":"same as get_all on L#631-636","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":true,"context_lines":[{"line_number":723,"context_line":"            context: context.RequestContext,"},{"line_number":724,"context_line":"            search_opts: Optional[dict] \u003d None,"},{"line_number":725,"context_line":"            marker: Optional[str] \u003d None,"},{"line_number":726,"context_line":"            limit: Optional[int] \u003d None,"},{"line_number":727,"context_line":"            sort_keys: Optional[List[str]] \u003d None,"},{"line_number":728,"context_line":"            sort_dirs: Optional[List[str]] \u003d None,"},{"line_number":729,"context_line":"            offset: Optional[int] \u003d None) -\u003e objects.SnapshotList:"},{"line_number":730,"context_line":"        context.authorize(snapshot_policy.GET_ALL_POLICY)"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"        search_opts \u003d search_opts or {}"}],"source_content_type":"text/x-python","patch_set":22,"id":"a10be018_31c9823b","line":729,"range":{"start_line":726,"start_character":12,"end_line":729,"end_character":40},"in_reply_to":"96a5094f_2abc679c","updated":"2021-12-02 19:51:27.000000000","message":"I\u0027m not sure what the suggestion is here -- this is unchanged from before.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":827,"context_line":"               instance_uuid: str,"},{"line_number":828,"context_line":"               host_name: str,"},{"line_number":829,"context_line":"               mountpoint: str,"},{"line_number":830,"context_line":"               mode: str):"},{"line_number":831,"context_line":"        context.authorize(vol_action_policy.ATTACH_POLICY,"},{"line_number":832,"context_line":"                          target_obj\u003dvolume)"},{"line_number":833,"context_line":"        if volume.status \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"83162879_1df1f9b5","line":830,"range":{"start_line":830,"start_character":25,"end_line":830,"end_character":26},"updated":"2021-11-24 11:05:46.000000000","message":"shouldn\u0027t this also return objects.VolumeAttachment since it\u0027s returning the same attachment object as manager\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L1364","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":858,"context_line":"    def detach(self,"},{"line_number":859,"context_line":"               context: context.RequestContext,"},{"line_number":860,"context_line":"               volume: objects.Volume,"},{"line_number":861,"context_line":"               attachment_id: str) -\u003e None:"},{"line_number":862,"context_line":"        context.authorize(vol_action_policy.DETACH_POLICY,"},{"line_number":863,"context_line":"                          target_obj\u003dvolume)"},{"line_number":864,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"18ce0099_59a80616","line":861,"range":{"start_line":861,"start_character":38,"end_line":861,"end_character":42},"updated":"2021-11-24 11:05:46.000000000","message":"This seems right but i think we need to change the method\u0027s return part in a followup. see L#873","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59f45335058e73a396df4235644c61514cc4325e","unresolved":false,"context_lines":[{"line_number":858,"context_line":"    def detach(self,"},{"line_number":859,"context_line":"               context: context.RequestContext,"},{"line_number":860,"context_line":"               volume: objects.Volume,"},{"line_number":861,"context_line":"               attachment_id: str) -\u003e None:"},{"line_number":862,"context_line":"        context.authorize(vol_action_policy.DETACH_POLICY,"},{"line_number":863,"context_line":"                          target_obj\u003dvolume)"},{"line_number":864,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027maintenance\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"56fbcc05_5ad35413","line":861,"range":{"start_line":861,"start_character":38,"end_line":861,"end_character":42},"in_reply_to":"18ce0099_59a80616","updated":"2021-12-02 19:56:40.000000000","message":"Ack","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":870,"context_line":"                                                          attachment_id)"},{"line_number":871,"context_line":"        LOG.info(\"Detach volume completed successfully.\","},{"line_number":872,"context_line":"                 resource\u003dvolume)"},{"line_number":873,"context_line":"        return detach_results"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"    def initialize_connection(self,"},{"line_number":876,"context_line":"                              context: context.RequestContext,"}],"source_content_type":"text/x-python","patch_set":22,"id":"6842750c_1c827a26","line":873,"range":{"start_line":873,"start_character":8,"end_line":873,"end_character":29},"updated":"2021-11-24 11:05:46.000000000","message":"I think we need to correct this since the manager\u0027s detach_volume method doesn\u0027t return anything and i don\u0027t see the point of returning this here as well.\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L1543","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59f45335058e73a396df4235644c61514cc4325e","unresolved":false,"context_lines":[{"line_number":870,"context_line":"                                                          attachment_id)"},{"line_number":871,"context_line":"        LOG.info(\"Detach volume completed successfully.\","},{"line_number":872,"context_line":"                 resource\u003dvolume)"},{"line_number":873,"context_line":"        return detach_results"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"    def initialize_connection(self,"},{"line_number":876,"context_line":"                              context: context.RequestContext,"}],"source_content_type":"text/x-python","patch_set":22,"id":"34ad59b0_36b3ebce","line":873,"range":{"start_line":873,"start_character":8,"end_line":873,"end_character":29},"in_reply_to":"6842750c_1c827a26","updated":"2021-12-02 19:56:40.000000000","message":"Ack","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":1238,"context_line":"    def update_snapshot(self,"},{"line_number":1239,"context_line":"                        context: context.RequestContext,"},{"line_number":1240,"context_line":"                        snapshot: objects.Snapshot,"},{"line_number":1241,"context_line":"                        fields) -\u003e None:"},{"line_number":1242,"context_line":"        context.authorize(snapshot_policy.UPDATE_POLICY,"},{"line_number":1243,"context_line":"                          target_obj\u003dsnapshot)"},{"line_number":1244,"context_line":"        snapshot.update(fields)"}],"source_content_type":"text/x-python","patch_set":22,"id":"814ee9be_b73ee4e7","line":1241,"range":{"start_line":1241,"start_character":24,"end_line":1241,"end_character":30},"updated":"2021-11-24 11:05:46.000000000","message":"this seems to be a dict type\nhttps://github.com/openstack/cinder/blob/master/cinder/api/v2/snapshots.py#L151","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59f45335058e73a396df4235644c61514cc4325e","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"    def update_snapshot(self,"},{"line_number":1239,"context_line":"                        context: context.RequestContext,"},{"line_number":1240,"context_line":"                        snapshot: objects.Snapshot,"},{"line_number":1241,"context_line":"                        fields) -\u003e None:"},{"line_number":1242,"context_line":"        context.authorize(snapshot_policy.UPDATE_POLICY,"},{"line_number":1243,"context_line":"                          target_obj\u003dsnapshot)"},{"line_number":1244,"context_line":"        snapshot.update(fields)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f3ccdaa_75931a11","line":1241,"range":{"start_line":1241,"start_character":24,"end_line":1241,"end_character":30},"in_reply_to":"814ee9be_b73ee4e7","updated":"2021-12-02 19:56:40.000000000","message":"Done","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":false,"context_lines":[{"line_number":1762,"context_line":"                                  context: context.RequestContext,"},{"line_number":1763,"context_line":"                                  volume: objects.Volume,"},{"line_number":1764,"context_line":"                                  new_volume: objects.Volume,"},{"line_number":1765,"context_line":"                                  error: bool) -\u003e str:"},{"line_number":1766,"context_line":"        context.authorize(vol_action_policy.MIGRATE_COMPLETE_POLICY,"},{"line_number":1767,"context_line":"                          target_obj\u003dvolume)"},{"line_number":1768,"context_line":"        if not (volume.migration_status or new_volume.migration_status):"}],"source_content_type":"text/x-python","patch_set":22,"id":"da1a0707_d9d9e575","line":1765,"range":{"start_line":1765,"start_character":50,"end_line":1765,"end_character":53},"updated":"2021-11-24 11:05:46.000000000","message":"this returns volume id so this looks right\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L2577","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":1824,"context_line":"               context: context.RequestContext,"},{"line_number":1825,"context_line":"               volume: objects.Volume,"},{"line_number":1826,"context_line":"               new_type: Union[str, objects.VolumeType],"},{"line_number":1827,"context_line":"               migration_policy\u003dNone) -\u003e None:"},{"line_number":1828,"context_line":"        \"\"\"Attempt to modify the type associated with an existing volume.\"\"\""},{"line_number":1829,"context_line":"        context.authorize(vol_action_policy.RETYPE_POLICY, target_obj\u003dvolume)"},{"line_number":1830,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"c35ef81e_5987daa7","line":1827,"range":{"start_line":1827,"start_character":15,"end_line":1827,"end_character":31},"updated":"2021-11-24 11:05:46.000000000","message":"IIRC the value here is either \u0027on-demand\u0027 or \u0027never\u0027 which are string types so can we set this as str?","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":false,"context_lines":[{"line_number":1824,"context_line":"               context: context.RequestContext,"},{"line_number":1825,"context_line":"               volume: objects.Volume,"},{"line_number":1826,"context_line":"               new_type: Union[str, objects.VolumeType],"},{"line_number":1827,"context_line":"               migration_policy\u003dNone) -\u003e None:"},{"line_number":1828,"context_line":"        \"\"\"Attempt to modify the type associated with an existing volume.\"\"\""},{"line_number":1829,"context_line":"        context.authorize(vol_action_policy.RETYPE_POLICY, target_obj\u003dvolume)"},{"line_number":1830,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"28f31a5b_b94a2087","line":1827,"range":{"start_line":1827,"start_character":15,"end_line":1827,"end_character":31},"in_reply_to":"c35ef81e_5987daa7","updated":"2021-12-02 19:51:27.000000000","message":"Done","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"                               host: str,"},{"line_number":2061,"context_line":"                               cluster_name,"},{"line_number":2062,"context_line":"                               marker: Optional[str] \u003d None,"},{"line_number":2063,"context_line":"                               limit: Optional[int] \u003d None,"},{"line_number":2064,"context_line":"                               offset: Optional[int] \u003d None,"},{"line_number":2065,"context_line":"                               sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2066,"context_line":"                               sort_dirs: Optional[List[str]] \u003d None):"},{"line_number":2067,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"}],"source_content_type":"text/x-python","patch_set":22,"id":"ab5b4459_3e7019cb","line":2064,"range":{"start_line":2063,"start_character":31,"end_line":2064,"end_character":60},"updated":"2021-11-24 11:05:46.000000000","message":"same as L#631 and L#636","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59f45335058e73a396df4235644c61514cc4325e","unresolved":true,"context_lines":[{"line_number":2060,"context_line":"                               host: str,"},{"line_number":2061,"context_line":"                               cluster_name,"},{"line_number":2062,"context_line":"                               marker: Optional[str] \u003d None,"},{"line_number":2063,"context_line":"                               limit: Optional[int] \u003d None,"},{"line_number":2064,"context_line":"                               offset: Optional[int] \u003d None,"},{"line_number":2065,"context_line":"                               sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2066,"context_line":"                               sort_dirs: Optional[List[str]] \u003d None):"},{"line_number":2067,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"}],"source_content_type":"text/x-python","patch_set":22,"id":"dbebfd7e_c6fa4d89","line":2064,"range":{"start_line":2063,"start_character":31,"end_line":2064,"end_character":60},"in_reply_to":"ab5b4459_3e7019cb","updated":"2021-12-02 19:56:40.000000000","message":"See above questions.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":2062,"context_line":"                               marker: Optional[str] \u003d None,"},{"line_number":2063,"context_line":"                               limit: Optional[int] \u003d None,"},{"line_number":2064,"context_line":"                               offset: Optional[int] \u003d None,"},{"line_number":2065,"context_line":"                               sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2066,"context_line":"                               sort_dirs: Optional[List[str]] \u003d None):"},{"line_number":2067,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"},{"line_number":2068,"context_line":"        return self.volume_rpcapi.get_manageable_volumes(context, svc,"}],"source_content_type":"text/x-python","patch_set":22,"id":"82b0d903_d18fc644","line":2065,"range":{"start_line":2065,"start_character":42,"end_line":2065,"end_character":61},"updated":"2021-11-24 11:05:46.000000000","message":"we should use the same in L#632 and similar occurrences","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":2101,"context_line":"            host: str,"},{"line_number":2102,"context_line":"            cluster_name: Optional[str],"},{"line_number":2103,"context_line":"            marker: Optional[str] \u003d None,"},{"line_number":2104,"context_line":"            limit: Optional[int] \u003d None,"},{"line_number":2105,"context_line":"            offset: Optional[int] \u003d None,"},{"line_number":2106,"context_line":"            sort_keys: Optional[List[str]] \u003d None,"},{"line_number":2107,"context_line":"            sort_dirs: Optional[List[str]] \u003d None) -\u003e List[dict]:"},{"line_number":2108,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name,"}],"source_content_type":"text/x-python","patch_set":22,"id":"f080d99d_a273326b","line":2105,"range":{"start_line":2104,"start_character":12,"end_line":2105,"end_character":41},"updated":"2021-11-24 11:05:46.000000000","message":"same as L#631 and L#636","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":2192,"context_line":"        # If there were some services that couldn\u0027t be changed we should at"},{"line_number":2193,"context_line":"        # least log the error."},{"line_number":2194,"context_line":"        if not_changed:"},{"line_number":2195,"context_line":"            msg \u003d _error_msg([s.host for s in not_changed][0])"},{"line_number":2196,"context_line":"            # If we couldn\u0027t change any of the services"},{"line_number":2197,"context_line":"            if not changed:"},{"line_number":2198,"context_line":"                # Undo the cluster change"}],"source_content_type":"text/x-python","patch_set":22,"id":"0812cf64_aee71160","line":2195,"range":{"start_line":2195,"start_character":58,"end_line":2195,"end_character":61},"updated":"2021-11-24 11:05:46.000000000","message":"this looks unrelated to the mypy work, is this encountered while doing the annotation for _error_msg method?","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"59f45335058e73a396df4235644c61514cc4325e","unresolved":true,"context_lines":[{"line_number":2192,"context_line":"        # If there were some services that couldn\u0027t be changed we should at"},{"line_number":2193,"context_line":"        # least log the error."},{"line_number":2194,"context_line":"        if not_changed:"},{"line_number":2195,"context_line":"            msg \u003d _error_msg([s.host for s in not_changed][0])"},{"line_number":2196,"context_line":"            # If we couldn\u0027t change any of the services"},{"line_number":2197,"context_line":"            if not changed:"},{"line_number":2198,"context_line":"                # Undo the cluster change"}],"source_content_type":"text/x-python","patch_set":22,"id":"7b2f7ced_32a7e0c6","line":2195,"range":{"start_line":2195,"start_character":58,"end_line":2195,"end_character":61},"in_reply_to":"0812cf64_aee71160","updated":"2021-12-02 19:56:40.000000000","message":"Yeah, I\u0027ll change this back.","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"60ee44cf4673c92c7620ebdeef45dbba1c283040","unresolved":true,"context_lines":[{"line_number":2264,"context_line":"        if not self.volume_rpcapi.thaw_host(ctxt, services[0]):"},{"line_number":2265,"context_line":"            return \"Backend reported error during thaw_host operation.\""},{"line_number":2266,"context_line":""},{"line_number":2267,"context_line":"        return None"},{"line_number":2268,"context_line":""},{"line_number":2269,"context_line":"    def check_volume_filters(self,"},{"line_number":2270,"context_line":"                             filters: dict,"}],"source_content_type":"text/x-python","patch_set":22,"id":"0b80739a_4932af39","line":2267,"range":{"start_line":2267,"start_character":0,"end_line":2267,"end_character":19},"updated":"2021-11-24 11:05:46.000000000","message":"by default every method returns None if a return is not specified so this shouldn\u0027t be needed, does this fail with mypy if not defined?","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"835768ec1342854832e7b77409eaf883adea67ea","unresolved":true,"context_lines":[{"line_number":2264,"context_line":"        if not self.volume_rpcapi.thaw_host(ctxt, services[0]):"},{"line_number":2265,"context_line":"            return \"Backend reported error during thaw_host operation.\""},{"line_number":2266,"context_line":""},{"line_number":2267,"context_line":"        return None"},{"line_number":2268,"context_line":""},{"line_number":2269,"context_line":"    def check_volume_filters(self,"},{"line_number":2270,"context_line":"                             filters: dict,"}],"source_content_type":"text/x-python","patch_set":22,"id":"24944240_d9ec4b60","line":2267,"range":{"start_line":2267,"start_character":0,"end_line":2267,"end_character":19},"in_reply_to":"0b80739a_4932af39","updated":"2021-12-02 19:51:27.000000000","message":"It\u0027s required by mypy.  This is actually stated in pep8, see the\n    \"Be consistent in return statements. Either all return statements in a function should return an expression, or none of them should.\"\n\nexample.\n\nAlso: https://github.com/python/mypy/issues/3974","commit_id":"7ebb34f1ea3c1a515dd93eec5a5e8609c6bfc82d"}]}
