)]}'
{"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"434bb1e1b57b9f056fa1f8adaf88eabc08d33253","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        return servers"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @extensions.expected_errors((400, 403))"},{"line_number":158,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":159,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":160,"context_line":"    def detail(self, req):"},{"line_number":161,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""},{"line_number":162,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_80ff2200","line":159,"range":{"start_line":158,"start_character":0,"end_line":159,"end_character":76},"updated":"2017-11-14 02:23:18.000000000","message":"curl -g -i -X GET http://10.76.6.31/compute/v2.1/servers/detail?changes-since\u003d2011%2F01%2F01-H \"OpenStack-API-Version: compute 2.1\" -H \"User-Agent: python-novaclient\" -H \"Accept: application/json\"  -H \"X-Auth-Token: $TOKEN\"\n\n{\"badRequest\": {\"message\": \"Invalid input for query parameters changes-since. Value: 2011/01/01-H. u\u00272011/01/01-H\u0027 is not a \u0027date-time\u0027\", \"code\": 400}}\n\nCurrently, we use schemas mechanism to ensure input is vaild:\nhttps://github.com/openstack/nova/blob/3f65e8043b814eff8180b3d45b952cba0cd45e89/nova/api/openstack/compute/schemas/servers.py#L363\n\nSo, maybe You could have a try on the API with microverion \u003e 2.1.","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"8b6a58052f72a5a42b9bf4913c69b8bef8841ff3","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        return servers"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @extensions.expected_errors((400, 403))"},{"line_number":158,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":159,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":160,"context_line":"    def detail(self, req):"},{"line_number":161,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""},{"line_number":162,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_924f7033","line":159,"range":{"start_line":158,"start_character":0,"end_line":159,"end_character":76},"in_reply_to":"1f485f77_80ff2200","updated":"2017-11-14 08:18:11.000000000","message":"you can add this into bug itself...\n\nseems query_params_v21 defined doesn\u0027t include v20 version?\n\nmaybe someone can try a v2 on devstack (env broken again currently :(  )","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"ede91677884ea946faee4ba365b21441e0839860","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        return servers"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @extensions.expected_errors((400, 403))"},{"line_number":158,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":159,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":160,"context_line":"    def detail(self, req):"},{"line_number":161,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""},{"line_number":162,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_c9ebfed9","line":159,"range":{"start_line":158,"start_character":0,"end_line":159,"end_character":76},"in_reply_to":"1f485f77_924f7033","updated":"2017-11-14 09:30:53.000000000","message":"Sure, so, the right way is add some schema check on v20?","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bdeb646a1c1802598df1b2c32b1e266d3e77d9ce","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        return servers"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @extensions.expected_errors((400, 403))"},{"line_number":158,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":159,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":160,"context_line":"    def detail(self, req):"},{"line_number":161,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""},{"line_number":162,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_e9f35a9d","line":159,"range":{"start_line":158,"start_character":0,"end_line":159,"end_character":76},"in_reply_to":"1f485f77_c9ebfed9","updated":"2017-11-14 09:33:33.000000000","message":"that\u0027s my guess, actually I tried /v2/ in my newton env but can\u0027t reproduce, so I think we may try in master branch","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"080085155ffd6fc99fce6d127fc0def3c7d8b20c","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        return servers"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @extensions.expected_errors((400, 403))"},{"line_number":158,"context_line":"    @validation.query_schema(schema_servers.query_params_v226, \u00272.26\u0027)"},{"line_number":159,"context_line":"    @validation.query_schema(schema_servers.query_params_v21, \u00272.1\u0027, \u00272.25\u0027)"},{"line_number":160,"context_line":"    def detail(self, req):"},{"line_number":161,"context_line":"        \"\"\"Returns a list of server details for a given user.\"\"\""},{"line_number":162,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_2a497131","line":159,"range":{"start_line":158,"start_character":0,"end_line":159,"end_character":76},"in_reply_to":"1f485f77_e9f35a9d","updated":"2017-11-30 22:38:48.000000000","message":"I\u0027ve added Alex to the review, he should know.","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"8b6a58052f72a5a42b9bf4913c69b8bef8841ff3","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                search_opts[\u0027task_state\u0027] \u003d task_state"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if \u0027changes-since\u0027 in search_opts:"},{"line_number":210,"context_line":"            try:"},{"line_number":211,"context_line":"                parsed \u003d timeutils.parse_isotime(search_opts[\u0027changes-since\u0027])"},{"line_number":212,"context_line":"            except ValueError:"},{"line_number":213,"context_line":"                msg \u003d _(\u0027Invalid changes-since value\u0027)"},{"line_number":214,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            search_opts[\u0027changes-since\u0027] \u003d parsed"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        # By default, compute\u0027s get_all() will return deleted instances."}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_3200bc67","line":214,"range":{"start_line":210,"start_character":12,"end_line":214,"end_character":57},"updated":"2017-11-14 08:18:11.000000000","message":"this is something we want to avoid through schema check","commit_id":"57a12c484ddc6e40d8b7e09b60f3a140a6ba51de"}]}
