)]}'
{"ironic/api/controllers/v1/collection.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"0e2483c76c2e153cd728a94a6eb609798f9c2d69","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            return wtypes.Unset"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        resource_url \u003d url or self._type"},{"line_number":46,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":47,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":48,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"},{"line_number":49,"context_line":"            \u0027marker\u0027: getattr(self.collection[-1], self.get_key_field())}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_18b0c742","side":"PARENT","line":46,"updated":"2019-10-16 16:32:08.000000000","message":"Isn\u0027t fields already handled here if it\u0027s passed in? It will be part of kwargs - the bug is that it wasn\u0027t passed to this method, as it\u0027s a special case in the callers.","commit_id":"a2ae57c457962e6fa5e590c0de19f4d457637881"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"be76d193b4976c9537000da8dab95f27fd844909","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            return wtypes.Unset"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        resource_url \u003d url or self._type"},{"line_number":46,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":47,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":48,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"},{"line_number":49,"context_line":"            \u0027marker\u0027: getattr(self.collection[-1], self.get_key_field())}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e68aecb9","side":"PARENT","line":46,"in_reply_to":"3fa7e38b_18b0c742","updated":"2019-10-16 18:59:21.000000000","message":"Fields is normally a list, we will have to convert that into a comma separated thing before we add it onto q_args. You are right, i guess i can just convert the fields into a comma separated string in the caller","commit_id":"a2ae57c457962e6fa5e590c0de19f4d457637881"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"09f1a26535d5301b0d8b9cf5279c62185d7720f4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            return wtypes.Unset"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        resource_url \u003d url or self._type"},{"line_number":46,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":47,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":48,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"},{"line_number":49,"context_line":"            \u0027marker\u0027: getattr(self.collection[-1], self.get_key_field())}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c7524069","side":"PARENT","line":46,"in_reply_to":"3fa7e38b_e68aecb9","updated":"2019-10-17 14:26:29.000000000","message":"Good point, thanks!","commit_id":"a2ae57c457962e6fa5e590c0de19f4d457637881"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"09f1a26535d5301b0d8b9cf5279c62185d7720f4","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        if kwargs.get(\u0027fields\u0027) is not None:"},{"line_number":49,"context_line":"            kwargs[\u0027fields\u0027] \u003d \u0027,\u0027.join(kwargs[\u0027fields\u0027])"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            kwargs.pop(\u0027fields\u0027)"},{"line_number":52,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":53,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":54,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_6764ac4a","line":51,"updated":"2019-10-17 14:26:29.000000000","message":"Could simplify this slightly if you like:\n\n    fields \u003d kwargs.pop(\u0027fields\u0027)\n    if fields:\n        kwargs[\u0027fields\u0027] \u003d \u0027,\u0027.join(fields)","commit_id":"a024ca190e688bc4778b5b8b3839bbdcdcc2f278"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1455813f617f722e2abc30c33ca4bcd9e2314418","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        if kwargs.get(\u0027fields\u0027) is not None:"},{"line_number":49,"context_line":"            kwargs[\u0027fields\u0027] \u003d \u0027,\u0027.join(kwargs[\u0027fields\u0027])"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            kwargs.pop(\u0027fields\u0027)"},{"line_number":52,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":53,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":54,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9304861a","line":51,"in_reply_to":"3fa7e38b_6764ac4a","updated":"2019-10-17 17:49:20.000000000","message":"May be, but that assumes that fields is always passed in by the caller. If the user didn\u0027t pass in fields it would result in a keyError? Is that something we should worry about? Or we can assume the user always passes in \u0027fields\u0027?","commit_id":"a024ca190e688bc4778b5b8b3839bbdcdcc2f278"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3948c77ffa6dfc2b4eb1c980ed2324e756014326","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        if kwargs.get(\u0027fields\u0027) is not None:"},{"line_number":49,"context_line":"            kwargs[\u0027fields\u0027] \u003d \u0027,\u0027.join(kwargs[\u0027fields\u0027])"},{"line_number":50,"context_line":"        else:"},{"line_number":51,"context_line":"            kwargs.pop(\u0027fields\u0027)"},{"line_number":52,"context_line":"        q_args \u003d \u0027\u0027.join([\u0027%s\u003d%s\u0026\u0027 % (key, kwargs[key]) for key in kwargs])"},{"line_number":53,"context_line":"        next_args \u003d \u0027?%(args)slimit\u003d%(limit)d\u0026marker\u003d%(marker)s\u0027 % {"},{"line_number":54,"context_line":"            \u0027args\u0027: q_args, \u0027limit\u0027: limit,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_cabc7508","line":51,"in_reply_to":"3fa7e38b_9304861a","updated":"2019-10-18 12:47:51.000000000","message":"Ah, you\u0027re right. kwargs.pop(\u0027fields\u0027, None) then. :)\n\nBut now that I realize that, I think there\u0027s a bug here. If we hit the else because the key doesn\u0027t exist, then pop() will raise a KeyError, right?\n\nSo thinking/looking more, fields is currently always passed, and is sometimes None. \n\nI guess whether we simplify the code with my suggestion or not, we should fix the case where fields isn\u0027t passed.","commit_id":"a024ca190e688bc4778b5b8b3839bbdcdcc2f278"}],"releasenotes/notes/fix-fields-missing-from-next-url-fd9fddf8e70b65ea.yaml":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"3948c77ffa6dfc2b4eb1c980ed2324e756014326","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes issue where the resource list API returned results with requested"},{"line_number":5,"context_line":"    fields only until the API MAX_LIMIT. After the API MAX_LIMIT is reached the"},{"line_number":6,"context_line":"    API started ignoring user requested fields.This fix will make sure that"},{"line_number":7,"context_line":"    the next url generated by the pagination code will include the user"},{"line_number":8,"context_line":"    requested fields as query parameter."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_4a3e458c","line":6,"updated":"2019-10-18 12:47:51.000000000","message":"nit: space after period.","commit_id":"cfb14d0e3a5ab28feb20a64a75a03418169a143d"}]}
