)]}'
{"glance/db/sqlalchemy/migrate_repo/versions/042_add_changes_to_reinstall_unique_metadef_constraints.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dca414b894f9f79d8e75601cdb424ba32fe44a5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# accommodate sqlite which locks the database against updates as long as"},{"line_number":22,"context_line":"# db_recs is active."},{"line_number":23,"context_line":"# In addition, sqlite doesn\u0027t support the function \u0027concat\u0027 between"},{"line_number":24,"context_line":"# Strings and Integers, so, the updating of records is also adjusted."},{"line_number":25,"context_line":"def _upgrade_metadef_namespaces_get_duplicates(migrate_engine):"},{"line_number":26,"context_line":"    meta \u003d sqlalchemy.schema.MetaData(migrate_engine)"},{"line_number":27,"context_line":"    metadef_namespaces \u003d Table(\u0027metadef_namespaces\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_afeffe85","line":24,"updated":"2015-07-01 00:57:06.000000000","message":"Thank you for comments. +1","commit_id":"1ece501203a77af8a9182d09ec33335adccb0932"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"50e71e3f7f55728fc4f7fca891474306f729c937","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        # Objects"},{"line_number":247,"context_line":"        migrate.UniqueConstraint("},{"line_number":248,"context_line":"            metadef_objects.c.namespace_id,"},{"line_number":249,"context_line":"            metadef_objects.c.name).drop()"},{"line_number":250,"context_line":"        migrate.UniqueConstraint("},{"line_number":251,"context_line":"            metadef_objects.c.namespace_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_eecfafb1","line":248,"updated":"2015-07-11 03:21:02.000000000","message":"Would it be terribly awful of me to suggest that you could create a private function to do something like\n\n\n    def _update_sqlite_constraints(metadef, namespaces, new_constraint_name):\n       migrate.UniqueConstraint(\n           metadef.c.namespace_id,\n           metadef.c.name).drop()\n       migrate.UniqueConstraint(\n           metadef.c.namespace_id,\n           metadef.c.name,\n           name\u003dnew_constraint_name).create()\n       migrate.ForeignKeyConstraint([metadef.c.namespace_id],\n                                    [namespaces.c.id]).create()\n\n\nAnd to do\n\n    _update_constraints(metadef_objects, metadef_namespaces,\n                        \u0027uq_metadef_objects_namespace_id_name\u0027)\n    _update_constraints(metadef_properties, metadef_namespaces,\n                        \u0027uq_metadef_properties_namespace_id_name\u0027)\n    #...\n\nPerhaps move the database specific things into their own methods to simplify this too?\n\n    if migrate_engine.name \u003d\u003d \u0027sqlite\u0027:\n        _upgrade_sqlite(...)","commit_id":"e3f6a9de5af7489c7921a31a98fc71cc909c90a9"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d140e38c1b477fabecd80592732cef53e311c6b6","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        # Objects"},{"line_number":247,"context_line":"        migrate.UniqueConstraint("},{"line_number":248,"context_line":"            metadef_objects.c.namespace_id,"},{"line_number":249,"context_line":"            metadef_objects.c.name).drop()"},{"line_number":250,"context_line":"        migrate.UniqueConstraint("},{"line_number":251,"context_line":"            metadef_objects.c.namespace_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_8a6bdcf0","line":248,"in_reply_to":"9a41bdd9_eecfafb1","updated":"2015-07-14 21:34:42.000000000","message":"Done here and with _upgrade_drop_index_with_fk_constraints(...). Also, switched to use migrate. instead of migrate_engine. for consistency.","commit_id":"e3f6a9de5af7489c7921a31a98fc71cc909c90a9"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"50e71e3f7f55728fc4f7fca891474306f729c937","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        )"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"def downgrade(migrate_engine):"},{"line_number":420,"context_line":"    meta \u003d sqlalchemy.MetaData()"},{"line_number":421,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_0ed53342","line":419,"updated":"2015-07-11 03:21:02.000000000","message":"I\u0027m sorry if you\u0027ve tested this, but OpenStack has moved away from providing downward migrations. You can delete this.","commit_id":"e3f6a9de5af7489c7921a31a98fc71cc909c90a9"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"d140e38c1b477fabecd80592732cef53e311c6b6","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        )"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"def downgrade(migrate_engine):"},{"line_number":420,"context_line":"    meta \u003d sqlalchemy.MetaData()"},{"line_number":421,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_0a802c8a","line":419,"in_reply_to":"9a41bdd9_0ed53342","updated":"2015-07-14 21:34:42.000000000","message":"I\u0027ve left this in there as i find it use-full for testing the upgrade path. Let me know if I must remove this one.","commit_id":"e3f6a9de5af7489c7921a31a98fc71cc909c90a9"},{"author":{"_account_id":10327,"name":"Feng Xi Yan","email":"yanfengxi@cn.ibm.com","username":"yanfengxi"},"change_message_id":"360b46f885509ee22008df77913e6cf82e74047c","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        fkc \u003d migrate.ForeignKeyConstraint([metadef.c.namespace_id],"},{"line_number":241,"context_line":"                                           [metadef_namespaces.c.id],"},{"line_number":242,"context_line":"                                           name\u003dfk_name)"},{"line_number":243,"context_line":"    fkc.drop()"},{"line_number":244,"context_line":"    Index(index_name, metadef.c.namespace_id).drop()"},{"line_number":245,"context_line":"    fkc.create()"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_f23acc97","line":243,"updated":"2015-08-25 02:00:22.000000000","message":"This line does not work with DB2. \n\nHere is the detailed log: \n\nhttp://dal05.objectstorage.softlayer.net/v1/AUTH_58396f85-2c60-47b9-aaf8-e03bc24a1a6f/cilog/20/195820/10/check/ibm-db2-ci-glance/5f1d298/logs/devstacklog.txt\n\nCould you do some minor change to make it work with DB2? If no, I could find some guy from IBM to co-work with you.","commit_id":"49a952da67c66f6a826051602d5ec231c605dc35"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"073faf9d902fc4f73e59cacc616da7a0cd89e817","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        fkc \u003d migrate.ForeignKeyConstraint([metadef.c.namespace_id],"},{"line_number":241,"context_line":"                                           [metadef_namespaces.c.id],"},{"line_number":242,"context_line":"                                           name\u003dfk_name)"},{"line_number":243,"context_line":"    fkc.drop()"},{"line_number":244,"context_line":"    Index(index_name, metadef.c.namespace_id).drop()"},{"line_number":245,"context_line":"    fkc.create()"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_2da6a553","line":243,"in_reply_to":"fa1b9901_f23acc97","updated":"2015-08-25 03:04:04.000000000","message":"If you could find the guy that would be helpful.","commit_id":"49a952da67c66f6a826051602d5ec231c605dc35"}],"glance/tests/functional/__init__.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0dca414b894f9f79d8e75601cdb424ba32fe44a5","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        self.store_type_location_strategy_preference \u003d \"\""},{"line_number":317,"context_line":"        default_sql_connection \u003d \u0027sqlite:////%s/tests.sqlite\u0027 % self.test_dir"},{"line_number":318,"context_line":"        self.sql_connection \u003d os.environ.get(\u0027GLANCE_TEST_SQL_CONNECTION\u0027,"},{"line_number":319,"context_line":"                                             default_sql_connection)"},{"line_number":320,"context_line":"        self.conf_base \u003d \"\"\"[DEFAULT]"},{"line_number":321,"context_line":"verbose \u003d %(verbose)s"},{"line_number":322,"context_line":"debug \u003d %(debug)s"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_0fe2aa9f","line":319,"updated":"2015-07-01 00:57:06.000000000","message":"Stupid question: Why was this moved down here?","commit_id":"1ece501203a77af8a9182d09ec33335adccb0932"},{"author":{"_account_id":10383,"name":"Wayne Okuma","email":"wayne.okuma@hpe.com","username":"okumaw"},"change_message_id":"47881cfbe9a2dd64090a3496ec725830f00ce286","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        self.store_type_location_strategy_preference \u003d \"\""},{"line_number":317,"context_line":"        default_sql_connection \u003d \u0027sqlite:////%s/tests.sqlite\u0027 % self.test_dir"},{"line_number":318,"context_line":"        self.sql_connection \u003d os.environ.get(\u0027GLANCE_TEST_SQL_CONNECTION\u0027,"},{"line_number":319,"context_line":"                                             default_sql_connection)"},{"line_number":320,"context_line":"        self.conf_base \u003d \"\"\"[DEFAULT]"},{"line_number":321,"context_line":"verbose \u003d %(verbose)s"},{"line_number":322,"context_line":"debug \u003d %(debug)s"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_8b315c5c","line":319,"in_reply_to":"ba3cc151_0fe2aa9f","updated":"2015-07-03 01:25:01.000000000","message":"Sorry, this file should not have been part of the check-in. I moved the lines back to their original position. (I was editing __init__.py during testing...I thought I had restored things to their original state, but, missed this). Thanks.","commit_id":"1ece501203a77af8a9182d09ec33335adccb0932"}]}
