)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"092ccfe96f96af9d6ee7a7adf60433fb83054856","unresolved":false,"context_lines":[{"line_number":11,"context_line":"break the single-origin policy and access the API directly. Included"},{"line_number":12,"context_line":"are Glance\u0027s custom headers, so that anyone activating this"},{"line_number":13,"context_line":"middleware does not have to explicitly enable them."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"OpenStack CrossProject Spec:"},{"line_number":16,"context_line":"   http://specs.openstack.org/openstack/openstack-specs/specs/cors-support.html"},{"line_number":17,"context_line":"Oslo_Middleware Docs:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_17e202a0","line":14,"updated":"2015-09-02 11:03:08.000000000","message":"IMO DocImpact flag will be helpful here","commit_id":"5be39eb822fafe6ccc955b92069aa3269664142d"},{"author":{"_account_id":9725,"name":"Dong Ma","email":"winterma.dong@gmail.com","username":"larainema"},"change_message_id":"0282a92c999d2dfe746a9f6bbd5d30dd2e57d5ab","unresolved":false,"context_lines":[{"line_number":11,"context_line":"break the single-origin policy and access the API directly. Included"},{"line_number":12,"context_line":"are Glance\u0027s custom headers, so that anyone activating this"},{"line_number":13,"context_line":"middleware does not have to explicitly enable them."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"OpenStack CrossProject Spec:"},{"line_number":16,"context_line":"   http://specs.openstack.org/openstack/openstack-specs/specs/cors-support.html"},{"line_number":17,"context_line":"Oslo_Middleware Docs:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_0edb2950","line":14,"in_reply_to":"da20952f_17e202a0","updated":"2015-09-07 03:49:58.000000000","message":"Done","commit_id":"5be39eb822fafe6ccc955b92069aa3269664142d"}],"etc/glance-api-paste.ini":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"053cbef9b9fc6fd3783e7c8df71b85624554f28d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"enabled \u003d yes"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d oslo_middleware.cors:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3a29b11f_69e51f36","line":89,"updated":"2015-10-21 19:51:14.000000000","message":"oslo_config_file key is missing here, w/o it glance-api.conf won\u0027t be loaded.","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"50470b536fd81bc1d358149400684de6bcd33c38","unresolved":false,"context_lines":[{"line_number":86,"context_line":"enabled \u003d yes"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d oslo_middleware.cors:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3a29b11f_c22f533d","line":89,"in_reply_to":"3a29b11f_69e51f36","updated":"2015-10-22 10:55:17.000000000","message":"It is assumed that this should work. Can you test it again?","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"ae62a1e5498f6934cd3390620dbdbd54fa5f5f5d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"enabled \u003d yes"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d glance.cors_middleware:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance-api"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da85f559_b9ed3ef1","line":89,"updated":"2015-11-13 14:00:29.000000000","message":"The value must be oslo_middleware.cors:...","commit_id":"61ce03706bba8d6b76e7641e8657aa83581c4db5"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"ae62a1e5498f6934cd3390620dbdbd54fa5f5f5d","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d glance.cors_middleware:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance-api"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da85f559_f9918653","line":90,"updated":"2015-11-13 14:00:29.000000000","message":"It doesn\u0027t work well without oslo_config_file hard-coded. I am trying to analyze the root cause but haven\u0027t succeed yet.","commit_id":"61ce03706bba8d6b76e7641e8657aa83581c4db5"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"02764c67edff3cdefcaf3cf0906b8e9a8114bf77","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d glance.cors_middleware:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance-api"}],"source_content_type":"text/x-properties","patch_set":7,"id":"da85f559_80d79722","line":90,"in_reply_to":"da85f559_f9918653","updated":"2015-11-13 15:29:52.000000000","message":"The reason is that glance doesn\u0027t use the usual openstack naming convention for config files. This is a partial workaround for this, however the glance team really needs to fix this overall.","commit_id":"61ce03706bba8d6b76e7641e8657aa83581c4db5"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"bd42390d73f21c86163f31905b5cc7f31086956b","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[filter:cors]"},{"line_number":89,"context_line":"paste.filter_factory \u003d  oslo_middleware.cors:filter_factory"},{"line_number":90,"context_line":"oslo_config_project \u003d glance-api"}],"source_content_type":"text/x-properties","patch_set":8,"id":"da85f559_0ea9637b","line":90,"updated":"2015-11-16 07:48:10.000000000","message":"Just to not forget about it:\nthis requires oslo config program included into the patch.","commit_id":"9fd1c9671c1a0d22b8df1ae0131be903ccf252bd"}],"etc/glance-api.conf":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"053cbef9b9fc6fd3783e7c8df71b85624554f28d","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# Indicate which headers are safe to expose to the API. Defaults to"},{"line_number":645,"context_line":"# HTTP Simple Headers. (list value)"},{"line_number":646,"context_line":"#expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"# Maximum cache age of CORS preflight requests. (integer value)"},{"line_number":649,"context_line":"#max_age \u003d 3600"}],"source_content_type":"text/plain","patch_set":6,"id":"3a29b11f_8918bb76","line":646,"updated":"2015-10-21 19:51:14.000000000","message":"Still no X-Auth-Token header here for Keystone authentication.","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"50470b536fd81bc1d358149400684de6bcd33c38","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# Indicate which headers are safe to expose to the API. Defaults to"},{"line_number":645,"context_line":"# HTTP Simple Headers. (list value)"},{"line_number":646,"context_line":"#expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"# Maximum cache age of CORS preflight requests. (integer value)"},{"line_number":649,"context_line":"#max_age \u003d 3600"}],"source_content_type":"text/plain","patch_set":6,"id":"3a29b11f_e23daf8f","line":646,"in_reply_to":"3a29b11f_8918bb76","updated":"2015-10-22 10:55:17.000000000","message":"It\u0027s auto-generated code from oslo.middleware. It has to be fixed here: https://github.com/openstack/oslo.middleware/blob/master/oslo_middleware/cors.py#L37","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"cc5fac19c182cd81c264b335fa14c388798f3b13","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# Indicate which headers are safe to expose to the API. Defaults to"},{"line_number":645,"context_line":"# HTTP Simple Headers. (list value)"},{"line_number":646,"context_line":"#expose_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"# Maximum cache age of CORS preflight requests. (integer value)"},{"line_number":649,"context_line":"#max_age \u003d 3600"}],"source_content_type":"text/plain","patch_set":6,"id":"3a29b11f_9da77c0a","line":646,"in_reply_to":"3a29b11f_e23daf8f","updated":"2015-10-22 11:16:18.000000000","message":"Done, the CR is https://review.openstack.org/#/c/238458/","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"053cbef9b9fc6fd3783e7c8df71b85624554f28d","unresolved":false,"context_lines":[{"line_number":654,"context_line":""},{"line_number":655,"context_line":"# Indicate which header field names may be used during the actual"},{"line_number":656,"context_line":"# request. (list value)"},{"line_number":657,"context_line":"#allow_headers \u003d Content-Type,Cache-Control,Content-Language,Expires,Last-Modified,Pragma"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"[cors.subdomain]"}],"source_content_type":"text/plain","patch_set":6,"id":"3a29b11f_29288785","line":657,"updated":"2015-10-21 19:51:14.000000000","message":"Ditto","commit_id":"881d34c209d8b6e0dfdc46711fdccc96085cf6f5"}],"etc/glance-registry-paste.ini":[{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"751f6595f595eb20c92d2ae17500b28c71edc23f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# user as authenticated without making requests to keystone to reauthenticate"},{"line_number":11,"context_line":"# the user."},{"line_number":12,"context_line":"[pipeline:glance-registry-trusted-auth]"},{"line_number":13,"context_line":"pipeline \u003d cors healthcheck osprofiler context registryapp"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[app:registryapp]"},{"line_number":16,"context_line":"paste.app_factory \u003d glance.registry.api:API.factory"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a29b11f_82b9897b","line":13,"updated":"2015-10-21 13:09:49.000000000","message":"What about a filter for that?","commit_id":"7c375e93f570d5ec4248e4045276a05ef1071a69"}],"glance/tests/functional/__init__.py":[{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"ae62a1e5498f6934cd3390620dbdbd54fa5f5f5d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"default_store \u003d %(default_store)s"},{"line_number":371,"context_line":"\"\"\""},{"line_number":372,"context_line":"        self.paste_conf_base \u003d \"\"\"[pipeline:glance-api]"},{"line_number":373,"context_line":"pipeline \u003d cors healthcheck versionnegotiation gzip unauthenticated-context rootapp"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"[pipeline:glance-api-caching]"},{"line_number":376,"context_line":"pipeline \u003d cors healthcheck versionnegotiation gzip unauthenticated-context"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_592bf233","line":373,"updated":"2015-11-13 14:00:29.000000000","message":"This exceeds 80 symbols.","commit_id":"61ce03706bba8d6b76e7641e8657aa83581c4db5"}],"glance/tests/functional/test_cors_middleware.py":[{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"ae62a1e5498f6934cd3390620dbdbd54fa5f5f5d","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import httplib2"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from glance.tests import functional"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_fe42da67","line":19,"updated":"2015-11-13 14:00:29.000000000","message":"Looks like this needs to be deleted.","commit_id":"61ce03706bba8d6b76e7641e8657aa83581c4db5"}]}
