)]}'
{"keystoneclient/fixture/v3.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystoneclient.openstack.common import timeutils"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class _Service(dict):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def add_endpoint(self, interface, url, region\u003dNone, **kwargs):"},{"line_number":23,"context_line":"        kwargs[\u0027interface\u0027] \u003d interface"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkOg%3D","line":20,"updated":"2014-04-12 14:49:34.000000000","message":"a comment or docstring would make it obvious what this is for.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystoneclient.openstack.common import timeutils"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class _Service(dict):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def add_endpoint(self, interface, url, region\u003dNone, **kwargs):"},{"line_number":23,"context_line":"        kwargs[\u0027interface\u0027] \u003d interface"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2FE%3D","line":20,"in_reply_to":"AAAAW3%2F%2FkOg%3D","updated":"2014-04-14 04:29:43.000000000","message":"Done","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9225fbdc8cea6c0e92bff45da9d2e19a06fae470","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                 project_domain_name\u003dNone, domain_id\u003dNone, domain_name\u003dNone,"},{"line_number":36,"context_line":"                 trust_id\u003dNone, trust_impersonation\u003dNone, trustee_user_id\u003dNone,"},{"line_number":37,"context_line":"                 trustor_user_id\u003dNone, **kwargs):"},{"line_number":38,"context_line":"        super(Token, self).__init__(token\u003dkwargs)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self.user_id \u003d user_id or uuid.uuid4().hex"},{"line_number":41,"context_line":"        self.user_name \u003d user_name or uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhPY%3D","line":38,"updated":"2014-04-14 01:32:24.000000000","message":"Are there cases we have \"extra\" data in the token that isn\u0027t accounted for in the massive list of defined kwargs? it almost feels like there shouldn\u0027t be \"Extra\" cruft jammed in and we should be careful about allowing cruft in the tokens. I know in the future we want to eliminate accidently creeping token data.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                 project_domain_name\u003dNone, domain_id\u003dNone, domain_name\u003dNone,"},{"line_number":36,"context_line":"                 trust_id\u003dNone, trust_impersonation\u003dNone, trustee_user_id\u003dNone,"},{"line_number":37,"context_line":"                 trustor_user_id\u003dNone, **kwargs):"},{"line_number":38,"context_line":"        super(Token, self).__init__(token\u003dkwargs)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self.user_id \u003d user_id or uuid.uuid4().hex"},{"line_number":41,"context_line":"        self.user_name \u003d user_name or uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2FA%3D","line":38,"in_reply_to":"AAAAW3%2F%2FhPY%3D","updated":"2014-04-14 04:29:43.000000000","message":"Done","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.methods.extend(methods)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        if not expires:"},{"line_number":50,"context_line":"            expires \u003d timeutils.utcnow() + datetime.timedelta(days\u003d1)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.expires \u003d expires"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkOc%3D","line":50,"updated":"2014-04-12 14:49:34.000000000","message":"the default is now 60 mins rather than 1 day.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.methods.extend(methods)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        if not expires:"},{"line_number":50,"context_line":"            expires \u003d timeutils.utcnow() + datetime.timedelta(days\u003d1)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.expires \u003d expires"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhJI%3D","line":50,"in_reply_to":"AAAAW3%2F%2FkOc%3D","updated":"2014-04-14 04:29:43.000000000","message":"Done","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.expires \u003d expires"},{"line_number":54,"context_line":"        except (TypeError, AttributeError):"},{"line_number":55,"context_line":"            # expires should be able to be passed as a string so ignore"},{"line_number":56,"context_line":"            self.expires_str \u003d expires"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if (project_id or project_name or"},{"line_number":59,"context_line":"                project_domain_id or project_domain_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkOI%3D","line":56,"updated":"2014-04-12 14:49:34.000000000","message":"why isn\u0027t 52-56 done in the `expires` setter?","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.expires \u003d expires"},{"line_number":54,"context_line":"        except (TypeError, AttributeError):"},{"line_number":55,"context_line":"            # expires should be able to be passed as a string so ignore"},{"line_number":56,"context_line":"            self.expires_str \u003d expires"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if (project_id or project_name or"},{"line_number":59,"context_line":"                project_domain_id or project_domain_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2B0%3D","line":56,"in_reply_to":"AAAAW3%2F%2FkOI%3D","updated":"2014-04-14 04:29:43.000000000","message":"most people know if they have a datetime object or a string. I think it\u0027s just easier not to do this kind of abstraction in testing.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def set_project_scope(self, id\u003dNone, name\u003dNone, domain_id\u003dNone,"},{"line_number":263,"context_line":"                          domain_name\u003dNone, **kwargs):"},{"line_number":264,"context_line":"        self.root[\u0027project\u0027] \u003d kwargs"},{"line_number":265,"context_line":"        self.project_id \u003d id or uuid.uuid4().hex"},{"line_number":266,"context_line":"        self.project_name \u003d name or uuid.uuid4().hex"},{"line_number":267,"context_line":"        self.project_domain_id \u003d domain_id or uuid.uuid4().hex"},{"line_number":268,"context_line":"        self.project_domain_name \u003d domain_name or uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkN0%3D","line":265,"updated":"2014-04-12 14:49:34.000000000","message":"is self.project_id supposed to be the same as self.root[\u0027project\u0027][\u0027id\u0027]?","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def set_project_scope(self, id\u003dNone, name\u003dNone, domain_id\u003dNone,"},{"line_number":263,"context_line":"                          domain_name\u003dNone, **kwargs):"},{"line_number":264,"context_line":"        self.root[\u0027project\u0027] \u003d kwargs"},{"line_number":265,"context_line":"        self.project_id \u003d id or uuid.uuid4().hex"},{"line_number":266,"context_line":"        self.project_name \u003d name or uuid.uuid4().hex"},{"line_number":267,"context_line":"        self.project_domain_id \u003d domain_id or uuid.uuid4().hex"},{"line_number":268,"context_line":"        self.project_domain_name \u003d domain_name or uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2BM%3D","line":265,"in_reply_to":"AAAAW3%2F%2FhNw%3D","updated":"2014-04-14 04:29:43.000000000","message":"@brant: yes, they are the same - the setter should handle it. \n\n@morgan: agree with kwargs. I don\u0027t like having id however it is called id in the result so it is more consistent this way.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9225fbdc8cea6c0e92bff45da9d2e19a06fae470","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def set_project_scope(self, id\u003dNone, name\u003dNone, domain_id\u003dNone,"},{"line_number":263,"context_line":"                          domain_name\u003dNone, **kwargs):"},{"line_number":264,"context_line":"        self.root[\u0027project\u0027] \u003d kwargs"},{"line_number":265,"context_line":"        self.project_id \u003d id or uuid.uuid4().hex"},{"line_number":266,"context_line":"        self.project_name \u003d name or uuid.uuid4().hex"},{"line_number":267,"context_line":"        self.project_domain_id \u003d domain_id or uuid.uuid4().hex"},{"line_number":268,"context_line":"        self.project_domain_name \u003d domain_name or uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhNw%3D","line":265,"in_reply_to":"AAAAW3%2F%2FkN0%3D","updated":"2014-04-14 01:32:24.000000000","message":"NIT: Suggest not using \"id\" as an argument as you mask the python built-in. same holds true in other methods.\n\nSame comment as above, are there cases we want non-standard data in the project fields for the token? I would say the we should carefully control the data in the tokens. kwargs being used to set is probably not the correct approach.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        self.domain_id \u003d id or uuid.uuid4().hex"},{"line_number":273,"context_line":"        self.domain_name \u003d name or uuid.uuid4().hex"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def set_trust_scope(self, id\u003dNone, impersonation\u003dNone,"},{"line_number":276,"context_line":"                        trustee_user_id\u003dNone, trustor_user_id\u003dNone):"},{"line_number":277,"context_line":"        self.trust_id \u003d id or uuid.uuid4().hex"},{"line_number":278,"context_line":"        self.trust_impersonation \u003d impersonation or False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNw%3D","line":275,"updated":"2014-04-12 14:49:34.000000000","message":"default impersonation to False.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        self.domain_id \u003d id or uuid.uuid4().hex"},{"line_number":273,"context_line":"        self.domain_name \u003d name or uuid.uuid4().hex"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def set_trust_scope(self, id\u003dNone, impersonation\u003dNone,"},{"line_number":276,"context_line":"                        trustee_user_id\u003dNone, trustor_user_id\u003dNone):"},{"line_number":277,"context_line":"        self.trust_id \u003d id or uuid.uuid4().hex"},{"line_number":278,"context_line":"        self.trust_impersonation \u003d impersonation or False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2BI%3D","line":275,"in_reply_to":"AAAAW3%2F%2FkNw%3D","updated":"2014-04-14 04:29:43.000000000","message":"Done","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fce42f61d3050cb7fa9c8d794e76a7cebe98c677","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class _Service(dict):"},{"line_number":21,"context_line":"    \"\"\"One of the services that exist in the catalog."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    You use this by creating a service which returns this object and then you"},{"line_number":24,"context_line":"    can add_endpoints to the service."},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F%2FtU%3D","line":23,"updated":"2014-04-16 01:10:38.000000000","message":"suggest change \"creating a service\" to \"adding a service to the Token\"\n\nchange \"this object\" to \"a new instance of this class\"","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"77455ae58f4cadc6ae2d9eee8451b37fa9f1158c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class _Service(dict):"},{"line_number":21,"context_line":"    \"\"\"One of the services that exist in the catalog."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    You use this by creating a service which returns this object and then you"},{"line_number":24,"context_line":"    can add_endpoints to the service."},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F3LQ%3D","line":23,"in_reply_to":"AAAAXH%2F%2F%2FtU%3D","updated":"2014-04-16 21:12:30.000000000","message":"Done","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fce42f61d3050cb7fa9c8d794e76a7cebe98c677","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        return ret"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class Token(dict):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self, expires\u003dNone, user_id\u003dNone, user_name\u003dNone,"},{"line_number":51,"context_line":"                 user_domain_id\u003dNone, user_domain_name\u003dNone, methods\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F%2Fs4%3D","line":48,"updated":"2014-04-16 01:10:38.000000000","message":"if we really want other projects to be able to use this then there should be docstrings.","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"77455ae58f4cadc6ae2d9eee8451b37fa9f1158c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        return ret"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class Token(dict):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self, expires\u003dNone, user_id\u003dNone, user_name\u003dNone,"},{"line_number":51,"context_line":"                 user_domain_id\u003dNone, user_domain_name\u003dNone, methods\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F3LA%3D","line":48,"in_reply_to":"AAAAXH%2F%2F%2Fs4%3D","updated":"2014-04-16 21:12:30.000000000","message":"Done","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"096e56952d4b47be3945acfa595e704d9581084a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \"\"\"A V3 Keystone token that can be used for testing."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    This object is designed to allow clients to generate a correct V3 token for"},{"line_number":52,"context_line":"    use in there test code. It should prevent clients from having to know the"},{"line_number":53,"context_line":"    correct token format and allow them to test the portions of token handling"},{"line_number":54,"context_line":"    that matter to them and not copy and paste sample."},{"line_number":55,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2F2TU%3D","line":52,"updated":"2014-04-17 00:52:48.000000000","message":"change \"there\" to \"their\"","commit_id":"ee49824fe70244977e8d5a9af36590fb7edbe59d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"096e56952d4b47be3945acfa595e704d9581084a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    This object is designed to allow clients to generate a correct V3 token for"},{"line_number":52,"context_line":"    use in there test code. It should prevent clients from having to know the"},{"line_number":53,"context_line":"    correct token format and allow them to test the portions of token handling"},{"line_number":54,"context_line":"    that matter to them and not copy and paste sample."},{"line_number":55,"context_line":"    \"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def __init__(self, expires\u003dNone, user_id\u003dNone, user_name\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXH%2F%2F2TQ%3D","line":54,"updated":"2014-04-17 00:52:48.000000000","message":"change \"sample\" to \"samples\"","commit_id":"ee49824fe70244977e8d5a9af36590fb7edbe59d"}],"keystoneclient/tests/v3/client_fixtures.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9225fbdc8cea6c0e92bff45da9d2e19a06fae470","unresolved":false,"context_lines":[{"line_number":20,"context_line":"                           user_name\u003d\u0027exampleuser\u0027,"},{"line_number":21,"context_line":"                           user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":22,"context_line":"                           user_domain_name\u003d\u0027exampledomain\u0027,"},{"line_number":23,"context_line":"                           expires\u003d\u00272010-11-01T03:32:15-05:00\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def domain_scoped_token():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhNQ%3D","line":23,"updated":"2014-04-14 01:32:24.000000000","message":"Are tokens supposed to all be expired? see below as well.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"                           user_name\u003d\u0027exampleuser\u0027,"},{"line_number":21,"context_line":"                           user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":22,"context_line":"                           user_domain_name\u003d\u0027exampledomain\u0027,"},{"line_number":23,"context_line":"                           expires\u003d\u00272010-11-01T03:32:15-05:00\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def domain_scoped_token():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2F0%3D","line":23,"in_reply_to":"AAAAW3%2F%2FhNQ%3D","updated":"2014-04-14 04:29:43.000000000","message":"It appears to not matter - they are in the old code and i just want to maintain the exact same data.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                        user_name\u003d\u0027exampleuser\u0027,"},{"line_number":29,"context_line":"                        user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":30,"context_line":"                        user_domain_name\u003d\u0027exampledomain\u0027,"},{"line_number":31,"context_line":"                        expires\u003d\u00272010-11-01T03:32:15-05:00\u0027,"},{"line_number":32,"context_line":"                        domain_id\u003d\u00278e9283b7ba0b1038840c3842058b86ab\u0027,"},{"line_number":33,"context_line":"                        domain_name\u003d\u0027anotherdomain\u0027)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNc%3D","line":31,"updated":"2014-04-12 14:49:34.000000000","message":"is this supposed to be expired already?","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                        user_name\u003d\u0027exampleuser\u0027,"},{"line_number":29,"context_line":"                        user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":30,"context_line":"                        user_domain_name\u003d\u0027exampledomain\u0027,"},{"line_number":31,"context_line":"                        expires\u003d\u00272010-11-01T03:32:15-05:00\u0027,"},{"line_number":32,"context_line":"                        domain_id\u003d\u00278e9283b7ba0b1038840c3842058b86ab\u0027,"},{"line_number":33,"context_line":"                        domain_name\u003d\u0027anotherdomain\u0027)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2Fw%3D","line":31,"in_reply_to":"AAAAW3%2F%2FkNc%3D","updated":"2014-04-14 04:29:43.000000000","message":"as above.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    s \u003d f.add_service(\u0027volume\u0027)"},{"line_number":40,"context_line":"    s.add_endpoint(\u0027public\u0027, \u0027http://public.com:8776/v1/None\u0027,"},{"line_number":41,"context_line":"                   region\u003dregion)"},{"line_number":42,"context_line":"    s.add_endpoint(\u0027internal\u0027, \u0027http://internal.com:8776/v1/None\u0027,"},{"line_number":43,"context_line":"                   region\u003dregion)"},{"line_number":44,"context_line":"    s.add_endpoint(\u0027admin\u0027, \u0027http://admin.com:8776/v1/None\u0027,"},{"line_number":45,"context_line":"                   region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNk%3D","line":42,"updated":"2014-04-12 14:49:34.000000000","message":"why add .com here and not everywhere?","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    s \u003d f.add_service(\u0027volume\u0027)"},{"line_number":40,"context_line":"    s.add_endpoint(\u0027public\u0027, \u0027http://public.com:8776/v1/None\u0027,"},{"line_number":41,"context_line":"                   region\u003dregion)"},{"line_number":42,"context_line":"    s.add_endpoint(\u0027internal\u0027, \u0027http://internal.com:8776/v1/None\u0027,"},{"line_number":43,"context_line":"                   region\u003dregion)"},{"line_number":44,"context_line":"    s.add_endpoint(\u0027admin\u0027, \u0027http://admin.com:8776/v1/None\u0027,"},{"line_number":45,"context_line":"                   region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2Fo%3D","line":42,"in_reply_to":"AAAAW3%2F%2FkNk%3D","updated":"2014-04-14 04:29:43.000000000","message":"oops, not sure how that happened","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    s.add_endpoint(\u0027internal\u0027, \u0027http://internal.com:8776/v1/None\u0027,"},{"line_number":43,"context_line":"                   region\u003dregion)"},{"line_number":44,"context_line":"    s.add_endpoint(\u0027admin\u0027, \u0027http://admin.com:8776/v1/None\u0027,"},{"line_number":45,"context_line":"                   region\u003dregion)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    s \u003d f.add_service(\u0027image\u0027)"},{"line_number":48,"context_line":"    s.add_endpoint(\u0027public\u0027, \u0027http://public.com:9292/v1\u0027, region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNo%3D","line":45,"updated":"2014-04-12 14:49:34.000000000","message":"Suggest have an add_endpoints that takes the public, internal, and admin URLs and region. There will be less duplication of \u0027public\u0027, \u0027internal\u0027, and \u0027admin\u0027.\n\nMight as well just pass in the catalog to the V3Token constructor.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    s.add_endpoint(\u0027internal\u0027, \u0027http://internal.com:8776/v1/None\u0027,"},{"line_number":43,"context_line":"                   region\u003dregion)"},{"line_number":44,"context_line":"    s.add_endpoint(\u0027admin\u0027, \u0027http://admin.com:8776/v1/None\u0027,"},{"line_number":45,"context_line":"                   region\u003dregion)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    s \u003d f.add_service(\u0027image\u0027)"},{"line_number":48,"context_line":"    s.add_endpoint(\u0027public\u0027, \u0027http://public.com:9292/v1\u0027, region\u003dregion)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2FU%3D","line":45,"in_reply_to":"AAAAW3%2F%2FkNo%3D","updated":"2014-04-14 04:29:43.000000000","message":"added \u0027add_standard_endpoints\u0027. You could pass catalog to V3 constructor but thinking of other projects i think this way is easier to understand.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def project_scoped_token():"},{"line_number":77,"context_line":"    f \u003d fixture.V3Token(user_id\u003d\u0027c4da488862bd435c9e6c0275a0d0e49a\u0027,"},{"line_number":78,"context_line":"                        user_name\u003d\u0027exampleuser\u0027,"},{"line_number":79,"context_line":"                        user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":80,"context_line":"                        user_domain_name\u003d\u0027exampledomain\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNg%3D","line":77,"updated":"2014-04-12 14:49:34.000000000","message":"if this has to match the user_id at line 27 then there should be a constant defined for it.\n\nThis applies to all these strings.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def project_scoped_token():"},{"line_number":77,"context_line":"    f \u003d fixture.V3Token(user_id\u003d\u0027c4da488862bd435c9e6c0275a0d0e49a\u0027,"},{"line_number":78,"context_line":"                        user_name\u003d\u0027exampleuser\u0027,"},{"line_number":79,"context_line":"                        user_domain_id\u003d\u00274e6893b7ba0b4006840c3845660b86ed\u0027,"},{"line_number":80,"context_line":"                        user_domain_name\u003d\u0027exampledomain\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhAI%3D","line":77,"in_reply_to":"AAAAW3%2F%2FkNg%3D","updated":"2014-04-14 04:29:43.000000000","message":"I don\u0027t know / care if it does. My aim here is again to copy exactly what happened in the old fixtures and convert them to a new model. \n\nI don\u0027t want to mess with the data or it becomes difficult to make sure nothing got broken.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"}],"keystoneclient/tests/v3/test_access.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f38ec1915e867950a91bf3f42915199ea9b1e032","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":35,"context_line":"        self.assertIn(\u0027methods\u0027, auth_ref)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":38,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FkNI%3D","line":36,"updated":"2014-04-12 14:49:34.000000000","message":"Why was this test changed?","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4e2569d1ce9d55a6a6574f38c3b28aef2d506d2a","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":35,"context_line":"        self.assertIn(\u0027methods\u0027, auth_ref)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":38,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fg%2FI%3D","line":36,"in_reply_to":"AAAAW3%2F%2FkNI%3D","updated":"2014-04-14 04:29:43.000000000","message":"It was asserting that a catalog was present but it was None/Empty.\n\nIn an unscoped catalog this isn\u0027t the case, catalog is typically just not there.","commit_id":"521bb958ba2ee693a27e9c2e38ec1856ec88e91e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fce42f61d3050cb7fa9c8d794e76a7cebe98c677","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":35,"context_line":"        self.assertIn(\u0027methods\u0027, auth_ref)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":38,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F%2FuA%3D","line":36,"updated":"2014-04-16 01:10:38.000000000","message":"if an unscoped token doesn\u0027t have a catalog then we should assert that instead.","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0bb9d56f8871ed3480ba6d29f40c80ba9b928d53","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":35,"context_line":"        self.assertIn(\u0027methods\u0027, auth_ref)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":38,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F7hI%3D","line":36,"in_reply_to":"AAAAXH%2F%2F%2FuA%3D","updated":"2014-04-16 12:52:06.000000000","message":"++ this should have been replaced with:\n\n  self.assertNotIn(\u0027catalog\u0027, auth_ref)","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"77455ae58f4cadc6ae2d9eee8451b37fa9f1158c","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        self.assertTrue(auth_ref)"},{"line_number":35,"context_line":"        self.assertIn(\u0027methods\u0027, auth_ref)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.assertEqual(auth_ref.auth_token,"},{"line_number":38,"context_line":"                         \u00273e2813b7ba0b4006840c3825860b86ed\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(auth_ref.username, \u0027exampleuser\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2F3J8%3D","line":36,"in_reply_to":"AAAAXH%2F%2F7hI%3D","updated":"2014-04-16 21:12:30.000000000","message":"Done","commit_id":"70d6b0af8d0cefe1fe51384c0adc0dd83ad6c90f"}]}
