)]}'
{"cinder/context.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\"\"\"RequestContext: context for requests that persist through all of cinder.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import copy"},{"line_number":21,"context_line":"import typing   # noqa: F401"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from keystoneauth1.access import service_catalog as ksa_service_catalog"},{"line_number":24,"context_line":"from keystoneauth1 import plugin"}],"source_content_type":"text/x-python","patch_set":15,"id":"22a1afdd_13ff5bd0","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":28},"updated":"2021-02-04 15:44:00.000000000","message":"any reason for importing this?","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    Represents the user taking a given action within the system."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":"    def __init__(self, user_id\u003dNone, project_id\u003dNone, is_admin\u003dNone,"},{"line_number":84,"context_line":"                 read_deleted\u003d\"no\", project_name\u003dNone, remote_address\u003dNone,"},{"line_number":85,"context_line":"                 timestamp\u003dNone, quota_class\u003dNone, service_catalog\u003dNone,"},{"line_number":86,"context_line":"                 user_auth_plugin\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"ac08abf5_19a8e26e","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":67},"updated":"2021-02-04 15:44:00.000000000","message":"not sure why we\u0027ve the default as None here, this should be a boolean\nfixing this will also help with the error we\u0027re facing at L#126","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"edc9d72c24420662ff2440e0dc3942d1609a18d3","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    Represents the user taking a given action within the system."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":"    def __init__(self, user_id\u003dNone, project_id\u003dNone, is_admin\u003dNone,"},{"line_number":84,"context_line":"                 read_deleted\u003d\"no\", project_name\u003dNone, remote_address\u003dNone,"},{"line_number":85,"context_line":"                 timestamp\u003dNone, quota_class\u003dNone, service_catalog\u003dNone,"},{"line_number":86,"context_line":"                 user_auth_plugin\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"f983e8d7_a644f01e","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":67},"in_reply_to":"849a530a_47b9bdfa","updated":"2021-02-11 09:29:13.000000000","message":"Makes sense, can be done in a separate patch","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ace3d1a5aac03f482076f1a95efea920ed5b7bb6","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    Represents the user taking a given action within the system."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    \"\"\""},{"line_number":83,"context_line":"    def __init__(self, user_id\u003dNone, project_id\u003dNone, is_admin\u003dNone,"},{"line_number":84,"context_line":"                 read_deleted\u003d\"no\", project_name\u003dNone, remote_address\u003dNone,"},{"line_number":85,"context_line":"                 timestamp\u003dNone, quota_class\u003dNone, service_catalog\u003dNone,"},{"line_number":86,"context_line":"                 user_auth_plugin\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"849a530a_47b9bdfa","line":83,"range":{"start_line":83,"start_character":54,"end_line":83,"end_character":67},"in_reply_to":"ac08abf5_19a8e26e","updated":"2021-02-10 17:21:52.000000000","message":"This is true but for this pass (aiming at the volume manager) I\u0027d really prefer to stick to not changing much here if possible.","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"}],"cinder/image/glance.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"11b5e8bb2f5faccb431e91be9727aae784a68115","unresolved":true,"context_lines":[{"line_number":593,"context_line":"                        \u0027visibility\u0027,"},{"line_number":594,"context_line":"                        \u0027cinder_encryption_key_id\u0027]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    output \u003d {}"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    for attr in IMAGE_ATTRIBUTES:"},{"line_number":599,"context_line":"        if attr \u003d\u003d \u0027deleted_at\u0027 and not output[\u0027deleted\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"ec93fb35_1c70500b","line":596,"range":{"start_line":596,"start_character":4,"end_line":596,"end_character":15},"updated":"2020-11-24 13:23:47.000000000","message":"This needs to be annotated\noutput: dict \u003d {}","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f6c26981a12b274bab4c188c3fe0a8a4760353e0","unresolved":true,"context_lines":[{"line_number":593,"context_line":"                        \u0027visibility\u0027,"},{"line_number":594,"context_line":"                        \u0027cinder_encryption_key_id\u0027]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    output \u003d {}"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    for attr in IMAGE_ATTRIBUTES:"},{"line_number":599,"context_line":"        if attr \u003d\u003d \u0027deleted_at\u0027 and not output[\u0027deleted\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"ddda898b_4e08f1f8","line":596,"range":{"start_line":596,"start_character":4,"end_line":596,"end_character":15},"updated":"2020-12-03 15:12:35.000000000","message":"This was missed in the update","commit_id":"4512bbb7c7a8aa2b1c1d4341a7ef7a15ea8b2b5c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"affd4c2919d010e6178c8bc95ddfd1687173a20e","unresolved":true,"context_lines":[{"line_number":593,"context_line":"                        \u0027visibility\u0027,"},{"line_number":594,"context_line":"                        \u0027cinder_encryption_key_id\u0027]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    output \u003d {}"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    for attr in IMAGE_ATTRIBUTES:"},{"line_number":599,"context_line":"        if attr \u003d\u003d \u0027deleted_at\u0027 and not output[\u0027deleted\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"8b25a855_0fd9844a","line":596,"range":{"start_line":596,"start_character":4,"end_line":596,"end_character":15},"in_reply_to":"ddda898b_4e08f1f8","updated":"2020-12-08 14:58:40.000000000","message":"Why do we want to update this in this patch?","commit_id":"4512bbb7c7a8aa2b1c1d4341a7ef7a15ea8b2b5c"}],"cinder/manager.py":[{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"ccae0bb2bfc5310ec679f06bc017a77c5953a6d3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.cluster \u003d cluster"},{"line_number":96,"context_line":"        self.additional_endpoints: list \u003d []"},{"line_number":97,"context_line":"        self.availability_zone \u003d CONF.storage_availability_zone"},{"line_number":98,"context_line":"        super(Manager, self).__init__(db_driver)  # type: ignore"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _set_tpool_size(self, nthreads: int) -\u003e None:"},{"line_number":101,"context_line":"        # NOTE(geguileo): Until PR #472 is merged we have to be very careful"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_cbaf8492","line":98,"range":{"start_line":98,"start_character":48,"end_line":98,"end_character":64},"updated":"2020-10-14 15:51:11.000000000","message":"This is necessary because `Manager` inherits both `base.Base` and `PeriodicTasks`, but `PeriodicTasks.__init__` does not expect `db_driver` parameter.\n\nSeems to be a known issue [0], so we may add this info here (`# type: ignore # mypy issue 5887`).\n\n[0] https://github.com/python/mypy/issues/5887","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":95,"context_line":"        self.cluster \u003d cluster"},{"line_number":96,"context_line":"        self.additional_endpoints: list \u003d []"},{"line_number":97,"context_line":"        self.availability_zone \u003d CONF.storage_availability_zone"},{"line_number":98,"context_line":"        super(Manager, self).__init__(db_driver)  # type: ignore"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _set_tpool_size(self, nthreads: int) -\u003e None:"},{"line_number":101,"context_line":"        # NOTE(geguileo): Until PR #472 is merged we have to be very careful"}],"source_content_type":"text/x-python","patch_set":15,"id":"8b5e257a_3e2541c3","line":98,"range":{"start_line":98,"start_character":50,"end_line":98,"end_character":64},"updated":"2021-02-04 15:44:00.000000000","message":"I think it\u0027s better to also provide the reported issue to know the actual reason of ignoring it and track if it gets fixed\n# https://github.com/python/mypy/issues/4335\nsuper(Manager, self).__init__(db_driver)  # type: ignore","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"}],"cinder/volume/manager.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":45,"context_line":"from oslo_serialization import jsonutils"},{"line_number":46,"context_line":"from oslo_service import periodic_task"},{"line_number":47,"context_line":"from oslo_versionedobjects import fields as ovo_fields"},{"line_number":48,"context_line":"from oslo_utils import excutils"},{"line_number":49,"context_line":"from oslo_utils import importutils"},{"line_number":50,"context_line":"from oslo_utils import timeutils"},{"line_number":51,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_eef44bd1","line":48,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_versionedobjects.fields, oslo_utils.excutils)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e00d7ab","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e32fba8","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2efbe3bd","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e2f8f3d","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ae289332","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce25075e","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027attach_status\u0027, \u0027migration_status\u0027, \u0027volume_type\u0027,"},{"line_number":204,"context_line":"        \u0027consistencygroup\u0027, \u0027volume_attachment\u0027, \u0027group\u0027}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def _get_service(self, host:str\u003dNone, binary:str\u003dconstants.VOLUME_BINARY) -\u003e objects.Service:"},{"line_number":207,"context_line":"        host \u003d host or self.host"},{"line_number":208,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e237f57","line":206,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (97 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"},{"line_number":210,"context_line":"        return objects.Service.get_by_args(ctxt, svc_host, binary)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def __init__(self, volume_driver\u003dNone, service_name:str\u003dNone,"},{"line_number":213,"context_line":"                 *args, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":215,"context_line":"        # update_service_capabilities needs service_name to be volume"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee1d6b0f","line":212,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"},{"line_number":210,"context_line":"        return objects.Service.get_by_args(ctxt, svc_host, binary)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def __init__(self, volume_driver\u003dNone, service_name:str\u003dNone,"},{"line_number":213,"context_line":"                 *args, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":215,"context_line":"        # update_service_capabilities needs service_name to be volume"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e1483e8","line":212,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        svc_host \u003d volume_utils.extract_host(host, \u0027backend\u0027)"},{"line_number":210,"context_line":"        return objects.Service.get_by_args(ctxt, svc_host, binary)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def __init__(self, volume_driver\u003dNone, service_name:str\u003dNone,"},{"line_number":213,"context_line":"                 *args, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":215,"context_line":"        # update_service_capabilities needs service_name to be volume"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e19f71f","line":212,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                 *args, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":215,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":216,"context_line":"        super(VolumeManager, self).__init__(service_name\u003d\u0027volume\u0027,    # type: ignore"},{"line_number":217,"context_line":"                                            *args, **kwargs)"},{"line_number":218,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."},{"line_number":219,"context_line":"        service_name \u003d service_name or \u0027backend_defaults\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8ed4af21","line":216,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                     {\u0027host\u0027: self.host})"},{"line_number":316,"context_line":"            self.image_volume_cache \u003d None"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _count_allocated_capacity(self, ctxt: context.RequestContext, volume: objects.Volume) -\u003e None:"},{"line_number":319,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], \u0027pool\u0027)"},{"line_number":320,"context_line":"        if pool is None:"},{"line_number":321,"context_line":"            # No pool name encoded in host, so this is a legacy"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6ed79b24","line":318,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (102 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                  \u0027host\u0027: self.host, \u0027cluster\u0027: self.cluster,"},{"line_number":429,"context_line":"                  \u0027num_cache\u0027: num_cache})"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def init_host(self, added_to_cluster\u003dNone, **kwargs) -\u003e None:   # type: ignore"},{"line_number":432,"context_line":"        \"\"\"Perform any required initialization.\"\"\""},{"line_number":433,"context_line":"        if not self.driver.supported:"},{"line_number":434,"context_line":"            utils.log_unsupported_driver_warning(self.driver)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ceda2749","line":431,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":632,"context_line":"                 resource\u003d{\u0027type\u0027: \u0027driver\u0027,"},{"line_number":633,"context_line":"                           \u0027id\u0027: self.driver.__class__.__name__})"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _do_cleanup(self, ctxt, vo_resource) -\u003e bool:  # -\u003e ty.Union[None, bool]:  # TODO BUG"},{"line_number":636,"context_line":"        if isinstance(vo_resource, objects.Volume):"},{"line_number":637,"context_line":"            if vo_resource.status \u003d\u003d \u0027downloading\u0027:"},{"line_number":638,"context_line":"                self.driver.clear_download(ctxt, vo_resource)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_aedd3342","line":635,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (93 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    @objects.Volume.set_workers"},{"line_number":687,"context_line":"    def create_volume(self, context, volume, request_spec\u003dNone,"},{"line_number":688,"context_line":"                      filter_properties\u003dNone, allow_reschedule\u003dTrue) -\u003e ovo_fields.UUIDField:"},{"line_number":689,"context_line":"        \"\"\"Creates the volume.\"\"\""},{"line_number":690,"context_line":"        # Log about unsupported drivers"},{"line_number":691,"context_line":"        utils.log_unsupported_driver_warning(self.driver)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0ee89fdf","line":688,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (93 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":968,"context_line":"            msg \u003d \"Unmanaged volume successfully.\""},{"line_number":969,"context_line":"        LOG.info(msg, resource\u003dvolume)"},{"line_number":970,"context_line":""},{"line_number":971,"context_line":"    def _clear_db(self, context, is_migrating_dest, volume_ref, status) -\u003e None:"},{"line_number":972,"context_line":"        # This method is called when driver.unmanage() or"},{"line_number":973,"context_line":"        # driver.delete_volume() fails in delete_volume(), so it is already"},{"line_number":974,"context_line":"        # in the exception handling part."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_eee28b00","line":971,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"    @coordination.synchronized(\u0027{volume_id}\u0027)"},{"line_number":1298,"context_line":"    def attach_volume(self, context, volume_id, instance_uuid, host_name,"},{"line_number":1299,"context_line":"                      mountpoint, mode, volume\u003dNone) -\u003e objects.VolumeAttachment:"},{"line_number":1300,"context_line":"        \"\"\"Updates db to show volume is attached.\"\"\""},{"line_number":1301,"context_line":"        # FIXME(lixiaoy1): Remove this in v4.0 of RPC API."},{"line_number":1302,"context_line":"        if volume is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4eee17ed","line":1299,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1530,"context_line":"            if image_volume:"},{"line_number":1531,"context_line":"                self.delete_volume(ctx, image_volume)"},{"line_number":1532,"context_line":""},{"line_number":1533,"context_line":"    def _clone_image_volume(self, ctx, volume, image_meta: dict) -\u003e ty.Union[None, objects.Volume]:"},{"line_number":1534,"context_line":"        # TODO: should this return None?"},{"line_number":1535,"context_line":"        volume_type_id:str \u003d volume.get(\u0027volume_type_id\u0027)"},{"line_number":1536,"context_line":"        reserve_opts:dict \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: volume.size}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2ee923e2","line":1533,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (99 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1532,"context_line":""},{"line_number":1533,"context_line":"    def _clone_image_volume(self, ctx, volume, image_meta: dict) -\u003e ty.Union[None, objects.Volume]:"},{"line_number":1534,"context_line":"        # TODO: should this return None?"},{"line_number":1535,"context_line":"        volume_type_id:str \u003d volume.get(\u0027volume_type_id\u0027)"},{"line_number":1536,"context_line":"        reserve_opts:dict \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: volume.size}"},{"line_number":1537,"context_line":"        QUOTAS.add_volume_type_opts(ctx, reserve_opts, volume_type_id)"},{"line_number":1538,"context_line":"        reservations \u003d QUOTAS.reserve(ctx, **reserve_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8ebdcfd9","line":1535,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1533,"context_line":"    def _clone_image_volume(self, ctx, volume, image_meta: dict) -\u003e ty.Union[None, objects.Volume]:"},{"line_number":1534,"context_line":"        # TODO: should this return None?"},{"line_number":1535,"context_line":"        volume_type_id:str \u003d volume.get(\u0027volume_type_id\u0027)"},{"line_number":1536,"context_line":"        reserve_opts:dict \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: volume.size}"},{"line_number":1537,"context_line":"        QUOTAS.add_volume_type_opts(ctx, reserve_opts, volume_type_id)"},{"line_number":1538,"context_line":"        reservations \u003d QUOTAS.reserve(ctx, **reserve_opts)"},{"line_number":1539,"context_line":"        # NOTE(yikun): Skip \u0027snapshot_id\u0027, \u0027source_volid\u0027 keys to avoid"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6ec03b51","line":1536,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1538,"context_line":"        reservations \u003d QUOTAS.reserve(ctx, **reserve_opts)"},{"line_number":1539,"context_line":"        # NOTE(yikun): Skip \u0027snapshot_id\u0027, \u0027source_volid\u0027 keys to avoid"},{"line_number":1540,"context_line":"        # creating tmp img vol from wrong snapshot or wrong source vol."},{"line_number":1541,"context_line":"        skip:set \u003d {\u0027snapshot_id\u0027, \u0027source_volid\u0027}"},{"line_number":1542,"context_line":"        skip.update(self._VOLUME_CLONE_SKIP_PROPERTIES)"},{"line_number":1543,"context_line":"        try:"},{"line_number":1544,"context_line":"            new_vol_values \u003d {k: volume[k] for k in set(volume.keys()) - skip}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ceb34709","line":1541,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1722,"context_line":"                        exc_info\u003dTrue, resource\u003d{\u0027type\u0027: \u0027image\u0027,"},{"line_number":1723,"context_line":"                                                 \u0027id\u0027: image_id})"},{"line_number":1724,"context_line":""},{"line_number":1725,"context_line":"    def _parse_connection_options(self, context, volume: objects.Volume, conn_info: dict) -\u003e dict:"},{"line_number":1726,"context_line":"        # Add qos_specs to connection info"},{"line_number":1727,"context_line":"        typeid \u003d volume.volume_type_id"},{"line_number":1728,"context_line":"        specs \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_aeb6d3f7","line":1725,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (98 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1781,"context_line":""},{"line_number":1782,"context_line":"        return conn_info"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def initialize_connection(self, context, volume: objects.Volume, connector: dict) -\u003e dict:"},{"line_number":1785,"context_line":"        \"\"\"Prepare volume for connection from host represented by connector."},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        This method calls the driver initialize_connection and returns"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0ed1bf23","line":1784,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (94 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1876,"context_line":"                 resource\u003dvolume)"},{"line_number":1877,"context_line":"        return conn_info"},{"line_number":1878,"context_line":""},{"line_number":1879,"context_line":"    def initialize_connection_snapshot(self, ctxt, snapshot_id: ovo_fields.UUIDField, connector: dict) -\u003e dict:"},{"line_number":1880,"context_line":"        utils.require_driver_initialized(self.driver)"},{"line_number":1881,"context_line":"        snapshot \u003d objects.Snapshot.get_by_id(ctxt, snapshot_id)"},{"line_number":1882,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_eecbab6e","line":1879,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (111 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"                 resource\u003dsnapshot)"},{"line_number":1937,"context_line":"        return conn"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    def terminate_connection(self, context, volume_id: ovo_fields.UUIDField, connector:dict, force\u003dFalse) -\u003e None:"},{"line_number":1940,"context_line":"        \"\"\"Cleanup connection from host represented by connector."},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"        The format of connector is the same as for initialize_connection."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2ec2c353","line":1939,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"                 resource\u003dsnapshot)"},{"line_number":1937,"context_line":"        return conn"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    def terminate_connection(self, context, volume_id: ovo_fields.UUIDField, connector:dict, force\u003dFalse) -\u003e None:"},{"line_number":1940,"context_line":"        \"\"\"Cleanup connection from host represented by connector."},{"line_number":1941,"context_line":""},{"line_number":1942,"context_line":"        The format of connector is the same as for initialize_connection."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4ec73765","line":1939,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (114 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1958,"context_line":"        LOG.info(\"Terminate volume connection completed successfully.\","},{"line_number":1959,"context_line":"                 resource\u003dvolume_ref)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"    def terminate_connection_snapshot(self, ctxt, snapshot_id: ovo_fields.UUIDField,"},{"line_number":1962,"context_line":"                                      connector:dict, force\u003dFalse) -\u003e None:"},{"line_number":1963,"context_line":"        utils.require_driver_initialized(self.driver)"},{"line_number":1964,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8ea2efac","line":1961,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"                 resource\u003dvolume_ref)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"    def terminate_connection_snapshot(self, ctxt, snapshot_id: ovo_fields.UUIDField,"},{"line_number":1962,"context_line":"                                      connector:dict, force\u003dFalse) -\u003e None:"},{"line_number":1963,"context_line":"        utils.require_driver_initialized(self.driver)"},{"line_number":1964,"context_line":""},{"line_number":1965,"context_line":"        snapshot \u003d objects.Snapshot.get_by_id(ctxt, snapshot_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6ea5dbb4","line":1962,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":1988,"context_line":"        LOG.info(\"Remove volume export completed successfully.\","},{"line_number":1989,"context_line":"                 resource\u003dvolume_ref)"},{"line_number":1990,"context_line":""},{"line_number":1991,"context_line":"    def remove_export_snapshot(self, ctxt, snapshot_id: ovo_fields.UUIDField) -\u003e None:"},{"line_number":1992,"context_line":"        \"\"\"Removes an export for a snapshot.\"\"\""},{"line_number":1993,"context_line":"        utils.require_driver_initialized(self.driver)"},{"line_number":1994,"context_line":"        snapshot \u003d objects.Snapshot.get_by_id(ctxt, snapshot_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_cea8678d","line":1991,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (86 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":2200,"context_line":"                                    remote\u003dsrc_remote,"},{"line_number":2201,"context_line":"                                    attach_encryptor\u003dattach_encryptor)"},{"line_number":2202,"context_line":""},{"line_number":2203,"context_line":"    def _migrate_volume_generic(self, ctxt, volume, backend, new_type_id) -\u003e None:"},{"line_number":2204,"context_line":"        rpcapi \u003d volume_rpcapi.VolumeAPI()"},{"line_number":2205,"context_line":""},{"line_number":2206,"context_line":"        # Create new volume on remote host"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_aeab7385","line":2203,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":2335,"context_line":"                            \"source volume may have been deleted.\","},{"line_number":2336,"context_line":"                            {\u0027vol\u0027: new_volume.id})"},{"line_number":2337,"context_line":""},{"line_number":2338,"context_line":"    def migrate_volume_completion(self, ctxt, volume, new_volume, error\u003dFalse) -\u003e ovo_fields.UUIDField:"},{"line_number":2339,"context_line":"        try:"},{"line_number":2340,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":2341,"context_line":"            # before going forward. The exception will be caught"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e96df4c","line":2338,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (103 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":2733,"context_line":"                    context, snapshot, event_suffix,"},{"line_number":2734,"context_line":"                    extra_usage_info\u003dextra_usage_info, host\u003dself.host)"},{"line_number":2735,"context_line":""},{"line_number":2736,"context_line":"    def extend_volume(self, context, volume: objects.Volume, new_size: int, reservations) -\u003e None:"},{"line_number":2737,"context_line":"        try:"},{"line_number":2738,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"},{"line_number":2739,"context_line":"            # before going forward. The exception will be caught"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee90cb50","line":2736,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (98 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3004,"context_line":"            self.stats[\u0027pools\u0027][pool] \u003d dict("},{"line_number":3005,"context_line":"                allocated_capacity_gb\u003dvolume_reference.size)"},{"line_number":3006,"context_line":""},{"line_number":3007,"context_line":"    def _run_manage_existing_flow_engine(self, ctxt, volume: objects.Volume, ref):"},{"line_number":3008,"context_line":"        try:"},{"line_number":3009,"context_line":"            flow_engine \u003d manage_existing.get_flow("},{"line_number":3010,"context_line":"                ctxt,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e9c5769","line":3007,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3081,"context_line":"                              \"to driver error.\")"},{"line_number":3082,"context_line":"        return driver_entries"},{"line_number":3083,"context_line":""},{"line_number":3084,"context_line":"    def create_group(self, context: context.RequestContext, group) -\u003e objects.Group:"},{"line_number":3085,"context_line":"        \"\"\"Creates the group.\"\"\""},{"line_number":3086,"context_line":"        context \u003d context.elevated()"},{"line_number":3087,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e976347","line":3084,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3140,"context_line":"        return group"},{"line_number":3141,"context_line":""},{"line_number":3142,"context_line":"    def create_group_from_src(self, context, group,"},{"line_number":3143,"context_line":"                              group_snapshot\u003dNone, source_group\u003dNone) -\u003e objects.Group:"},{"line_number":3144,"context_line":"        \"\"\"Creates the group from source."},{"line_number":3145,"context_line":""},{"line_number":3146,"context_line":"        The source can be a group snapshot or a source group."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e8b0f1d","line":3143,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (87 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3300,"context_line":""},{"line_number":3301,"context_line":"    def _create_group_from_src_generic(self, context, group, volumes,"},{"line_number":3302,"context_line":"                                       group_snapshot\u003dNone, snapshots\u003dNone,"},{"line_number":3303,"context_line":"                                       source_group\u003dNone, source_vols\u003dNone) -\u003e \\"},{"line_number":3304,"context_line":"                                       ty.Tuple[ty.Dict[str, str], ty.List[ty.Dict[str, str]]]:"},{"line_number":3305,"context_line":"        \"\"\"Creates a group from source."},{"line_number":3306,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e8e7b2e","line":3303,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3301,"context_line":"    def _create_group_from_src_generic(self, context, group, volumes,"},{"line_number":3302,"context_line":"                                       group_snapshot\u003dNone, snapshots\u003dNone,"},{"line_number":3303,"context_line":"                                       source_group\u003dNone, source_vols\u003dNone) -\u003e \\"},{"line_number":3304,"context_line":"                                       ty.Tuple[ty.Dict[str, str], ty.List[ty.Dict[str, str]]]:"},{"line_number":3305,"context_line":"        \"\"\"Creates a group from source."},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        :param context: the context of the caller."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce8187fd","line":3304,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3301,"context_line":"    def _create_group_from_src_generic(self, context, group, volumes,"},{"line_number":3302,"context_line":"                                       group_snapshot\u003dNone, snapshots\u003dNone,"},{"line_number":3303,"context_line":"                                       source_group\u003dNone, source_vols\u003dNone) -\u003e \\"},{"line_number":3304,"context_line":"                                       ty.Tuple[ty.Dict[str, str], ty.List[ty.Dict[str, str]]]:"},{"line_number":3305,"context_line":"        \"\"\"Creates a group from source."},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        :param context: the context of the caller."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ae84130c","line":3304,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (95 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3400,"context_line":""},{"line_number":3401,"context_line":"        return sorted_source_vols"},{"line_number":3402,"context_line":""},{"line_number":3403,"context_line":"    def _update_volume_from_src(self, context, vol, update, group\u003dNone) -\u003e None:"},{"line_number":3404,"context_line":"        try:"},{"line_number":3405,"context_line":"            snapshot_id \u003d vol.get(\u0027snapshot_id\u0027)"},{"line_number":3406,"context_line":"            source_volid \u003d vol.get(\u0027source_volid\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e7fff14","line":3403,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3455,"context_line":""},{"line_number":3456,"context_line":"        self.db.volume_update(context, vol[\u0027id\u0027], update)"},{"line_number":3457,"context_line":""},{"line_number":3458,"context_line":"    def _update_allocated_capacity(self, vol, decrement\u003dFalse, host: str\u003dNone) -\u003e None:"},{"line_number":3459,"context_line":"        # Update allocated capacity in volume stats"},{"line_number":3460,"context_line":"        host \u003d host or vol[\u0027host\u0027]"},{"line_number":3461,"context_line":"        pool \u003d volume_utils.extract_host(host, \u0027pool\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e757731","line":3458,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3455,"context_line":""},{"line_number":3456,"context_line":"        self.db.volume_update(context, vol[\u0027id\u0027], update)"},{"line_number":3457,"context_line":""},{"line_number":3458,"context_line":"    def _update_allocated_capacity(self, vol, decrement\u003dFalse, host: str\u003dNone) -\u003e None:"},{"line_number":3459,"context_line":"        # Update allocated capacity in volume stats"},{"line_number":3460,"context_line":"        host \u003d host or vol[\u0027host\u0027]"},{"line_number":3461,"context_line":"        pool \u003d volume_utils.extract_host(host, \u0027pool\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee79eb2e","line":3458,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3455,"context_line":""},{"line_number":3456,"context_line":"        self.db.volume_update(context, vol[\u0027id\u0027], update)"},{"line_number":3457,"context_line":""},{"line_number":3458,"context_line":"    def _update_allocated_capacity(self, vol, decrement\u003dFalse, host: str\u003dNone) -\u003e None:"},{"line_number":3459,"context_line":"        # Update allocated capacity in volume stats"},{"line_number":3460,"context_line":"        host \u003d host or vol[\u0027host\u0027]"},{"line_number":3461,"context_line":"        pool \u003d volume_utils.extract_host(host, \u0027pool\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e700340","line":3458,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (87 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3601,"context_line":"                 resource\u003d{\u0027type\u0027: \u0027group\u0027,"},{"line_number":3602,"context_line":"                           \u0027id\u0027: group.id})"},{"line_number":3603,"context_line":""},{"line_number":3604,"context_line":"    def _convert_group_to_cg(self, group: objects.Group, volumes: objects.VolumeList) -\u003e ty.Tuple[objects.Group, objects.VolumeList]:"},{"line_number":3605,"context_line":"        if not group:"},{"line_number":3606,"context_line":"            return None, None"},{"line_number":3607,"context_line":"        cg \u003d consistencygroup.ConsistencyGroup()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e902f45","line":3604,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (133 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3619,"context_line":"            vol.consistencygroup_id \u003d None"},{"line_number":3620,"context_line":"            vol.consistencygroup \u003d None"},{"line_number":3621,"context_line":""},{"line_number":3622,"context_line":"    def _convert_group_snapshot_to_cgsnapshot(self, group_snapshot: objects.GroupSnapshot, snapshots: objects.SnapshotList,"},{"line_number":3623,"context_line":"                                              ctxt) -\u003e ty.Tuple[objects.CGSnapshot, objects.SnapshotList]:"},{"line_number":3624,"context_line":"        if not group_snapshot:"},{"line_number":3625,"context_line":"            return None, None"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e931b50","line":3622,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (123 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3620,"context_line":"            vol.consistencygroup \u003d None"},{"line_number":3621,"context_line":""},{"line_number":3622,"context_line":"    def _convert_group_snapshot_to_cgsnapshot(self, group_snapshot: objects.GroupSnapshot, snapshots: objects.SnapshotList,"},{"line_number":3623,"context_line":"                                              ctxt) -\u003e ty.Tuple[objects.CGSnapshot, objects.SnapshotList]:"},{"line_number":3624,"context_line":"        if not group_snapshot:"},{"line_number":3625,"context_line":"            return None, None"},{"line_number":3626,"context_line":"        cgsnap \u003d cgsnapshot.CGSnapshot()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce96a73e","line":3623,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (106 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3671,"context_line":"        return model_update, volume_model_updates"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"    def _update_group_generic(self, context, group,"},{"line_number":3674,"context_line":"                              add_volumes\u003dNone, remove_volumes\u003dNone) -\u003e ty.Tuple[None, None, None]:"},{"line_number":3675,"context_line":"        \"\"\"Updates a group.\"\"\""},{"line_number":3676,"context_line":"        # NOTE(xyang): The volume manager adds/removes the volume to/from the"},{"line_number":3677,"context_line":"        # group in the database. This default implementation does not do"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ae99b36d","line":3674,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (99 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3678,"context_line":"        # anything in the backend storage."},{"line_number":3679,"context_line":"        return None, None, None"},{"line_number":3680,"context_line":""},{"line_number":3681,"context_line":"    def _collect_volumes_for_group(self, context, group, volumes, add\u003dTrue) -\u003e list:"},{"line_number":3682,"context_line":"        valid_status: ty.Tuple[str, ...]"},{"line_number":3683,"context_line":"        if add:"},{"line_number":3684,"context_line":"            valid_status \u003d VALID_ADD_VOL_TO_GROUP_STATUS"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0ea41fa5","line":3681,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3814,"context_line":"                 resource\u003d{\u0027type\u0027: \u0027group\u0027,"},{"line_number":3815,"context_line":"                           \u0027id\u0027: group.id})"},{"line_number":3816,"context_line":""},{"line_number":3817,"context_line":"    def create_group_snapshot(self, context, group_snapshot: objects.GroupSnapshot) -\u003e objects.GroupSnapshot:"},{"line_number":3818,"context_line":"        \"\"\"Creates the group_snapshot.\"\"\""},{"line_number":3819,"context_line":"        caller_context \u003d context"},{"line_number":3820,"context_line":"        context \u003d context.elevated()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee9e0b52","line":3817,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (109 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3936,"context_line":"        return group_snapshot"},{"line_number":3937,"context_line":""},{"line_number":3938,"context_line":"    def _create_group_snapshot_generic(self, context, group_snapshot,"},{"line_number":3939,"context_line":"                                       snapshots) -\u003e ty.Tuple[dict, ty.List[dict]]:"},{"line_number":3940,"context_line":"        \"\"\"Creates a group_snapshot.\"\"\""},{"line_number":3941,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":3942,"context_line":"        snapshot_model_updates \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4eaa9770","line":3939,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":3959,"context_line":"        return model_update, snapshot_model_updates"},{"line_number":3960,"context_line":""},{"line_number":3961,"context_line":"    def _delete_group_snapshot_generic(self, context, group_snapshot,"},{"line_number":3962,"context_line":"                                       snapshots) -\u003e ty.Tuple[dict, ty.List[dict]]:"},{"line_number":3963,"context_line":"        \"\"\"Deletes a group_snapshot.\"\"\""},{"line_number":3964,"context_line":"        model_update \u003d {\u0027status\u0027: group_snapshot.status}"},{"line_number":3965,"context_line":"        snapshot_model_updates \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2ea5a39f","line":3962,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":4407,"context_line":"        LOG.info(\"Thawed backend successfully.\")"},{"line_number":4408,"context_line":"        return True"},{"line_number":4409,"context_line":""},{"line_number":4410,"context_line":"    def manage_existing_snapshot(self, ctxt, snapshot, ref\u003dNone) -\u003e ovo_fields.UUIDField:"},{"line_number":4411,"context_line":"        LOG.debug(\u0027manage_existing_snapshot: managing %s.\u0027, ref)"},{"line_number":4412,"context_line":"        try:"},{"line_number":4413,"context_line":"            flow_engine \u003d manage_existing_snapshot.get_flow("}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8eb94fcd","line":4410,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (89 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":4598,"context_line":"        return connection_info"},{"line_number":4599,"context_line":""},{"line_number":4600,"context_line":"    def _connection_terminate(self, context, volume,"},{"line_number":4601,"context_line":"                              attachment, force: bool \u003d False) -\u003e ty.Union[None, bool]:"},{"line_number":4602,"context_line":"        \"\"\"Remove a volume connection, but leave attachment."},{"line_number":4603,"context_line":""},{"line_number":4604,"context_line":"        Exits early if the attachment does not have a connector and returns"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6ebcbbba","line":4601,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (87 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"211d2d0524a0193c26ac0249253ca32358d794bc","unresolved":false,"context_lines":[{"line_number":4658,"context_line":"        else:"},{"line_number":4659,"context_line":"            self._do_attachment_delete(context, vref, attachment_ref)"},{"line_number":4660,"context_line":""},{"line_number":4661,"context_line":"    def _do_attachment_delete(self, context, vref, attachment: objects.VolumeAttachment) -\u003e None:"},{"line_number":4662,"context_line":"        utils.require_driver_initialized(self.driver)"},{"line_number":4663,"context_line":"        self._notify_about_volume_usage(context, vref, \"detach.start\")"},{"line_number":4664,"context_line":"        has_shared_connection \u003d self._connection_terminate(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ceafc77a","line":4661,"updated":"2020-06-04 18:05:27.000000000","message":"pep8: E501 line too long (97 \u003e 79 characters)","commit_id":"61c7f53eb215bbeb7a805c40d4138bed9ed35e04"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"ccae0bb2bfc5310ec679f06bc017a77c5953a6d3","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                 *args, **kwargs):"},{"line_number":216,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":217,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":218,"context_line":"        super(VolumeManager, self).__init__(  # type: ignore"},{"line_number":219,"context_line":"            service_name\u003d\u0027volume\u0027,"},{"line_number":220,"context_line":"            *args, **kwargs)"},{"line_number":221,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_4b8ed478","line":218,"range":{"start_line":218,"start_character":44,"end_line":218,"end_character":60},"updated":"2020-10-14 15:51:11.000000000","message":"I guess it\u0027s related to this issue [0]. Mypy gets confused as this call specifies `service_name` at the same time its parent class `SchedulerDependentManager.__init__` also has a default value for `service_name` parameter.\n\nIt has been there for a while and might not be fixed at all, but we may add the issue number here (`# type: ignore # mypy issue 4335`) to classify it.\n\n[0] https://github.com/python/mypy/issues/4335#issuecomment-364120685","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"11b5e8bb2f5faccb431e91be9727aae784a68115","unresolved":true,"context_lines":[{"line_number":215,"context_line":"                 *args, **kwargs):"},{"line_number":216,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":217,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":218,"context_line":"        super(VolumeManager, self).__init__(  # type: ignore"},{"line_number":219,"context_line":"            service_name\u003d\u0027volume\u0027,"},{"line_number":220,"context_line":"            *args, **kwargs)"},{"line_number":221,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."}],"source_content_type":"text/x-python","patch_set":12,"id":"db142614_c6f38e9d","line":218,"range":{"start_line":218,"start_character":46,"end_line":218,"end_character":60},"updated":"2020-11-24 13:23:47.000000000","message":"I understand why this was added but mypy doesn\u0027t error out if we don\u0027t add it, maybe I\u0027m missing something here","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"25d1959970bd9856a2a6c32ff2dd9eeca9ff290c","unresolved":true,"context_lines":[{"line_number":215,"context_line":"                 *args, **kwargs):"},{"line_number":216,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":217,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":218,"context_line":"        super(VolumeManager, self).__init__(  # type: ignore"},{"line_number":219,"context_line":"            service_name\u003d\u0027volume\u0027,"},{"line_number":220,"context_line":"            *args, **kwargs)"},{"line_number":221,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."}],"source_content_type":"text/x-python","patch_set":12,"id":"83013c32_91c79363","line":218,"range":{"start_line":218,"start_character":46,"end_line":218,"end_character":60},"in_reply_to":"caefdaef_f5416e19","updated":"2020-12-02 15:14:35.000000000","message":"Ok, I talked to Rajat -- he wasn\u0027t seeing this error because he was running \"mypy cinder/volume/manager.py\" or so which wouldn\u0027t throw this error because it doesn\u0027t check the other related cinder files at the same time.","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1bbeedafd6f088e072af692d157985f2b5f0d03b","unresolved":true,"context_lines":[{"line_number":215,"context_line":"                 *args, **kwargs):"},{"line_number":216,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":217,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":218,"context_line":"        super(VolumeManager, self).__init__(  # type: ignore"},{"line_number":219,"context_line":"            service_name\u003d\u0027volume\u0027,"},{"line_number":220,"context_line":"            *args, **kwargs)"},{"line_number":221,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."}],"source_content_type":"text/x-python","patch_set":12,"id":"caefdaef_f5416e19","line":218,"range":{"start_line":218,"start_character":46,"end_line":218,"end_character":60},"in_reply_to":"db142614_c6f38e9d","updated":"2020-11-24 16:12:48.000000000","message":"It throws an error for me:\n    cinder/volume/manager.py: note: In member \"__init__\" of class \"VolumeManager\":\ncinder/volume/manager.py:218:9: error: \"__init__\" gets multiple values for\nkeyword argument \"service_name\"  [misc]\n            super(VolumeManager, self).__init__(\n            ^","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"11b5e8bb2f5faccb431e91be9727aae784a68115","unresolved":true,"context_lines":[{"line_number":3885,"context_line":"                    self._remove_consistencygroup_id_from_volumes("},{"line_number":3886,"context_line":"                        remove_volumes_ref)"},{"line_number":3887,"context_line":""},{"line_number":3888,"context_line":"            volumes_to_update \u003d []"},{"line_number":3889,"context_line":"            if add_volumes_update:"},{"line_number":3890,"context_line":"                volumes_to_update.extend(add_volumes_update)"},{"line_number":3891,"context_line":"            if remove_volumes_update:"}],"source_content_type":"text/x-python","patch_set":12,"id":"beab1069_11265543","line":3888,"range":{"start_line":3888,"start_character":12,"end_line":3888,"end_character":34},"updated":"2020-11-24 13:23:47.000000000","message":"This needs to be annotated else it errors out on mypy check\nvolumes_to_update: list \u003d []","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"39eecd2d20a709ba330fe43bade3a5d2a685d5fb","unresolved":true,"context_lines":[{"line_number":3885,"context_line":"                    self._remove_consistencygroup_id_from_volumes("},{"line_number":3886,"context_line":"                        remove_volumes_ref)"},{"line_number":3887,"context_line":""},{"line_number":3888,"context_line":"            volumes_to_update \u003d []"},{"line_number":3889,"context_line":"            if add_volumes_update:"},{"line_number":3890,"context_line":"                volumes_to_update.extend(add_volumes_update)"},{"line_number":3891,"context_line":"            if remove_volumes_update:"}],"source_content_type":"text/x-python","patch_set":12,"id":"e59c0ad3_afe783dc","line":3888,"range":{"start_line":3888,"start_character":12,"end_line":3888,"end_character":34},"in_reply_to":"beab1069_11265543","updated":"2020-11-24 16:16:35.000000000","message":"I don\u0027t see an error from this in my environment?","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"25d1959970bd9856a2a6c32ff2dd9eeca9ff290c","unresolved":true,"context_lines":[{"line_number":3885,"context_line":"                    self._remove_consistencygroup_id_from_volumes("},{"line_number":3886,"context_line":"                        remove_volumes_ref)"},{"line_number":3887,"context_line":""},{"line_number":3888,"context_line":"            volumes_to_update \u003d []"},{"line_number":3889,"context_line":"            if add_volumes_update:"},{"line_number":3890,"context_line":"                volumes_to_update.extend(add_volumes_update)"},{"line_number":3891,"context_line":"            if remove_volumes_update:"}],"source_content_type":"text/x-python","patch_set":12,"id":"ff4f03a7_4ea517ce","line":3888,"range":{"start_line":3888,"start_character":12,"end_line":3888,"end_character":34},"in_reply_to":"e59c0ad3_afe783dc","updated":"2020-12-02 15:14:35.000000000","message":"This only shows up if you run \"mypy volume/manager.py\", not \"tox -e mypy\".  Will fix this one anyway.","commit_id":"4cb85847d02a5318c80b91fb83f51f78436f9256"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":214,"context_line":"                 *args, **kwargs):"},{"line_number":215,"context_line":"        \"\"\"Load the driver from the one specified in args, or from flags.\"\"\""},{"line_number":216,"context_line":"        # update_service_capabilities needs service_name to be volume"},{"line_number":217,"context_line":"        super(VolumeManager, self).__init__(  # type: ignore"},{"line_number":218,"context_line":"            service_name\u003d\u0027volume\u0027,"},{"line_number":219,"context_line":"            *args, **kwargs)"},{"line_number":220,"context_line":"        # NOTE(dulek): service_name\u003dNone means we\u0027re running in unit tests."}],"source_content_type":"text/x-python","patch_set":15,"id":"0d06fee5_c7d25a1b","line":217,"range":{"start_line":217,"start_character":46,"end_line":217,"end_character":60},"updated":"2021-02-04 15:44:00.000000000","message":"same, better to mention reported issue with this","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":436,"context_line":"                  \u0027host\u0027: self.host, \u0027cluster\u0027: self.cluster,"},{"line_number":437,"context_line":"                  \u0027num_cache\u0027: num_cache})"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def init_host(self,   # type: ignore"},{"line_number":440,"context_line":"                  added_to_cluster\u003dNone,"},{"line_number":441,"context_line":"                  **kwargs) -\u003e None:"},{"line_number":442,"context_line":"        \"\"\"Perform any required initialization.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"55e39cd6_4fb1bd94","line":439,"range":{"start_line":439,"start_character":26,"end_line":439,"end_character":40},"updated":"2021-02-04 15:44:00.000000000","message":"not sure if this will be fixed anytime soon but would it help to add a comment with the issue link?\n# https://github.com/python/mypy/issues/1237","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        num_vols: int \u003d 0"},{"line_number":498,"context_line":"        num_snaps: int \u003d 0"},{"line_number":499,"context_line":"        max_objs_num: ty.Optional[int] \u003d None"},{"line_number":500,"context_line":"        req_range: ty.Union[ty.List[int], range] \u003d [0]"},{"line_number":501,"context_line":"        req_limit \u003d CONF.init_host_max_objects_retrieval or 0"},{"line_number":502,"context_line":"        use_batch_objects_retrieval: bool \u003d req_limit \u003e 0"}],"source_content_type":"text/x-python","patch_set":15,"id":"11967232_42faf732","line":499,"range":{"start_line":499,"start_character":41,"end_line":499,"end_character":45},"updated":"2021-02-04 15:44:00.000000000","message":"would it help to have the initial value as 0\nsince it\u0027s the max of number of volumes or snapshots, the min value will always be 0\nThis will also save us the casting done on L#511","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ace3d1a5aac03f482076f1a95efea920ed5b7bb6","unresolved":false,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        num_vols: int \u003d 0"},{"line_number":498,"context_line":"        num_snaps: int \u003d 0"},{"line_number":499,"context_line":"        max_objs_num: ty.Optional[int] \u003d None"},{"line_number":500,"context_line":"        req_range: ty.Union[ty.List[int], range] \u003d [0]"},{"line_number":501,"context_line":"        req_limit \u003d CONF.init_host_max_objects_retrieval or 0"},{"line_number":502,"context_line":"        use_batch_objects_retrieval: bool \u003d req_limit \u003e 0"}],"source_content_type":"text/x-python","patch_set":15,"id":"08a1a734_387fb941","line":499,"range":{"start_line":499,"start_character":41,"end_line":499,"end_character":45},"in_reply_to":"11967232_42faf732","updated":"2021-02-10 17:21:52.000000000","message":"Done","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":2235,"context_line":"        try:"},{"line_number":2236,"context_line":"            size_in_mb \u003d int(src_vol[\u0027size\u0027]) * units.Ki    # vol size is in GB"},{"line_number":2237,"context_line":"            assert src_attach_info is not None"},{"line_number":2238,"context_line":"            assert dest_attach_info is not None"},{"line_number":2239,"context_line":"            volume_utils.copy_volume(src_attach_info[\u0027device\u0027][\u0027path\u0027],"},{"line_number":2240,"context_line":"                                     dest_attach_info[\u0027device\u0027][\u0027path\u0027],"},{"line_number":2241,"context_line":"                                     size_in_mb,"}],"source_content_type":"text/x-python","patch_set":15,"id":"70168c48_94734251","line":2238,"range":{"start_line":2238,"start_character":12,"end_line":2238,"end_character":47},"updated":"2021-02-04 15:44:00.000000000","message":"The error we currently get is because mypy isn\u0027t aware about the nested dictionary right?\nIsn\u0027t it fixable by casting or annotating during declaration? but I\u0027m not really sure","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ace3d1a5aac03f482076f1a95efea920ed5b7bb6","unresolved":true,"context_lines":[{"line_number":2235,"context_line":"        try:"},{"line_number":2236,"context_line":"            size_in_mb \u003d int(src_vol[\u0027size\u0027]) * units.Ki    # vol size is in GB"},{"line_number":2237,"context_line":"            assert src_attach_info is not None"},{"line_number":2238,"context_line":"            assert dest_attach_info is not None"},{"line_number":2239,"context_line":"            volume_utils.copy_volume(src_attach_info[\u0027device\u0027][\u0027path\u0027],"},{"line_number":2240,"context_line":"                                     dest_attach_info[\u0027device\u0027][\u0027path\u0027],"},{"line_number":2241,"context_line":"                                     size_in_mb,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ccdbd7b6_3e695cb9","line":2238,"range":{"start_line":2238,"start_character":12,"end_line":2238,"end_character":47},"in_reply_to":"70168c48_94734251","updated":"2021-02-10 17:21:52.000000000","message":"It\u0027s actually because _attach_volume() was annotated as possibly returning None.  I think we can make it only return dict.","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b8b8fd06f960717a6971c8f64f4f25de7a3e275a","unresolved":true,"context_lines":[{"line_number":2899,"context_line":"                                                   cluster_name)))"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"    def retype(self,"},{"line_number":2902,"context_line":"               context: context.RequestContext,"},{"line_number":2903,"context_line":"               volume,"},{"line_number":2904,"context_line":"               new_type_id: str,"},{"line_number":2905,"context_line":"               host,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5fc9797b_8a9f573d","line":2902,"range":{"start_line":2902,"start_character":22,"end_line":2902,"end_character":46},"updated":"2021-02-04 15:44:00.000000000","message":"Not asking about complete coverage but this is annotated in some methods and not in others which is quite inconsistent, any reason for the same?","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ace3d1a5aac03f482076f1a95efea920ed5b7bb6","unresolved":true,"context_lines":[{"line_number":2899,"context_line":"                                                   cluster_name)))"},{"line_number":2900,"context_line":""},{"line_number":2901,"context_line":"    def retype(self,"},{"line_number":2902,"context_line":"               context: context.RequestContext,"},{"line_number":2903,"context_line":"               volume,"},{"line_number":2904,"context_line":"               new_type_id: str,"},{"line_number":2905,"context_line":"               host,"}],"source_content_type":"text/x-python","patch_set":15,"id":"7b2ad646_5625f2e4","line":2902,"range":{"start_line":2902,"start_character":22,"end_line":2902,"end_character":46},"in_reply_to":"5fc9797b_8a9f573d","updated":"2021-02-10 17:21:52.000000000","message":"Mostly a trade-off of getting good coverage for the first pass vs. the difficulty of figuring out how to properly annotate some of these (like host).  I added the annotation for volume.","commit_id":"d6ce1a9b5c1785354342631b6f6690363e97ca9c"}],"mypy-files.txt":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"16427666c152480fcc9b22c43ac8b9692f787060","unresolved":false,"context_lines":[{"line_number":4,"context_line":"cinder/manager.py"},{"line_number":5,"context_line":"cinder/volume/__init__.py"},{"line_number":6,"context_line":"cinder/volume/manager.py"},{"line_number":7,"context_line":"cinder/volume/drivers/remotefs.py"},{"line_number":8,"context_line":"cinder/volume/volume_types.py"}],"source_content_type":"text/plain","patch_set":10,"id":"9f560f44_36b53fee","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":33},"updated":"2020-10-08 14:56:38.000000000","message":"This shouldn\u0027t be here, some kind of rebase error.","commit_id":"9cd532e1319c761b0304abdaaef18ccd40279fec"}]}
