)]}'
{"glance/api/middleware/cache.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d36dcdf2f11aa5278a8ffa2f5eacb4b0c79b41b3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"PATTERNS \u003d {"},{"line_number":46,"context_line":"    (\u0027v1\u0027, \u0027GET\u0027): re.compile(r\u0027^/v1/images/([^\\/]+)$\u0027),"},{"line_number":47,"context_line":"    (\u0027v1\u0027, \u0027DELETE\u0027): re.compile(r\u0027^/v1/images/([^\\/]+)$\u0027),"},{"line_number":48,"context_line":"    (\u0027v2\u0027, \u0027GET\u0027): re.compile(r\u0027^/v2/images/([^\\/]+)/file$\u0027),"},{"line_number":49,"context_line":"    (\u0027v2\u0027, \u0027DELETE\u0027): re.compile(r\u0027^/v2/images/([^\\/]+)$\u0027)"},{"line_number":50,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_15b9e27a","line":47,"range":{"start_line":46,"start_character":0,"end_line":47,"end_character":59},"updated":"2018-07-26 16:32:00.000000000","message":"These could be deleted in a followup patch.","commit_id":"3dde3204d5c1b5323dba2d7b7607e69bcc58bbb2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"655bac79eaafcbaccdc4dddc2a4dcea55ce3edbb","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"PATTERNS \u003d {"},{"line_number":46,"context_line":"    (\u0027v1\u0027, \u0027GET\u0027): re.compile(r\u0027^/v1/images/([^\\/]+)$\u0027),"},{"line_number":47,"context_line":"    (\u0027v1\u0027, \u0027DELETE\u0027): re.compile(r\u0027^/v1/images/([^\\/]+)$\u0027),"},{"line_number":48,"context_line":"    (\u0027v2\u0027, \u0027GET\u0027): re.compile(r\u0027^/v2/images/([^\\/]+)/file$\u0027),"},{"line_number":49,"context_line":"    (\u0027v2\u0027, \u0027DELETE\u0027): re.compile(r\u0027^/v2/images/([^\\/]+)$\u0027)"},{"line_number":50,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_895ab74e","line":47,"range":{"start_line":46,"start_character":0,"end_line":47,"end_character":59},"in_reply_to":"5f7c97a3_15b9e27a","updated":"2018-07-26 18:49:37.000000000","message":"Indeed","commit_id":"3dde3204d5c1b5323dba2d7b7607e69bcc58bbb2"}],"glance/api/v1/images.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"abf2405c1519cbc91b332606b720cd2e62d19560","unresolved":false,"context_lines":[{"line_number":40,"context_line":"from glance.api import common"},{"line_number":41,"context_line":"from glance.api import policy"},{"line_number":42,"context_line":"import glance.api.v1"},{"line_number":43,"context_line":"from glance.api.v1 import controller"},{"line_number":44,"context_line":"from glance.api.v1 import filters"},{"line_number":45,"context_line":"from glance.api.v1 import upload_utils"},{"line_number":46,"context_line":"from glance.common import exception"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_404ca8c8","side":"PARENT","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":36},"updated":"2018-07-13 05:22:39.000000000","message":"If you have close look at [1] you will notice registry client is imported which is responsible for initializing \u0027use_user_token\u0027 option. As now we are removing this file and even though this option is initialized in \u0027glance.registry.client.v2.api\u0027 it is never imported in v2 file, so we need to import this option explicitly in \u0027glance/common/store_utils.py\u0027 like\n\n_registry_client \u003d \u0027glance.registry.client\u0027\nCONF.import_opt(\u0027use_user_token\u0027, _registry_client)\n\n\n[1] https://github.com/openstack/glance/blob/master/glance/api/v1/controller.py#L22","commit_id":"f3496591ae34a332bf59432dc4e7c94fcd58170b"}],"glance/api/v1/router.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ef607a5c644865ccbbd17f8219bf68e1ed506f22","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from glance.common import wsgi"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class API(wsgi.Router):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    \"\"\"WSGI router for Glance v1 API requests.\"\"\""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_1c20bff6","line":20,"updated":"2018-01-10 12:19:47.000000000","message":"You could probably just remove the router completely. Or is there a reason to explicitly have the reject on the root?","commit_id":"e0b0a56421b86acacc7e9c32e417f03be10250a3"}],"glance/common/config.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d36dcdf2f11aa5278a8ffa2f5eacb4b0c79b41b3","unresolved":false,"context_lines":[{"line_number":516,"context_line":"      ``True`` and the ``data_api`` option is set to"},{"line_number":517,"context_line":"      ``glance.db.registry.api``."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    * If deploying only the v1 OpenStack Images API, this option,"},{"line_number":520,"context_line":"      which is enabled by default, should be disabled."},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"Possible values:"},{"line_number":523,"context_line":"    * True"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_f580e6c0","line":520,"range":{"start_line":519,"start_character":0,"end_line":520,"end_character":54},"updated":"2018-07-26 16:32:00.000000000","message":"This could be deleted in a followup patch.","commit_id":"3dde3204d5c1b5323dba2d7b7607e69bcc58bbb2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"655bac79eaafcbaccdc4dddc2a4dcea55ce3edbb","unresolved":false,"context_lines":[{"line_number":516,"context_line":"      ``True`` and the ``data_api`` option is set to"},{"line_number":517,"context_line":"      ``glance.db.registry.api``."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    * If deploying only the v1 OpenStack Images API, this option,"},{"line_number":520,"context_line":"      which is enabled by default, should be disabled."},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"Possible values:"},{"line_number":523,"context_line":"    * True"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_e9432b6a","line":520,"range":{"start_line":519,"start_character":0,"end_line":520,"end_character":54},"in_reply_to":"5f7c97a3_f580e6c0","updated":"2018-07-26 18:49:37.000000000","message":"well yeah, it goes in Stein anyways with the registry.","commit_id":"3dde3204d5c1b5323dba2d7b7607e69bcc58bbb2"}],"glance/common/store_utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d36dcdf2f11aa5278a8ffa2f5eacb4b0c79b41b3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":"CONF.import_opt(\u0027use_user_token\u0027, \u0027glance.registry.client\u0027)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"RESTRICTED_URI_SCHEMAS \u003d frozenset([\u0027file\u0027, \u0027filesystem\u0027, \u0027swift+config\u0027])"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_95ac1237","line":30,"updated":"2018-07-26 16:32:00.000000000","message":"This was a really good catch by Abhishek!","commit_id":"3dde3204d5c1b5323dba2d7b7607e69bcc58bbb2"}],"glance/tests/functional/test_cache_middleware.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d36dcdf2f11aa5278a8ffa2f5eacb4b0c79b41b3","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        self.stop_servers()"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    @skip_if_disabled"},{"line_number":515,"context_line":"    def test_cache_middleware_trans_with_deactivated_image(self):"},{"line_number":516,"context_line":"        \"\"\""},{"line_number":517,"context_line":"        Ensure the image v1/v2 API image transfer forbids downloading"},{"line_number":518,"context_line":"        deactivated images."}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_d8939f4d","side":"PARENT","line":515,"range":{"start_line":515,"start_character":8,"end_line":515,"end_character":59},"updated":"2018-07-26 16:32:00.000000000","message":"I think we should make a note to follow up with a test to make sure the cache doesn\u0027t serve deactivated images.  I didn\u0027t see anything in the unit tests, and it\u0027s interesting that this test didn\u0027t make sure a v2 request would be denied if not in admin context.","commit_id":"f3496591ae34a332bf59432dc4e7c94fcd58170b"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"655bac79eaafcbaccdc4dddc2a4dcea55ce3edbb","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        self.stop_servers()"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    @skip_if_disabled"},{"line_number":515,"context_line":"    def test_cache_middleware_trans_with_deactivated_image(self):"},{"line_number":516,"context_line":"        \"\"\""},{"line_number":517,"context_line":"        Ensure the image v1/v2 API image transfer forbids downloading"},{"line_number":518,"context_line":"        deactivated images."}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_891f1770","side":"PARENT","line":515,"range":{"start_line":515,"start_character":8,"end_line":515,"end_character":59},"in_reply_to":"5f7c97a3_d8939f4d","updated":"2018-07-26 18:49:37.000000000","message":"good catch","commit_id":"f3496591ae34a332bf59432dc4e7c94fcd58170b"}],"glance/tests/unit/api/test_common.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d36dcdf2f11aa5278a8ffa2f5eacb4b0c79b41b3","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                    config_file\u003d\u0027etc/glance-api-paste.ini\u0027)"},{"line_number":138,"context_line":"        self.api \u003d config.load_paste_app(\u0027glance-api\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_redirect_incomplete_url(self):"},{"line_number":141,"context_line":"        \"\"\"Test Glance redirects /v# to /v#/ with correct Location header\"\"\""},{"line_number":142,"context_line":"        req \u003d webob.Request.blank(\u0027/v1.1\u0027)"},{"line_number":143,"context_line":"        res \u003d req.get_response(self.api)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_b8efc3b0","side":"PARENT","line":140,"updated":"2018-07-26 16:32:00.000000000","message":"Note for a followup: might be worth restoring this test to check \u0027/v2.1\u0027 to \u0027/v2/\u0027 redirect.","commit_id":"f3496591ae34a332bf59432dc4e7c94fcd58170b"}]}
