)]}'
{"nova/api/openstack/placement/microversion.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ab9533c6de0c12a70f0666b0d6a7562d1cd31052","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if min_version \u003c\u003d version_float \u003c\u003d max_version:"},{"line_number":204,"context_line":"            return func"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    raise webob.exc.HTTPNotFound()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def version_handler(min_ver, max_ver\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_6473e515","line":206,"range":{"start_line":206,"start_character":20,"end_line":206,"end_character":32},"updated":"2016-11-01 23:41:12.000000000","message":"The alternative could be 405 instead in this case like https://httpstatusdogs.com/405-method-not-allowed\n\nTBH, I don\u0027t have strong opinion for both codes. I just want to know the reason of 404 in this case to avoid regret in the future.\n\nOne more point is that don\u0027t we need to pass some error message into this HTTPNotFound to notify the reason to clients?","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0a2c281e0e003c12620980da8a40dcbd667fd498","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if min_version \u003c\u003d version_float \u003c\u003d max_version:"},{"line_number":204,"context_line":"            return func"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    raise webob.exc.HTTPNotFound()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def version_handler(min_ver, max_ver\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_e6aa1970","line":206,"in_reply_to":"ba5da102_190fe388","updated":"2016-11-07 18:12:08.000000000","message":"Hi Chris, thanks for your response.\n\n \u003e \"this url was not found because you\u0027re on the wrong\n \u003e microversion?\"\n\nYeah, I did think such message. If thinking url first, the message could be like that. On the other hand if thiking microversion first, raw message of NotFound would be better because of that is not just existent.\n\nI am OK for current implementation.","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c96b48576811b2e15ec412bd990b22228dd4ecae","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if min_version \u003c\u003d version_float \u003c\u003d max_version:"},{"line_number":204,"context_line":"            return func"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    raise webob.exc.HTTPNotFound()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def version_handler(min_ver, max_ver\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_190fe388","line":206,"in_reply_to":"ba5da102_6473e515","updated":"2016-11-02 10:34:54.000000000","message":"405 handling for any given URL happens in the dispatch method in handler.py. It\u0027s separate from this mechanism.\n\nOn the error message with the 404, I didn\u0027t put anything special in there as I wasn\u0027t clear if we wanted to do anything beyond \"this url was not found\". Do we want it to say \"this url was not found because you\u0027re on the wrong microversion?\" That may be useful but could also just be confusing. What do you think?","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"33e925e54a8808b0099a95b2ef4c7aed39d482da","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            max_version_float \u003d float(max_version_string())"},{"line_number":230,"context_line":"        qualified_name \u003d _fully_qualified_name(f)"},{"line_number":231,"context_line":"        VERSIONED_METHODS[qualified_name].append("},{"line_number":232,"context_line":"            (min_version_float, max_version_float, f))"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        def decorated_func(req, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_354d1473","line":231,"range":{"start_line":231,"start_character":8,"end_line":231,"end_character":48},"updated":"2016-11-07 17:27:39.000000000","message":"Seems a bit odd to be modifying a value whose name in all caps suggests that it is a constant.","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"526334a0753426be9ad3280210d611ecf80d56fb","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            max_version_float \u003d float(max_version_string())"},{"line_number":230,"context_line":"        qualified_name \u003d _fully_qualified_name(f)"},{"line_number":231,"context_line":"        VERSIONED_METHODS[qualified_name].append("},{"line_number":232,"context_line":"            (min_version_float, max_version_float, f))"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        def decorated_func(req, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_61c14e2e","line":231,"in_reply_to":"9a629dbe_7de2f4d6","updated":"2016-11-09 01:51:30.000000000","message":"Thanks, it seems enough to do that with another patch because of the scope.","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0a2c281e0e003c12620980da8a40dcbd667fd498","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            max_version_float \u003d float(max_version_string())"},{"line_number":230,"context_line":"        qualified_name \u003d _fully_qualified_name(f)"},{"line_number":231,"context_line":"        VERSIONED_METHODS[qualified_name].append("},{"line_number":232,"context_line":"            (min_version_float, max_version_float, f))"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        def decorated_func(req, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_e603f90d","line":231,"range":{"start_line":231,"start_character":8,"end_line":231,"end_character":48},"in_reply_to":"da6895a0_354d1473","updated":"2016-11-07 18:12:08.000000000","message":"Humm, I am not sure what code is expected here TBH.\nI want to wait for some response before merging.","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c8bf8ed660837325394982523bcdc8cf74583000","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            max_version_float \u003d float(max_version_string())"},{"line_number":230,"context_line":"        qualified_name \u003d _fully_qualified_name(f)"},{"line_number":231,"context_line":"        VERSIONED_METHODS[qualified_name].append("},{"line_number":232,"context_line":"            (min_version_float, max_version_float, f))"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        def decorated_func(req, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_7de2f4d6","line":231,"in_reply_to":"da6895a0_354d1473","updated":"2016-11-08 11:51:53.000000000","message":"I\u0027ve become somewhat habituated to module level globals being all caps, even if they are not a constant, as an indicator of \"this is not local to this method\".\n\nI guess, however, that that violates the actual pep of pep8 (even if the tool doesn\u0027t seem to care).\n\nI\u0027m conflicted though because I really like the visibility of it.\n\nHappy to be pushed to correctness though, if that\u0027s considered best.","commit_id":"77a8e5d58265f737c999be37290838ca63b1fadd"}]}
