)]}'
{"gnocchi/indexer/alembic/versions/1c2c61ac1f4c_add_original_resource_id_column.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"10922182e13628bb895ad2b1f59139096a4e3cdb","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def upgrade():"},{"line_number":35,"context_line":"    op.add_column(\u0027resource\u0027, sa.Column(\u0027original_resource_id\u0027,"},{"line_number":36,"context_line":"                                        sa.String(length\u003d255),"},{"line_number":37,"context_line":"                                        nullable\u003dTrue))"},{"line_number":38,"context_line":"    op.add_column(\u0027resource_history\u0027, sa.Column(\u0027original_resource_id\u0027,"},{"line_number":39,"context_line":"                                                sa.String(length\u003d255),"},{"line_number":40,"context_line":"                                                nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_cb45f06e","line":37,"updated":"2016-02-02 07:51:48.000000000","message":"nullable? Why?","commit_id":"1a970a3818e6fc9ce0d8e8a79c860fe84b8baa0d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4b3e9cfbac9a59e80b139e155f3f3d4d3bea1262","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def upgrade():"},{"line_number":35,"context_line":"    op.add_column(\u0027resource\u0027, sa.Column(\u0027original_resource_id\u0027,"},{"line_number":36,"context_line":"                                        sa.String(length\u003d255),"},{"line_number":37,"context_line":"                                        nullable\u003dTrue))"},{"line_number":38,"context_line":"    op.add_column(\u0027resource_history\u0027, sa.Column(\u0027original_resource_id\u0027,"},{"line_number":39,"context_line":"                                                sa.String(length\u003d255),"},{"line_number":40,"context_line":"                                                nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_5c578857","line":37,"in_reply_to":"7a5de9d1_cb45f06e","updated":"2016-02-03 03:45:28.000000000","message":"For old data stored in db, we have no way to tell the resourced_id in DB is user supplied or gnocchi hacked, so here I leave it null for all old data in the database.","commit_id":"1a970a3818e6fc9ce0d8e8a79c860fe84b8baa0d"}],"gnocchi/rest/__init__.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"50806a64b312971699a1617a97b6469d80321e61","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"def deserialize_and_validate(schema, required\u003dTrue,"},{"line_number":175,"context_line":"                             save_original_resource_id\u003dFalse):"},{"line_number":176,"context_line":"    params \u003d deserialize()"},{"line_number":177,"context_line":"    try:"},{"line_number":178,"context_line":"        data \u003d voluptuous.Schema(schema, required\u003drequired)(params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_6eedaa8a","line":175,"updated":"2016-01-28 10:51:24.000000000","message":"Can you hack ResourceSchema rather than this function to achieve that please? :)","commit_id":"bfd20596714eb9a6f7c59b0f4bf6e76687afcb65"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"6443932d197d08d2149375775e77463376b12e72","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"def deserialize_and_validate(schema, required\u003dTrue,"},{"line_number":175,"context_line":"                             save_original_resource_id\u003dFalse):"},{"line_number":176,"context_line":"    params \u003d deserialize()"},{"line_number":177,"context_line":"    try:"},{"line_number":178,"context_line":"        data \u003d voluptuous.Schema(schema, required\u003drequired)(params)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_49b75386","line":175,"in_reply_to":"7a5de9d1_6eedaa8a","updated":"2016-01-29 05:49:58.000000000","message":"Done","commit_id":"bfd20596714eb9a6f7c59b0f4bf6e76687afcb65"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"486dbb6e5869766ef47d6bcc32b4c69c6cac9290","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    return params"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def deserialize_and_validate(schema, required\u003dTrue,"},{"line_number":176,"context_line":"                             schema_cls\u003dvoluptuous.Schema):"},{"line_number":177,"context_line":"    try:"},{"line_number":178,"context_line":"        return schema_cls(schema, required\u003drequired)(deserialize())"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_a7cd6732","line":175,"updated":"2016-02-01 16:40:41.000000000","message":"They are no need to change this method.","commit_id":"02207cdda61b724cb6ee66e787a5faf6ea838a0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"486dbb6e5869766ef47d6bcc32b4c69c6cac9290","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        voluptuous.Optional(\u0027project_id\u0027): voluptuous.Any(None, UUID),"},{"line_number":811,"context_line":"        voluptuous.Optional(\u0027metrics\u0027): MetricsSchema,"},{"line_number":812,"context_line":"        voluptuous.Optional(\u0027original_resource_id\u0027): voluptuous.Any("},{"line_number":813,"context_line":"            None, six.text_type),"},{"line_number":814,"context_line":"    }"},{"line_number":815,"context_line":"    base_schema.update(schema)"},{"line_number":816,"context_line":"    return base_schema"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_0c7b42c2","line":813,"updated":"2016-02-01 16:40:41.000000000","message":"I don\u0027t think we should allow the user to send this field.\nWe always override it. It will be confusing","commit_id":"02207cdda61b724cb6ee66e787a5faf6ea838a0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"486dbb6e5869766ef47d6bcc32b4c69c6cac9290","unresolved":false,"context_lines":[{"line_number":813,"context_line":"            None, six.text_type),"},{"line_number":814,"context_line":"    }"},{"line_number":815,"context_line":"    base_schema.update(schema)"},{"line_number":816,"context_line":"    return base_schema"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"class ResourceController(rest.RestController):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_c7e423ad","line":816,"updated":"2016-02-01 16:40:41.000000000","message":"I would propose to change the schema like this:\n\ndef ResourceSchema(schema):\n    baseschema \u003d {\n        \"id\": utils.ResourceUUID,\n        ...\n    }\n    baseschema.update(schema)\n\n    @functools.wraps(ResourceSchema)\n    def f(v):\n        # NOTE(sileht): if that not a dict, lets voluptuous raise errors\n        if isinstance(v, dict):\n            rid \u003d v.get(\u0027id\u0027)\n        res \u003d voluptuous.Schema(baseschema)(v)\n        res[\"original_resource_id\"] \u003d six.text_type(rid)\n        return res\n    return f","commit_id":"02207cdda61b724cb6ee66e787a5faf6ea838a0a"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"e2736d23224e06eed552469178e89c492214f59f","unresolved":false,"context_lines":[{"line_number":813,"context_line":"            None, six.text_type),"},{"line_number":814,"context_line":"    }"},{"line_number":815,"context_line":"    base_schema.update(schema)"},{"line_number":816,"context_line":"    return base_schema"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"class ResourceController(rest.RestController):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_bf58f98a","line":816,"in_reply_to":"7a5de9d1_c7e423ad","updated":"2016-02-02 03:18:17.000000000","message":"@sileht, thank you very much for the comment, it\u0027s nicer and cleaner :)","commit_id":"02207cdda61b724cb6ee66e787a5faf6ea838a0a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"10922182e13628bb895ad2b1f59139096a4e3cdb","unresolved":false,"context_lines":[{"line_number":828,"context_line":""},{"line_number":829,"context_line":"    @functools.wraps(ResourceSchema)"},{"line_number":830,"context_line":"    def f(v):"},{"line_number":831,"context_line":"        # NOTE(sileht): if that not a dict, lets voluptuous raise errors"},{"line_number":832,"context_line":"        if isinstance(v, dict):"},{"line_number":833,"context_line":"            rid \u003d v.get(\u0027id\u0027)"},{"line_number":834,"context_line":"        res \u003d voluptuous.Schema(base_schema)(v)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_2b57e426","line":831,"updated":"2016-02-02 07:51:48.000000000","message":"s/lets/let/","commit_id":"1a970a3818e6fc9ce0d8e8a79c860fe84b8baa0d"}]}
