)]}'
{"keystone/common/sql/contract_repo/versions/032_contract_add_expired_at_int_to_trust.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dfcde756b3ac5b9496e7944385bfe24a845b07f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            trust_table.c.id \u003d\u003d trust.id).values(values)"},{"line_number":45,"context_line":"        session.execute(update)"},{"line_number":46,"context_line":"        session.commit()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    session.close()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_9d8f7b22","line":47,"updated":"2018-01-03 15:54:18.000000000","message":"If everything is on Queens code and the old expires_at column isn\u0027t used, we could technically drop it. The only question is if it locks the entire table to do so. It doesn\u0027t look like it from the 5.6 support matrix. \n\nhttps://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html#innodb-online-ddl-summary-grid","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e3f102d7c081660ea8ec99827af0ba0a2380b1c3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            trust_table.c.id \u003d\u003d trust.id).values(values)"},{"line_number":45,"context_line":"        session.execute(update)"},{"line_number":46,"context_line":"        session.commit()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    session.close()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_5190fc4e","line":47,"in_reply_to":"9f91af0f_2056485e","updated":"2018-01-03 18:50:46.000000000","message":"Yeah - dropping the column is kind of a nit. We don\u0027t have to drop it if it causes too many problems, we just won\u0027t use it and that should be good enough.\n\nMore of less a housekeeping thing.","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1b73d0b26402ac548187fdda02f51072e965da50","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            trust_table.c.id \u003d\u003d trust.id).values(values)"},{"line_number":45,"context_line":"        session.execute(update)"},{"line_number":46,"context_line":"        session.commit()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    session.close()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_2056485e","line":47,"in_reply_to":"9f91af0f_9d8f7b22","updated":"2018-01-03 16:47:06.000000000","message":"This is all copypasta from Morgan\u0027s password table migration, so he\u0027d be the authority on why both columns are needed. I suspect we can\u0027t rely on having a specific version of mysql installed. It\u0027s also possible this was only needed for the non-nullable created_at column and not necessary for expires_at column.\n\nFirst off I need to figure out why the update query is failing the migration tests.","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"}],"keystone/common/sql/data_migration_repo/versions/032_migrate_add_expired_at_int_to_trust.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dfcde756b3ac5b9496e7944385bfe24a845b07f4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    # from the old column to the new column is done in the contract phase. This"},{"line_number":17,"context_line":"    # is because using triggers to convert datetime objects to integers is"},{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_fd680788","line":19,"range":{"start_line":19,"start_character":32,"end_line":19,"end_character":36},"updated":"2018-01-03 15:54:18.000000000","message":"Queens*","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dfcde756b3ac5b9496e7944385bfe24a845b07f4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_7d12b70b","line":21,"range":{"start_line":21,"start_character":22,"end_line":21,"end_character":26},"updated":"2018-01-03 15:54:18.000000000","message":"Queens*","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4bf5441b02babb8e67235195dd2b626bd596f271","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    # from the old column to the new column is done in the contract phase. This"},{"line_number":17,"context_line":"    # is because using triggers to convert datetime objects to integers is"},{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_a3381d3d","line":19,"range":{"start_line":19,"start_character":32,"end_line":19,"end_character":36},"updated":"2018-01-03 22:05:45.000000000","message":"nit: Queens*","commit_id":"f9984ed676aa2c748eb7441763c889ed5affa068"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f5a1984ed2c4ef50f23092d3f3ec791fd5af470d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    # from the old column to the new column is done in the contract phase. This"},{"line_number":17,"context_line":"    # is because using triggers to convert datetime objects to integers is"},{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_76b2d1e8","line":19,"range":{"start_line":19,"start_character":32,"end_line":19,"end_character":36},"in_reply_to":"9f91af0f_a3381d3d","updated":"2018-01-03 22:53:43.000000000","message":"Done","commit_id":"f9984ed676aa2c748eb7441763c889ed5affa068"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4bf5441b02babb8e67235195dd2b626bd596f271","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_433fd124","line":21,"range":{"start_line":21,"start_character":22,"end_line":21,"end_character":26},"updated":"2018-01-03 22:05:45.000000000","message":"nit: Queens*","commit_id":"f9984ed676aa2c748eb7441763c889ed5affa068"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f5a1984ed2c4ef50f23092d3f3ec791fd5af470d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    # complex and error-prone. Instead, we\u0027ll migrate the data once all"},{"line_number":19,"context_line":"    # keystone nodes are on the Pike code-base. From an operator perspective,"},{"line_number":20,"context_line":"    # this shouldn\u0027t affect operability of a rolling upgrade since all nodes"},{"line_number":21,"context_line":"    # must be running Pike before the contract takes place."},{"line_number":22,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_96b515d0","line":21,"range":{"start_line":21,"start_character":22,"end_line":21,"end_character":26},"in_reply_to":"9f91af0f_433fd124","updated":"2018-01-03 22:53:43.000000000","message":"Done","commit_id":"f9984ed676aa2c748eb7441763c889ed5affa068"}],"keystone/trust/backends/sql.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dfcde756b3ac5b9496e7944385bfe24a845b07f4","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @hybrid_property"},{"line_number":52,"context_line":"    def expires_at(self):"},{"line_number":53,"context_line":"        return self.expires_at_int or self._expires_at"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @expires_at.setter"},{"line_number":56,"context_line":"    def expires_at(self, value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_ddf3c39d","line":53,"range":{"start_line":53,"start_character":35,"end_line":53,"end_character":54},"updated":"2018-01-03 15:54:18.000000000","message":"This is the compatibility bit between when Queens is deployed and the contract phase happens, right? We should be able to remove this once Queens is out the door?","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1b73d0b26402ac548187fdda02f51072e965da50","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @hybrid_property"},{"line_number":52,"context_line":"    def expires_at(self):"},{"line_number":53,"context_line":"        return self.expires_at_int or self._expires_at"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @expires_at.setter"},{"line_number":56,"context_line":"    def expires_at(self, value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_9d621b3e","line":53,"range":{"start_line":53,"start_character":35,"end_line":53,"end_character":54},"in_reply_to":"9f91af0f_ddf3c39d","updated":"2018-01-03 16:47:06.000000000","message":"Yes I think so","commit_id":"a37c73697607bc73d4cab2e0ca03708eb09f0f06"}]}
