)]}'
{"keystone/common/utils.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c8eb545c0210aa0790b711aadc0c0bddd9a8b05b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def resource_uuid(value):"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        try:"},{"line_number":55,"context_line":"            return uuid.UUID(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_5a605201","line":52,"updated":"2015-12-02 17:14:47.000000000","message":"Add a unit test for this function.","commit_id":"0328372ee40d112e56908a5071e3b0a2c082396c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c8eb545c0210aa0790b711aadc0c0bddd9a8b05b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            return uuid.UUID(value)"},{"line_number":56,"context_line":"        except ValueError:"},{"line_number":57,"context_line":"            if len(value) \u003c\u003d 64:"},{"line_number":58,"context_line":"                if six.PY2:"},{"line_number":59,"context_line":"                    value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":60,"context_line":"                return uuid.uuid5(RESOURCE_ID_NAMESPACE, value)"},{"line_number":61,"context_line":"            raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_fa37c6fc","line":58,"updated":"2015-12-02 17:14:47.000000000","message":"this extra complication needs a comment why it\u0027s here. I\u0027d probably prefer we checked not isinstance(value, six.binary_type) or whatever.","commit_id":"0328372ee40d112e56908a5071e3b0a2c082396c"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"c97574f3a1f8270cdf65f7012b642788bde6020c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            return uuid.UUID(value)"},{"line_number":56,"context_line":"        except ValueError:"},{"line_number":57,"context_line":"            if len(value) \u003c\u003d 64:"},{"line_number":58,"context_line":"                if six.PY2:"},{"line_number":59,"context_line":"                    value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":60,"context_line":"                return uuid.uuid5(RESOURCE_ID_NAMESPACE, value)"},{"line_number":61,"context_line":"            raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_dd619c3a","line":58,"in_reply_to":"9a8ffd7b_fa37c6fc","updated":"2015-12-02 17:26:08.000000000","message":"++","commit_id":"0328372ee40d112e56908a5071e3b0a2c082396c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c8eb545c0210aa0790b711aadc0c0bddd9a8b05b","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":60,"context_line":"                return uuid.uuid5(RESOURCE_ID_NAMESPACE, value)"},{"line_number":61,"context_line":"            raise ValueError("},{"line_number":62,"context_line":"                \u0027transformable resource id \u003e255 max allowed characters\u0027)"},{"line_number":63,"context_line":"    except Exception as e:"},{"line_number":64,"context_line":"        raise ValueError(e)"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_fa7fc6dd","line":62,"updated":"2015-12-02 17:14:47.000000000","message":"this says 255 but the code above checks for 64.","commit_id":"0328372ee40d112e56908a5071e3b0a2c082396c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7731935b9ef9d0e475bd2bf57f67e5e88c3f7663","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def resource_uuid(value):"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        return uuid.UUID(value)"},{"line_number":55,"context_line":"    except ValueError:"},{"line_number":56,"context_line":"        if len(value) \u003c\u003d 65:"},{"line_number":57,"context_line":"            if not isinstance(value, six.binary_type):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_acce7081","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":31},"updated":"2016-01-20 20:01:53.000000000","message":"i think we still want to return `value` if it\u0027s correct, something like:\n\nfrom uuid import UUID\ntry:\n    uuid.UUID(value)\n    #my_uuid is valid and you can use it\n    return value\nexcept ValueError:\n    #do what you need when my_uuid is not a uuid","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2beca3258e7c3125a56538be60c51f91696628a0","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def resource_uuid(value):"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        return uuid.UUID(value)"},{"line_number":55,"context_line":"    except ValueError:"},{"line_number":56,"context_line":"        if len(value) \u003c\u003d 65:"},{"line_number":57,"context_line":"            if not isinstance(value, six.binary_type):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_bdf1b3cf","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":31},"in_reply_to":"9a68dd71_acce7081","updated":"2016-01-20 22:44:19.000000000","message":"++ tested this out and it didn\u0027t blow up my machine like it did for Jenkins","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"615b280eca6c510c92876dadc467750d91bb5d04","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        uuid.UUID(value)"},{"line_number":55,"context_line":"        return value"},{"line_number":56,"context_line":"    except ValueError:"},{"line_number":57,"context_line":"        if len(value) \u003c\u003d 65:"},{"line_number":58,"context_line":"            if not isinstance(value, six.binary_type):"},{"line_number":59,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":60,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_b44f7b91","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":28},"updated":"2016-01-21 09:55:32.000000000","message":"If you pass the value in this way, it\u0027s \u002732\u0027 instead of \u002765\u0027.\n\nvalue will be assigned to hex, code from uuid, \n  \n     if len(hex) !\u003d 32:\n                raise ValueError(\u0027badly formed hexadecimal UUID string\u0027)","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2823946d09c4f9a330956a361d78086958aa11ca","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            if not isinstance(value, six.binary_type):"},{"line_number":59,"context_line":"                value \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":60,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":61,"context_line":"        raise ValueError(\"\"\"Length of transformable resource id \u003e 65,"},{"line_number":62,"context_line":"                         which is max allowed characters\"\"\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_605e2feb","line":61,"range":{"start_line":61,"start_character":66,"end_line":61,"end_character":68},"updated":"2016-01-21 01:46:47.000000000","message":"this should actually be 64","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6fc79f0afb775e1f302616dc39b8e8b52348c3ea","unresolved":false,"context_lines":[{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def resource_uuid(value):"},{"line_number":53,"context_line":"    try:"},{"line_number":54,"context_line":"        uuid.UUID(value)"},{"line_number":55,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_b18a1bbe","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":25},"updated":"2016-01-21 14:47:47.000000000","message":"We should add a docstring for this.","commit_id":"0ad924e7dba90ed0face42ad5268f53f310c5ef3"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"01f966a471d15677598a8ff41e3e81b78ff8c5a7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        uuid.UUID(value)"},{"line_number":55,"context_line":"        return value"},{"line_number":56,"context_line":"    except ValueError:"},{"line_number":57,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":58,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":59,"context_line":"        raise ValueError(\"\"\"Length of transformable resource id \u003e 64,"},{"line_number":60,"context_line":"                         which is max allowed characters\"\"\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_a8384ea1","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":28},"updated":"2016-01-22 02:13:20.000000000","message":"this is hex string, not hex, per the code from uuid, it should be 32 instead of 64.\n\ncode from uuid, \n  \n     if len(hex) !\u003d 32:\n                raise ValueError(\u0027badly formed hexadecimal UUID string\u0027)","commit_id":"0ad924e7dba90ed0face42ad5268f53f310c5ef3"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"121dd09e9da838e1b76d6579858a128f800d146a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        uuid.UUID(value)"},{"line_number":55,"context_line":"        return value"},{"line_number":56,"context_line":"    except ValueError:"},{"line_number":57,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":58,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":59,"context_line":"        raise ValueError(\"\"\"Length of transformable resource id \u003e 64,"},{"line_number":60,"context_line":"                         which is max allowed characters\"\"\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_8cf54358","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":28},"in_reply_to":"9a68dd71_a8384ea1","updated":"2016-01-22 13:53:24.000000000","message":"my bad, i missed some points around this!","commit_id":"0ad924e7dba90ed0face42ad5268f53f310c5ef3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a197951a47d1bfe1e7f54b156b3a404f765bc435","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# uuid5 namespace for id transformation."},{"line_number":47,"context_line":"# NOTE(stevemar): This UUID must stay the same, forever, across all"},{"line_number":48,"context_line":"# of keystone to preserve its value as a URN namespace."},{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f9ccba6b","line":46,"range":{"start_line":46,"start_character":2,"end_line":46,"end_character":40},"updated":"2016-01-22 14:48:05.000000000","message":"nit: this could be collapsed into steve comment below","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a197951a47d1bfe1e7f54b156b3a404f765bc435","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    except ValueError:"},{"line_number":58,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":59,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":60,"context_line":"        raise ValueError(\"\"\"Length of transformable resource id \u003e 64,"},{"line_number":61,"context_line":"                         which is max allowed characters\"\"\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_5938663d","line":60,"range":{"start_line":60,"start_character":25,"end_line":60,"end_character":28},"updated":"2016-01-22 14:48:05.000000000","message":"I completely missed this last time - how come we\u0027re using \"\"\" here instead of \u0027 or \" which is the convention used everywhere else?","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"8c8a2987bd771070425bd313ca6ad4ad232be7c9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    except ValueError:"},{"line_number":58,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":59,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":60,"context_line":"        raise ValueError(\"\"\"Length of transformable resource id \u003e 64,"},{"line_number":61,"context_line":"                         which is max allowed characters\"\"\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f4b4c135","line":60,"range":{"start_line":60,"start_character":25,"end_line":60,"end_character":28},"in_reply_to":"9a68dd71_5938663d","updated":"2016-01-22 14:56:46.000000000","message":"++","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6636a1d94b13f07e18527469b330716f7c51a777","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# uuid5 namespace for id transformation. NOTE(stevemar): This UUID must"},{"line_number":47,"context_line":"# stay the same, forever, across all of keystone to preserve its value as"},{"line_number":48,"context_line":"# a URN namespace."},{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_c501c9b0","line":48,"range":{"start_line":46,"start_character":2,"end_line":48,"end_character":18},"updated":"2016-01-22 15:46:33.000000000","message":"Sorry, I should have been a little more clear. What I meant to say was that it could be incorporated into Steve\u0027s comment below. \n\n    # NOTE(stevermar): This UUID must stay the same, forever, across\n    # all of keystone to preserve its value as a URN namespace, which is\n    # used for ID transformation.","commit_id":"50cfcede831984dc938f086ace02cded539198aa"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5cebf9beb889d6c54993e4f40b8fdd75287cfc60","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# NOTE(stevermar): This UUID must stay the same, forever, across"},{"line_number":47,"context_line":"# all of keystone to preserve its value as a URN namespace, which is"},{"line_number":48,"context_line":"# used for ID transformation."},{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_9c7f9a65","line":46,"range":{"start_line":46,"start_character":7,"end_line":46,"end_character":16},"updated":"2016-01-22 21:02:01.000000000","message":"This was my fail - I spelled \"stevemar\" wrong in my comment on the previous patch set. I\u0027ll respin and fix. Otherwise - thanks for updating!","commit_id":"9096786950b5bbe7698eb0b3163c7d9b2dab4515"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"73b7d153b3b18f6e6fa172762c0d3c3ac47ed362","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# NOTE(stevermar): This UUID must stay the same, forever, across"},{"line_number":47,"context_line":"# all of keystone to preserve its value as a URN namespace, which is"},{"line_number":48,"context_line":"# used for ID transformation."},{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a68dd71_1c688a86","line":46,"range":{"start_line":46,"start_character":7,"end_line":46,"end_character":16},"in_reply_to":"9a68dd71_9c7f9a65","updated":"2016-01-22 21:03:17.000000000","message":"we clearly need hacking checks for this","commit_id":"9096786950b5bbe7698eb0b3163c7d9b2dab4515"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a9152440643d62e3eaaa12267f47d4d123183225","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    except ValueError:"},{"line_number":58,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":59,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":60,"context_line":"        raise ValueError(\u0027Length of transformable resource id \u003e 64, \u0027"},{"line_number":61,"context_line":"                         \u0027which is max allowed characters\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_dcce722d","line":60,"updated":"2016-01-22 21:17:08.000000000","message":"Does this need i18n?","commit_id":"61200957c44f13d354f48e8ee09e8e05f52eebb5"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"45ae13772a50ea7bc7862b1978b157aad55bdeec","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    except ValueError:"},{"line_number":58,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":59,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":60,"context_line":"        raise ValueError(\u0027Length of transformable resource id \u003e 64, \u0027"},{"line_number":61,"context_line":"                         \u0027which is max allowed characters\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_725d2546","line":60,"in_reply_to":"9a68dd71_9723f5a6","updated":"2016-01-23 06:01:29.000000000","message":"++\n\nshow the length of value in the error message might be helpful.","commit_id":"61200957c44f13d354f48e8ee09e8e05f52eebb5"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"f1692692706d9e30dc192c6168d39322f3812350","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    except ValueError:"},{"line_number":58,"context_line":"        if len(value) \u003c\u003d 64:"},{"line_number":59,"context_line":"            return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex"},{"line_number":60,"context_line":"        raise ValueError(\u0027Length of transformable resource id \u003e 64, \u0027"},{"line_number":61,"context_line":"                         \u0027which is max allowed characters\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_9723f5a6","line":60,"in_reply_to":"9a68dd71_dcce722d","updated":"2016-01-22 21:23:37.000000000","message":"reference: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-translated-messages","commit_id":"61200957c44f13d354f48e8ee09e8e05f52eebb5"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f68f5e52fe4ae5aac962d0b92b56c8a569f5786b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# NOTE(stevermar): This UUID must stay the same, forever, across"},{"line_number":47,"context_line":"# all of keystone to preserve its value as a URN namespace, which is"},{"line_number":48,"context_line":"# used for ID transformation."},{"line_number":49,"context_line":"RESOURCE_ID_NAMESPACE \u003d uuid.UUID(\u00274332ecab-770b-4288-a680-b9aca3b1b153\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_b8449c49","line":46,"range":{"start_line":46,"start_character":7,"end_line":46,"end_character":16},"updated":"2016-01-25 18:30:49.000000000","message":"Steve will just have to come by and fix this later :)","commit_id":"944bd0a2dca60a5b144378587a13220d33298051"}],"keystone/notifications.py":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2beca3258e7c3125a56538be60c51f91696628a0","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import inspect"},{"line_number":20,"context_line":"import logging"},{"line_number":21,"context_line":"import socket"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_9d870f61","line":22,"range":{"start_line":22,"start_character":7,"end_line":22,"end_character":11},"updated":"2016-01-20 22:44:19.000000000","message":"bumm import","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"615b280eca6c510c92876dadc467750d91bb5d04","unresolved":false,"context_lines":[{"line_number":507,"context_line":"    if user_id:"},{"line_number":508,"context_line":"        initiator.user_id \u003d user_id"},{"line_number":509,"context_line":"        initiator.id \u003d utils.resource_uuid(user_id)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    if project_id:"},{"line_number":512,"context_line":"        initiator.project_id \u003d project_id"},{"line_number":513,"context_line":"    if domain_id:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_d76c719e","line":510,"updated":"2016-01-21 09:55:32.000000000","message":"remove this line to consistent with the code from L511-L514.","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"}],"keystone/tests/unit/common/test_utils.py":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2beca3258e7c3125a56538be60c51f91696628a0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def test_resource_uuid(self):"},{"line_number":40,"context_line":"        uuid_str \u003d \u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":41,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str),"},{"line_number":42,"context_line":"                         uuid.UUID(uuid_str))"},{"line_number":43,"context_line":"        uuid_str \u003d (\"536e28c2017e405e89b25a1ed777b952.\""},{"line_number":44,"context_line":"                    \"f13de678ac714bb1b7d1e9a007c10db5\")"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24b-a3c1-5c23-a4ca-8b29d5f3026b\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_9d94ef37","line":42,"range":{"start_line":42,"start_character":24,"end_line":42,"end_character":35},"updated":"2016-01-20 22:44:19.000000000","message":"we are going to need to remove this if you are going with Steves change.","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2beca3258e7c3125a56538be60c51f91696628a0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        uuid_str \u003d \u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":41,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str),"},{"line_number":42,"context_line":"                         uuid.UUID(uuid_str))"},{"line_number":43,"context_line":"        uuid_str \u003d (\"536e28c2017e405e89b25a1ed777b952.\""},{"line_number":44,"context_line":"                    \"f13de678ac714bb1b7d1e9a007c10db5\")"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24b-a3c1-5c23-a4ca-8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_1df6bf8f","line":43,"range":{"start_line":43,"start_character":20,"end_line":43,"end_character":21},"updated":"2016-01-20 22:44:19.000000000","message":"do we need the double quotes in the test? tested and it works fine","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"8d0565b77c7d605bd95b39abd4e62cdec1f0be24","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        uuid_str \u003d \u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":41,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str),"},{"line_number":42,"context_line":"                         uuid.UUID(uuid_str))"},{"line_number":43,"context_line":"        uuid_str \u003d (\"536e28c2017e405e89b25a1ed777b952.\""},{"line_number":44,"context_line":"                    \"f13de678ac714bb1b7d1e9a007c10db5\")"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24b-a3c1-5c23-a4ca-8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_d89cb56b","line":43,"range":{"start_line":43,"start_character":20,"end_line":43,"end_character":21},"in_reply_to":"9a68dd71_1df6bf8f","updated":"2016-01-20 23:04:16.000000000","message":"I think you are referring to consistency here. I should be consistent in my use of single and double quotes when declaring a string.","commit_id":"9e040d3fb75d78dabec7a17648aeee66bdeefd15"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"615b280eca6c510c92876dadc467750d91bb5d04","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_resource_uuid(self):"},{"line_number":40,"context_line":"        uuid_str \u003d \u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":41,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), uuid_str)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_d70311b7","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":72},"updated":"2016-01-21 09:55:32.000000000","message":"change to:\n  self.assertEqual(uuid_str, common_utils.resource_uuid(uuid_str)","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"6de43210ee1477450c8496946f4a5efdd0074211","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def test_resource_uuid(self):"},{"line_number":40,"context_line":"        uuid_str \u003d \u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":41,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), uuid_str)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_555634d3","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":72},"in_reply_to":"9a68dd71_d70311b7","updated":"2016-01-21 11:58:53.000000000","message":"Done","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2823946d09c4f9a330956a361d78086958aa11ca","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_40144bf4","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":59},"updated":"2016-01-21 01:46:47.000000000","message":"would be good to have a comment explaining how you determined the transformed_id","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"615b280eca6c510c92876dadc467750d91bb5d04","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_7714a5f4","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":59},"in_reply_to":"9a68dd71_40144bf4","updated":"2016-01-21 09:55:32.000000000","message":"++ i have no idea where is this coming from.","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"6de43210ee1477450c8496946f4a5efdd0074211","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_7551f8d7","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":59},"in_reply_to":"9a68dd71_40144bf4","updated":"2016-01-21 11:58:53.000000000","message":"Done","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"615b280eca6c510c92876dadc467750d91bb5d04","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"},{"line_number":49,"context_line":"        self.assertRaises(ValueError, common_utils.resource_uuid,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_57dde140","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":78},"updated":"2016-01-21 09:55:32.000000000","message":"change to:\n self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str)\n\nthe signature is (expected, observed)","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2823946d09c4f9a330956a361d78086958aa11ca","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"},{"line_number":49,"context_line":"        self.assertRaises(ValueError, common_utils.resource_uuid,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_40e20b05","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":78},"updated":"2016-01-21 01:46:47.000000000","message":"looks like this test is failing:\n\n2016-01-20 23:08:17.983 | testtools.testresult.real._StringException: Traceback (most recent call last):\n2016-01-20 23:08:17.983 |   File \"/home/jenkins/workspace/gate-keystone-python34/keystone/common/utils.py\", line 54, in resource_uuid\n2016-01-20 23:08:17.983 |     uuid.UUID(value)\n2016-01-20 23:08:17.983 |   File \"/usr/lib/python3.4/uuid.py\", line 137, in __init__\n2016-01-20 23:08:17.983 |     raise ValueError(\u0027badly formed hexadecimal UUID string\u0027)\n2016-01-20 23:08:17.984 | ValueError: badly formed hexadecimal UUID string\n2016-01-20 23:08:17.984 | \n2016-01-20 23:08:17.984 | During handling of the above exception, another exception occurred:\n2016-01-20 23:08:17.984 | \n2016-01-20 23:08:17.984 | Traceback (most recent call last):\n2016-01-20 23:08:17.984 |   File \"/home/jenkins/workspace/gate-keystone-python34/keystone/tests/unit/common/test_utils.py\", line 46, in test_resource_uuid\n2016-01-20 23:08:17.985 |     self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)\n2016-01-20 23:08:17.985 |   File \"/home/jenkins/workspace/gate-keystone-python34/keystone/common/utils.py\", line 60, in resource_uuid\n2016-01-20 23:08:17.985 |     return uuid.uuid5(RESOURCE_ID_NAMESPACE, value).hex\n2016-01-20 23:08:17.985 |   File \"/usr/lib/python3.4/uuid.py\", line 617, in uuid5\n2016-01-20 23:08:17.985 |     hash \u003d sha1(namespace.bytes + bytes(name, \"utf-8\")).digest()\n2016-01-20 23:08:17.985 | TypeError: encoding or errors without a string argument","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"6de43210ee1477450c8496946f4a5efdd0074211","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952.\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        transformed_id \u003d \u00274639a24ba3c15c23a4ca8b29d5f3026b\u0027"},{"line_number":46,"context_line":"        self.assertEqual(common_utils.resource_uuid(uuid_str), transformed_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"},{"line_number":49,"context_line":"        self.assertRaises(ValueError, common_utils.resource_uuid,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_b56e9094","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":78},"in_reply_to":"9a68dd71_40e20b05","updated":"2016-01-21 11:58:53.000000000","message":"Looks like the function uuid.uuid5 itself takes care of converting a string/unicode type in PY34 to bytes. So no need to check in our code. Just pass along the input to the function.","commit_id":"a65b3c8681fdf40c7042ea1e5b8852a58d88e299"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6fc79f0afb775e1f302616dc39b8e8b52348c3ea","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        uuid_str \u003d (\u0027536e28c2017e405e89b25a1ed777b952\u0027"},{"line_number":44,"context_line":"                    \u0027f13de678ac714bb1b7d1e9a007c10db5\u0027)"},{"line_number":45,"context_line":"        # This is same as RESOURCE_ID_NAMESPACE in utils.py file."},{"line_number":46,"context_line":"        resource_id_namespace \u003d uuid.UUID(\u00274332ecab-770b-4288-\u0027"},{"line_number":47,"context_line":"                                          \u0027a680-b9aca3b1b153\u0027)"},{"line_number":48,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, uuid_str).hex"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_71ab431e","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":65},"updated":"2016-01-21 14:47:47.000000000","message":"Can we import this from a common place? That way we don\u0027t assume we have the right one here.","commit_id":"0ad924e7dba90ed0face42ad5268f53f310c5ef3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6fc79f0afb775e1f302616dc39b8e8b52348c3ea","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, uuid_str).hex"},{"line_number":49,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        invalid_input \u003d \u0027invalid_input\u0027 * 6"},{"line_number":52,"context_line":"        self.assertRaises(ValueError, common_utils.resource_uuid,"},{"line_number":53,"context_line":"                          invalid_input)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_cc3b76d0","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":43},"updated":"2016-01-21 14:47:47.000000000","message":"For context - this is invalid because it exceed the maximum lenght of 64, right? Maybe we can showcase that with something like: \n\n    # This input is invalid because it is greater than 64 characters\n    invalid_input \u003d \u0027z\u0027 * 65","commit_id":"0ad924e7dba90ed0face42ad5268f53f310c5ef3"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"2b755a23c2aacb1335af7b5dcbd108e0f5817081","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# encoding: utf-8"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_39db3251","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":17},"updated":"2016-01-22 14:44:43.000000000","message":"whats this for?","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"9ccdb9f9687c33dc2de38656a383a5734581df72","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# encoding: utf-8"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_3997b23b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":17},"in_reply_to":"9a68dd71_39db3251","updated":"2016-01-22 14:46:22.000000000","message":"For line number 52.","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a197951a47d1bfe1e7f54b156b3a404f765bc435","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# encoding: utf-8"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f97efa17","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":17},"in_reply_to":"9a68dd71_39db3251","updated":"2016-01-22 14:48:05.000000000","message":"This is so that we can use non-ascii characters in our tests.","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"8c8a2987bd771070425bd313ca6ad4ad232be7c9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# encoding: utf-8"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_399d720a","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":17},"in_reply_to":"9a68dd71_f97efa17","updated":"2016-01-22 14:56:46.000000000","message":"I have never notice this up there, in any of the tests. lol This is good to know. Thanks\n\nhttps://github.com/openstack/keystone/blob/eca91ab69781c1fcc526f13ec5cc9bc48d62e4eb/releasenotes/source/conf.py#L1\n\nhttps://github.com/openstack/keystone/blob/a4adca6c50ff5a6f75b7933b29e6a59b0234b3f5/keystone/tests/unit/test_wsgi.py#L1","commit_id":"c205dbd196a322a89dd04888492f7e48acdd6346"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"45ae13772a50ea7bc7862b1978b157aad55bdeec","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.assertEqual(transformed_id, common_utils.resource_uuid(uuid_str))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # Non-ASCII character test."},{"line_number":52,"context_line":"        non_ascii_ \u003d \u0027ß\u0027 * 32"},{"line_number":53,"context_line":"        transformed_id \u003d uuid.uuid5(resource_id_namespace, non_ascii_).hex"},{"line_number":54,"context_line":"        self.assertEqual(transformed_id,"},{"line_number":55,"context_line":"                         common_utils.resource_uuid(non_ascii_))"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_12a8691f","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":18},"updated":"2016-01-23 06:01:29.000000000","message":"non_ascii_chars?","commit_id":"61200957c44f13d354f48e8ee09e8e05f52eebb5"}]}
