)]}'
{"keystone/common/sql/migrate_repo/versions/092_switch_index_order_in_token_table.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"31e5de841a8e45a65f8caa294ce3f55a79af1459","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 eBay Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_7479fcc7","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2016-06-24 04:47:10.000000000","message":"2016","commit_id":"d34b4b62024c73509db2b240d37032fc6a0cbfde"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"f45b700cb2731b509800017cb1d1b0c8c4e042a6","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    token \u003d sql.Table(\u0027token\u0027, meta, autoload\u003dTrue)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    sql.Index(\u0027ix_token_expires_valid\u0027, token.c.expires,"},{"line_number":25,"context_line":"              token.c.valid).drop()"},{"line_number":26,"context_line":"    sql.Index(\u0027ix_token_valid_expires\u0027, token.c.valid,"},{"line_number":27,"context_line":"              token.c.expires).create()"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_2a389c3c","line":25,"updated":"2016-05-10 23:36:00.000000000","message":"Programatically find the indexes, do not assume the name is \"valid\" we have had issues with this in the past (for the drop)","commit_id":"d34b4b62024c73509db2b240d37032fc6a0cbfde"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7316e7b75bb1edc3c90b6bbd4a272cda7fe144b4","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    token \u003d sql.Table(\u0027token\u0027, meta, autoload\u003dTrue)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    sql.Index(\u0027ix_token_expires_valid\u0027, token.c.expires,"},{"line_number":25,"context_line":"              token.c.valid).drop()"},{"line_number":26,"context_line":"    sql.Index(\u0027ix_token_valid_expires\u0027, token.c.valid,"},{"line_number":27,"context_line":"              token.c.expires).create()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_2b118a04","line":25,"in_reply_to":"dab17558_2a389c3c","updated":"2016-06-09 00:29:57.000000000","message":"++\n\nThis is an example of how to find constraints programatically from the database, and I believe it\u0027s the case Morgan was talking about:\n\nhttps://github.com/openstack/keystone/blob/9e81843/keystone/common/sql/migrate_repo/versions/096_drop_role_name_constraint.py#L37","commit_id":"d34b4b62024c73509db2b240d37032fc6a0cbfde"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7316e7b75bb1edc3c90b6bbd4a272cda7fe144b4","unresolved":false,"context_lines":[{"line_number":825,"context_line":"                         index_data)"},{"line_number":826,"context_line":"        self.assertIn((\u0027ix_token_valid_expires\u0027, [\u0027valid\u0027, \u0027expires\u0027]),"},{"line_number":827,"context_line":"                      index_data)"},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"class VersionTests(SqlMigrateBase):"},{"line_number":830,"context_line":""},{"line_number":831,"context_line":"    _initial_db_version \u003d migrate_repo.DB_INIT_VERSION"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_ab8a9a61","line":828,"updated":"2016-06-09 00:29:57.000000000","message":"This is causig pep8 to fail. Add a new blank line here (it needs 2 before class declarations)","commit_id":"d34b4b62024c73509db2b240d37032fc6a0cbfde"}]}
