)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e716eb24b2ae521328610f90b3d3aa79e29147b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tetsuro Nakamura \u003cnakamura.tetsuro@lab.ntt.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-04-27 15:52:24 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f6a8fd7_13bb3b72","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":25},"updated":"2018-05-02 15:03:12.000000000","message":"s/shared/sharing/g :)","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"19d58bb331ed3c2e155f3d7e4f8e41c9811fffe7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tetsuro Nakamura \u003cnakamura.tetsuro@lab.ntt.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-04-27 15:52:24 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_1ed96c82","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":25},"in_reply_to":"9f6a8fd7_13bb3b72","updated":"2018-05-03 09:48:52.000000000","message":"Done","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e716eb24b2ae521328610f90b3d3aa79e29147b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes the bug by adding the aggregation check in"},{"line_number":13,"context_line":"SQL query for getting sharing providers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f6a8fd7_1349fb89","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":7},"updated":"2018-05-02 15:03:12.000000000","message":"\"incorrectly associated sharing providers with other sharing providers with no direct connection to non-sharing providers involved in other parts of the request\".","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e716eb24b2ae521328610f90b3d3aa79e29147b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes the bug by adding the aggregation check in"},{"line_number":13,"context_line":"SQL query for getting sharing providers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f6a8fd7_13701bdc","line":10,"range":{"start_line":10,"start_character":51,"end_line":10,"end_character":62},"updated":"2018-05-02 15:03:12.000000000","message":"aggregates","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"19d58bb331ed3c2e155f3d7e4f8e41c9811fffe7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes the bug by adding the aggregation check in"},{"line_number":13,"context_line":"SQL query for getting sharing providers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_bee5d83a","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":7},"in_reply_to":"9f6a8fd7_1349fb89","updated":"2018-05-03 09:48:52.000000000","message":"Done","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"19d58bb331ed3c2e155f3d7e4f8e41c9811fffe7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix member_of with shared providers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the `member_of` parameter was present, non shared providers"},{"line_number":10,"context_line":"brought shared providers from out of the specified aggregation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes the bug by adding the aggregation check in"},{"line_number":13,"context_line":"SQL query for getting sharing providers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_dee21430","line":10,"range":{"start_line":10,"start_character":51,"end_line":10,"end_character":62},"in_reply_to":"9f6a8fd7_13701bdc","updated":"2018-05-03 09:48:52.000000000","message":"Done","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"}],"nova/api/openstack/placement/objects/resource_provider.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"8271efcf055f2ea5cdc8e94a71b2b2e4c688c3fd","unresolved":false,"context_lines":[{"line_number":3648,"context_line":"        # has, only that it is sharing *some* inventory of a particular"},{"line_number":3649,"context_line":"        # resource class."},{"line_number":3650,"context_line":"        sharing_providers \u003d {"},{"line_number":3651,"context_line":"            rc_id: _get_providers_with_shared_capacity(context, rc_id, amount)"},{"line_number":3652,"context_line":"            for rc_id, amount in resources.items()"},{"line_number":3653,"context_line":"        }"},{"line_number":3654,"context_line":"        have_sharing \u003d any(sharing_providers.values())"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_ae148fa1","line":3651,"range":{"start_line":3651,"start_character":19,"end_line":3651,"end_character":78},"updated":"2018-04-18 03:52:21.000000000","message":"Afterthoughts; putting \"members_of\" parameter here would be simpler and more efficient...","commit_id":"2f6124b425f8ab1fe6c1876b4ef079bbbae9d9e6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"8271efcf055f2ea5cdc8e94a71b2b2e4c688c3fd","unresolved":false,"context_lines":[{"line_number":3687,"context_line":"            rp_ids \u003d set([r[0] for r in rps])"},{"line_number":3688,"context_line":"            alloc_request_objs, summary_objs \u003d _alloc_candidates_with_shared("},{"line_number":3689,"context_line":"                context, resources, required_trait_map, forbidden_trait_map,"},{"line_number":3690,"context_line":"                rp_ids, sharing_providers, member_of)"},{"line_number":3691,"context_line":""},{"line_number":3692,"context_line":"        # Limit the number of allocation request objects. We do this after"},{"line_number":3693,"context_line":"        # creating all of them so that we can do a random slice without"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_ce2ea3f9","line":3690,"range":{"start_line":3690,"start_character":41,"end_line":3690,"end_character":52},"updated":"2018-04-18 03:52:21.000000000","message":"-1","commit_id":"2f6124b425f8ab1fe6c1876b4ef079bbbae9d9e6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e716eb24b2ae521328610f90b3d3aa79e29147b","unresolved":false,"context_lines":[{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"    To follow the example above, if we were to call"},{"line_number":1062,"context_line":"    _get_providers_with_shared_capacity(ctx, \"DISK_GB\", 100), we would want to"},{"line_number":1063,"context_line":"    get back the ID for the NFS_SHARE resource provider."},{"line_number":1064,"context_line":"    \"\"\""},{"line_number":1065,"context_line":"    # The SQL we need to generate here looks like this:"},{"line_number":1066,"context_line":"    #"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_9302eb0a","line":1063,"updated":"2018-05-02 15:03:12.000000000","message":"Please add something to this docstring that clearly indicates what the member_of parameter is doing. Something like this might work:\n\n :param member_of: When present, contains a list of lists of aggregate\n                   internal IDs that are used to filter the returned list\n                   of resource providers that *directly*                    belong to the\n                   aggregates referenced.","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"19d58bb331ed3c2e155f3d7e4f8e41c9811fffe7","unresolved":false,"context_lines":[{"line_number":1060,"context_line":""},{"line_number":1061,"context_line":"    To follow the example above, if we were to call"},{"line_number":1062,"context_line":"    _get_providers_with_shared_capacity(ctx, \"DISK_GB\", 100), we would want to"},{"line_number":1063,"context_line":"    get back the ID for the NFS_SHARE resource provider."},{"line_number":1064,"context_line":"    \"\"\""},{"line_number":1065,"context_line":"    # The SQL we need to generate here looks like this:"},{"line_number":1066,"context_line":"    #"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_5ef7e4f6","line":1063,"in_reply_to":"9f6a8fd7_9302eb0a","updated":"2018-05-03 09:48:52.000000000","message":"s/internal IDs/uuids/\n\nDone!","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"}],"nova/tests/functional/api/openstack/placement/db/test_allocation_candidates.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e716eb24b2ae521328610f90b3d3aa79e29147b","unresolved":false,"context_lines":[{"line_number":1772,"context_line":"            \u0027ss2\u0027: set(["},{"line_number":1773,"context_line":"                (fields.ResourceClass.DISK_GB, 1600, 0),"},{"line_number":1774,"context_line":"            ]),"},{"line_number":1775,"context_line":"        }"},{"line_number":1776,"context_line":"        self._validate_provider_summary_resources(expected, alloc_cands)"},{"line_number":1777,"context_line":""},{"line_number":1778,"context_line":"    def test_simple_tree_of_providers(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_ee56de06","line":1775,"updated":"2018-05-02 15:03:12.000000000","message":"\\o/ yay :)","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"19d58bb331ed3c2e155f3d7e4f8e41c9811fffe7","unresolved":false,"context_lines":[{"line_number":1772,"context_line":"            \u0027ss2\u0027: set(["},{"line_number":1773,"context_line":"                (fields.ResourceClass.DISK_GB, 1600, 0),"},{"line_number":1774,"context_line":"            ]),"},{"line_number":1775,"context_line":"        }"},{"line_number":1776,"context_line":"        self._validate_provider_summary_resources(expected, alloc_cands)"},{"line_number":1777,"context_line":""},{"line_number":1778,"context_line":"    def test_simple_tree_of_providers(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_aa583356","line":1775,"in_reply_to":"9f6a8fd7_ee56de06","updated":"2018-05-03 09:48:52.000000000","message":"\"( ^-^)／且☆且＼(^-^ )\"","commit_id":"400420d442e792b800bea11d23ac5c18862f0df0"}]}
