)]}'
{"gnocchi/indexer/alembic/versions/397987e38570_no_more_slash_and_reencode.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"4c73667370fb5f96169b80bae7ec90cf20a0c20e","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    for resource in connection.execute(resource_table.select()):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        try:"},{"line_number":107,"context_line":"            orig_as_uuid \u003d uuid.UUID("},{"line_number":108,"context_line":"                str(resource_table.c.original_resource_id))"},{"line_number":109,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_011b7173","line":106,"updated":"2017-01-26 09:24:50.000000000","message":"sniff...","commit_id":"5213daa48f7e7fc7b5aed7da9c368fbb8efa87c7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa670dfbf42c0803f613aa8fab57a1d4869f8369","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    for resource in connection.execute(resource_table.select()):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if resource_table.c.original_resource_id is None:"},{"line_number":107,"context_line":"            # statsd resource has no original_resource_id and is NULL"},{"line_number":108,"context_line":"            continue"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            orig_as_uuid \u003d uuid.UUID("}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_97a1b148","line":108,"range":{"start_line":106,"start_character":0,"end_line":108,"end_character":20},"updated":"2017-01-31 17:12:42.000000000","message":"why doesn\u0027t it have original_resource_id? we need to run this regardless if it\u0027s original_resource_id is a valid uuid. it needs to be scoped to creator.","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    for resource in connection.execute(resource_table.select()):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if resource_table.c.original_resource_id is None:"},{"line_number":107,"context_line":"            # statsd resource has no original_resource_id and is NULL"},{"line_number":108,"context_line":"            continue"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            orig_as_uuid \u003d uuid.UUID("}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_deeb51da","line":108,"range":{"start_line":106,"start_character":0,"end_line":108,"end_character":20},"in_reply_to":"3a461143_97a1b148","updated":"2017-01-31 18:37:03.000000000","message":"because the code in statsd.py does not set any.\n\nI don\u0027t understand the rest of your sentence. if you think you have a case that is not covered, please give me an example :)","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa670dfbf42c0803f613aa8fab57a1d4869f8369","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        except ValueError:"},{"line_number":114,"context_line":"            pass"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if orig_as_uuid \u003d\u003d resource_table.c.id:"},{"line_number":117,"context_line":"                continue"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":120,"context_line":"            \u0027/\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_b7deadda","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":24},"updated":"2017-01-31 17:12:42.000000000","message":"same","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6fa2f15b789f84177618d679c337b85972a40f1a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        except ValueError:"},{"line_number":114,"context_line":"            pass"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if orig_as_uuid \u003d\u003d resource_table.c.id:"},{"line_number":117,"context_line":"                continue"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":120,"context_line":"            \u0027/\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_327f24e1","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":24},"in_reply_to":"3a461143_1285c858","updated":"2017-01-31 20:31:17.000000000","message":"Ah I see what you mean. We could do that, thought it would also change the ID of resources whose original_id is an UUID for no good reason.\n\nSo we can do this but I see no good reason unless just saying we allow all UUID to be unique per user.\n\nBut then when a user knows its resource ID from openstack it cannot use it because the resource id from e.g. Nova is going to be encoded as a different ID because it\u0027ll be created by e.g. Ceilometer.\n\nIn the end that more or less comes down to saying that \"id\" is a uuid4() and that\u0027s it… which would be way simpler but breaks the original purpose of having the user be able to provide its own UUID.","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a66edc120474ee80b5785ac6f0e82acf51a4e3ed","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        except ValueError:"},{"line_number":114,"context_line":"            pass"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if orig_as_uuid \u003d\u003d resource_table.c.id:"},{"line_number":117,"context_line":"                continue"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":120,"context_line":"            \u0027/\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_72144c4c","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":24},"in_reply_to":"3a461143_327f24e1","updated":"2017-01-31 20:36:13.000000000","message":"yeah, i was thinking there would be complete segregation between users and that we would treat everything passed in as essentially a \u0027name\u0027 rather than an \u0027id\u0027... granted, it\u0027s a uuid, so a clash basically means you are storing the exact same resource in two different users... maybe if one was a test or something? i don\u0027t know.","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5ea58ed2372022bcdba29711e096a881dedca0ee","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        except ValueError:"},{"line_number":114,"context_line":"            pass"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if orig_as_uuid \u003d\u003d resource_table.c.id:"},{"line_number":117,"context_line":"                continue"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":120,"context_line":"            \u0027/\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_1285c858","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":24},"in_reply_to":"3a461143_3eb3750b","updated":"2017-01-31 20:22:27.000000000","message":"so in my mind, it should not matter that original_resource_id is a uuid. regardless, we need to make a new id for it because all ids should now be scoped to creator namespace. for example, i should be able to put the same uuid as original_resource_id because it could be from two different creator?\n\nbut it seems to me, there is a very non-obvious translation happening. where if a valid uuid is passed in, then it\u0027s not mapped. and if it\u0027s not a uuid, it is translated?","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        except ValueError:"},{"line_number":114,"context_line":"            pass"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if orig_as_uuid \u003d\u003d resource_table.c.id:"},{"line_number":117,"context_line":"                continue"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        new_original_resource_id \u003d resource.original_resource_id.replace("},{"line_number":120,"context_line":"            \u0027/\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_3eb3750b","line":117,"range":{"start_line":116,"start_character":0,"end_line":117,"end_character":24},"in_reply_to":"3a461143_b7deadda","updated":"2017-01-31 18:37:03.000000000","message":"still not getting it :)","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"}],"gnocchi/tests/gabbi/gabbits/transformedids.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa670dfbf42c0803f613aa8fab57a1d4869f8369","unresolved":false,"context_lines":[{"line_number":66,"context_line":"          project_id: f3d41b770cc14f0bb94a1d5be9c0e3ea"},{"line_number":67,"context_line":"      status: 400"},{"line_number":68,"context_line":"      response_strings:"},{"line_number":69,"context_line":"        - \"\u0027/\u0027 is not supported in resource id\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    - name: post new resource non uuid again different user"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"3a461143_179a216e","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":47},"updated":"2017-01-31 17:12:42.000000000","message":"is this change related?","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[{"line_number":66,"context_line":"          project_id: f3d41b770cc14f0bb94a1d5be9c0e3ea"},{"line_number":67,"context_line":"      status: 400"},{"line_number":68,"context_line":"      response_strings:"},{"line_number":69,"context_line":"        - \"\u0027/\u0027 is not supported in resource id\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    - name: post new resource non uuid again different user"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"3a461143_5eada199","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":47},"in_reply_to":"3a461143_179a216e","updated":"2017-01-31 18:37:03.000000000","message":"yes, see the change in gnocchi.rest and error reporting (now it raises a voluptuous error","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"}],"gnocchi/utils.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa670dfbf42c0803f613aa8fab57a1d4869f8369","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":55,"context_line":"                creator \u003d creator.encode(\u0027utf-8\u0027)"},{"line_number":56,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE,"},{"line_number":57,"context_line":"                              value + \"\\x00\" + creator)"},{"line_number":58,"context_line":"        raise ValueError("},{"line_number":59,"context_line":"            \u0027transformable resource id \u003e255 max allowed characters\u0027)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_77dc4546","line":57,"range":{"start_line":57,"start_character":47,"end_line":57,"end_character":54},"updated":"2017-01-31 17:12:42.000000000","message":"is there reason we don\u0027t append to namespace but rather we append to value?","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":55,"context_line":"                creator \u003d creator.encode(\u0027utf-8\u0027)"},{"line_number":56,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE,"},{"line_number":57,"context_line":"                              value + \"\\x00\" + creator)"},{"line_number":58,"context_line":"        raise ValueError("},{"line_number":59,"context_line":"            \u0027transformable resource id \u003e255 max allowed characters\u0027)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"3a461143_fe8acd19","line":57,"range":{"start_line":57,"start_character":47,"end_line":57,"end_character":54},"in_reply_to":"3a461143_77dc4546","updated":"2017-01-31 18:37:03.000000000","message":"namespace is an uuid","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"}],"releasenotes/notes/uuid5-change-8a8c467d2b2d4c85.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa670dfbf42c0803f613aa8fab57a1d4869f8369","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e-"},{"line_number":4,"context_line":"    The conversion mechanism provided by the API to convert non-UUID resource id"},{"line_number":5,"context_line":"    to UUID is now also based on the user creating/accessing the resource. This"},{"line_number":6,"context_line":"    makes sure that the conversion generates a unique UUID for the user andthat"},{"line_number":7,"context_line":"    several users can use the same string as `original_resource_id`."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"3a461143_d794198c","line":6,"range":{"start_line":6,"start_character":72,"end_line":6,"end_character":79},"updated":"2017-01-31 17:12:42.000000000","message":"and that","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e-"},{"line_number":4,"context_line":"    The conversion mechanism provided by the API to convert non-UUID resource id"},{"line_number":5,"context_line":"    to UUID is now also based on the user creating/accessing the resource. This"},{"line_number":6,"context_line":"    makes sure that the conversion generates a unique UUID for the user andthat"},{"line_number":7,"context_line":"    several users can use the same string as `original_resource_id`."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"3a461143_3e81b5fb","line":6,"range":{"start_line":6,"start_character":72,"end_line":6,"end_character":79},"in_reply_to":"3a461143_d794198c","updated":"2017-01-31 18:37:03.000000000","message":"Done","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"daef26821f974bd8784429e9dd69787532a50663","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"3a461143_3261eba9","line":8,"updated":"2017-01-31 17:17:29.000000000","message":"maybe add upgrade: section to describe to access resources not created by you","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"6f58c7350fe6ed0f0fb1903e171b5f9c32d37560","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"3a461143_5e84c109","line":8,"in_reply_to":"3a461143_3261eba9","updated":"2017-01-31 18:37:03.000000000","message":"Done","commit_id":"40fb3e239ca4bdc968f68bf3e395f24808b718a8"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"7c57999bdd205b1a636990d89c6e421e1388f152","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - \u003e-"},{"line_number":10,"context_line":"    Since `original_resource_id` is now unique per creator, that means users"},{"line_number":11,"context_line":"    cannot refer to resource by using the `original_resource_id` if the"},{"line_number":12,"context_line":"    resource was not created by them."}],"source_content_type":"text/x-yaml","patch_set":29,"id":"3a461143_122f883f","line":12,"updated":"2017-01-31 20:27:32.000000000","message":"there is still a way to get resource not created by them right? you mentioned something about passing in the creator field?","commit_id":"ad4b851c7fbf4b914d1c2b6c55957d4315423326"}]}
