)]}'
{"nova/api/openstack/placement/lib.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2df4c3da259a30f195db80f6164afd99353a5fbc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        :param resources: A dict of { resource_class: amount, ... }"},{"line_number":30,"context_line":"        :param required_traits: A set of { trait_name, ... }"},{"line_number":31,"context_line":"        :param forbidden_traits: A set of { trait_name, ... }"},{"line_number":32,"context_line":"        :param member_of: A list of [ [aggregate_UUID],"},{"line_number":33,"context_line":"                                      [aggregate_UUID, aggregate_UUID] ... ]"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":"        self.use_same_provider \u003d use_same_provider"},{"line_number":36,"context_line":"        self.resources \u003d resources or {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5e930050","line":33,"range":{"start_line":32,"start_character":26,"end_line":33,"end_character":76},"updated":"2018-05-09 12:53:20.000000000","message":"or just \"A list of lists of aggregate UUIDs\"","commit_id":"052cefcf43fcf828e5a9c5a1212a3bc90b4c1bbe"}],"nova/api/openstack/placement/objects/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2df4c3da259a30f195db80f6164afd99353a5fbc","unresolved":false,"context_lines":[{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"    :param resources: Dict keyed by resource class integer ID of requested"},{"line_number":1202,"context_line":"                      amounts of that resource"},{"line_number":1203,"context_line":"    :param member_of: a list of list of aggregate UUIDs or None"},{"line_number":1204,"context_line":"    \"\"\""},{"line_number":1205,"context_line":"    # NOTE(jaypipes): The SQL we generate here depends on which resource"},{"line_number":1206,"context_line":"    # classes have providers that share that resource via an aggregate."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_de9e3053","line":1203,"range":{"start_line":1203,"start_character":32,"end_line":1203,"end_character":36},"updated":"2018-05-09 12:53:20.000000000","message":"lists\n\n(throughout)\n\n(or not)","commit_id":"052cefcf43fcf828e5a9c5a1212a3bc90b4c1bbe"}],"nova/tests/functional/api/openstack/placement/db/test_resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2df4c3da259a30f195db80f6164afd99353a5fbc","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        rps \u003d rp_obj.ResourceProviderList.get_all_by_filters("},{"line_number":267,"context_line":"            self.ctx,"},{"line_number":268,"context_line":"            filters\u003d{"},{"line_number":269,"context_line":"                \u0027member_of\u0027: [[uuidsentinel.agg]],"},{"line_number":270,"context_line":"                \u0027in_tree\u0027: uuidsentinel.grandchild_rp,"},{"line_number":271,"context_line":"            }"},{"line_number":272,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_be6d7433","line":269,"range":{"start_line":269,"start_character":29,"end_line":269,"end_character":49},"updated":"2018-05-09 12:53:20.000000000","message":"so wait, how was this working before?  Because get_all_by_filters is past the uuid-likeness check, and uuidsentinel.agg is itself an iterable , so it\u0027s actually being interpreted as [ [\u0027a\u0027], [\u00271\u0027], [\u0027c\u0027], ... ] ?","commit_id":"052cefcf43fcf828e5a9c5a1212a3bc90b4c1bbe"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"86da5d0ab831db711b02a0f84cf2b82efe915d40","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        rps \u003d rp_obj.ResourceProviderList.get_all_by_filters("},{"line_number":267,"context_line":"            self.ctx,"},{"line_number":268,"context_line":"            filters\u003d{"},{"line_number":269,"context_line":"                \u0027member_of\u0027: [[uuidsentinel.agg]],"},{"line_number":270,"context_line":"                \u0027in_tree\u0027: uuidsentinel.grandchild_rp,"},{"line_number":271,"context_line":"            }"},{"line_number":272,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_79db761a","line":269,"range":{"start_line":269,"start_character":29,"end_line":269,"end_character":49},"in_reply_to":"5f7c97a3_be6d7433","updated":"2018-05-09 13:21:46.000000000","message":"yep.","commit_id":"052cefcf43fcf828e5a9c5a1212a3bc90b4c1bbe"}]}
