)]}'
{"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":"c6e13283657c3462bdec42ac7dfa7b551c00aab4","unresolved":false,"context_lines":[{"line_number":578,"context_line":"        # of the requested resources:"},{"line_number":579,"context_line":"        ]"},{"line_number":580,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"    def test_multiple_rps_with_shared(self):"},{"line_number":583,"context_line":"        \"\"\"Many permutations of sharing and non-sharing resource providers"},{"line_number":584,"context_line":"        across multiple aggregates."}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_463eddda","line":581,"updated":"2017-11-14 09:12:33.000000000","message":"I think it would make sense to move this also top of Jay\u0027s [1] series as that seems to fix some of the problems. \n\n[1]https://review.openstack.org/#/c/517119","commit_id":"093e584b27a7a28f4c2069acf8d877d411c3f15c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c6e13283657c3462bdec42ac7dfa7b551c00aab4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1f485f77_06090530","line":816,"updated":"2017-11-14 09:12:33.000000000","message":"Do we need to cover the cases where a shared provider shares resources to more than one non shared provider? Of course that could be in a different commit I can even propose.","commit_id":"093e584b27a7a28f4c2069acf8d877d411c3f15c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2bf0f3b72e1010e21e9f9ce27686b24bb0f853e5","unresolved":false,"context_lines":[{"line_number":1631,"context_line":""},{"line_number":1632,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1633,"context_line":""},{"line_number":1634,"context_line":"    def test_multiple_rps_with_shared(self):"},{"line_number":1635,"context_line":"        \"\"\"Many permutations of sharing and non-sharing resource providers"},{"line_number":1636,"context_line":"        across multiple aggregates."},{"line_number":1637,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_90b0558c","line":1634,"updated":"2017-11-15 19:44:40.000000000","message":"I\u0027d really prefer to break this out into multiple tests that contain only the required fixtures to tickle one particular scenario\u0027s bugs.","commit_id":"c13cfab55b0b860a9e991eb1be179819d04b44f4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba3920d55c1d05d9f4e7f44b037e88e63c5eab52","unresolved":false,"context_lines":[{"line_number":1631,"context_line":""},{"line_number":1632,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1633,"context_line":""},{"line_number":1634,"context_line":"    def test_multiple_rps_with_shared(self):"},{"line_number":1635,"context_line":"        \"\"\"Many permutations of sharing and non-sharing resource providers"},{"line_number":1636,"context_line":"        across multiple aggregates."},{"line_number":1637,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_94002903","line":1634,"in_reply_to":"1f485f77_90b0558c","updated":"2017-11-16 16:11:17.000000000","message":"I tried to split it as best as I can. Done.","commit_id":"c13cfab55b0b860a9e991eb1be179819d04b44f4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dee1011f81931bf20e56b7449380e9b374a0a6ca","unresolved":false,"context_lines":[{"line_number":1736,"context_line":""},{"line_number":1737,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1738,"context_line":""},{"line_number":1739,"context_line":"    def test_aggregate_crossover(self):"},{"line_number":1740,"context_line":"        # FIXME(efried): This test isolates bug 1731072, bullets (5) and (6)."},{"line_number":1741,"context_line":""},{"line_number":1742,"context_line":"        # Multiple sharing providers with the same resource."}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_169e58b8","line":1739,"range":{"start_line":1739,"start_character":8,"end_line":1739,"end_character":32},"updated":"2017-11-17 22:43:27.000000000","message":"This test case wasn\u0027t adding anything to the above anymore, so I killed it.","commit_id":"7e96528c035e6af66f91ba6315fc2e07adf5b892"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6e4aa01ce693248ddac69d0047e86a57b3d1f15e","unresolved":false,"context_lines":[{"line_number":1716,"context_line":""},{"line_number":1717,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1718,"context_line":""},{"line_number":1719,"context_line":"    def test_multiple_sharing_providers_with_same_rc(self):"},{"line_number":1720,"context_line":"        #       cn5(VCPU,MEM)       Non-sharing with some of the resources;"},{"line_number":1721,"context_line":"        #         / agg5 \\          aggregated with multiple sharing providers"},{"line_number":1722,"context_line":"        # ss5_1(DISK)  ss5_2(DISK)  with the same resource."}],"source_content_type":"text/x-python","patch_set":15,"id":"ff82abbf_77a7bd0c","line":1719,"updated":"2017-11-28 05:12:36.000000000","message":"I have a similar testcase for this https://review.openstack.org/#/c/498737/2/nova/tests/functional/db/test_resource_provider.py@2981 also.\n\nIt also simpler than this, should we keep my ones?","commit_id":"6a66bed4c2ad1fc04907944e9bf6617fd84b8e05"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0067ecef03931feed491f71238ddde471116d698","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        # No traits.  This will never be returned, because it\u0027s illegal to"},{"line_number":276,"context_line":"        # invoke the method with no traits."},{"line_number":277,"context_line":"        self._create_provider(\u0027cn1\u0027)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        # One trait"},{"line_number":280,"context_line":"        rp2 \u003d self._create_provider(\u0027cn2\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df87a7cf_0b812ac3","line":277,"updated":"2017-12-12 17:55:22.000000000","message":"Are these changes really necessary here? I get why they\u0027re helpful, but other tests here already add non-compute-node providers, and nothing else in this class is changing (nor does anything inherit from this AFAICT).","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"96ecbf04d3078be7fccfbe8bae7e807a9824af9b","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        # No traits.  This will never be returned, because it\u0027s illegal to"},{"line_number":276,"context_line":"        # invoke the method with no traits."},{"line_number":277,"context_line":"        self._create_provider(\u0027cn1\u0027)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        # One trait"},{"line_number":280,"context_line":"        rp2 \u003d self._create_provider(\u0027cn2\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df87a7cf_9ac1cf31","line":277,"in_reply_to":"df87a7cf_0b812ac3","updated":"2017-12-14 13:37:40.000000000","message":"In an earlier rev (or possibly a different patch) Jay asked me to change the names like this.  It\u0027s possible I found that I had missed these and figured I could get away with renaming them here rather than putting up a separate patch.  But yeah, unrelated and not necessary.","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0bd472a1446ef09122d7ead91b01eafa5edf1872","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        # No traits.  This will never be returned, because it\u0027s illegal to"},{"line_number":276,"context_line":"        # invoke the method with no traits."},{"line_number":277,"context_line":"        self._create_provider(\u0027cn1\u0027)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        # One trait"},{"line_number":280,"context_line":"        rp2 \u003d self._create_provider(\u0027cn2\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_f2192988","line":277,"in_reply_to":"df87a7cf_9ac1cf31","updated":"2017-12-22 03:44:15.000000000","message":"Dropped off this part from this patch and issued a new patch out of this branch. We can continue discussion here.\nhttps://review.openstack.org/#/c/529786/","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0067ecef03931feed491f71238ddde471116d698","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"        #        | agg3        aggregated with"},{"line_number":1213,"context_line":"        #     ss3(DISK)        a sharing RP that also has some of the resources"},{"line_number":1214,"context_line":"        #                      (common-RC split case)"},{"line_number":1215,"context_line":"        cn3 \u003d self._create_provider(\u0027cn3\u0027, uuids.agg3)"},{"line_number":1216,"context_line":"        _add_inventory(cn3, fields.ResourceClass.VCPU, 24)"},{"line_number":1217,"context_line":"        _add_inventory(cn3, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":1218,"context_line":"        _add_inventory(cn3, fields.ResourceClass.DISK_GB, 2000)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df87a7cf_cbdca2e5","line":1215,"updated":"2017-12-12 17:55:22.000000000","message":"Why start at cn3?","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0bd472a1446ef09122d7ead91b01eafa5edf1872","unresolved":false,"context_lines":[{"line_number":1212,"context_line":"        #        | agg3        aggregated with"},{"line_number":1213,"context_line":"        #     ss3(DISK)        a sharing RP that also has some of the resources"},{"line_number":1214,"context_line":"        #                      (common-RC split case)"},{"line_number":1215,"context_line":"        cn3 \u003d self._create_provider(\u0027cn3\u0027, uuids.agg3)"},{"line_number":1216,"context_line":"        _add_inventory(cn3, fields.ResourceClass.VCPU, 24)"},{"line_number":1217,"context_line":"        _add_inventory(cn3, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":1218,"context_line":"        _add_inventory(cn3, fields.ResourceClass.DISK_GB, 2000)"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_d218a582","line":1215,"in_reply_to":"df87a7cf_cbdca2e5","updated":"2017-12-22 03:44:15.000000000","message":"renumbered from 1","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0067ecef03931feed491f71238ddde471116d698","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"        #         / agg6 \\          aggregated with multiple sharing providers"},{"line_number":1246,"context_line":"        # ss6_1(MEM)  ss6_2(DISK)   with different resources."},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        cn4 \u003d self._create_provider(\u0027cn4\u0027, uuids.agg4)"},{"line_number":1249,"context_line":"        _add_inventory(cn4, fields.ResourceClass.VCPU, 24)"},{"line_number":1250,"context_line":"        _add_inventory(cn4, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":1251,"context_line":"        ss4 \u003d self._create_provider(\u0027ss4\u0027, uuids.agg4)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df87a7cf_abdd9edd","line":1248,"updated":"2017-12-12 17:55:22.000000000","message":"Same. Are you just trying to keep the definitions of these uniform across all these tests? If so, probably better to set them up in one place since they\u0027ll drift over time during maintenance.","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0bd472a1446ef09122d7ead91b01eafa5edf1872","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"        #         / agg6 \\          aggregated with multiple sharing providers"},{"line_number":1246,"context_line":"        # ss6_1(MEM)  ss6_2(DISK)   with different resources."},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        cn4 \u003d self._create_provider(\u0027cn4\u0027, uuids.agg4)"},{"line_number":1249,"context_line":"        _add_inventory(cn4, fields.ResourceClass.VCPU, 24)"},{"line_number":1250,"context_line":"        _add_inventory(cn4, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":1251,"context_line":"        ss4 \u003d self._create_provider(\u0027ss4\u0027, uuids.agg4)"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf8cb3f7_3207911f","line":1248,"in_reply_to":"df87a7cf_7ad96b20","updated":"2017-12-22 03:44:15.000000000","message":"renumbered from 1","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"96ecbf04d3078be7fccfbe8bae7e807a9824af9b","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"        #         / agg6 \\          aggregated with multiple sharing providers"},{"line_number":1246,"context_line":"        # ss6_1(MEM)  ss6_2(DISK)   with different resources."},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        cn4 \u003d self._create_provider(\u0027cn4\u0027, uuids.agg4)"},{"line_number":1249,"context_line":"        _add_inventory(cn4, fields.ResourceClass.VCPU, 24)"},{"line_number":1250,"context_line":"        _add_inventory(cn4, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":1251,"context_line":"        ss4 \u003d self._create_provider(\u0027ss4\u0027, uuids.agg4)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df87a7cf_7ad96b20","line":1248,"in_reply_to":"df87a7cf_abdd9edd","updated":"2017-12-14 13:37:40.000000000","message":"The only reason is because this cluster of test cases started out as one big monolithic test.  Jay asked us to split them out, so we did, but didn\u0027t bother renaming the variables at that time.  Can do that if it bugs ya.","commit_id":"098cde14d6f0a9cbf8264c046097d9cc8c37fefa"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"            #  (\u0027ss1\u0027, fields.ResourceClass.DISK_GB, 1500)],"},{"line_number":1211,"context_line":"        ]"},{"line_number":1212,"context_line":""},{"line_number":1213,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def test_rc_not_split_between_sharing_and_non_sharing(self):"},{"line_number":1216,"context_line":"        # cn1(VCPU,MEM)   Non-sharing RP with some of the resources"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_799030ee","line":1213,"updated":"2018-01-08 17:28:58.000000000","message":"check. above test is correct.","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"        alloc_cands \u003d self._get_allocation_candidates()"},{"line_number":1243,"context_line":"        expected \u003d ["},{"line_number":1244,"context_line":"            # Aggregate 2 is always spread out as expectd"},{"line_number":1245,"context_line":"            [(\u0027cn2\u0027, fields.ResourceClass.VCPU, 1),"},{"line_number":1246,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64),"},{"line_number":1247,"context_line":"             (\u0027ss2_2\u0027, fields.ResourceClass.DISK_GB, 1500)],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_797ef0af","line":1244,"range":{"start_line":1244,"start_character":14,"end_line":1244,"end_character":46},"updated":"2018-01-08 17:28:58.000000000","message":"aggregates aren\u0027t spread out. they are only groups of resource providers. I think you meant to say \"We expect both sharing providers that are associated with aggregate 2 to be included in the allocation request list, paired with compute node 2.\"","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"        alloc_cands \u003d self._get_allocation_candidates()"},{"line_number":1243,"context_line":"        expected \u003d ["},{"line_number":1244,"context_line":"            # Aggregate 2 is always spread out as expectd"},{"line_number":1245,"context_line":"            [(\u0027cn2\u0027, fields.ResourceClass.VCPU, 1),"},{"line_number":1246,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64),"},{"line_number":1247,"context_line":"             (\u0027ss2_2\u0027, fields.ResourceClass.DISK_GB, 1500)],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_596a0cee","line":1244,"range":{"start_line":1244,"start_character":50,"end_line":1244,"end_character":57},"updated":"2018-01-08 17:28:58.000000000","message":"expected","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"499e8808c76f12ea665b2a4984540a2f9aefcf84","unresolved":false,"context_lines":[{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"        alloc_cands \u003d self._get_allocation_candidates()"},{"line_number":1243,"context_line":"        expected \u003d ["},{"line_number":1244,"context_line":"            # Aggregate 2 is always spread out as expectd"},{"line_number":1245,"context_line":"            [(\u0027cn2\u0027, fields.ResourceClass.VCPU, 1),"},{"line_number":1246,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64),"},{"line_number":1247,"context_line":"             (\u0027ss2_2\u0027, fields.ResourceClass.DISK_GB, 1500)],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_b4c6ba67","line":1244,"range":{"start_line":1244,"start_character":14,"end_line":1244,"end_character":46},"in_reply_to":"9f91af0f_797ef0af","updated":"2018-01-08 21:40:04.000000000","message":"This comment is removed in https://review.openstack.org/#/c/522409/","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64)],"},{"line_number":1258,"context_line":"        ]"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    def test_multiple_sharing_providers_with_same_rc(self):"},{"line_number":1263,"context_line":"        #       cn1(VCPU,MEM)       Non-sharing with some of the resources;"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_f911a05e","line":1260,"updated":"2018-01-08 17:28:58.000000000","message":"check. test assertions (and commented out assertions) are correct and represent the bugs appropriately.","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":"        alloc_cands \u003d self._get_allocation_candidates()"},{"line_number":1293,"context_line":"        expected \u003d ["},{"line_number":1294,"context_line":"            # Aggregate 2 is spread out as expected"},{"line_number":1295,"context_line":"            [(\u0027cn2\u0027, fields.ResourceClass.VCPU, 1),"},{"line_number":1296,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64),"},{"line_number":1297,"context_line":"             (\u0027ss2_2\u0027, fields.ResourceClass.DISK_GB, 1500)],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_34014f06","line":1294,"range":{"start_line":1294,"start_character":14,"end_line":1294,"end_character":51},"updated":"2018-01-08 17:28:58.000000000","message":"same comment as above :)","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"499e8808c76f12ea665b2a4984540a2f9aefcf84","unresolved":false,"context_lines":[{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":"        alloc_cands \u003d self._get_allocation_candidates()"},{"line_number":1293,"context_line":"        expected \u003d ["},{"line_number":1294,"context_line":"            # Aggregate 2 is spread out as expected"},{"line_number":1295,"context_line":"            [(\u0027cn2\u0027, fields.ResourceClass.VCPU, 1),"},{"line_number":1296,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64),"},{"line_number":1297,"context_line":"             (\u0027ss2_2\u0027, fields.ResourceClass.DISK_GB, 1500)],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_f47e8217","line":1294,"range":{"start_line":1294,"start_character":14,"end_line":1294,"end_character":51},"in_reply_to":"9f91af0f_34014f06","updated":"2018-01-08 21:40:04.000000000","message":"This comment is removed in https://review.openstack.org/#/c/522409/","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"316c590975c8d072b8fc01fe32ef6d557bfcf11e","unresolved":false,"context_lines":[{"line_number":1314,"context_line":"             (\u0027ss2_1\u0027, fields.ResourceClass.MEMORY_MB, 64)],"},{"line_number":1315,"context_line":"        ]"},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f91af0f_14252bab","line":1317,"updated":"2018-01-08 17:28:58.000000000","message":"check. test scenario minimally demonstrates the appropriate permutations of the two bugs. ++","commit_id":"53e63d0ed0a071a5ec7d95ab5c1c6bc29668ba0b"}]}
