)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"c18798a1358a08dd5f28645e91bd23c281c6ce2b","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ic3eda63d26537dfa5c03618e166449307fbcdda0"},{"line_number":18,"context_line":"Closes-Bug: #1643995"},{"line_number":19,"context_line":"Co-Authored-By: Andrew Balfour \u003candrew.balfour@oracle.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a1ced50_36259d08","line":19,"updated":"2017-03-21 23:07:38.000000000","message":"nit/question: Shouldn\u0027t you be a co-author, Galyna?","commit_id":"0460d9fd164c54a24731397c08fcc5016cad6ff0"}],"ironic/api/app.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"11b86942a07da895f4524ebda1cfcf648b281794","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    if not pecan_config:"},{"line_number":53,"context_line":"        pecan_config \u003d get_pecan_config()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    if getattr(pecan_config.app, \u0027guess_content_type_from_ext\u0027, True):"},{"line_number":56,"context_line":"        LOG.warning(_LW(\u0027guess_content_type_from_ext will be disabled in \u0027"},{"line_number":57,"context_line":"                        \u0027next release, set guess_content_type_from_ext to \u0027"},{"line_number":58,"context_line":"                        \u0027False explicitly in application config.\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_b72a558e","line":55,"updated":"2017-03-22 11:48:39.000000000","message":"I guess it\u0027s better to add it to the pecan config explicitly, set to true, so that when an operator opens the pecan config, the option to edit is there.","commit_id":"7e359bbe95f63e8b40a78e7ba9f8e9fed06a3c87"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"fc9cd9e9577579b864609f270a6feae80db9733e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    if not pecan_config:"},{"line_number":53,"context_line":"        pecan_config \u003d get_pecan_config()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    if getattr(pecan_config.app, \u0027guess_content_type_from_ext\u0027, True):"},{"line_number":56,"context_line":"        LOG.warning(_LW(\u0027guess_content_type_from_ext will be disabled in \u0027"},{"line_number":57,"context_line":"                        \u0027next release, set guess_content_type_from_ext to \u0027"},{"line_number":58,"context_line":"                        \u0027False explicitly in application config.\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_f72bba7f","line":55,"in_reply_to":"1a1ced50_b72a558e","updated":"2017-03-23 10:20:53.000000000","message":"Done","commit_id":"7e359bbe95f63e8b40a78e7ba9f8e9fed06a3c87"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"73154740c60fc588777a0702c3d145c5a6771dba","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        pecan_config \u003d get_pecan_config()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    if getattr(pecan_config.app, \u0027guess_content_type_from_ext\u0027, True):"},{"line_number":56,"context_line":"        LOG.warning(_LW(\u0027guess_content_type_from_ext will be disabled in \u0027"},{"line_number":57,"context_line":"                        \u0027next release, set guess_content_type_from_ext to \u0027"},{"line_number":58,"context_line":"                        \u0027False explicitly in application config.\u0027))"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_90d390d4","line":56,"updated":"2017-03-22 17:23:48.000000000","message":"please remove _LW, we\u0027re getting rid of log translation","commit_id":"7e359bbe95f63e8b40a78e7ba9f8e9fed06a3c87"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"fc9cd9e9577579b864609f270a6feae80db9733e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        pecan_config \u003d get_pecan_config()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    if getattr(pecan_config.app, \u0027guess_content_type_from_ext\u0027, True):"},{"line_number":56,"context_line":"        LOG.warning(_LW(\u0027guess_content_type_from_ext will be disabled in \u0027"},{"line_number":57,"context_line":"                        \u0027next release, set guess_content_type_from_ext to \u0027"},{"line_number":58,"context_line":"                        \u0027False explicitly in application config.\u0027))"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a1ced50_171f765b","line":56,"in_reply_to":"1a1ced50_90d390d4","updated":"2017-03-23 10:20:53.000000000","message":"Done","commit_id":"7e359bbe95f63e8b40a78e7ba9f8e9fed06a3c87"}],"ironic/api/config.py":[{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dbb6e468977bc9babc2042a96422cc9f2b666216","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027modules\u0027: [\u0027ironic.api\u0027],"},{"line_number":27,"context_line":"    \u0027static_root\u0027: \u0027%(confdir)s/public\u0027,"},{"line_number":28,"context_line":"    \u0027debug\u0027: False,"},{"line_number":29,"context_line":"    \u0027enable_acl\u0027: True,"},{"line_number":30,"context_line":"    \u0027acl_public_routes\u0027: ["},{"line_number":31,"context_line":"        \u0027/\u0027,"},{"line_number":32,"context_line":"        \u0027/v1\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_7c90314f","line":29,"updated":"2016-12-08 15:01:46.000000000","message":"Is this necessary to disable the guess_content_type_from_ext plugin?","commit_id":"a40301bc92cf01910ff55c0b111402438ea595d1"},{"author":{"_account_id":22749,"name":"Vadim Hmyrov","email":"vhmyrov@mirantis.com","username":"vhmyrov"},"change_message_id":"b3b2c6daa4e337967f18a943a9eb3a653352c48a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027modules\u0027: [\u0027ironic.api\u0027],"},{"line_number":27,"context_line":"    \u0027static_root\u0027: \u0027%(confdir)s/public\u0027,"},{"line_number":28,"context_line":"    \u0027debug\u0027: False,"},{"line_number":29,"context_line":"    \u0027enable_acl\u0027: True,"},{"line_number":30,"context_line":"    \u0027acl_public_routes\u0027: ["},{"line_number":31,"context_line":"        \u0027/\u0027,"},{"line_number":32,"context_line":"        \u0027/v1\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_bd9c156b","line":29,"in_reply_to":"3a71b18c_7c90314f","updated":"2016-12-12 11:45:38.000000000","message":"You are right (not needed). Removed in next patch set.\nThanks","commit_id":"a40301bc92cf01910ff55c0b111402438ea595d1"}],"ironic/tests/unit/api/test_acl.py":[{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"dbb6e468977bc9babc2042a96422cc9f2b666216","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def test_public_api_with_path_extensions(self):"},{"line_number":96,"context_line":"        routes \u003d {\u0027/v1/\u0027: http_client.OK,"},{"line_number":97,"context_line":"                  \u0027/v1.json\u0027: http_client.OK,"},{"line_number":98,"context_line":"                  \u0027/v1.xml\u0027: http_client.OK}"},{"line_number":99,"context_line":"        for url in routes:"},{"line_number":100,"context_line":"            response \u003d self.get_json(url,"},{"line_number":101,"context_line":"                                     path_prefix\u003d\u0027\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_fcbc41dd","line":98,"updated":"2016-12-08 15:01:46.000000000","message":"This is strange to me, and seems like this change should be unnecessary to fixing this bug. Can you explain the rationale here? If /v1.xml was 404ing before, how is it OK now? This patch doesn\u0027t seem to be adding XML support for that API endpoint. Unless turning off the guess extension plugin somehow enables pecan to return XML? If so, that needs to be noted in documentation, and possibly other places as well.","commit_id":"a40301bc92cf01910ff55c0b111402438ea595d1"},{"author":{"_account_id":22749,"name":"Vadim Hmyrov","email":"vhmyrov@mirantis.com","username":"vhmyrov"},"change_message_id":"b3b2c6daa4e337967f18a943a9eb3a653352c48a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def test_public_api_with_path_extensions(self):"},{"line_number":96,"context_line":"        routes \u003d {\u0027/v1/\u0027: http_client.OK,"},{"line_number":97,"context_line":"                  \u0027/v1.json\u0027: http_client.OK,"},{"line_number":98,"context_line":"                  \u0027/v1.xml\u0027: http_client.OK}"},{"line_number":99,"context_line":"        for url in routes:"},{"line_number":100,"context_line":"            response \u003d self.get_json(url,"},{"line_number":101,"context_line":"                                     path_prefix\u003d\u0027\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_5db221e6","line":98,"in_reply_to":"3a71b18c_fcbc41dd","updated":"2016-12-12 11:45:38.000000000","message":"Sure, my bad. Removed in next patch set. Thanks","commit_id":"a40301bc92cf01910ff55c0b111402438ea595d1"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"8740009d67837fb9f424ac39ce4fbfce31956a89","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_public_api_with_path_extensions(self):"},{"line_number":96,"context_line":"        routes \u003d {\u0027/v1/\u0027: http_client.OK,"},{"line_number":97,"context_line":"                  \u0027/v1.json\u0027: http_client.OK,"},{"line_number":98,"context_line":"                  \u0027/v1.xml\u0027: http_client.OK}"},{"line_number":99,"context_line":"        for url in routes:"},{"line_number":100,"context_line":"            response \u003d self.get_json(url,"},{"line_number":101,"context_line":"                                     path_prefix\u003d\u0027\u0027, expect_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_0bcd8e30","line":98,"range":{"start_line":97,"start_character":19,"end_line":98,"end_character":43},"updated":"2017-01-18 14:20:54.000000000","message":"this should not return OK anymore.","commit_id":"18378c0696e9dbf1b173185bafed5366b191dbda"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eac1a002a5bdc3fdb6d1f55d94edb10b2b7b080f","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_public_api_with_path_extensions(self):"},{"line_number":96,"context_line":"        routes \u003d {\u0027/v1/\u0027: http_client.OK,"},{"line_number":97,"context_line":"                  \u0027/v1.json\u0027: http_client.NOT_FOUND,"},{"line_number":98,"context_line":"                  \u0027/v1.xml\u0027: http_client.NOT_FOUND}"},{"line_number":99,"context_line":"        for url in routes:"},{"line_number":100,"context_line":"            response \u003d self.get_json(url,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a3905b3_d201b8b0","line":97,"updated":"2017-01-23 12:31:31.000000000","message":"this is a pattern that people could potential use. We need at least a release note explaining that it\u0027s no longer possible.","commit_id":"8d5a06a480a23bc16e54c45aebf38ea3d8821502"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"8d2e6c6d16acfc915e9db66bcbc1d3a84a33b4a6","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_public_api_with_path_extensions(self):"},{"line_number":96,"context_line":"        routes \u003d {\u0027/v1/\u0027: http_client.OK,"},{"line_number":97,"context_line":"                  \u0027/v1.json\u0027: http_client.NOT_FOUND,"},{"line_number":98,"context_line":"                  \u0027/v1.xml\u0027: http_client.NOT_FOUND}"},{"line_number":99,"context_line":"        for url in routes:"},{"line_number":100,"context_line":"            response \u003d self.get_json(url,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_04a6bdad","line":97,"in_reply_to":"5a3905b3_d201b8b0","updated":"2017-03-21 16:01:57.000000000","message":"Thanks, added a release note that adds some deprecation period. After some time it could be set to true again as soon as it will be supported (if it will be. not sure)","commit_id":"8d5a06a480a23bc16e54c45aebf38ea3d8821502"}],"releasenotes/notes/disable-guess-content-type-at-pecan-config-75495b0b76010505.yaml":[{"author":{"_account_id":23883,"name":"Joanna Taryma","email":"joanna.taryma@intel.com","username":"jtaryma"},"change_message_id":"c18798a1358a08dd5f28645e91bd23c281c6ce2b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - guess_content_type_from_ext is False in pecan config"},{"line_number":4,"context_line":"    unless it will not be supported by pecan."},{"line_number":5,"context_line":"fixes:"},{"line_number":6,"context_line":"  - Now ironic api recognizes names with dots and does"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1a1ced50_b6318d5c","line":3,"updated":"2017-03-21 23:07:38.000000000","message":"1) This whole section does not sound like a deprecation to me.\n2) I think it\u0027s important to mention that v1.json will now respond to with 404. \n\nMaybe there should be\n* upgrade section containing info about new guess_content_type_from_ext setting and all the content from fixes section.\n* deprecations section with info about 2)\n* no fixes section\n\nWDYT?","commit_id":"0460d9fd164c54a24731397c08fcc5016cad6ff0"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"0645ea011756c9d839549c83e725cf6c178a4fcf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - guess_content_type_from_ext is False in pecan config"},{"line_number":4,"context_line":"    unless it will not be supported by pecan."},{"line_number":5,"context_line":"fixes:"},{"line_number":6,"context_line":"  - Now ironic api recognizes names with dots and does"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1a1ced50_7e60bf01","line":3,"in_reply_to":"1a1ced50_b6318d5c","updated":"2017-03-22 09:41:37.000000000","message":"I am good with sections propositions (not sure if fixes should merge with upgrade section, but IMHO, it doesn\u0027t really matter)\n\nI think also it is important to note about deprecation period that at some time we can enable this feature again if it works OK. Not sure how to specify this correct.","commit_id":"0460d9fd164c54a24731397c08fcc5016cad6ff0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"abf4a959d765498c1b3e74e7badf0e249340946a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - now ironic responds to /v1.json requests with 404"},{"line_number":7,"context_line":"    NOT FOUND. As soon as pecan supports recognizing"},{"line_number":8,"context_line":"    extensions types, this option will be enabled in next"},{"line_number":9,"context_line":"    releases."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_41eb2378","line":8,"updated":"2017-03-22 10:47:27.000000000","message":"Huh, pecan already is able to do that. The ironic itself only recognizes json. After thinking a bit more on this, I suppose the better way will be the following:\n\n1. set the guessing to true in pecan config\n2. if it is set to true, begin complaining about this, ask to set to false\n3. next cycle, set to false\n\nThe reason I changed my mind is neutron api-ref. they actually seem to recommend the .json in requests. We can remove this possibility, but I guess we need to clearly warn people in advance.","commit_id":"ff72dd276abcea126c0656955453aa450b13a086"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"ce0f26442b3220f5ae73d82d754b2b8832bccf83","unresolved":false,"context_lines":[{"line_number":5,"context_line":"deprecations:"},{"line_number":6,"context_line":"  - now ironic responds to /v1.json requests with 404"},{"line_number":7,"context_line":"    NOT FOUND. As soon as pecan supports recognizing"},{"line_number":8,"context_line":"    extensions types, this option will be enabled in next"},{"line_number":9,"context_line":"    releases."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_b7d6d5ee","line":8,"in_reply_to":"1a1ced50_41eb2378","updated":"2017-03-22 11:37:35.000000000","message":"ok, so then I am not sure now that it needs a release note at all. Because this patch does not really change, just add a warning","commit_id":"ff72dd276abcea126c0656955453aa450b13a086"}]}
