)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d7aa1f02a9d6de14c8a02b5f89c8ccc50c8010d0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"compute nodes alongside the stuff we want to be able to update"},{"line_number":13,"context_line":"in a manual fashion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Fucntional test confirm that created resource providers are in"},{"line_number":16,"context_line":"fact listed when we get_all."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Partially Implements: blueprint generic-resource-pools"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5a9d85d2_d0ee478a","line":15,"updated":"2016-06-21 13:09:53.000000000","message":"/Fucntional test confirm/A functional test confirms/","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e71253d16f5ec8af378ed5a5fc86c27e075f87","unresolved":false,"context_lines":[{"line_number":12,"context_line":"compute nodes alongside the stuff we want to be able to update"},{"line_number":13,"context_line":"in a manual fashion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Fucntional test confirm that created resource providers are in"},{"line_number":16,"context_line":"fact listed when we get_all."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Partially Implements: blueprint generic-resource-pools"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5a9d85d2_623532d9","line":15,"updated":"2016-06-20 18:05:07.000000000","message":"s/Fucntional/Functional/\n\nAlso maybe make this sentence a little more readable? :)","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"907b99f535c2dbf82ada7f8276f10491829e6bca","unresolved":false,"context_lines":[{"line_number":12,"context_line":"compute nodes alongside the stuff we want to be able to update"},{"line_number":13,"context_line":"in a manual fashion."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"A funictional test confirmw that created resource providers are in"},{"line_number":16,"context_line":"fact listed when we get_all."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Authored-By: Sylvain Bauza \u003csbauza@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"3aaa91ec_364edc96","line":15,"updated":"2016-06-27 22:03:32.000000000","message":"f* vim","commit_id":"29ce77acc224e6659b5ffbf6b37c1f3d78deab16"}],"nova/objects/resource_provider.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d7aa1f02a9d6de14c8a02b5f89c8ccc50c8010d0","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        return query.all()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @base.remotable_classmethod"},{"line_number":354,"context_line":"    def get_all(cls, context):"},{"line_number":355,"context_line":"        resource_providers \u003d cls._get_all_from_db(context)"},{"line_number":356,"context_line":"        return base.obj_make_list(context, cls(context),"},{"line_number":357,"context_line":"                                  objects.ResourceProvider, resource_providers)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a9d85d2_70e1539a","line":354,"updated":"2016-06-21 13:09:53.000000000","message":"Agreed with Dan here. I think it would be wise to start off with get_all_by_filters(cls, context, filters\u003dNone).","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e71253d16f5ec8af378ed5a5fc86c27e075f87","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        return query.all()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @base.remotable_classmethod"},{"line_number":354,"context_line":"    def get_all(cls, context):"},{"line_number":355,"context_line":"        resource_providers \u003d cls._get_all_from_db(context)"},{"line_number":356,"context_line":"        return base.obj_make_list(context, cls(context),"},{"line_number":357,"context_line":"                                  objects.ResourceProvider, resource_providers)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a9d85d2_a2055ac3","line":354,"updated":"2016-06-20 18:05:07.000000000","message":"This could still be rather large, right? And, I feel like there will eventually be the need to look at compute nodes too.\n\nI\u0027d much prefer to have a more generic method here, like get_all_by_filters(), where you could do something like pass {\"can_host\": 0} or something.\n\nAlso, what about a way to query for just resource providers that have a particular type of inventory? I.e. \"resource providers with disk\".\n\nWe don\u0027t have to prematurely optimize this to death, but this seems naively simple such that we\u0027ll just have to bump the object and add another interface rather soon. No?","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"fe30b24d3686ab3bf1cce8ecbfdbfff71092dba1","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        return query.all()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @base.remotable_classmethod"},{"line_number":354,"context_line":"    def get_all(cls, context):"},{"line_number":355,"context_line":"        resource_providers \u003d cls._get_all_from_db(context)"},{"line_number":356,"context_line":"        return base.obj_make_list(context, cls(context),"},{"line_number":357,"context_line":"                                  objects.ResourceProvider, resource_providers)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_3fe69ab4","line":354,"in_reply_to":"5a9d85d2_70e1539a","updated":"2016-06-22 13:12:54.000000000","message":"Yeah, that makes sense. I\u0027m unlikely to get to this at all this week, so if somebody else wants to give it a go, I\u0027m cool with that.","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"a29e16c42131ee52e3532f0ef3b085ea940a8055","unresolved":false,"context_lines":[{"line_number":351,"context_line":"    @staticmethod"},{"line_number":352,"context_line":"    @db_api.api_context_manager.reader"},{"line_number":353,"context_line":"    def _get_all_by_filters_from_db(context, filters):"},{"line_number":354,"context_line":"        if not filters:"},{"line_number":355,"context_line":"            filters \u003d {}"},{"line_number":356,"context_line":"        query \u003d context.session.query(models.ResourceProvider)"},{"line_number":357,"context_line":"        if \u0027name\u0027 in filters:"},{"line_number":358,"context_line":"            query \u003d query.filter_by(name\u003dfilters[\u0027name\u0027])"},{"line_number":359,"context_line":"        query \u003d query.filter_by(can_host\u003dfilters.get(\u0027can_host\u0027, 0))"},{"line_number":360,"context_line":"        return query.all()"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    @base.remotable_classmethod"}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_8a73a04d","line":359,"range":{"start_line":354,"start_character":8,"end_line":359,"end_character":68},"updated":"2016-06-30 03:59:39.000000000","message":"Filter by uuid as well?\n\nOr be more generic like(tested in my env):\n\n  if filters is None:\n      filters \u003d {\u0027can_host\u0027: 0}\n  query \u003d context.session.query(models.ResourceProvider)\n  query \u003d query.filter_by(**filters)","commit_id":"0192858e7d1956b8d58d334b3305c30854f51a03"}],"nova/tests/functional/db/test_resource_provider.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e71253d16f5ec8af378ed5a5fc86c27e075f87","unresolved":false,"context_lines":[{"line_number":314,"context_line":"            rp.create()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        resource_providers \u003d objects.ResourceProviderList.get_all(self.context)"},{"line_number":317,"context_line":"        self.assertEqual(2, len(resource_providers))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a9d85d2_828dbe33","line":317,"updated":"2016-06-20 18:05:07.000000000","message":"This should test the filter.","commit_id":"5dea9c0dc35768a96659e1872a73f278528bdd2a"}]}
