)]}'
{"keystoneclient/auth/identity/generic/cli.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"aac69fc0188ec76f876cac1476ac11844946462e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        options.extend([cfg.StrOpt(\u0027endpoint\u0027,"},{"line_number":39,"context_line":"                                   help\u003d\u0027A URL to use instead of a catalog\u0027),"},{"line_number":40,"context_line":"                        cfg.StrOpt(\u0027token\u0027,"},{"line_number":41,"context_line":"                                   help\u003d\u0027A token to override with\u0027)])"},{"line_number":42,"context_line":"        return options"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_token(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_461ba373","line":41,"updated":"2015-05-20 19:29:58.000000000","message":"With a what?\n\nThis help text needs to be made clearer. What is being overridden: rephrase.","commit_id":"fb6fcb5b9f9a00438d2591bcfadf53191010d5e8"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8fec5fb2942025411aa79ed286ac6c80b2d02587","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        options.extend([cfg.StrOpt(\u0027endpoint\u0027,"},{"line_number":39,"context_line":"                                   help\u003d\u0027A URL to use instead of a catalog\u0027),"},{"line_number":40,"context_line":"                        cfg.StrOpt(\u0027token\u0027,"},{"line_number":41,"context_line":"                                   help\u003d\u0027A token to override with\u0027)])"},{"line_number":42,"context_line":"        return options"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_token(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_4649635f","line":41,"updated":"2015-05-20 19:29:53.000000000","message":"never end a sentence with a preposition","commit_id":"fb6fcb5b9f9a00438d2591bcfadf53191010d5e8"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"d7efbb16826dd8be627abe3c925ead9371068a85","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        endpoint \u003d kwargs.get(\u0027endpoint\u0027) or namespace.os_endpoint"},{"line_number":60,"context_line":"        auth_url \u003d kwargs.get(\u0027auth_url\u0027) or namespace.os_auth_url"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if token and not endpoint:"},{"line_number":63,"context_line":"            # if a user provides a token then they must also provide an"},{"line_number":64,"context_line":"            # endpoint because we aren\u0027t fetching a token to get a catalog from"},{"line_number":65,"context_line":"            msg \u003d _(\u0027A service URL must be provided with a token\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_79e7ace4","line":62,"updated":"2015-05-28 05:22:52.000000000","message":"don\u0027t we need to check both? Like\n\nif (token and not endpoint) or (endpoint and not token):","commit_id":"a4d481076db7b0c65b6a5508374c1baae9d25732"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bc34ff097115e34511b7ea06631c2d2571cdd66a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        endpoint \u003d kwargs.get(\u0027endpoint\u0027) or namespace.os_endpoint"},{"line_number":60,"context_line":"        auth_url \u003d kwargs.get(\u0027auth_url\u0027) or namespace.os_auth_url"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if token and not endpoint:"},{"line_number":63,"context_line":"            # if a user provides a token then they must also provide an"},{"line_number":64,"context_line":"            # endpoint because we aren\u0027t fetching a token to get a catalog from"},{"line_number":65,"context_line":"            msg \u003d _(\u0027A service URL must be provided with a token\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_8cc0c051","line":62,"in_reply_to":"7a016987_79e7ace4","updated":"2015-05-28 21:49:57.000000000","message":"no, because if you give us an endpoint we can use that as an override, like use this value instead of getting one from the service catalog, because we will fetch a new token with a catalog.\n\nIf you give me a token without an endpoint i\u0027ve got no way to determine the catalog for that token (i mean i can ask keystone but generally this woulld be used with like an ADMIN TOKEN).","commit_id":"a4d481076db7b0c65b6a5508374c1baae9d25732"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"a9ad84c9ef4acd17daeeef863581988592b44a18","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        endpoint \u003d kwargs.get(\u0027endpoint\u0027) or namespace.os_endpoint"},{"line_number":60,"context_line":"        auth_url \u003d kwargs.get(\u0027auth_url\u0027) or namespace.os_auth_url"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if token and not endpoint:"},{"line_number":63,"context_line":"            # if a user provides a token then they must also provide an"},{"line_number":64,"context_line":"            # endpoint because we aren\u0027t fetching a token to get a catalog from"},{"line_number":65,"context_line":"            msg \u003d _(\u0027A service URL must be provided with a token\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_6a2201a5","line":62,"in_reply_to":"7a016987_8cc0c051","updated":"2015-05-29 00:15:40.000000000","message":"k make sense","commit_id":"a4d481076db7b0c65b6a5508374c1baae9d25732"}],"keystoneclient/tests/unit/auth/test_default_cli.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"d7efbb16826dd8be627abe3c925ead9371068a85","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        p \u003d self.new_plugin([\u0027--os-auth-url\u0027, \u0027url\u0027,"},{"line_number":36,"context_line":"                             \u0027--os-endpoint\u0027, url,"},{"line_number":37,"context_line":"                             \u0027--os-password\u0027, password])"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.assertEqual(url, p.get_endpoint(None))"},{"line_number":40,"context_line":"        self.assertEqual(password, p._password)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_79b0ccdd","line":37,"updated":"2015-05-28 05:22:52.000000000","message":"interesting, password without user id or name. Maybe next patch add some error handling at the plugin? Like which required versus optional params?","commit_id":"a4d481076db7b0c65b6a5508374c1baae9d25732"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bc34ff097115e34511b7ea06631c2d2571cdd66a","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        p \u003d self.new_plugin([\u0027--os-auth-url\u0027, \u0027url\u0027,"},{"line_number":36,"context_line":"                             \u0027--os-endpoint\u0027, url,"},{"line_number":37,"context_line":"                             \u0027--os-password\u0027, password])"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.assertEqual(url, p.get_endpoint(None))"},{"line_number":40,"context_line":"        self.assertEqual(password, p._password)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_6ca8e48c","line":37,"in_reply_to":"7a016987_79b0ccdd","updated":"2015-05-28 21:49:57.000000000","message":"right, at the moment none of the plugins are good at that.\n\nThis isn\u0027t so bad because the plugins don\u0027t check for parameters until the moment you ask for auth. This makes sense from a python perspective where you may want to set attributes on the object, but is not as good from a cli or conf loading perspective.","commit_id":"a4d481076db7b0c65b6a5508374c1baae9d25732"}]}
