)]}'
{"gnocchi/rest/__init__.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"62cb55ccb4d091dfa4358b330c3d161de938adbe","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    @pecan.expose()"},{"line_number":240,"context_line":"    def patch(self):"},{"line_number":241,"context_line":"        if getattr(self, \"read_only\", False):"},{"line_number":242,"context_line":"            pecan.abort(403, \"Unable to create resource\")"},{"line_number":243,"context_line":"        # NOTE(jd) Can\u0027t use vexpose because it does not take into account"},{"line_number":244,"context_line":"        # inheritance"},{"line_number":245,"context_line":"        body \u003d deserialize(self.ResourcePatch)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_c48bb31c","line":242,"updated":"2014-09-17 16:22:57.000000000","message":"Seems like a copy\u0027n\u0027paste error on the message from line 306 as the intent here is to disallow *updating* the resource, right, as opposed to creating one?","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c5751e568c15241321645025a1d8b90572379b87","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    @pecan.expose()"},{"line_number":240,"context_line":"    def patch(self):"},{"line_number":241,"context_line":"        if getattr(self, \"read_only\", False):"},{"line_number":242,"context_line":"            pecan.abort(403, \"Unable to create resource\")"},{"line_number":243,"context_line":"        # NOTE(jd) Can\u0027t use vexpose because it does not take into account"},{"line_number":244,"context_line":"        # inheritance"},{"line_number":245,"context_line":"        body \u003d deserialize(self.ResourcePatch)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_3a465a22","line":242,"in_reply_to":"fa98f980_c48bb31c","updated":"2014-09-17 17:18:22.000000000","message":"Right!","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8f97828c75cc9e98ac8f954c2f10d2c060a99d14","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    })"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"class EntitiesResourcesController(GenericResourcesController):"},{"line_number":377,"context_line":"    _resource_type \u003d \u0027entity\u0027"},{"line_number":378,"context_line":"    _resource_rest_class \u003d EntityResourceController"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_60ba1073","line":376,"updated":"2014-09-16 18:37:59.000000000","message":"Sorry, I think I\u0027m missing the point here of treating an entity as if it was a resource, on par with say an instance or an image for example. Can you explain the design reasoning a bit?","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c5751e568c15241321645025a1d8b90572379b87","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    })"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"class EntitiesResourcesController(GenericResourcesController):"},{"line_number":377,"context_line":"    _resource_type \u003d \u0027entity\u0027"},{"line_number":378,"context_line":"    _resource_rest_class \u003d EntityResourceController"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_1aa19695","line":376,"in_reply_to":"fa98f980_2400ff34","updated":"2014-09-17 17:18:22.000000000","message":"Yeah so the model indicates an entity can have entity. That\u0027s meta indeed. :-) I\u0027m not sure it\u0027s a problem as you could imagine metering the number of seconds needed to have a measure on an entity, so that\u0027s a measure on a entity.\n\nOTOH, this patch disallow manipulating entities as resources (/v1/resource) so you can\u0027t actually do that.\n\nI see 2 options:\n\n1. we allow entities of entities and circular dependencies – which shouldn\u0027t be a huge deal I guess?\n2. we change and adapt the data model","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"62cb55ccb4d091dfa4358b330c3d161de938adbe","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    })"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"class EntitiesResourcesController(GenericResourcesController):"},{"line_number":377,"context_line":"    _resource_type \u003d \u0027entity\u0027"},{"line_number":378,"context_line":"    _resource_rest_class \u003d EntityResourceController"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_2400ff34","line":376,"in_reply_to":"fa98f980_34111c54","updated":"2014-09-17 16:22:57.000000000","message":"A-ha, I see.\n\nBut that brings up a question on the impact of the previous patch, do we now have a circularity issue?\n\ni.e. rebasing gnocchi.indexer.sqlalchemy.Entity to subclass from Resource, where Resource already includes a reference to a set of Entities:\n\n  https://github.com/stackforge/gnocchi/blob/master/gnocchi/indexer/sqlalchemy.py#L136\n\nIt doesn\u0027t seem to make sense to allow an Entity refer to a bunch of other Entities, in the same way as it would do so for the previous meaning of Resource.","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"73d2233cd938366419c3bcd81484b864f9cceab8","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    })"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"class EntitiesResourcesController(GenericResourcesController):"},{"line_number":377,"context_line":"    _resource_type \u003d \u0027entity\u0027"},{"line_number":378,"context_line":"    _resource_rest_class \u003d EntityResourceController"},{"line_number":379,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_34111c54","line":376,"in_reply_to":"fa98f980_60ba1073","updated":"2014-09-17 09:11:20.000000000","message":"This allow tracking creation/deletion of entity (using timestamps), owner (user/project).\n\nAs Nova is providing instances or Swift is providing containers, Gnocchi is providing entities to store data. So we just expose them as regular resources here too.\n\nAlso the fact that in the last patch we move the entities as resources in the indexer in the last patch triggers that we now will receive created entities when listing resources via GET /v1/resources/generic","commit_id":"9907e74279adbaa61dd0f185d07688363e43f169"}]}
