)]}'
{"gnocchi/indexer/alembic/versions/397987e38570_no_more_slash.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"e830a3f54640b891e2042ba32fbd24ac88f840b0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"branch_labels \u003d None"},{"line_number":35,"context_line":"depends_on \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"resourcehelper \u003d sa.Table("},{"line_number":38,"context_line":"    \u0027resource\u0027,"},{"line_number":39,"context_line":"    sa.MetaData(),"},{"line_number":40,"context_line":"    sa.Column(\u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_e7cf0154","line":37,"updated":"2017-01-11 16:42:25.000000000","message":"why helper as a suffix?","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"91c2ef57dddd32a56538a292a9cf8f88189d99eb","unresolved":false,"context_lines":[{"line_number":34,"context_line":"branch_labels \u003d None"},{"line_number":35,"context_line":"depends_on \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"resourcehelper \u003d sa.Table("},{"line_number":38,"context_line":"    \u0027resource\u0027,"},{"line_number":39,"context_line":"    sa.MetaData(),"},{"line_number":40,"context_line":"    sa.Column(\u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a57fde8_353e18b9","line":37,"in_reply_to":"ba5201f7_e7cf0154","updated":"2017-01-12 08:59:42.000000000","message":"Done. That was a copy/paste from an other migration script","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"e830a3f54640b891e2042ba32fbd24ac88f840b0","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                tablehelper.c.original_resource_id.like(\u0027%/%\u0027))):"},{"line_number":73,"context_line":"            new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":74,"context_line":"                \u0027/\u0027, \u0027_\u0027)"},{"line_number":75,"context_line":"            new_id \u003d uuid.uuid5(utils.RESOURCE_ID_NAMESPACE,"},{"line_number":76,"context_line":"                                new_original_resource_id)"},{"line_number":77,"context_line":"            connection.execute("},{"line_number":78,"context_line":"                tablehelper.update().where("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_472c4d02","line":75,"updated":"2017-01-11 16:42:25.000000000","message":"while I understand the why, I wonder if it\u0027s a good idea to change the id of the resources\n\ni guess it does not really matter","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"91c2ef57dddd32a56538a292a9cf8f88189d99eb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                tablehelper.c.original_resource_id.like(\u0027%/%\u0027))):"},{"line_number":73,"context_line":"            new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":74,"context_line":"                \u0027/\u0027, \u0027_\u0027)"},{"line_number":75,"context_line":"            new_id \u003d uuid.uuid5(utils.RESOURCE_ID_NAMESPACE,"},{"line_number":76,"context_line":"                                new_original_resource_id)"},{"line_number":77,"context_line":"            connection.execute("},{"line_number":78,"context_line":"                tablehelper.update().where("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a57fde8_b56208ac","line":75,"in_reply_to":"ba5201f7_150b442b","updated":"2017-01-12 08:59:42.000000000","message":"Also, if we don\u0027t change the id, ceilometer resource with \u0027/\u0027 will be duplicate with an new id.","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"6345c53e04764a168846e1784b09e5783bb394f5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                tablehelper.c.original_resource_id.like(\u0027%/%\u0027))):"},{"line_number":73,"context_line":"            new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":74,"context_line":"                \u0027/\u0027, \u0027_\u0027)"},{"line_number":75,"context_line":"            new_id \u003d uuid.uuid5(utils.RESOURCE_ID_NAMESPACE,"},{"line_number":76,"context_line":"                                new_original_resource_id)"},{"line_number":77,"context_line":"            connection.execute("},{"line_number":78,"context_line":"                tablehelper.update().where("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_150b442b","line":75,"in_reply_to":"ba5201f7_472c4d02","updated":"2017-01-11 19:24:05.000000000","message":"This is to not break a user that use an old gnocchiclient (with enforced uuid5 on client side) on a new server.\n\nBut the user have already to replace \u0027/\u0027 to \u0027_\u0027 in their commandline, so perhaps it can upgrade its client too :)","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a58e98afb5c41d1d4414986c65f5c71806b2c0ab","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            )"},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if resource.type !\u003d \"generic\":"},{"line_number":140,"context_line":"            rtable \u003d resource_type_tables[resource.type]"},{"line_number":141,"context_line":"            htable \u003d resource_type_tables[\"%s_history\" % resource.type]"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_366740b8","line":139,"updated":"2017-01-17 19:50:58.000000000","message":"why does this not need to upgraded? i forget what this table looks like","commit_id":"fece42914520a66dc6b613e43d502c5aa3fa714e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ed5532ed3a81231b4533c1fd2ea2f8645be876e1","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            )"},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if resource.type !\u003d \"generic\":"},{"line_number":140,"context_line":"            rtable \u003d resource_type_tables[resource.type]"},{"line_number":141,"context_line":"            htable \u003d resource_type_tables[\"%s_history\" % resource.type]"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_ca464b7a","line":139,"in_reply_to":"7a3c09a3_366740b8","updated":"2017-01-17 21:26:25.000000000","message":"The generic type does not have an extra table for its extra attribute.","commit_id":"fece42914520a66dc6b613e43d502c5aa3fa714e"}],"gnocchi/rest/__init__.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"e830a3f54640b891e2042ba32fbd24ac88f840b0","unresolved":false,"context_lines":[{"line_number":499,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":502,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":503,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":504,"context_line":"        if archive_policy_name is None:"},{"line_number":505,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_a7b259e3","line":502,"updated":"2017-01-11 16:42:25.000000000","message":"name is validated as being a string so it cannot be \"false\".\n\nI wonder if you could add the \u0027/\u0027 in the definition on L488 (for fun? :) not a big deal otherwise.","commit_id":"8726b4df88c668e9e50613e2b68386925dc6b903"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"05034b3db14bc219fd70c95c633e53e3a7f6da01","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_d09a2ec5","line":491,"updated":"2017-01-13 08:50:53.000000000","message":"i think i said it but name is always true","commit_id":"f581e621521b337036d2a0f8c9578d3801086b00"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"52dc91eafe808a862e1125c270c8ae453d80fcc9","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_03737281","line":491,"updated":"2017-01-13 18:16:33.000000000","message":"if the routing goes mad, why would it ever get to this point? would it not just enter _lookup and fail there as it parses part of the id into *remainder","commit_id":"a9a6c09a6bc86bb6360a8e2a398a29ba663e3a96"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2d622b827964d3a5483a49c84ca8cd85e41fb0e7","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_ef4ba729","line":491,"in_reply_to":"7a3c09a3_03737281","updated":"2017-01-13 19:50:40.000000000","message":"because the id is in the POST body in some requests","commit_id":"a9a6c09a6bc86bb6360a8e2a398a29ba663e3a96"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"a3a865cc563bd11ada75afe1d11c08e272c136b6","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_023165ec","line":491,"range":{"start_line":491,"start_character":11,"end_line":491,"end_character":15},"updated":"2017-01-16 16:44:52.000000000","message":"i told ya name is always true","commit_id":"fece42914520a66dc6b613e43d502c5aa3fa714e"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"97fb5eee89e977fb7d10a7cbd4d6b629ce4f3875","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_be6c2936","line":491,"range":{"start_line":491,"start_character":11,"end_line":491,"end_character":15},"in_reply_to":"7a3c09a3_023165ec","updated":"2017-01-16 19:06:38.000000000","message":"The testing suite doesn\u0027t agree. When a voluptuous.Schema have another voluptuous.Schema inside, the second doesn\u0027t inherit the required\u003dTrue from the first one. So nothing in _MetricSchema is required, and we have many place in test where the name is not set.","commit_id":"fece42914520a66dc6b613e43d502c5aa3fa714e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3cbc40072c3b5a3a067bae28a8a99b19e83d0ae6","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        archive_policy_name \u003d definition.get(\u0027archive_policy_name\u0027)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        name \u003d definition.get(\u0027name\u0027)"},{"line_number":491,"context_line":"        if name and \u0027/\u0027 in name:"},{"line_number":492,"context_line":"            abort(400, \"\u0027/\u0027 is not supported in metric name\")"},{"line_number":493,"context_line":"        if archive_policy_name is None:"},{"line_number":494,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_98713dab","line":491,"range":{"start_line":491,"start_character":11,"end_line":491,"end_character":15},"in_reply_to":"7a3c09a3_be6c2936","updated":"2017-01-16 21:10:14.000000000","message":"haaaaaa that\u0027s why we have test suite and not only me lol\n\nthanks Mehdi","commit_id":"fece42914520a66dc6b613e43d502c5aa3fa714e"}]}
