)]}'
{"ceilometer/api/app.py":[{"author":{"_account_id":7302,"name":"xingzhou","email":"xingzhou@cn.ibm.com","username":"xingzhou"},"change_message_id":"021343717f3112c44dd218a7dcf50a9d3ca0d1b5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"               help\u003d\u0027The strategy to use for auth: noauth or keystone.\u0027),"},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027enable_v1_api\u0027,"},{"line_number":33,"context_line":"                default\u003dTrue,"},{"line_number":34,"context_line":"                help\u003d\u0027Deploy the deprecated v1 API.\u0027),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2FMo%3D","line":34,"updated":"2013-05-17 01:46:53.000000000","message":"Shall we also modify the ceilometer.conf.samp? besides enable_v1_api, seems auth_strategy is also not in the .conf","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c12c5eb107771f488ee916c8af3c86e6efa23828","unresolved":false,"context_lines":[{"line_number":31,"context_line":"               help\u003d\u0027The strategy to use for auth: noauth or keystone.\u0027),"},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027enable_v1_api\u0027,"},{"line_number":33,"context_line":"                default\u003dTrue,"},{"line_number":34,"context_line":"                help\u003d\u0027Deploy the deprecated v1 API.\u0027),"},{"line_number":35,"context_line":"]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2BuE%3D","line":34,"in_reply_to":"AAAAPH%2F%2F%2FMo%3D","updated":"2013-05-17 10:45:03.000000000","message":"Good point, I\u0027ll add to the new enable_v1_api to the sample conf.\n\n(Though we should keep an missing auth config for a separate patch)","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"c1e767fbbeb2a393526fd16d176bc4ffec551bdd","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8jA%3D","line":87,"updated":"2013-05-16 14:19:43.000000000","message":"(nit): Should we tell more? Such as \"You\u0027re requesting v1 API which is deprecated, please retry with v2 API\", or something like that.","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"48fd50561252e95de70cc67938e7d9158e7babe8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2FQY%3D","line":87,"in_reply_to":"AAAAO3%2F%2F8WY%3D","updated":"2013-05-17 00:49:20.000000000","message":"How about simply \"404 v1 API not enabled\"","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":7302,"name":"xingzhou","email":"xingzhou@cn.ibm.com","username":"xingzhou"},"change_message_id":"021343717f3112c44dd218a7dcf50a9d3ca0d1b5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2FNM%3D","line":87,"in_reply_to":"AAAAO3%2F%2F8WY%3D","updated":"2013-05-17 01:46:53.000000000","message":"Is 404 a proper respond code? if v1 api is disabled, my thought shall be 400 bad request, version 1 API is disabled","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"b5813637f171908512dc3f993aa77fd5a04922bd","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8WY%3D","line":87,"in_reply_to":"AAAAO3%2F%2F8jA%3D","updated":"2013-05-16 15:43:04.000000000","message":"As plain text? (or JSON, or XML etc.)\n\nOr, a choice of Content-Type based on the incoming Accept header?","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"533b65eaab4af60c88844eb2dd813160126cd562","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2BUc%3D","line":87,"in_reply_to":"AAAAPH%2F%2F%2Bns%3D","updated":"2013-05-17 13:39:25.000000000","message":"Go for 404.","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c12c5eb107771f488ee916c8af3c86e6efa23828","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2Bns%3D","line":87,"in_reply_to":"AAAAPH%2F%2F%2FNM%3D","updated":"2013-05-17 10:45:03.000000000","message":"@zingzhou\n\nFrom the HTTP spec ...\n\n400 Bad Request: The request could not be understood by the server due to malformed syntax ...\n\n404 Not Found: The server has not found anything matching the Request-URI ...\n\nGiven that the request may well be syntactically correct for v1, it doesn\u0027t feel right to suggest malformed syntax via a 400 status.\n\nOn the other hand, 404 indicates that the target resource (the v1 app) is not available, which is an accurate reflection of reality IMO.\n\nThinking about this some more, another option would be redirection via 3xx status codes. However, I\u0027m not sure that we have a sufficiently simple and complete mapping between v1 and v2 URLs to enable this.","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c12c5eb107771f488ee916c8af3c86e6efa23828","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            def not_found(environ, start_response):"},{"line_number":87,"context_line":"                start_response(\u0027404 Not Found\u0027, [])"},{"line_number":88,"context_line":"                return []"},{"line_number":89,"context_line":"            self.v1 \u003d not_found"},{"line_number":90,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2BnU%3D","line":87,"in_reply_to":"AAAAPH%2F%2F%2FQY%3D","updated":"2013-05-17 10:45:03.000000000","message":"@asalkeld\n\nI\u0027m not sure \"404 v1 API not enabled\" would be kosher, as the \"Not Found\" status description is standard for 404s.\n\nWe could of course simply encode the error message in the response entity body as plain/text, JSON or XML.","commit_id":"d0edf714e420ddb2a07921ff6fec224d04d70c05"}],"ceilometer/api/v1/app.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"47dc025c133d817906c236f7e22675a4c4815c86","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"Set up the API server application instance.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import flask"},{"line_number":21,"context_line":"import flask.helpers"},{"line_number":22,"context_line":"from oslo.config import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from ceilometer.api import acl"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F2%2BA%3D","line":21,"updated":"2013-05-21 15:39:39.000000000","message":"i don\u0027t think this is actually needed but not a blocker.","commit_id":"e2c1de041ab8f1d3ce820c06875752ea46f13a97"}]}
