)]}'
{"neutron_lib/api/definitions/base.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bfb5caf18b33bce0019d05b9357b34d211afc64f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \u0027PUT\u0027,"},{"line_number":38,"context_line":")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"KNOWN_ACTION_STATUSES \u003d ("},{"line_number":41,"context_line":"    200,"},{"line_number":42,"context_line":"    201,"},{"line_number":43,"context_line":"    202,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_408f0ccc","line":40,"updated":"2017-03-31 13:18:41.000000000","message":"Isn\u0027t there an existing lib we can use to just get a list of valid HTTP codes (ex [1]) so we don\u0027t have to hard-code them here?\n\n\n[1] https://github.com/kennethreitz/requests/blob/5c68b8f2279be82a672b908d0017d60a8ce6efcd/requests/status_codes.py","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"24f09da9f11574461bd991b73447da1778abb1e5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \u0027PUT\u0027,"},{"line_number":38,"context_line":")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"KNOWN_ACTION_STATUSES \u003d ("},{"line_number":41,"context_line":"    200,"},{"line_number":42,"context_line":"    201,"},{"line_number":43,"context_line":"    202,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_1f80d5bf","line":40,"in_reply_to":"dfeb2761_3bfe2037","updated":"2017-04-04 18:21:17.000000000","message":"I see. I get the keys(status codes) from [1] and then I can use the keys instead of this hard-code statuses. However it includes many useless status codes(e.g. 1XX, 3XX, 4XX and, 5XX) because we want just 2XX as  action status. Let\u0027s update if we find a library fits this case.","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"1ea9bfeb96b3d96914abfa742236a9d63258e928","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \u0027PUT\u0027,"},{"line_number":38,"context_line":")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"KNOWN_ACTION_STATUSES \u003d ("},{"line_number":41,"context_line":"    200,"},{"line_number":42,"context_line":"    201,"},{"line_number":43,"context_line":"    202,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_831cb112","line":40,"in_reply_to":"dfeb2761_408f0ccc","updated":"2017-04-04 06:17:23.000000000","message":"Do we need to get valid list? I got the list from RFC2616[2]. I believe that the code never change.\n\n[2]: https://tools.ietf.org/html/rfc2616","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"04a2e8da84f9579c6878c97135d1a3df3e9d9807","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \u0027PUT\u0027,"},{"line_number":38,"context_line":")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"KNOWN_ACTION_STATUSES \u003d ("},{"line_number":41,"context_line":"    200,"},{"line_number":42,"context_line":"    201,"},{"line_number":43,"context_line":"    202,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_3bfe2037","line":40,"in_reply_to":"dfeb2761_831cb112","updated":"2017-04-04 10:55:14.000000000","message":"I guess it\u0027s fine as-is, I was just trying to find a way to not have to update this list of codes when/if we need to add others, since the list of valid HTTP codes is already well defined.","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"}],"neutron_lib/api/definitions/firewall.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"872e23df5e9525d8bd694f30eac63efd5428c97f","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"# The action status."},{"line_number":170,"context_line":"ACTION_STATUS \u003d {"},{"line_number":171,"context_line":"}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"# The list of required extensions."},{"line_number":174,"context_line":"REQUIRED_EXTENSIONS \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_7b1c2e77","line":171,"updated":"2017-03-30 03:43:48.000000000","message":"Lets not change it, unless its essentially required, because FWaaSV 1 would be deprecated from Boston Summit","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"3644e1c626199cfa1d6b523a64afa7630289bfaa","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"# The action status."},{"line_number":170,"context_line":"ACTION_STATUS \u003d {"},{"line_number":171,"context_line":"}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"# The list of required extensions."},{"line_number":174,"context_line":"REQUIRED_EXTENSIONS \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"bff0334d_72c4a4f5","line":171,"in_reply_to":"ffe62b97_4fe2c0d6","updated":"2017-04-10 17:35:15.000000000","message":"ack","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"be92483f1708110a9dc92571dd36106d47126919","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"# The action status."},{"line_number":170,"context_line":"ACTION_STATUS \u003d {"},{"line_number":171,"context_line":"}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"# The list of required extensions."},{"line_number":174,"context_line":"REQUIRED_EXTENSIONS \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_4fe2c0d6","line":171,"in_reply_to":"ffe62b97_7b1c2e77","updated":"2017-03-30 06:29:55.000000000","message":"No. We get an error if it\u0027s removed.","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"}],"neutron_lib/tests/unit/api/definitions/base.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bfb5caf18b33bce0019d05b9357b34d211afc64f","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        if not self.action_status:"},{"line_number":161,"context_line":"            self.skipTest(\u0027API definition has no action status.\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        for status in self.action_status.values():"},{"line_number":164,"context_line":"            self.assertIn(status, base.KNOWN_ACTION_STATUSES,"},{"line_number":165,"context_line":"                          \u0027HTTP status is unknown, check for typos.\u0027)"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_2062c83f","line":163,"updated":"2017-03-31 13:18:41.000000000","message":"Shouldn\u0027t we also make sure key maps to a valid method or list of values?","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"1ea9bfeb96b3d96914abfa742236a9d63258e928","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        if not self.action_status:"},{"line_number":161,"context_line":"            self.skipTest(\u0027API definition has no action status.\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        for status in self.action_status.values():"},{"line_number":164,"context_line":"            self.assertIn(status, base.KNOWN_ACTION_STATUSES,"},{"line_number":165,"context_line":"                          \u0027HTTP status is unknown, check for typos.\u0027)"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_d2572002","line":163,"in_reply_to":"dfeb2761_2062c83f","updated":"2017-04-04 06:17:23.000000000","message":"The \"method\" is defined by each extension like action_map. It has basic methods(e.g. \"index\" and \"delete\") and we may be able to check them but it also specific methods(e.g. \"delete_all\" and \"add_router_interface\").","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"04a2e8da84f9579c6878c97135d1a3df3e9d9807","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        if not self.action_status:"},{"line_number":161,"context_line":"            self.skipTest(\u0027API definition has no action status.\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        for status in self.action_status.values():"},{"line_number":164,"context_line":"            self.assertIn(status, base.KNOWN_ACTION_STATUSES,"},{"line_number":165,"context_line":"                          \u0027HTTP status is unknown, check for typos.\u0027)"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_7b8948c8","line":163,"in_reply_to":"dfeb2761_d2572002","updated":"2017-04-04 10:55:14.000000000","message":"Ah ok, thanks for the clarification.","commit_id":"9817dc494bdfe705f66e01ccf3431b29529bb0f9"}]}
