)]}'
{"nova/objects/resource_provider.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"d8e2a1b769c06c365a588e29cf5320337152a9c7","unresolved":false,"context_lines":[{"line_number":658,"context_line":"@base.NovaObjectRegistry.register"},{"line_number":659,"context_line":"class UsageList(base.ObjectListBase, base.NovaObject):"},{"line_number":660,"context_line":"    # Version 1.0: Initial version"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    fields \u003d {"},{"line_number":663,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027Usage\u0027),"},{"line_number":664,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":59,"id":"3ac371cc_61e1d19a","line":661,"updated":"2016-08-18 20:03:13.000000000","message":"You don\u0027t actually specify the version. It does end up being defined on the base class in oslo.versionedobjects but it would be better to have it here as well.","commit_id":"40a1f4832bb35ff8537f60725df2d9a9e4afa5af"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f4416053e02e1c1a33e7138b191903c25e926cd5","unresolved":false,"context_lines":[{"line_number":678,"context_line":"                                     models.Allocation.resource_class_id))"},{"line_number":679,"context_line":"                 .filter(models.ResourceProvider.uuid \u003d\u003d rp_uuid)"},{"line_number":680,"context_line":"                 .group_by(models.Inventory.resource_class_id))"},{"line_number":681,"context_line":"        # TODO(cdent): There\u0027s a smoother way, yes?"},{"line_number":682,"context_line":"        result \u003d [dict(resource_class_id\u003ditem[0], usage\u003ditem[1])"},{"line_number":683,"context_line":"                  for item in query.all()]"},{"line_number":684,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":59,"id":"3ac371cc_6ea9c07b","line":681,"updated":"2016-08-18 19:34:49.000000000","message":"meh, not really :) this is fine...","commit_id":"40a1f4832bb35ff8537f60725df2d9a9e4afa5af"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"d8e2a1b769c06c365a588e29cf5320337152a9c7","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        usage_list \u003d cls._get_all_by_resource_provider_uuid("},{"line_number":689,"context_line":"            context, rp_uuid)"},{"line_number":690,"context_line":"        return base.obj_make_list("},{"line_number":691,"context_line":"            context, cls(context), objects.Usage, usage_list)"}],"source_content_type":"text/x-python","patch_set":59,"id":"3ac371cc_21f4f985","line":691,"range":{"start_line":691,"start_character":35,"end_line":691,"end_character":43},"updated":"2016-08-18 20:03:13.000000000","message":"You don\u0027t need to qualify Usage here.","commit_id":"40a1f4832bb35ff8537f60725df2d9a9e4afa5af"}],"nova/tests/functional/db/test_resource_provider.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f4416053e02e1c1a33e7138b191903c25e926cd5","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        usage_list \u003d objects.UsageList.get_all_by_resource_provider_uuid("},{"line_number":628,"context_line":"            self.context, db_rp.uuid)"},{"line_number":629,"context_line":"        self.assertEqual(2, len(usage_list))"}],"source_content_type":"text/x-python","patch_set":59,"id":"3ac371cc_ce29d4f4","line":629,"updated":"2016-08-18 19:34:49.000000000","message":"++ Excellent tests.","commit_id":"40a1f4832bb35ff8537f60725df2d9a9e4afa5af"}]}
