)]}'
{"glance_store/_drivers/cinder.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"28e5c8f4602cafb2a51cfdace685998049205179","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        self.validate_schemas(uri, valid_schemas\u003d(\u0027cinder://\u0027,))"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        self.scheme \u003d \u0027cinder\u0027"},{"line_number":372,"context_line":"        self.volume_id \u003d uri[9:]"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        if self.backend_group:"},{"line_number":375,"context_line":"            self.volume_id \u003d uri.split(\"%s/\" % self.backend_group)[1]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        if not utils.is_uuid_like(self.volume_id):"},{"line_number":378,"context_line":"            reason \u003d _(\"URI contains invalid volume ID\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_1a2355c0","line":375,"range":{"start_line":372,"start_character":8,"end_line":375,"end_character":69},"updated":"2020-07-22 08:58:44.000000000","message":"Need to refactor\nif else condition","commit_id":"00ac94a0a369c4bd4399fa7d2d8716902bb9e180"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ef219b429dd38a1b0ef5df1e1fed02182682d859","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        if self.backend_group:"},{"line_number":403,"context_line":"            self._url_prefix \u003d \"cinder://%s\" % self.backend_group"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    def configure_add(self):"},{"line_number":406,"context_line":"        \"\"\""},{"line_number":407,"context_line":"        Configure the Store to use the stored configuration options"},{"line_number":408,"context_line":"        Any store that needs special configuration should implement"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4acd6c83","line":405,"range":{"start_line":405,"start_character":4,"end_line":405,"end_character":28},"updated":"2020-08-07 10:46:27.000000000","message":"TODO:\nFor backward compatibilty, this method should only run in case of multiple stores","commit_id":"00ac94a0a369c4bd4399fa7d2d8716902bb9e180"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"28e5c8f4602cafb2a51cfdace685998049205179","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        this method. If the store was not able to successfully configure"},{"line_number":410,"context_line":"        itself, it should raise `exceptions.BadStoreConfiguration`"},{"line_number":411,"context_line":"        \"\"\""},{"line_number":412,"context_line":"        if self.backend_group:"},{"line_number":413,"context_line":"            glance_store \u003d getattr(self.conf, self.backend_group)"},{"line_number":414,"context_line":"        else:"},{"line_number":415,"context_line":"            glance_store \u003d self.conf.glance_store"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"        cinder_volume_type \u003d glance_store.cinder_volume_type"},{"line_number":418,"context_line":"        if cinder_volume_type:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_5a2dcda6","line":415,"range":{"start_line":412,"start_character":8,"end_line":415,"end_character":49},"updated":"2020-07-22 08:58:44.000000000","message":"Need to refactor, can be moved in init method to avoid duplication in all methods.","commit_id":"00ac94a0a369c4bd4399fa7d2d8716902bb9e180"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"28e5c8f4602cafb2a51cfdace685998049205179","unresolved":false,"context_lines":[{"line_number":437,"context_line":"                              % cinder_volume_type)"},{"line_number":438,"context_line":"                    LOG.exception(msg)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def location_not_upto_date(self, context, volume_id):"},{"line_number":441,"context_line":"        try:"},{"line_number":442,"context_line":"            if self.backend_group:"},{"line_number":443,"context_line":"                glance_store \u003d getattr(self.conf, self.backend_group)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_7a1b717f","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":30},"updated":"2020-07-22 08:58:44.000000000","message":"can we think better name?","commit_id":"00ac94a0a369c4bd4399fa7d2d8716902bb9e180"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"28e5c8f4602cafb2a51cfdace685998049205179","unresolved":false,"context_lines":[{"line_number":941,"context_line":"                   \u0027checksum_hex\u0027: checksum_hex})"},{"line_number":942,"context_line":""},{"line_number":943,"context_line":"        image_metadata \u003d {}"},{"line_number":944,"context_line":"        location_url \u003d \u0027cinder://%s\u0027 % volume.id"},{"line_number":945,"context_line":"        if self.backend_group:"},{"line_number":946,"context_line":"            image_metadata[\u0027store\u0027] \u003d u\"%s\" % self.backend_group"},{"line_number":947,"context_line":"            location_url \u003d \u0027cinder://%s/%s\u0027 % (self.backend_group,"},{"line_number":948,"context_line":"                                               volume.id)"},{"line_number":949,"context_line":""},{"line_number":950,"context_line":"        return (location_url,"},{"line_number":951,"context_line":"                bytes_written,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_952616ba","line":948,"range":{"start_line":944,"start_character":8,"end_line":948,"end_character":57},"updated":"2020-07-22 08:58:44.000000000","message":"Need refactor","commit_id":"00ac94a0a369c4bd4399fa7d2d8716902bb9e180"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72fa9463448e6d9cadbbddd11b74a84ace8d0dd7","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        self.validate_schemas(uri, valid_schemas\u003d(\u0027cinder://\u0027,))"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        self.scheme \u003d \u0027cinder\u0027"},{"line_number":372,"context_line":"        if self.backend_group:"},{"line_number":373,"context_line":"            self.volume_id \u003d uri.split(\"%s/\" % self.backend_group)[1]"},{"line_number":374,"context_line":"        else:"},{"line_number":375,"context_line":"            self.volume_id \u003d uri[9:]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        if not utils.is_uuid_like(self.volume_id):"},{"line_number":378,"context_line":"            reason \u003d _(\"URI contains invalid volume ID\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_d366f129","line":375,"range":{"start_line":372,"start_character":0,"end_line":375,"end_character":36},"updated":"2020-08-17 08:00:04.000000000","message":"both cases can be handled together by split and take last element","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"e0a743ac63de9653eb0d2759af6d642d5abe9241","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        Any store that needs special configuration should implement"},{"line_number":413,"context_line":"        this method. If the store was not able to successfully configure"},{"line_number":414,"context_line":"        itself, it should raise `exceptions.BadStoreConfiguration`"},{"line_number":415,"context_line":"        \"\"\""},{"line_number":416,"context_line":"        cinder_volume_type \u003d self.store_conf.cinder_volume_type"},{"line_number":417,"context_line":"        if cinder_volume_type:"},{"line_number":418,"context_line":"            # NOTE(abhishekk): `cinder_volume_type` is configured, check"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_2ca0f9f3","line":415,"updated":"2020-08-10 14:27:17.000000000","message":"Need to add;\nif not self.backend_group:\n    return","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72fa9463448e6d9cadbbddd11b74a84ace8d0dd7","unresolved":false,"context_lines":[{"line_number":419,"context_line":"            # configured volume_type is available in cinder or not"},{"line_number":420,"context_line":"            cinder_client \u003d self.get_cinderclient()"},{"line_number":421,"context_line":"            volume_type_configured \u003d False"},{"line_number":422,"context_line":"            for c_type in cinder_client.volume_types.list():"},{"line_number":423,"context_line":"                if c_type.name \u003d\u003d cinder_volume_type:"},{"line_number":424,"context_line":"                    volume_type_configured \u003d True"},{"line_number":425,"context_line":"                    break"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"            if not volume_type_configured:"},{"line_number":428,"context_line":"                if self.backend_group and len(self.conf.enabled_backends) \u003e 1:"},{"line_number":429,"context_line":"                    reason \u003d _(\"Invalid `cinder_volume_type %s`\""},{"line_number":430,"context_line":"                               % cinder_volume_type)"},{"line_number":431,"context_line":"                    LOG.debug(reason)"},{"line_number":432,"context_line":"                    raise exceptions.BadStoreConfiguration("},{"line_number":433,"context_line":"                        store_name\u003dself.backend_group, reason\u003dreason)"},{"line_number":434,"context_line":"                else:"},{"line_number":435,"context_line":"                    msg \u003d _LE(\"Invalid `cinder_volume_type %s`\""},{"line_number":436,"context_line":"                              % cinder_volume_type)"},{"line_number":437,"context_line":"                    LOG.exception(msg)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def location_not_upto_date(self, context, volume_id):"},{"line_number":440,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_dfe0b3fb","line":437,"range":{"start_line":422,"start_character":0,"end_line":437,"end_character":38},"updated":"2020-08-17 08:00:04.000000000","message":"volume_types manager doesn\u0027t support get volume type by name currently, fix that use it here rather than iterating over the list again and again","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"528520b163c327b0ab3ae1bef6b42317ab993501","unresolved":false,"context_lines":[{"line_number":419,"context_line":"            # configured volume_type is available in cinder or not"},{"line_number":420,"context_line":"            cinder_client \u003d self.get_cinderclient()"},{"line_number":421,"context_line":"            volume_type_configured \u003d False"},{"line_number":422,"context_line":"            for c_type in cinder_client.volume_types.list():"},{"line_number":423,"context_line":"                if c_type.name \u003d\u003d cinder_volume_type:"},{"line_number":424,"context_line":"                    volume_type_configured \u003d True"},{"line_number":425,"context_line":"                    break"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"            if not volume_type_configured:"},{"line_number":428,"context_line":"                if self.backend_group and len(self.conf.enabled_backends) \u003e 1:"},{"line_number":429,"context_line":"                    reason \u003d _(\"Invalid `cinder_volume_type %s`\""},{"line_number":430,"context_line":"                               % cinder_volume_type)"},{"line_number":431,"context_line":"                    LOG.debug(reason)"},{"line_number":432,"context_line":"                    raise exceptions.BadStoreConfiguration("},{"line_number":433,"context_line":"                        store_name\u003dself.backend_group, reason\u003dreason)"},{"line_number":434,"context_line":"                else:"},{"line_number":435,"context_line":"                    msg \u003d _LE(\"Invalid `cinder_volume_type %s`\""},{"line_number":436,"context_line":"                              % cinder_volume_type)"},{"line_number":437,"context_line":"                    LOG.exception(msg)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def location_not_upto_date(self, context, volume_id):"},{"line_number":440,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_227b98be","line":437,"range":{"start_line":422,"start_character":0,"end_line":437,"end_character":38},"in_reply_to":"9f560f44_dfe0b3fb","updated":"2020-08-17 15:46:10.000000000","message":"also requires to raise an exception incase of single store configured","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72fa9463448e6d9cadbbddd11b74a84ace8d0dd7","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            volume \u003d cinder_client.volumes.get(volume_id)"},{"line_number":445,"context_line":"            if cinder_volume_type and volume.volume_type \u003d\u003d cinder_volume_type:"},{"line_number":446,"context_line":"                return True"},{"line_number":447,"context_line":"            elif volume.volume_type \u003d\u003d \u0027__DEFAULT\u0027 and not cinder_volume_type:"},{"line_number":448,"context_line":"                return True"},{"line_number":449,"context_line":"        except Exception:"},{"line_number":450,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_3ff0cfc9","line":447,"range":{"start_line":447,"start_character":40,"end_line":447,"end_character":49},"updated":"2020-08-17 08:00:04.000000000","message":"__DEFAULT__","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72fa9463448e6d9cadbbddd11b74a84ace8d0dd7","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            volume \u003d cinder_client.volumes.get(volume_id)"},{"line_number":445,"context_line":"            if cinder_volume_type and volume.volume_type \u003d\u003d cinder_volume_type:"},{"line_number":446,"context_line":"                return True"},{"line_number":447,"context_line":"            elif volume.volume_type \u003d\u003d \u0027__DEFAULT\u0027 and not cinder_volume_type:"},{"line_number":448,"context_line":"                return True"},{"line_number":449,"context_line":"        except Exception:"},{"line_number":450,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ffcf7754","line":447,"range":{"start_line":447,"start_character":12,"end_line":447,"end_character":78},"updated":"2020-08-17 08:00:04.000000000","message":"this isn\u0027t right, we need to check it against the default_volume_type","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72fa9463448e6d9cadbbddd11b74a84ace8d0dd7","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                                \u0027project_name\u0027, \u0027auth_address\u0027]])"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    def get_cinderclient(self, context\u003dNone, legacy_update\u003dFalse):"},{"line_number":464,"context_line":"        # (NOTE)abhishekk: For legacy image update from single store to"},{"line_number":465,"context_line":"        # multiple stores we need to use context rather than user"},{"line_number":466,"context_line":"        # provided credentials"},{"line_number":467,"context_line":"        user_overriden \u003d False"},{"line_number":468,"context_line":"        if not legacy_update:"},{"line_number":469,"context_line":"            user_overriden \u003d self.is_user_overriden()"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_1f718b0d","line":467,"range":{"start_line":464,"start_character":7,"end_line":467,"end_character":30},"updated":"2020-08-17 08:00:04.000000000","message":"context.elevated would be better here","commit_id":"9fb50a282b95fc281139d34450e8b884ac1d5e16"}]}
