)]}'
{"ironicclient/common/base.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9f191b9f5980fe7f8066aea3d2bf2fa848801445","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                url_parts \u003d list(urlparse.urlparse(next_url))"},{"line_number":64,"context_line":"                url_parts[0] \u003d url_parts[1] \u003d \u0027\u0027"},{"line_number":65,"context_line":"                next_url \u003d urlparse.urlunparse(url_parts)"},{"line_number":66,"context_line":"                for i in paginate(next_url):"},{"line_number":67,"context_line":"                    yield i"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return [obj_class(self, res, loaded\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_2ec8e973","line":66,"updated":"2014-05-27 12:17:01.000000000","message":"How many pages can we expect? If ~1000, recursive approach won\u0027t work.","commit_id":"87a3ed1c339479fec525d97478a61d25076b8ed9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"2668a73d49ecc859a7368fc5ec4358b314ec64a9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    limit_reached \u003d True"},{"line_number":70,"context_line":"                    break"},{"line_number":71,"context_line":"                object_list.append(obj_class(self, i, loaded\u003dTrue))"},{"line_number":72,"context_line":"                object_count +\u003d 1"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            # break the while loop and return"},{"line_number":75,"context_line":"            if limit_reached:"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_cef77cd3","line":72,"updated":"2014-07-08 15:50:08.000000000","message":"you should increment object_count before testing it to set limit_reached.\nAs it is, this code will issue two API requests when called with limit\u003d1\n\nEg,\n\n  for i in body:\n    object_list.append()\n    object_count +\u003d 1\n    if limit and object_count \u003e\u003d limit:\n      ..","commit_id":"1a46ec7eb4f7051c058fd308780e02094fd0e86d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"61c7ed9a90a2971f275c416e4a9f390b00d2ac72","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    limit_reached \u003d True"},{"line_number":70,"context_line":"                    break"},{"line_number":71,"context_line":"                object_list.append(obj_class(self, i, loaded\u003dTrue))"},{"line_number":72,"context_line":"                object_count +\u003d 1"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            # break the while loop and return"},{"line_number":75,"context_line":"            if limit_reached:"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_4eb9aceb","line":72,"in_reply_to":"baada198_cef77cd3","updated":"2014-07-08 15:51:54.000000000","message":"Oh thanks for that, you\u0027re right! Fixing...","commit_id":"1a46ec7eb4f7051c058fd308780e02094fd0e86d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if body:"},{"line_number":51,"context_line":"            return self.resource_class(self, body)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _list_pagination(self, url, response_key\u003dNone, obj_class\u003dNone,"},{"line_number":54,"context_line":"                         limit\u003dNone):"},{"line_number":55,"context_line":"        if obj_class is None:"},{"line_number":56,"context_line":"            obj_class \u003d self.resource_class"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_dcc36155","line":53,"updated":"2014-07-10 15:10:33.000000000","message":"I would actually add a docstring to this to explain why/what is going on.\n\nEg:\n\nRetrieve a list of items. The Ironic API is configured to return a maximum number of items per request, (see Ironic\u0027s api.max_limit option). This iterates over the \u0027next\u0027 link (pagination) in the responses, to get the number of items specified by \u0027limit\u0027.\n\nAnd if you add this docstring, someone will ask you to add the :param stuff too. Where limit \u003d None, gets the entire list.","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if body:"},{"line_number":51,"context_line":"            return self.resource_class(self, body)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _list_pagination(self, url, response_key\u003dNone, obj_class\u003dNone,"},{"line_number":54,"context_line":"                         limit\u003dNone):"},{"line_number":55,"context_line":"        if obj_class is None:"},{"line_number":56,"context_line":"            obj_class \u003d self.resource_class"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_42a10693","line":53,"in_reply_to":"baada198_dcc36155","updated":"2014-07-11 10:58:02.000000000","message":"+1 thanks for the suggestion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        limit_reached \u003d False"},{"line_number":64,"context_line":"        while url:"},{"line_number":65,"context_line":"            resp, body \u003d self.api.json_request(\u0027GET\u0027, url)"},{"line_number":66,"context_line":"            for i in body[response_key]:"},{"line_number":67,"context_line":"                object_list.append(obj_class(self, i, loaded\u003dTrue))"},{"line_number":68,"context_line":"                object_count +\u003d 1"},{"line_number":69,"context_line":"                if limit and object_count \u003e\u003d limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_e83b06c6","line":66,"updated":"2014-07-10 15:10:33.000000000","message":"What if response_key \u003d None?","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        limit_reached \u003d False"},{"line_number":64,"context_line":"        while url:"},{"line_number":65,"context_line":"            resp, body \u003d self.api.json_request(\u0027GET\u0027, url)"},{"line_number":66,"context_line":"            for i in body[response_key]:"},{"line_number":67,"context_line":"                object_list.append(obj_class(self, i, loaded\u003dTrue))"},{"line_number":68,"context_line":"                object_count +\u003d 1"},{"line_number":69,"context_line":"                if limit and object_count \u003e\u003d limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_17782ec3","line":66,"in_reply_to":"baada198_e83b06c6","updated":"2014-07-11 10:58:02.000000000","message":"ah thanks, yeah haven\u0027t seem it. If it\u0027s None it\u0027s going to fail will work that out","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"abb7c2121a6846c224e911b4eb910bfa13c5a895","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        items per request, (see Ironic\u0027s api.max_limit option). This"},{"line_number":73,"context_line":"        iterates over the \u0027next\u0027 link (pagination) in the responses,"},{"line_number":74,"context_line":"        to get the number of items specified by \u0027limit\u0027. If \u0027limit\u0027"},{"line_number":75,"context_line":"        is None this function will continue pagination until there\u0027re"},{"line_number":76,"context_line":"        no more values to be returned."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        :param url: a partial URL, e.g. \u0027/nodes\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2b7aea87","line":75,"updated":"2014-07-14 14:41:36.000000000","message":"Nit. FYI, I\u0027m not sure \"there\u0027re\" is grammatically correct. (If you do another revision, otherwise don\u0027t bother.)","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        items per request, (see Ironic\u0027s api.max_limit option). This"},{"line_number":73,"context_line":"        iterates over the \u0027next\u0027 link (pagination) in the responses,"},{"line_number":74,"context_line":"        to get the number of items specified by \u0027limit\u0027. If \u0027limit\u0027"},{"line_number":75,"context_line":"        is None this function will continue pagination until there\u0027re"},{"line_number":76,"context_line":"        no more values to be returned."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        :param url: a partial URL, e.g. \u0027/nodes\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_c94cfa44","line":75,"in_reply_to":"baada198_2b7aea87","updated":"2014-07-15 07:48:02.000000000","message":"FWIW, s/there\u0027re/there are/ but only if you push a new revision.","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"}],"ironicclient/tests/v1/test_chassis.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"775b85911cdc637ee8f925cd7cd7e81ecb2c9abe","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        self.assertEqual(1, len(chassis))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test_chassis_list_pagination(self):"},{"line_number":117,"context_line":"        self.api.responses \u003d fake_responses_pagination"},{"line_number":118,"context_line":"        chassis \u003d self.mgr.list()"},{"line_number":119,"context_line":"        expect \u003d ["},{"line_number":120,"context_line":"            (\u0027GET\u0027, \u0027/v1/chassis\u0027, {}, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_0d68041c","line":117,"updated":"2014-05-16 17:49:30.000000000","message":"Would this be better as:\n  self.api \u003d utils.FakeAPI(fake_responses_pagination)\nrather than poking inside the FakeAPI.resources attribute?","commit_id":"51ac4f4a5aae2a69f521826bd4ab4fe1a5070d3c"}],"ironicclient/tests/v1/test_node.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"775b85911cdc637ee8f925cd7cd7e81ecb2c9abe","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        self.assertEqual(2, len(nodes))"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def test_node_list_pagination(self):"},{"line_number":241,"context_line":"        self.api.responses \u003d fake_responses_pagination"},{"line_number":242,"context_line":"        nodes \u003d self.mgr.list()"},{"line_number":243,"context_line":"        expect \u003d ["},{"line_number":244,"context_line":"            (\u0027GET\u0027, \u0027/v1/nodes\u0027, {}, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_cd49bcb8","line":241,"updated":"2014-05-16 17:49:30.000000000","message":"As previous.  Can this be update to be \"self.api \u003d utils.FakeAPI(fake_responses_pagination)\"?","commit_id":"51ac4f4a5aae2a69f521826bd4ab4fe1a5070d3c"}],"ironicclient/tests/v1/test_port.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"775b85911cdc637ee8f925cd7cd7e81ecb2c9abe","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        self.assertEqual(1, len(ports))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def test_ports_list_pagination(self):"},{"line_number":103,"context_line":"        self.api.responses \u003d fake_responses_pagination"},{"line_number":104,"context_line":"        ports \u003d self.mgr.list()"},{"line_number":105,"context_line":"        expect \u003d ["},{"line_number":106,"context_line":"            (\u0027GET\u0027, \u0027/v1/ports\u0027, {}, None),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_edc91827","line":103,"updated":"2014-05-16 17:49:30.000000000","message":"As previous.  Can this be update to be \"self.api \u003d utils.FakeAPI(fake_responses_pagination)\"?","commit_id":"51ac4f4a5aae2a69f521826bd4ab4fe1a5070d3c"}],"ironicclient/v1/chassis.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def list(self, marker\u003dNone, limit\u003dNone):"},{"line_number":37,"context_line":"        \"\"\"Retrieve a list of chassis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        :param marker: Optional, the UUID of the last item the client"},{"line_number":40,"context_line":"                       has seen, return the next result set."},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_68a456b9","line":39,"updated":"2014-07-10 15:10:33.000000000","message":"\u0027item\u0027 -\u003e \u0027chassis\u0027 (just to be clearer)\n\nYou\u0027re assuming this is the last item the client has seen. Which is most likely true. But how about something more general. Eg\n\nThe UUID of a chassis, eg the last chassis from a previous result set. Return the next result set.","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def list(self, marker\u003dNone, limit\u003dNone):"},{"line_number":37,"context_line":"        \"\"\"Retrieve a list of chassis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        :param marker: Optional, the UUID of the last item the client"},{"line_number":40,"context_line":"                       has seen, return the next result set."},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_e2adba85","line":39,"in_reply_to":"baada198_68a456b9","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        :param marker: Optional, the UUID of the last item the client"},{"line_number":40,"context_line":"                       has seen, return the next result set."},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_a3cdafb9","line":42,"updated":"2014-07-10 15:10:33.000000000","message":"I don\u0027t think I\u0027d mention \u0027This is included if\u0027 (I wasn\u0027t sure what you meant by that). What about just \u0027If:\u0027","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        :param marker: Optional, the UUID of the last item the client"},{"line_number":40,"context_line":"                       has seen, return the next result set."},{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_c231965b","line":42,"in_reply_to":"baada198_a3cdafb9","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_5eeca829","line":44,"updated":"2014-07-10 15:10:33.000000000","message":"how about \u0027limit \u003e 0. The maximum number of chassis to return.\u0027","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        :param limit: The maximum number of results to return per"},{"line_number":42,"context_line":"                      request. This is included if:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_62460ac2","line":44,"in_reply_to":"baada198_5eeca829","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_83126b60","line":47,"updated":"2014-07-10 15:10:33.000000000","message":"How about something like \u0027limit \u003d 0, return the entire list of chassis.\u0027\n\nThe part about iterating, I would put just before the code where it is done.","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            1) \u0027limit\u0027 param is specified and equals the number of items."},{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_c218b6d5","line":47,"in_reply_to":"baada198_83126b60","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_c371c378","line":48,"updated":"2014-07-10 15:10:33.000000000","message":"can delete \u0027in this case\u0027","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            2) \u0027limit\u0027 param is specified and equals 0, in this case"},{"line_number":46,"context_line":"               it means no limit and it\u0027s going to iterate over the next"},{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_e2093a85","line":48,"in_reply_to":"baada198_c371c378","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        \"\"\""},{"line_number":53,"context_line":"        if limit is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_039f3b60","line":50,"updated":"2014-07-10 15:10:33.000000000","message":"\u0027by default\u0027 - I\u0027m not sure that helps here. I would delete it or try to rephrase it.","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"               links until there\u0027s no more items to be returned."},{"line_number":48,"context_line":"            3) \u0027limit\u0027 param is NOT specified (None), in this case the"},{"line_number":49,"context_line":"               number of items returned respect the maximum imposed by the"},{"line_number":50,"context_line":"               Ironic API by default (api.max_limit config option)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        \"\"\""},{"line_number":53,"context_line":"        if limit is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_020f0e89","line":50,"in_reply_to":"baada198_039f3b60","updated":"2014-07-11 10:58:02.000000000","message":"done, thanks for the suggetion","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            return self._list(self._path(path), \"nodes\")"},{"line_number":105,"context_line":"        else:"},{"line_number":106,"context_line":"            return self._list_pagination(self._path(path), \"nodes\","},{"line_number":107,"context_line":"                                         limit\u003dlimit)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def get(self, chassis_id):"},{"line_number":110,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_9e38003f","line":107,"updated":"2014-07-10 15:10:33.000000000","message":"It looks to me like list() and list_nodes() are quite similar. It might be useful to create a method to handle both of them, eg _list(self, path, response_key, marker, limit)","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            return self._list(self._path(path), \"nodes\")"},{"line_number":105,"context_line":"        else:"},{"line_number":106,"context_line":"            return self._list_pagination(self._path(path), \"nodes\","},{"line_number":107,"context_line":"                                         limit\u003dlimit)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def get(self, chassis_id):"},{"line_number":110,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_5db6473f","line":107,"in_reply_to":"baada198_9e38003f","updated":"2014-07-11 10:58:02.000000000","message":"I think it\u0027s true for the chassis, but as soon as the options to filter the results increases this gets more complex, so I think I will leave it as-is for now, if really needed we can address it in another review later. Thanks for pointing that out","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            3) limit param is NOT specified (None), the number of items"},{"line_number":48,"context_line":"               returned respect the maximum imposed by the Ironic API"},{"line_number":49,"context_line":"               (see Ironic\u0027s api.max_limit option)."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        if limit is not None:"},{"line_number":53,"context_line":"            limit \u003d int(limit)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_c9cf9a7d","line":50,"updated":"2014-07-15 07:48:02.000000000","message":"Since we have gone to the trouble of adding :param: markers, should we also include a :returns: docstring too?","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            3) limit param is NOT specified (None), the number of items"},{"line_number":84,"context_line":"               returned respect the maximum imposed by the Ironic API"},{"line_number":85,"context_line":"               (see Ironic\u0027s api.max_limit option)."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":"        if limit is not None:"},{"line_number":89,"context_line":"            limit \u003d int(limit)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_09c6f267","line":86,"updated":"2014-07-15 07:48:02.000000000","message":"Since we have gone to the trouble of adding :param: markers, should we also include a :returns: docstring too?","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"}],"ironicclient/v1/chassis_shell.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":36,"context_line":"           metavar\u003d\u0027\u003climit\u003e\u0027,"},{"line_number":37,"context_line":"           type\u003dint,"},{"line_number":38,"context_line":"           help\u003d\u0027Maximum number of chassis to return per request, \u0027"},{"line_number":39,"context_line":"                \u00270 for no limit.\u0027)"},{"line_number":40,"context_line":"@utils.arg(\u0027--marker\u0027,"},{"line_number":41,"context_line":"           metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":42,"context_line":"           help\u003d\u0027UUID of the last item of the previous result set; \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_88d1aacf","line":39,"updated":"2014-07-10 15:10:33.000000000","message":"Do we also want to mention the default? Eg \u0027Default is the maximum number used by the Ironic Service\u0027.","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"           metavar\u003d\u0027\u003climit\u003e\u0027,"},{"line_number":37,"context_line":"           type\u003dint,"},{"line_number":38,"context_line":"           help\u003d\u0027Maximum number of chassis to return per request, \u0027"},{"line_number":39,"context_line":"                \u00270 for no limit.\u0027)"},{"line_number":40,"context_line":"@utils.arg(\u0027--marker\u0027,"},{"line_number":41,"context_line":"           metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":42,"context_line":"           help\u003d\u0027UUID of the last item of the previous result set; \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_1de84fe1","line":39,"in_reply_to":"baada198_88d1aacf","updated":"2014-07-11 10:58:02.000000000","message":"done","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5780569c170e3d91fb5918e6253057ec292d4da","unresolved":false,"context_lines":[{"line_number":40,"context_line":"@utils.arg(\u0027--marker\u0027,"},{"line_number":41,"context_line":"           metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":42,"context_line":"           help\u003d\u0027UUID of the last item of the previous result set; \u0027"},{"line_number":43,"context_line":"                \u0027we return the next results after this item\u0027)"},{"line_number":44,"context_line":"def do_chassis_list(cc, args):"},{"line_number":45,"context_line":"    \"\"\"List chassis.\"\"\""},{"line_number":46,"context_line":"    params \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_082f5aa2","line":43,"updated":"2014-07-10 15:10:33.000000000","message":"Hmm. How about something like \u0027Chassis UUID (eg of the last chassis in the list from a previous request). Returns the list of chassis after this UUID.\u0027","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c37cacadaab656603c7a388e26d5b556655b4fb5","unresolved":false,"context_lines":[{"line_number":40,"context_line":"@utils.arg(\u0027--marker\u0027,"},{"line_number":41,"context_line":"           metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":42,"context_line":"           help\u003d\u0027UUID of the last item of the previous result set; \u0027"},{"line_number":43,"context_line":"                \u0027we return the next results after this item\u0027)"},{"line_number":44,"context_line":"def do_chassis_list(cc, args):"},{"line_number":45,"context_line":"    \"\"\"List chassis.\"\"\""},{"line_number":46,"context_line":"    params \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_3de51309","line":43,"in_reply_to":"baada198_082f5aa2","updated":"2014-07-11 10:58:02.000000000","message":"done","commit_id":"15c1759c996f5cbdda06e69e5a4700b334554f3d"}],"ironicclient/v1/node.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            3) limit param is NOT specified (None), the number of items"},{"line_number":53,"context_line":"               returned respect the maximum imposed by the Ironic API"},{"line_number":54,"context_line":"               (see Ironic\u0027s api.max_limit option)."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        if limit is not None:"},{"line_number":58,"context_line":"            limit \u003d int(limit)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2913b601","line":55,"updated":"2014-07-15 07:48:02.000000000","message":"Since we have gone to the trouble of adding :param: markers, should we also include a :returns: docstring too?","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            3) limit param is NOT specified (None), the number of items"},{"line_number":93,"context_line":"               returned respect the maximum imposed by the Ironic API"},{"line_number":94,"context_line":"               (see Ironic\u0027s api.max_limit option)."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        if limit is not None:"},{"line_number":98,"context_line":"            limit \u003d int(limit)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_89dbe24d","line":95,"updated":"2014-07-15 07:48:02.000000000","message":"Since we have gone to the trouble of adding :param: markers, should we also include a :returns: docstring too?","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"}],"ironicclient/v1/port.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"5d6978a8246beaabe59c5035e67056b9eaf995c2","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            3) limit param is NOT specified (None), the number of items"},{"line_number":47,"context_line":"               returned respect the maximum imposed by the Ironic API"},{"line_number":48,"context_line":"               (see Ironic\u0027s api.max_limit option)."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":"        if limit is not None:"},{"line_number":52,"context_line":"            limit \u003d int(limit)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_09efd2e9","line":49,"updated":"2014-07-15 07:48:02.000000000","message":"Since we have gone to the trouble of adding :param: markers, should we also include a :returns: docstring too?","commit_id":"378e250afe25be93e6d941d44ca8a2d171a6967f"}]}
