)]}'
{"nova/tests/functional/db/test_allocation_candidates.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"efc272faeb911627bef9adbe92a1779be9ee1252","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        p_alts \u003d self._get_allocation_candidates()"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        # One allocation_request should have cn + ss; the other should have"},{"line_number":541,"context_line":"        # just the cn."},{"line_number":542,"context_line":"        # TODO(efried): Due to bug #1724613, the cn + ss candidate is not"},{"line_number":543,"context_line":"        # returned.  Swap this out when the bug is fixed."},{"line_number":544,"context_line":"        # expected \u003d sorted([{cn.uuid}, {cn.uuid, ss.uuid}])"},{"line_number":545,"context_line":"        expected \u003d [{cn.uuid}]"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        self.assertEqual(expected, self._extract_ar_rp_uuid_sets(p_alts))"},{"line_number":548,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_5d095bdb","line":545,"range":{"start_line":540,"start_character":0,"end_line":545,"end_character":1},"updated":"2017-11-09 12:27:26.000000000","message":"This bug was marked invalid.  Apparently this is the expected behavior.  So we can remove (or perhaps just reword) this comment.","commit_id":"8f021e2dc64307eb8d2ab68b283e9378499d5644"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"927207cd841869dda5305ae5b1dfb0dcbc9b50d4","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        p_alts \u003d self._get_allocation_candidates()"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        # One allocation_request should have cn + ss; the other should have"},{"line_number":541,"context_line":"        # just the cn."},{"line_number":542,"context_line":"        # TODO(efried): Due to bug #1724613, the cn + ss candidate is not"},{"line_number":543,"context_line":"        # returned.  Swap this out when the bug is fixed."},{"line_number":544,"context_line":"        # expected \u003d sorted([{cn.uuid}, {cn.uuid, ss.uuid}])"},{"line_number":545,"context_line":"        expected \u003d [{cn.uuid}]"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        self.assertEqual(expected, self._extract_ar_rp_uuid_sets(p_alts))"},{"line_number":548,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_9b2a36e5","line":545,"range":{"start_line":540,"start_character":0,"end_line":545,"end_character":1},"in_reply_to":"1f485f77_5d095bdb","updated":"2017-11-09 20:07:19.000000000","message":"[Later] Then we talked about it, and decided it was valid.  So, stet.","commit_id":"8f021e2dc64307eb8d2ab68b283e9378499d5644"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"efc272faeb911627bef9adbe92a1779be9ee1252","unresolved":false,"context_lines":[{"line_number":562,"context_line":"            }"},{"line_number":563,"context_line":"        )"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        # TODO(efried): Okay, bear with me here:"},{"line_number":566,"context_line":"        # TODO(efried): Bug #1724633: we\u0027d *like* to get no candidates, because"},{"line_number":567,"context_line":"        # there\u0027s no single DISK_GB resource with both STORAGE_DISK_SSD and"},{"line_number":568,"context_line":"        # CUSTOM_RAID traits.  So this is the ideal expected value:"},{"line_number":569,"context_line":"        # expected \u003d []"},{"line_number":570,"context_line":"        # TODO(efried): But under the design as currently conceived, we would"},{"line_number":571,"context_line":"        # get the cn + ss candidate, because that combination satisfies both"},{"line_number":572,"context_line":"        # traits:"},{"line_number":573,"context_line":"        # expected \u003d [{cn.uuid, ss.uuid}]"},{"line_number":574,"context_line":"        # TODO(efried): However, until https://review.openstack.org/#/c/479766/"},{"line_number":575,"context_line":"        # lands, the traits are ignored, so this behaves just like"},{"line_number":576,"context_line":"        # test_common_rc above, which is subject to bug #1724613:"},{"line_number":577,"context_line":"        expected \u003d [{cn.uuid}]"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        self.assertEqual(expected, self._extract_ar_rp_uuid_sets(p_alts))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f485f77_ddf42bd2","line":576,"range":{"start_line":565,"start_character":0,"end_line":576,"end_character":65},"updated":"2017-11-09 12:27:26.000000000","message":"...and consequently this whole thing changes.  It\u0027s possible bug ...13 being invalid makes bug ...33 moot/invalid/unexposed.  Thought needed.","commit_id":"8f021e2dc64307eb8d2ab68b283e9378499d5644"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"23fc1735599bd5f1418912fc62646d72cc68f0fe","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def _setup_cn_and_ss_both_with_disk(self):"},{"line_number":459,"context_line":"        \"\"\"Set up compute node and shared storage RPs, both having DISK_GB.\"\"\""},{"line_number":460,"context_line":"        cn \u003d self._create_provider(\u0027cn\u0027, uuids.agg1)"},{"line_number":461,"context_line":"        _add_inventory(cn, fields.ResourceClass.VCPU, 24)"},{"line_number":462,"context_line":"        _add_inventory(cn, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":463,"context_line":"        _add_inventory(cn, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        ss \u003d self._create_provider(\u0027ss\u0027, uuids.agg1)"},{"line_number":466,"context_line":"        _set_traits(ss, \"MISC_SHARES_VIA_AGGREGATE\")"},{"line_number":467,"context_line":"        _add_inventory(ss, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        return cn, ss"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_f7181176","line":467,"range":{"start_line":459,"start_character":0,"end_line":467,"end_character":62},"updated":"2017-11-10 14:30:38.000000000","message":"I\u0027d actually prefer to duplicate this setup code in each of the test methods. It just makes it more explicit (I don\u0027t need to go to this helper method to figure out, say, how much MEMORY_MB the compute host has).","commit_id":"9c14daa4c04a303f99ec57e7f7ae46771f6f6304"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"43acef2402f6ad509126a988e8472d72c5188d8d","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self._validate_allocation_requests(expected, alloc_cands)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    def _setup_cn_and_ss_both_with_disk(self):"},{"line_number":459,"context_line":"        \"\"\"Set up compute node and shared storage RPs, both having DISK_GB.\"\"\""},{"line_number":460,"context_line":"        cn \u003d self._create_provider(\u0027cn\u0027, uuids.agg1)"},{"line_number":461,"context_line":"        _add_inventory(cn, fields.ResourceClass.VCPU, 24)"},{"line_number":462,"context_line":"        _add_inventory(cn, fields.ResourceClass.MEMORY_MB, 2048)"},{"line_number":463,"context_line":"        _add_inventory(cn, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        ss \u003d self._create_provider(\u0027ss\u0027, uuids.agg1)"},{"line_number":466,"context_line":"        _set_traits(ss, \"MISC_SHARES_VIA_AGGREGATE\")"},{"line_number":467,"context_line":"        _add_inventory(ss, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        return cn, ss"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_77eb01b0","line":467,"range":{"start_line":459,"start_character":0,"end_line":467,"end_character":62},"in_reply_to":"1f485f77_f7181176","updated":"2017-11-10 15:09:24.000000000","message":"Done.\n\nIt was a lot more dedupey before the helper methods :)","commit_id":"9c14daa4c04a303f99ec57e7f7ae46771f6f6304"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"23fc1735599bd5f1418912fc62646d72cc68f0fe","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        # TODO(efried): Bug #1724633: we\u0027d *like* to get no candidates, because"},{"line_number":510,"context_line":"        # there\u0027s no single DISK_GB resource with both STORAGE_DISK_SSD and"},{"line_number":511,"context_line":"        # CUSTOM_RAID traits.  So this is the ideal expected value:"},{"line_number":512,"context_line":"        # expected \u003d []"},{"line_number":513,"context_line":"        # TODO(efried): But under the design as currently conceived, we would"},{"line_number":514,"context_line":"        # get the cn + ss candidate, because that combination satisfies both"},{"line_number":515,"context_line":"        # traits:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_d79ab5c3","line":512,"updated":"2017-11-10 14:30:38.000000000","message":"Only when we submit a request group that has use_same_provider\u003dTrue, though. For use_same_provider\u003dFalse, which is what this particular test is testing, we expect to get cn + ss... i.e. the result noted below on lines 513-520.","commit_id":"9c14daa4c04a303f99ec57e7f7ae46771f6f6304"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"43acef2402f6ad509126a988e8472d72c5188d8d","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        # TODO(efried): Bug #1724633: we\u0027d *like* to get no candidates, because"},{"line_number":510,"context_line":"        # there\u0027s no single DISK_GB resource with both STORAGE_DISK_SSD and"},{"line_number":511,"context_line":"        # CUSTOM_RAID traits.  So this is the ideal expected value:"},{"line_number":512,"context_line":"        # expected \u003d []"},{"line_number":513,"context_line":"        # TODO(efried): But under the design as currently conceived, we would"},{"line_number":514,"context_line":"        # get the cn + ss candidate, because that combination satisfies both"},{"line_number":515,"context_line":"        # traits:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_b71859d3","line":512,"in_reply_to":"1f485f77_d79ab5c3","updated":"2017-11-10 15:09:24.000000000","message":"Done","commit_id":"9c14daa4c04a303f99ec57e7f7ae46771f6f6304"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ae74d2452fdca6fd144b36b4c00f8e0080e469f3","unresolved":false,"context_lines":[{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def test_common_rc_traits_split(self):"},{"line_number":487,"context_line":"        \"\"\"Validate filters when traits are split across cn and shared RPs.\"\"\""},{"line_number":488,"context_line":"        # NOTE(efried): This test case only applies to the scenario where we\u0027re"},{"line_number":489,"context_line":"        # requesting resources via the RequestGroup where"},{"line_number":490,"context_line":"        # use_same_provider\u003dFalse"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        cn \u003d self._create_provider(\u0027cn\u0027, uuids.agg1)"},{"line_number":493,"context_line":"        _add_inventory(cn, fields.ResourceClass.VCPU, 24)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_d794f5ea","line":490,"range":{"start_line":488,"start_character":8,"end_line":490,"end_character":33},"updated":"2017-11-10 15:17:26.000000000","message":"++","commit_id":"d4398f715f098b9edbc0be8612b6c079a8e607af"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cb7ae47069ca4a0e394d68ebe12e84f1052f4050","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        _add_inventory(ss, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":501,"context_line":"        # The shared storage\u0027s disk is RAID"},{"line_number":502,"context_line":"        _set_traits(ss, \u0027MISC_SHARES_VIA_AGGREGATE\u0027, \u0027CUSTOM_RAID\u0027)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        alloc_cands \u003d rp_obj.AllocationCandidates.get_by_filters("},{"line_number":505,"context_line":"            self.ctx, filters\u003d{"},{"line_number":506,"context_line":"                \u0027resources\u0027: self.requested_resources,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_c273fee6","line":503,"updated":"2017-11-13 05:23:43.000000000","message":"I think you actually want to put the cn and ss into the same aggregate?","commit_id":"d4398f715f098b9edbc0be8612b6c079a8e607af"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"39c788d3b2d58ed3d0852ae000397499c7e108db","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        _add_inventory(ss, fields.ResourceClass.DISK_GB, 1600)"},{"line_number":501,"context_line":"        # The shared storage\u0027s disk is RAID"},{"line_number":502,"context_line":"        _set_traits(ss, \u0027MISC_SHARES_VIA_AGGREGATE\u0027, \u0027CUSTOM_RAID\u0027)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        alloc_cands \u003d rp_obj.AllocationCandidates.get_by_filters("},{"line_number":505,"context_line":"            self.ctx, filters\u003d{"},{"line_number":506,"context_line":"                \u0027resources\u0027: self.requested_resources,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_eda94bdf","line":503,"in_reply_to":"1f485f77_c273fee6","updated":"2017-11-13 05:39:07.000000000","message":"oh, you set the aggregate id in the \u0027_create_provider\u0027","commit_id":"d4398f715f098b9edbc0be8612b6c079a8e607af"}],"nova/tests/functional/db/test_resource_provider.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"8d2e5655223b9666844fb376be7e512b9949d9e0","unresolved":false,"context_lines":[{"line_number":3176,"context_line":""},{"line_number":3177,"context_line":"        self._tmp_log_p_alts(p_alts)"},{"line_number":3178,"context_line":""},{"line_number":3179,"context_line":"        # TODO(efried): Okay, bear with me here:"},{"line_number":3180,"context_line":"        # TODO(efried): Bug #1724633: we\u0027d *like* to get no candidates, because"},{"line_number":3181,"context_line":"        # there\u0027s no single DISK_GB resource with both STORAGE_DISK_SSD and"},{"line_number":3182,"context_line":"        # CUSTOM_RAID traits.  So this is the ideal expected value:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_cbb51bcf","line":3179,"updated":"2017-10-23 11:33:11.000000000","message":"noted","commit_id":"81160f340ca541a563b444726fb9dba66c89e6b7"}]}
