)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"be7b0f0fafd574c91260aba7a55a2b2b6324a2a7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Test helper: validate provider summaries"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce two helper methods in AllocationCandidatesTestCase.  In a"},{"line_number":10,"context_line":"similar vein to _validate_allocation_requests, they allows the consumer"},{"line_number":11,"context_line":"to specify the expected values in a terse and readable format."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- _validate_provider_summary_resources validates the resources portion"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1f485f77_f043096b","line":10,"range":{"start_line":10,"start_character":52,"end_line":10,"end_character":58},"updated":"2017-11-15 19:46:22.000000000","message":"allow","commit_id":"bdc5cf0c48e7b317ebc12be744e91eb895784a25"}],"nova/tests/functional/db/test_allocation_candidates.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        result, to make that expected structure readable for someone looking at"},{"line_number":126,"context_line":"        the test case, and to make test failures readable for debugging."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        :param expected: A dict, keyed by resource provider name, of lists of"},{"line_number":129,"context_line":"                         3-tuples containing resource class, capacity, and"},{"line_number":130,"context_line":"                         amount used:"},{"line_number":131,"context_line":"                            { resource_provider_name: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_8ee64d44","line":128,"range":{"start_line":128,"start_character":69,"end_line":128,"end_character":74},"updated":"2017-11-13 09:28:05.000000000","message":"If they are defined as sets instead of lists then you don\u0027t have to sort them later.","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        result, to make that expected structure readable for someone looking at"},{"line_number":126,"context_line":"        the test case, and to make test failures readable for debugging."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        :param expected: A dict, keyed by resource provider name, of lists of"},{"line_number":129,"context_line":"                         3-tuples containing resource class, capacity, and"},{"line_number":130,"context_line":"                         amount used:"},{"line_number":131,"context_line":"                            { resource_provider_name: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ec838403","line":128,"range":{"start_line":128,"start_character":69,"end_line":128,"end_character":74},"in_reply_to":"1f485f77_8ee64d44","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        observed \u003d {}"},{"line_number":140,"context_line":"        for psum in candidates.provider_summaries:"},{"line_number":141,"context_line":"            rpname \u003d self.rp_uuid_to_name[psum.resource_provider.uuid]"},{"line_number":142,"context_line":"            reslist \u003d []"},{"line_number":143,"context_line":"            for res in psum.resources:"},{"line_number":144,"context_line":"                reslist.append((res.resource_class, res.capacity, res.used))"},{"line_number":145,"context_line":"            reslist.sort()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ae47c91d","line":142,"range":{"start_line":142,"start_character":22,"end_line":142,"end_character":24},"updated":"2017-11-13 09:28:05.000000000","message":"you might consider using a set here to avoid the need to later sort the list. I guess it cannot happen that we get duplicated candidates.","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        observed \u003d {}"},{"line_number":140,"context_line":"        for psum in candidates.provider_summaries:"},{"line_number":141,"context_line":"            rpname \u003d self.rp_uuid_to_name[psum.resource_provider.uuid]"},{"line_number":142,"context_line":"            reslist \u003d []"},{"line_number":143,"context_line":"            for res in psum.resources:"},{"line_number":144,"context_line":"                reslist.append((res.resource_class, res.capacity, res.used))"},{"line_number":145,"context_line":"            reslist.sort()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ac7d8c1d","line":142,"range":{"start_line":142,"start_character":22,"end_line":142,"end_character":24},"in_reply_to":"1f485f77_ae47c91d","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # nodes and the shared provider."},{"line_number":253,"context_line":"        expected \u003d {"},{"line_number":254,"context_line":"            \u0027cn1\u0027: ["},{"line_number":255,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_0e281d32","line":255,"range":{"start_line":255,"start_character":49,"end_line":255,"end_character":53},"updated":"2017-11-13 09:28:05.000000000","message":"the test was used amount * allocation_ration before. This patch keeps that form above but not here. Let\u0027s make this consistent.","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # nodes and the shared provider."},{"line_number":253,"context_line":"        expected \u003d {"},{"line_number":254,"context_line":"            \u0027cn1\u0027: ["},{"line_number":255,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_6c77943c","line":255,"range":{"start_line":255,"start_character":49,"end_line":255,"end_character":53},"in_reply_to":"1f485f77_0e281d32","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        expected \u003d {"},{"line_number":254,"context_line":"            \u0027cn1\u0027: ["},{"line_number":255,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ee2ca148","line":256,"range":{"start_line":256,"start_character":44,"end_line":256,"end_character":47},"updated":"2017-11-13 09:28:05.000000000","message":"ditto","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        expected \u003d {"},{"line_number":254,"context_line":"            \u0027cn1\u0027: ["},{"line_number":255,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_2c8f5c24","line":256,"range":{"start_line":256,"start_character":44,"end_line":256,"end_character":47},"in_reply_to":"1f485f77_ee2ca148","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ce21e54f","line":259,"range":{"start_line":259,"start_character":49,"end_line":259,"end_character":53},"updated":"2017-11-13 09:28:05.000000000","message":"ditto","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_0c94a036","line":259,"range":{"start_line":259,"start_character":49,"end_line":259,"end_character":53},"in_reply_to":"1f485f77_ce21e54f","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["},{"line_number":263,"context_line":"                (fields.ResourceClass.DISK_GB, 1900, 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_6e18b11c","line":260,"range":{"start_line":260,"start_character":44,"end_line":260,"end_character":47},"updated":"2017-11-13 09:28:05.000000000","message":"ditto","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            ],"},{"line_number":258,"context_line":"            \u0027cn2\u0027: ["},{"line_number":259,"context_line":"                (fields.ResourceClass.MEMORY_MB, 1536, 0),"},{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["},{"line_number":263,"context_line":"                (fields.ResourceClass.DISK_GB, 1900, 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_ec98246b","line":260,"range":{"start_line":260,"start_character":44,"end_line":260,"end_character":47},"in_reply_to":"1f485f77_6e18b11c","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"534e7f90319fe22d82dbe8afafc9f69f9c6ff9ff","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["},{"line_number":263,"context_line":"                (fields.ResourceClass.DISK_GB, 1900, 0)"},{"line_number":264,"context_line":"            ]"},{"line_number":265,"context_line":"        }"},{"line_number":266,"context_line":"        self._validate_provider_summaries(expected, alloc_cands)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_4ed3b539","line":263,"range":{"start_line":263,"start_character":47,"end_line":263,"end_character":51},"updated":"2017-11-13 09:28:05.000000000","message":"ditto","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"95edc6524057421ff3615535c7485f18b75b6d9a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                (fields.ResourceClass.VCPU, 384, 0)"},{"line_number":261,"context_line":"            ],"},{"line_number":262,"context_line":"            \u0027shared storage\u0027: ["},{"line_number":263,"context_line":"                (fields.ResourceClass.DISK_GB, 1900, 0)"},{"line_number":264,"context_line":"            ]"},{"line_number":265,"context_line":"        }"},{"line_number":266,"context_line":"        self._validate_provider_summaries(expected, alloc_cands)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_aca22c99","line":263,"range":{"start_line":263,"start_character":47,"end_line":263,"end_character":51},"in_reply_to":"1f485f77_4ed3b539","updated":"2017-11-13 13:18:36.000000000","message":"Done","commit_id":"66cb137b01a59cebf67e3821ae3e8e1da1d2b7af"}]}
