)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8de40a5ca8094bc00876aeda327e2651d489f493","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Include next link when default limit is reached"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The /servers and /servers/detail APIs support pagination and a"},{"line_number":10,"context_line":"\"next\" link should be included when more data is available. When"},{"line_number":11,"context_line":"the default \"osapi_max\" limit is reached then the \"next\" link is"},{"line_number":12,"context_line":"not included in the API reply. In this case, the caller cannot"},{"line_number":13,"context_line":"determine if there are any more servers and has no marker value"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2FNiU%3D","line":10,"updated":"2014-03-07 16:01:09.000000000","message":"The \u0027next\u0027 link should be included because you say it does or because it\u0027s in the docs or something like that but was left out of the code, i.e. broken?","commit_id":"a4ceb2a1416d9dc8f59f93ea86af642e45f26653"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"08faba4f0bd19e3b3d4b292e052f1cc1b318dfa9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Include next link when default limit is reached"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The /servers and /servers/detail APIs support pagination and a"},{"line_number":10,"context_line":"\"next\" link should be included when more data is available. When"},{"line_number":11,"context_line":"the default \"osapi_max\" limit is reached then the \"next\" link is"},{"line_number":12,"context_line":"not included in the API reply. In this case, the caller cannot"},{"line_number":13,"context_line":"determine if there are any more servers and has no marker value"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2FC00%3D","line":10,"in_reply_to":"AAAAVn%2F%2FNiU%3D","updated":"2014-03-12 18:46:19.000000000","message":"Documentation says that it should be (collections are required to contain atom \"next\" links):  http://docs.openstack.org/api/openstack-compute/2/content/Paginated_Collections-d1e664.html","commit_id":"a4ceb2a1416d9dc8f59f93ea86af642e45f26653"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6f6465aa2acc05febc1113375a96b9a37941820c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Include next link when default limit is reached"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The /servers and /servers/detail APIs support pagination and a"},{"line_number":10,"context_line":"\"next\" link should be included when more data is available. When"},{"line_number":11,"context_line":"the default \"osapi_max\" limit is reached then the \"next\" link is"},{"line_number":12,"context_line":"not included in the API reply. In this case, the caller cannot"},{"line_number":13,"context_line":"determine if there are any more servers and has no marker value"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2FNg4%3D","line":10,"in_reply_to":"AAAAVn%2F%2FNiU%3D","updated":"2014-03-07 16:02:48.000000000","message":"I don\u0027t see anything here about \u0027next\u0027:\n\nhttp://docs.openstack.org/api/openstack-compute/2/content/List_Servers-d1e2078.html","commit_id":"a4ceb2a1416d9dc8f59f93ea86af642e45f26653"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"085d1d73cedb29705b1fb511b7562473bd8dac20","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The /servers and /servers/detail APIs support pagination and a"},{"line_number":10,"context_line":"\"next\" link should be included when more data is available. When"},{"line_number":11,"context_line":"the default \"osapi_max\" limit is reached then the \"next\" link is"},{"line_number":12,"context_line":"not included in the API reply. In this case, the caller cannot"},{"line_number":13,"context_line":"determine if there are any more servers and has no marker value"},{"line_number":14,"context_line":"such that they can retrieve the rest of the servers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2FNeM%3D","line":11,"updated":"2014-03-07 16:14:37.000000000","message":"Sorry, that is in the associated bug description, the documentation states that \"collections are required to contain atom \"next\" links\".","commit_id":"a4ceb2a1416d9dc8f59f93ea86af642e45f26653"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8de40a5ca8094bc00876aeda327e2651d489f493","unresolved":false,"context_lines":[{"line_number":17,"context_line":"servers being returned is the maximum limit, even if the \"limit\""},{"line_number":18,"context_line":"parameter is not supplied."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Updated patch set to handle limit\u003d0 and created associated"},{"line_number":21,"context_line":"test cases."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I9b3da852b0ab11dc980524e2317ee876a3ec28b8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2FNik%3D","line":20,"updated":"2014-03-07 16:01:09.000000000","message":"You don\u0027t need to list in the commit message what changed between patch sets, you can do that with a comment to your own review if you want to point it out.","commit_id":"a4ceb2a1416d9dc8f59f93ea86af642e45f26653"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"12685af330f29bcd3eb470c36c2cb23688c5d6fc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"parameter is not supplied. Note: the caller could workaround this"},{"line_number":29,"context_line":"by specifying the exact \"osapi_max\" limit value (ie, limit\u003d1000)"},{"line_number":30,"context_line":"on the API call but this requires that the caller knows the"},{"line_number":31,"context_line":"configured limit."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I9b3da852b0ab11dc980524e2317ee876a3ec28b8"},{"line_number":34,"context_line":"Closes-bug: 1288466"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAWH%2F%2FSMo%3D","line":31,"updated":"2014-03-18 21:56:44.000000000","message":"Excellent commit message, thank you Steven.","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c05b4bfc37d70c9ffdee1031e53066a16b9fcb81","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Paginated_Collections-d1e664.html. In the documentation it states"},{"line_number":13,"context_line":"that \u0027collections are required to contain atom \"next\" links\u0027."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When the default \"osapi_max\" limit is reached then the \"next\" link"},{"line_number":16,"context_line":"is not included in the API reply. In this case, the caller cannot"},{"line_number":17,"context_line":"determine if there are any more servers and has no marker value"},{"line_number":18,"context_line":"such that they can retrieve the rest of the servers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAWH%2F%2FJyA%3D","line":15,"updated":"2014-03-19 21:30:47.000000000","message":"nit: s/osapi_max/osapi_max_limit/","commit_id":"968c01afe7ff43346f5817e2a3adf97fd03106b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c05b4bfc37d70c9ffdee1031e53066a16b9fcb81","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The fix for this is to include the \"next\" link when the number of"},{"line_number":27,"context_line":"servers being returned is the maximum limit, even if the \"limit\""},{"line_number":28,"context_line":"parameter is not supplied. Note: the caller could workaround this"},{"line_number":29,"context_line":"by specifying the exact \"osapi_max\" limit value (ie, limit\u003d1000)"},{"line_number":30,"context_line":"on the API call but this requires that the caller knows the"},{"line_number":31,"context_line":"configured limit."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAWH%2F%2FJxs%3D","line":29,"updated":"2014-03-19 21:30:47.000000000","message":"ditto nit","commit_id":"968c01afe7ff43346f5817e2a3adf97fd03106b1"}],"nova/api/openstack/common.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"12685af330f29bcd3eb470c36c2cb23688c5d6fc","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                              collection_name,"},{"line_number":538,"context_line":"                              id_key\u003d\"uuid\"):"},{"line_number":539,"context_line":"        \"\"\"Retrieve \u0027next\u0027 link, if applicable. This is included if:"},{"line_number":540,"context_line":"        1) \u0027limit\u0027 param is specified and equals the number of servers."},{"line_number":541,"context_line":"        2) \u0027limit\u0027 param is specified but it exceeds CONF.osapi_max_limit,"},{"line_number":542,"context_line":"        in this case the number of servers is CONF.osapi_max_limit."},{"line_number":543,"context_line":"        3) \u0027limit\u0027 param is NOT specified but the number of servers is"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FSK4%3D","line":540,"updated":"2014-03-18 21:56:44.000000000","message":"s/servers/items\n\nThis is common code for not just servers retrieval...","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"}],"nova/tests/api/openstack/compute/plugins/v3/test_servers.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"12685af330f29bcd3eb470c36c2cb23688c5d6fc","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                        \"display_name\": name}"},{"line_number":664,"context_line":"            # limit passed to this layer should never be more then the"},{"line_number":665,"context_line":"            # max, tests do not go below this but do go above"},{"line_number":666,"context_line":"            self.assertEqual(limit, CONF.osapi_max_limit)"},{"line_number":667,"context_line":"            servers \u003d []"},{"line_number":668,"context_line":"            if not search_opts or\\"},{"line_number":669,"context_line":"                    search_opts.get(\u0027name\u0027, \u0027max\u0027) \u003d\u003d \u0027max\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FSGs%3D","line":666,"updated":"2014-03-18 21:56:44.000000000","message":"I don\u0027t really understand the above assertion. If one passes limit\u003d20 to the above get_all() function, then CONF.osapi_max_limit must be 20 otherwise this will assert, no?","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"12685af330f29bcd3eb470c36c2cb23688c5d6fc","unresolved":false,"context_lines":[{"line_number":668,"context_line":"            if not search_opts or\\"},{"line_number":669,"context_line":"                    search_opts.get(\u0027name\u0027, \u0027max\u0027) \u003d\u003d \u0027max\u0027:"},{"line_number":670,"context_line":"                servers.extend([fake_inst(i, \u0027max\u0027)"},{"line_number":671,"context_line":"                                for i in xrange(CONF.osapi_max_limit)])"},{"line_number":672,"context_line":"            if not search_opts or\\"},{"line_number":673,"context_line":"                    search_opts.get(\u0027name\u0027, \u0027foo\u0027) \u003d\u003d \u0027foo\u0027:"},{"line_number":674,"context_line":"                servers.extend([fake_inst(i, \u0027foo\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FSGE%3D","line":671,"updated":"2014-03-18 21:56:44.000000000","message":"I actually don\u0027t think it\u0027s necessary to test your changed code in this area at all.\n\nYou should be able to write a unit test that *only* touches the nova.api.openstack.common module, mocking out all else, and not having any need to create these fake server objects.","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"}],"nova/tests/api/openstack/compute/test_servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de5a24f6227ba27a0b25fedd1b3039f8a376d732","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            # Do not use the stub instance since this is making 1000s of"},{"line_number":631,"context_line":"            # them, make something simplier to speed up this test"},{"line_number":632,"context_line":"            def fake_inst(id, name):"},{"line_number":633,"context_line":"                return {\"id\": int(id), \"uuid\": FAKE_UUID,"},{"line_number":634,"context_line":"                        \"display_name\": name}"},{"line_number":635,"context_line":"            # limit passed to this layer should never be more then the"},{"line_number":636,"context_line":"            # max, tests do not go below this but do go above"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FSQI%3D","line":633,"updated":"2014-03-18 21:35:43.000000000","message":"They\u0027re all going to have the same UUID?  Rather than create 1000 individual instance dicts, can\u0027t you just create one and copy it 1000 times in the list?","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de5a24f6227ba27a0b25fedd1b3039f8a376d732","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            if limit \u003d\u003d None or limit \u003e\u003d len(servers):"},{"line_number":648,"context_line":"                return servers"},{"line_number":649,"context_line":"            return servers[:limit]"},{"line_number":650,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_all\u0027, fake_get_all)"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        # Number of servers equals the max, include next link"},{"line_number":653,"context_line":"        for key in [\u0027servers\u0027, \u0027servers/detail\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FSP4%3D","line":650,"updated":"2014-03-18 21:35:43.000000000","message":"We could use mock here with fake_get_all being the side_effect.","commit_id":"d0d09dc577da127091dfa8b6860f2c57cb55b45b"}],"nova/tests/api/openstack/test_common.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"04995b435bcde63f37c1c3014338b3c49a775fcb","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        req \u003d mock.MagicMock()"},{"line_number":423,"context_line":"        params \u003d mock.PropertyMock(return_value\u003ddict())"},{"line_number":424,"context_line":"        type(req).params \u003d params"},{"line_number":425,"context_line":"        cfg.CONF.set_override(\u0027osapi_max_limit\u0027, 1)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        builder \u003d common.ViewBuilder()"},{"line_number":428,"context_line":"        results \u003d builder._get_collection_links(req, items,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2FKpk%3D","line":425,"updated":"2014-03-19 19:24:03.000000000","message":"Sorry, I should have told you about this earlier... there is a base method on nova\u0027s base test case class called \"flags\":\n\nhttps://github.com/openstack/nova/blob/master/nova/test.py#L294\n\nThat allows you to override flag (option) values and not need to import cfg in your test file...","commit_id":"fa8ff6f325787b8de50e651d13c1421360fa657b"}]}
