)]}'
{"nova/objects/resource_provider.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f1977493e6557b65387b99c5cdfa72d2de11b8b3","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    }"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    allowed_filters \u003d ("},{"line_number":537,"context_line":"        # TODO(cdent): The name aggregate is not great."},{"line_number":538,"context_line":"        \u0027name\u0027, \u0027uuid\u0027, \u0027aggregate\u0027"},{"line_number":539,"context_line":"    )"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_7098b478","line":537,"updated":"2016-12-06 20:09:23.000000000","message":"Instead of just \"aggregate\" you could go with \"assoc_with_aggregate\"? This is wordier but explicit/clear.","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a40d3e49f00bcb780892bad56badf851f9709377","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    }"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    allowed_filters \u003d ("},{"line_number":537,"context_line":"        # TODO(cdent): The name aggregate is not great."},{"line_number":538,"context_line":"        \u0027name\u0027, \u0027uuid\u0027, \u0027aggregate\u0027"},{"line_number":539,"context_line":"    )"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_d96613ba","line":537,"in_reply_to":"3a71b18c_7098b478","updated":"2016-12-06 20:53:59.000000000","message":"seems like a good plan","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f1977493e6557b65387b99c5cdfa72d2de11b8b3","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        if not filters:"},{"line_number":545,"context_line":"            filters \u003d {}"},{"line_number":546,"context_line":"        query \u003d context.session.query(models.ResourceProvider)"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"        for attr in ResourceProviderList.allowed_filters:"},{"line_number":549,"context_line":"            if attr in filters:"},{"line_number":550,"context_line":"                if attr \u003d\u003d \u0027aggregate\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_50b2d8e5","line":547,"updated":"2016-12-06 20:09:23.000000000","message":"nit: unrelated whitespace addition. bad boy.","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a40d3e49f00bcb780892bad56badf851f9709377","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        if not filters:"},{"line_number":545,"context_line":"            filters \u003d {}"},{"line_number":546,"context_line":"        query \u003d context.session.query(models.ResourceProvider)"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"        for attr in ResourceProviderList.allowed_filters:"},{"line_number":549,"context_line":"            if attr in filters:"},{"line_number":550,"context_line":"                if attr \u003d\u003d \u0027aggregate\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_79fc1fb8","line":547,"in_reply_to":"3a71b18c_50b2d8e5","updated":"2016-12-06 20:53:59.000000000","message":"/me shakes tiny fist\n\nI\u0027ll get rid of it but I started to be unable to read the next section because of the lack of visual break","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f1977493e6557b65387b99c5cdfa72d2de11b8b3","unresolved":false,"context_lines":[{"line_number":556,"context_line":"                        [_RP_AGG_TBL.c.resource_provider_id]).select_from("},{"line_number":557,"context_line":"                            join_statement)"},{"line_number":558,"context_line":"                    query \u003d query.filter(models.ResourceProvider.id.in_("},{"line_number":559,"context_line":"                        rps_in_aggregates))"},{"line_number":560,"context_line":"                else:"},{"line_number":561,"context_line":"                    query \u003d query.filter("},{"line_number":562,"context_line":"                        getattr(models.ResourceProvider, attr) \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_538582cc","line":559,"updated":"2016-12-06 20:09:23.000000000","message":"sure, this works. alternately, you could use a join directly against the resource_provider_aggregates table (and aggregates table) and applied a distinct() operation to the query instead of using a subquery in the WHERE clause.","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a40d3e49f00bcb780892bad56badf851f9709377","unresolved":false,"context_lines":[{"line_number":556,"context_line":"                        [_RP_AGG_TBL.c.resource_provider_id]).select_from("},{"line_number":557,"context_line":"                            join_statement)"},{"line_number":558,"context_line":"                    query \u003d query.filter(models.ResourceProvider.id.in_("},{"line_number":559,"context_line":"                        rps_in_aggregates))"},{"line_number":560,"context_line":"                else:"},{"line_number":561,"context_line":"                    query \u003d query.filter("},{"line_number":562,"context_line":"                        getattr(models.ResourceProvider, attr) \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_99e57b0a","line":559,"in_reply_to":"3a71b18c_538582cc","updated":"2016-12-06 20:53:59.000000000","message":"The above is a translation of _get_aggregates to the local purpose. Unless there\u0027s some benefit to using the version using distinct(), I\u0027ll just leave it as is: no likely distinct().","commit_id":"bc8444546cc26a61a3206d3a9a31d2075c9a32ba"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7606b3313df8e34d855986409315d149d4bf64b5","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    }"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    allowed_filters \u003d ("},{"line_number":537,"context_line":"        \u0027name\u0027, \u0027uuid\u0027, \u0027assoc_with_aggregate\u0027"},{"line_number":538,"context_line":"    )"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_9a6ba684","line":537,"range":{"start_line":537,"start_character":25,"end_line":537,"end_character":45},"updated":"2016-12-07 00:00:36.000000000","message":"Really dislike this term. I\u0027d prefer \u0027in_aggregate\u0027 or just plain \u0027aggregate\u0027.","commit_id":"8ceed01e82db0e3fb087646043a6894cf0ccddd8"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"50534fe5c794c5f7ecfa668c64cfbac08495d99e","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    }"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    allowed_filters \u003d ("},{"line_number":537,"context_line":"        \u0027name\u0027, \u0027uuid\u0027, \u0027assoc_with_aggregate\u0027"},{"line_number":538,"context_line":"    )"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_53e485aa","line":537,"in_reply_to":"3a71b18c_9a6ba684","updated":"2016-12-07 11:21:03.000000000","message":"aggregate was what it was originally but I had some concerns that it was misleading. If taken at face value it implies \"resource providers that have these aggregates\" but what this really means are \"resource providers which are members of any of these aggregates\".\n\nI\u0027m not sure what a good name for that is.","commit_id":"8ceed01e82db0e3fb087646043a6894cf0ccddd8"}],"nova/tests/functional/db/test_resource_provider.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d90775c1c84fe791f57d5177c6495a5c78be5c39","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        resource_providers \u003d objects.ResourceProviderList.get_all_by_filters("},{"line_number":678,"context_line":"            self.context, filters\u003d{\u0027member_of\u0027:"},{"line_number":679,"context_line":"                                   [uuidsentinel.agg_1, uuidsentinel.agg_2]})"},{"line_number":680,"context_line":"        self.assertEqual(0, len(resource_providers))"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_02569acd","line":679,"range":{"start_line":679,"start_character":49,"end_line":679,"end_character":54},"updated":"2017-01-05 13:42:05.000000000","message":"Nit: I guess I would have done agg_c and agg_d, unless I am missing something, but this is clear enough.","commit_id":"a29b1ee419c79da75da3ff59795dba6590c75f85"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5812588f3b5515db2fe96a1a7b387da99d8d0184","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"        resource_providers \u003d objects.ResourceProviderList.get_all_by_filters("},{"line_number":678,"context_line":"            self.context, filters\u003d{\u0027member_of\u0027:"},{"line_number":679,"context_line":"                                   [uuidsentinel.agg_1, uuidsentinel.agg_2]})"},{"line_number":680,"context_line":"        self.assertEqual(0, len(resource_providers))"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_90c65066","line":679,"in_reply_to":"ba5201f7_02569acd","updated":"2017-01-05 14:29:57.000000000","message":"That\u0027s a vague attempt at indiciating that agg_1 and agg_2 were never created nor associated with anything, thus the 0 result, whereas things in the \u0027a\u0027, \u0027b\u0027 series were.","commit_id":"a29b1ee419c79da75da3ff59795dba6590c75f85"}]}
