)]}'
{"glance/api/v2/image_data.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"dfa055dbdb58643464ac36d2c69560aa4e18e5e6","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def upload(self, req, image_id, data, size):"},{"line_number":103,"context_line":"        backend \u003d None"},{"line_number":104,"context_line":"        if CONF.enabled_backends:"},{"line_number":105,"context_line":"            backend \u003d req.headers.get(\u0027x-image-meta-store\u0027,"},{"line_number":106,"context_line":"                                      CONF.glance_store.default_backend)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            try:"},{"line_number":109,"context_line":"                glance_store.get_store_from_store_identifier(backend)"},{"line_number":110,"context_line":"            except glance_store.UnknownScheme as exc:"},{"line_number":111,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexc.msg,"},{"line_number":112,"context_line":"                                               request\u003dreq,"},{"line_number":113,"context_line":"                                               content_type\u003d\u0027text/plain\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        image_repo \u003d self.gateway.get_repo(req.context)"},{"line_number":116,"context_line":"        image \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_16c43a0d","line":113,"range":{"start_line":105,"start_character":0,"end_line":113,"end_character":73},"updated":"2018-07-31 11:50:38.000000000","message":"Doesn\u0027t this fail if the back-end is not specified? See my comment in images.py","commit_id":"3d069452bc7492402753a00b3e640e1960ecd2b2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"bbf5295bbae2bbd8576ae644a7eb036efc020b5c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def upload(self, req, image_id, data, size):"},{"line_number":103,"context_line":"        backend \u003d None"},{"line_number":104,"context_line":"        if CONF.enabled_backends:"},{"line_number":105,"context_line":"            backend \u003d req.headers.get(\u0027x-image-meta-store\u0027,"},{"line_number":106,"context_line":"                                      CONF.glance_store.default_backend)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            try:"},{"line_number":109,"context_line":"                glance_store.get_store_from_store_identifier(backend)"},{"line_number":110,"context_line":"            except glance_store.UnknownScheme as exc:"},{"line_number":111,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexc.msg,"},{"line_number":112,"context_line":"                                               request\u003dreq,"},{"line_number":113,"context_line":"                                               content_type\u003d\u0027text/plain\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        image_repo \u003d self.gateway.get_repo(req.context)"},{"line_number":116,"context_line":"        image \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_212b2e33","line":113,"range":{"start_line":105,"start_character":0,"end_line":113,"end_character":73},"in_reply_to":"5f7c97a3_16c43a0d","updated":"2018-07-31 12:13:42.000000000","message":"blind me, getting that coffee now. L106 as Abhishek so well pointed out takes care of my concern around this logic.","commit_id":"3d069452bc7492402753a00b3e640e1960ecd2b2"}],"glance/api/v2/images.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"99ba8a3fe6dcdaba24078c7a7c63af9ab6f7d9b3","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return image_id"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _cleanup(self, context, image_id):"},{"line_number":152,"context_line":"        # NOTE(jokke): this is horrible way to do it but as long as"},{"line_number":153,"context_line":"        # glance_store is in a shape it is, the only way. Don\u0027t hold me"},{"line_number":154,"context_line":"        # accountable for it."},{"line_number":155,"context_line":"        # NOTE(abhishekk): Also this scenario will only occur when"},{"line_number":156,"context_line":"        # multi-backend is enabled, so using \u0027file1\u0027 as alias for file"},{"line_number":157,"context_line":"        # store."},{"line_number":158,"context_line":"        def _build_staging_store():"},{"line_number":159,"context_line":"            conf \u003d cfg.ConfigOpts()"},{"line_number":160,"context_line":"            # NOTE(abhishekk): registering enabled_backends option and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1e7f3118","line":157,"range":{"start_line":152,"start_character":0,"end_line":157,"end_character":16},"updated":"2018-06-27 16:02:24.000000000","message":"How about we deprecate the current staging and reserve \"staging\" ID for this purpose from the very beginning and not showing it on available stores list? We could clean up all this mess away.","commit_id":"bbd52bd84887cf245a99489958003afb6f9812bb"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b775d5dbbe57adc8780fb13eade7f10ba8571846","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return image_id"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _cleanup(self, context, image_id):"},{"line_number":152,"context_line":"        # NOTE(jokke): this is horrible way to do it but as long as"},{"line_number":153,"context_line":"        # glance_store is in a shape it is, the only way. Don\u0027t hold me"},{"line_number":154,"context_line":"        # accountable for it."},{"line_number":155,"context_line":"        # NOTE(abhishekk): Also this scenario will only occur when"},{"line_number":156,"context_line":"        # multi-backend is enabled, so using \u0027file1\u0027 as alias for file"},{"line_number":157,"context_line":"        # store."},{"line_number":158,"context_line":"        def _build_staging_store():"},{"line_number":159,"context_line":"            conf \u003d cfg.ConfigOpts()"},{"line_number":160,"context_line":"            # NOTE(abhishekk): registering enabled_backends option and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4af39f0a","line":157,"range":{"start_line":152,"start_character":0,"end_line":157,"end_character":16},"in_reply_to":"5f7c97a3_1e7f3118","updated":"2018-06-27 18:09:40.000000000","message":"In this case we need to deprecate node_staging_uri option as well. Also this needs to wait until we remove stores and default_stores option otherwise we need to add conditioning to maintain backward compatibility.","commit_id":"bbd52bd84887cf245a99489958003afb6f9812bb"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"b97143cc30642b616145ea8a2deb693c794f8722","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return image_id"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _cleanup(self, context, image_id):"},{"line_number":152,"context_line":"        # NOTE(jokke): this is horrible way to do it but as long as"},{"line_number":153,"context_line":"        # glance_store is in a shape it is, the only way. Don\u0027t hold me"},{"line_number":154,"context_line":"        # accountable for it."},{"line_number":155,"context_line":"        # NOTE(abhishekk): Also this scenario will only occur when"},{"line_number":156,"context_line":"        # multi-backend is enabled, so using \u0027file1\u0027 as alias for file"},{"line_number":157,"context_line":"        # store."},{"line_number":158,"context_line":"        def _build_staging_store():"},{"line_number":159,"context_line":"            conf \u003d cfg.ConfigOpts()"},{"line_number":160,"context_line":"            # NOTE(abhishekk): registering enabled_backends option and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8057455b","line":157,"range":{"start_line":152,"start_character":0,"end_line":157,"end_character":16},"in_reply_to":"5f7c97a3_4af39f0a","updated":"2018-06-28 13:17:35.000000000","message":"Yes that\u0027s exactly what I meant. I\u0027ll do a follow up reserving the store ID into all of the docs. That way we at least warn ahead of the time that it\u0027s coming.","commit_id":"bbd52bd84887cf245a99489958003afb6f9812bb"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c3a2341c6f5f2db047dfb4093e0eead6aec8eb20","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return image_id"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _cleanup(self, context, image_id):"},{"line_number":152,"context_line":"        # NOTE(jokke): this is horrible way to do it but as long as"},{"line_number":153,"context_line":"        # glance_store is in a shape it is, the only way. Don\u0027t hold me"},{"line_number":154,"context_line":"        # accountable for it."},{"line_number":155,"context_line":"        # NOTE(abhishekk): Also this scenario will only occur when"},{"line_number":156,"context_line":"        # multi-backend is enabled, so using \u0027file1\u0027 as alias for file"},{"line_number":157,"context_line":"        # store."},{"line_number":158,"context_line":"        def _build_staging_store():"},{"line_number":159,"context_line":"            conf \u003d cfg.ConfigOpts()"},{"line_number":160,"context_line":"            # NOTE(abhishekk): registering enabled_backends option and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_00e01597","line":157,"range":{"start_line":152,"start_character":0,"end_line":157,"end_character":16},"in_reply_to":"5f7c97a3_8057455b","updated":"2018-06-28 13:21:01.000000000","message":"So should I go ahead and do these changes in current patch?","commit_id":"bbd52bd84887cf245a99489958003afb6f9812bb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d1c50d360a40e3069fde891681b787aa9fef911","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            image.status \u003d \u0027queued\u0027"},{"line_number":208,"context_line":"            image_repo.save(image)"},{"line_number":209,"context_line":"        except Exception as e:"},{"line_number":210,"context_line":"            msg \u003d (_(\"Unable to restore image %(image_id)s: %(e)s\") %"},{"line_number":211,"context_line":"                   {\u0027image_id\u0027: image_id,"},{"line_number":212,"context_line":"                    \u0027e\u0027: encodeutils.exception_to_unicode(e)})"},{"line_number":213,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_518a5364","line":210,"range":{"start_line":210,"start_character":19,"end_line":210,"end_character":21},"updated":"2018-06-29 01:31:19.000000000","message":"Since this is only used for logging it shouldn\u0027t be translated with _().  LOG.exception is just the same as LOG.error with the addition that it will automatically log any in-scope exceptions, so \u0027e\u0027 should also be removed since it will be redundant.","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ee11efadf8d084db1de827d4d96352d1dc5524ae","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            image.status \u003d \u0027queued\u0027"},{"line_number":208,"context_line":"            image_repo.save(image)"},{"line_number":209,"context_line":"        except Exception as e:"},{"line_number":210,"context_line":"            msg \u003d (_(\"Unable to restore image %(image_id)s: %(e)s\") %"},{"line_number":211,"context_line":"                   {\u0027image_id\u0027: image_id,"},{"line_number":212,"context_line":"                    \u0027e\u0027: encodeutils.exception_to_unicode(e)})"},{"line_number":213,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_2758b42f","line":210,"range":{"start_line":210,"start_character":19,"end_line":210,"end_character":21},"in_reply_to":"5f7c97a3_518a5364","updated":"2018-06-29 05:28:51.000000000","message":"Done","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d1c50d360a40e3069fde891681b787aa9fef911","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"        \u0027backend\u0027: {"},{"line_number":1156,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":1157,"context_line":"            \u0027readOnly\u0027: True,"},{"line_number":1158,"context_line":"            \u0027description\u0027: _(\u0027Backend store to upload image to\u0027),"},{"line_number":1159,"context_line":"        },"},{"line_number":1160,"context_line":"        \u0027schema\u0027: {"},{"line_number":1161,"context_line":"            \u0027type\u0027: \u0027string\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_71d8af7f","line":1158,"range":{"start_line":1158,"start_character":27,"end_line":1158,"end_character":29},"updated":"2018-06-29 01:31:19.000000000","message":"I see we have it on the other ones, but why are we translating these? Maybe something for a follow up, but I don\u0027t see why we should be doing that.","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ee11efadf8d084db1de827d4d96352d1dc5524ae","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"        \u0027backend\u0027: {"},{"line_number":1156,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":1157,"context_line":"            \u0027readOnly\u0027: True,"},{"line_number":1158,"context_line":"            \u0027description\u0027: _(\u0027Backend store to upload image to\u0027),"},{"line_number":1159,"context_line":"        },"},{"line_number":1160,"context_line":"        \u0027schema\u0027: {"},{"line_number":1161,"context_line":"            \u0027type\u0027: \u0027string\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_07533818","line":1158,"range":{"start_line":1158,"start_character":27,"end_line":1158,"end_character":29},"in_reply_to":"5f7c97a3_71d8af7f","updated":"2018-06-29 05:28:51.000000000","message":"I guess if everyone agree with this we can do this change in follow up patch.","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"d7f9335c6c0b57fcc31fe3afe3ee17ddf630f49a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            except glance_store.UnknownScheme:"},{"line_number":102,"context_line":"                msg \u003d _(\"Store for scheme %s not found\") % backend"},{"line_number":103,"context_line":"                LOG.warn(msg)"},{"line_number":104,"context_line":"                # delete image from the staging location"},{"line_number":105,"context_line":"                self._cleanup(req.context, image_id)"},{"line_number":106,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg,"},{"line_number":107,"context_line":"                                               request\u003dreq,"},{"line_number":108,"context_line":"                                               content_type\u003d\u0027text/plain\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_415681cf","line":105,"range":{"start_line":104,"start_character":15,"end_line":105,"end_character":52},"updated":"2018-07-30 15:09:41.000000000","message":"I don\u0027t think we should be doing this for just (possibly) typo in requested backend. Specially as we do not drop the image back to queued. This would leave the image to a limbo that can be only resolved by deleting it.\n\nOne of the main points of having the staging and separate import call was to avoid the need of re-uploading the data.","commit_id":"39cf594bc1e9a503f9ce2a8b5573b6b1e727e7a4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"d7f9335c6c0b57fcc31fe3afe3ee17ddf630f49a","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            # overriding it\u0027s value to set file1: file so that we can"},{"line_number":189,"context_line":"            # able to store staging data in file store."},{"line_number":190,"context_line":"            conf.register_opt(cfg.DictOpt(\u0027enabled_backends\u0027))"},{"line_number":191,"context_line":"            conf.set_override(\u0027enabled_backends\u0027, {\u0027file1\u0027: \u0027file\u0027})"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            try:"},{"line_number":194,"context_line":"                glance_store.register_store_opts(conf)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_011ac916","line":191,"range":{"start_line":191,"start_character":51,"end_line":191,"end_character":58},"updated":"2018-07-30 15:09:41.000000000","message":"how about we call this staging and reserve the name for this purpose (just a comment on the docs and possibly config files).\n\nI think \"file1\" might get overloaded much easier than \"staging\".","commit_id":"39cf594bc1e9a503f9ce2a8b5573b6b1e727e7a4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"dfa055dbdb58643464ac36d2c69560aa4e18e5e6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        try:"},{"line_number":101,"context_line":"            backend \u003d None"},{"line_number":102,"context_line":"            if CONF.enabled_backends:"},{"line_number":103,"context_line":"                backend \u003d req.headers.get(\u0027x-image-meta-store\u0027,"},{"line_number":104,"context_line":"                                          CONF.glance_store.default_backend)"},{"line_number":105,"context_line":"                try:"},{"line_number":106,"context_line":"                    glance_store.get_store_from_store_identifier(backend)"},{"line_number":107,"context_line":"                except glance_store.UnknownScheme:"},{"line_number":108,"context_line":"                    msg \u003d _(\"Store for scheme %s not found\") % backend"},{"line_number":109,"context_line":"                    LOG.warn(msg)"},{"line_number":110,"context_line":"                    raise exception.Conflict(msg)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"            image \u003d image_repo.get(image_id)"},{"line_number":113,"context_line":"            if image.status \u003d\u003d \u0027active\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_b61f86b6","line":110,"range":{"start_line":103,"start_character":0,"end_line":110,"end_character":49},"updated":"2018-07-31 11:50:38.000000000","message":"correct me if I\u0027m wrong, but this looks like it will fail every time the back-end is not provided and multi back-end is configured?\n\nI do not see any special handling for None in the get_store_from_store_identifier so if the header is not there it should always raise UnknownScheme, no?\n\nAlso I would like to see this at least after the \u0027active\u0027 check as all this is irrelevant if the image is already active and we will never accept the import call regardless if the asked backend is ok or not.","commit_id":"3d069452bc7492402753a00b3e640e1960ecd2b2"}],"glance/api/v2/router.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"dfa055dbdb58643464ac36d2c69560aa4e18e5e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5f7c97a3_96e36a06","updated":"2018-07-31 11:50:38.000000000","message":"Could you add the \u0027reject\u0027 for others than GET for stores as well, like lines 564-567, please? Sorry I missed it before.","commit_id":"3d069452bc7492402753a00b3e640e1960ecd2b2"}],"glance/location.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d1c50d360a40e3069fde891681b787aa9fef911","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                        loc[\u0027url\u0027], backend, offset\u003doffset,"},{"line_number":516,"context_line":"                        chunk_size\u003dchunk_size, context\u003dself.context"},{"line_number":517,"context_line":"                    )"},{"line_number":518,"context_line":"                    return data"},{"line_number":519,"context_line":"                else:"},{"line_number":520,"context_line":"                    data, size \u003d self.store_api.get_from_backend("},{"line_number":521,"context_line":"                        loc[\u0027url\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_716f4f93","line":518,"updated":"2018-06-29 01:31:19.000000000","message":"Unimportant style preference, but you could remove the returns within the if blocks and just have one return after the blocks.","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ee11efadf8d084db1de827d4d96352d1dc5524ae","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                        loc[\u0027url\u0027], backend, offset\u003doffset,"},{"line_number":516,"context_line":"                        chunk_size\u003dchunk_size, context\u003dself.context"},{"line_number":517,"context_line":"                    )"},{"line_number":518,"context_line":"                    return data"},{"line_number":519,"context_line":"                else:"},{"line_number":520,"context_line":"                    data, size \u003d self.store_api.get_from_backend("},{"line_number":521,"context_line":"                        loc[\u0027url\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_875f480e","line":518,"in_reply_to":"5f7c97a3_716f4f93","updated":"2018-06-29 05:28:51.000000000","message":"Done","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"d7f9335c6c0b57fcc31fe3afe3ee17ddf630f49a","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add_to_backend("},{"line_number":469,"context_line":"                CONF,"},{"line_number":470,"context_line":"                self.image.image_id,"},{"line_number":471,"context_line":"                utils.LimitingReader(utils.CooperativeReader(data),"},{"line_number":472,"context_line":"                                     CONF.image_size_cap),"},{"line_number":473,"context_line":"                size,"},{"line_number":474,"context_line":"                context\u003dself.context,"},{"line_number":475,"context_line":"                verifier\u003dverifier)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        # NOTE(bpoulos): if verification fails, exception will be raised"},{"line_number":478,"context_line":"        if verifier:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_a1d195fb","line":475,"range":{"start_line":471,"start_character":37,"end_line":475,"end_character":34},"updated":"2018-07-30 15:09:41.000000000","message":"How in earth this passes PEP8?","commit_id":"39cf594bc1e9a503f9ce2a8b5573b6b1e727e7a4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d785ec10b996bf9f27076b0e18177ce95e607f47","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add_to_backend("},{"line_number":469,"context_line":"                CONF,"},{"line_number":470,"context_line":"                self.image.image_id,"},{"line_number":471,"context_line":"                utils.LimitingReader(utils.CooperativeReader(data),"},{"line_number":472,"context_line":"                                     CONF.image_size_cap),"},{"line_number":473,"context_line":"                size,"},{"line_number":474,"context_line":"                context\u003dself.context,"},{"line_number":475,"context_line":"                verifier\u003dverifier)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        # NOTE(bpoulos): if verification fails, exception will be raised"},{"line_number":478,"context_line":"        if verifier:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_fc3894cb","line":475,"range":{"start_line":471,"start_character":37,"end_line":475,"end_character":34},"in_reply_to":"5f7c97a3_a1d195fb","updated":"2018-07-30 15:18:44.000000000","message":"This is right. These last three lines are args to add_to_backend, so they are lines up correctly, while line 472 is an arg to LimitingReader, so that\u0027s right to be indented there.","commit_id":"39cf594bc1e9a503f9ce2a8b5573b6b1e727e7a4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a5af908dfca63b6f813d0d0eab85775db4cda042","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            verifier \u003d None"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"        if CONF.enabled_backends:"},{"line_number":458,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add("},{"line_number":459,"context_line":"                CONF,"},{"line_number":460,"context_line":"                self.image.image_id,"},{"line_number":461,"context_line":"                utils.LimitingReader(utils.CooperativeReader(data),"},{"line_number":462,"context_line":"                                     CONF.image_size_cap),"},{"line_number":463,"context_line":"                size,"},{"line_number":464,"context_line":"                backend,"},{"line_number":465,"context_line":"                context\u003dself.context,"},{"line_number":466,"context_line":"                verifier\u003dverifier)"},{"line_number":467,"context_line":"        else:"},{"line_number":468,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add_to_backend("},{"line_number":469,"context_line":"                CONF,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_6a6016a5","line":466,"range":{"start_line":458,"start_character":12,"end_line":466,"end_character":34},"updated":"2018-07-31 15:52:35.000000000","message":"after multihash patch gets merged we need to call add_with_multihash to support multihash with multi-backend.","commit_id":"30bb57ec470ec300947a394b60cc8791f8ca9a39"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"eef835102b1294c57bdf92b5b0333c18bc621352","unresolved":false,"context_lines":[{"line_number":455,"context_line":"            verifier \u003d None"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"        if CONF.enabled_backends:"},{"line_number":458,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add("},{"line_number":459,"context_line":"                CONF,"},{"line_number":460,"context_line":"                self.image.image_id,"},{"line_number":461,"context_line":"                utils.LimitingReader(utils.CooperativeReader(data),"},{"line_number":462,"context_line":"                                     CONF.image_size_cap),"},{"line_number":463,"context_line":"                size,"},{"line_number":464,"context_line":"                backend,"},{"line_number":465,"context_line":"                context\u003dself.context,"},{"line_number":466,"context_line":"                verifier\u003dverifier)"},{"line_number":467,"context_line":"        else:"},{"line_number":468,"context_line":"            location, size, checksum, loc_meta \u003d self.store_api.add_to_backend("},{"line_number":469,"context_line":"                CONF,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_caf60a91","line":466,"range":{"start_line":458,"start_character":12,"end_line":466,"end_character":34},"in_reply_to":"5f7c97a3_6a6016a5","updated":"2018-07-31 16:07:02.000000000","message":"Need to change above to\n\n(location, size, checksum,\n             multihash, loc_meta) \u003d self.store_api.add_with_multihash(\n                CONF,\n                self.image.image_id,\n                utils.LimitingReader(utils.CooperativeReader(data),\n                                     CONF.image_size_cap),\n                size,\n                backend,\n                hashing_algo,\n                context\u003dself.context,\n                verifier\u003dverifier)","commit_id":"30bb57ec470ec300947a394b60cc8791f8ca9a39"}],"glance/tests/unit/test_quota.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d1c50d360a40e3069fde891681b787aa9fef911","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    locations \u003d [{\u0027url\u0027: \u0027file:///not/a/path\u0027, \u0027metadata\u0027: {}}]"},{"line_number":43,"context_line":"    tags \u003d set([])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def set_data(self, data, backend\u003dNone, size\u003dNone):"},{"line_number":46,"context_line":"        self.size \u003d 0"},{"line_number":47,"context_line":"        for d in data:"},{"line_number":48,"context_line":"            self.size +\u003d len(d)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f1ceff8d","line":45,"range":{"start_line":45,"start_character":29,"end_line":45,"end_character":36},"updated":"2018-06-29 01:31:19.000000000","message":"Adding new args would be better to add at the end.","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ee11efadf8d084db1de827d4d96352d1dc5524ae","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    locations \u003d [{\u0027url\u0027: \u0027file:///not/a/path\u0027, \u0027metadata\u0027: {}}]"},{"line_number":43,"context_line":"    tags \u003d set([])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def set_data(self, data, backend\u003dNone, size\u003dNone):"},{"line_number":46,"context_line":"        self.size \u003d 0"},{"line_number":47,"context_line":"        for d in data:"},{"line_number":48,"context_line":"            self.size +\u003d len(d)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_4780504a","line":45,"range":{"start_line":45,"start_character":29,"end_line":45,"end_character":36},"in_reply_to":"5f7c97a3_f1ceff8d","updated":"2018-06-29 05:28:51.000000000","message":"Done","commit_id":"507f2cf12df1be96cfea1e5130ef49c355c2111c"}]}
