)]}'
{"keystone/cmd/cli.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6f7f42c4d553f11b3b47b67ba40be3de11924c48","unresolved":false,"context_lines":[{"line_number":375,"context_line":"            migration_helpers.sync_database_to_version(extension, version)"},{"line_number":376,"context_line":"        except (exception.InvalidInputError,"},{"line_number":377,"context_line":"                migration.exception.DbMigrationError) as error:"},{"line_number":378,"context_line":"            print(six.text_type(error))"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"class DbVersion(BaseApp):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_1ef6baf8","line":378,"updated":"2016-05-11 02:04:49.000000000","message":"We should LOG an error if we get one.","commit_id":"084600ae3731fbf4ed0f24e83d712adbe5b66f71"}],"keystone/common/sql/migration_helpers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"382eced74973533af302ecd0ebf157fadbafa6b4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                       \u0027revoke\u0027,"},{"line_number":41,"context_line":"                       \u0027endpoint_filter\u0027"},{"line_number":42,"context_line":"                       ]"},{"line_number":43,"context_line":"MAX_INT \u003d 0x7FFFFFFF"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"#  Different RDBMSs use different schemes for naming the Foreign Key"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_48c5983a","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":20},"updated":"2016-04-18 06:13:50.000000000","message":"you can use sys.maxsize instead","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"e750a98031c625eb0bc4b21a90cb7cf1c3ea160e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                       \u0027revoke\u0027,"},{"line_number":41,"context_line":"                       \u0027endpoint_filter\u0027"},{"line_number":42,"context_line":"                       ]"},{"line_number":43,"context_line":"MAX_INT \u003d 0x7FFFFFFF"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"#  Different RDBMSs use different schemes for naming the Foreign Key"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_1da16a46","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":20},"in_reply_to":"1a122d0e_48c5983a","updated":"2016-04-21 06:41:21.000000000","message":"Done","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"382eced74973533af302ecd0ebf157fadbafa6b4","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def sync_database_to_version(extension\u003dNone, version\u003dNone):"},{"line_number":210,"context_line":"    if version \u003e MAX_INT:"},{"line_number":211,"context_line":"        print(_(\u0027Version should be less than or equal to \u0027"},{"line_number":212,"context_line":"                \u0027%d.\u0027) % MAX_INT)"},{"line_number":213,"context_line":"        sys.exit(1)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    try:"},{"line_number":216,"context_line":"        if not extension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_48dc7812","line":213,"range":{"start_line":210,"start_character":4,"end_line":213,"end_character":19},"updated":"2016-04-18 06:13:50.000000000","message":"why not just catch ValueErrors after trying int(version)\n\nusing int(version) should cover most cases... and you wouldn\u0027t need to use MAX_INT or sys.maxsize","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"382eced74973533af302ecd0ebf157fadbafa6b4","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    if version \u003e MAX_INT:"},{"line_number":211,"context_line":"        print(_(\u0027Version should be less than or equal to \u0027"},{"line_number":212,"context_line":"                \u0027%d.\u0027) % MAX_INT)"},{"line_number":213,"context_line":"        sys.exit(1)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    try:"},{"line_number":216,"context_line":"        if not extension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_48f3d89e","line":213,"range":{"start_line":213,"start_character":8,"end_line":213,"end_character":19},"updated":"2016-04-18 06:13:50.000000000","message":"you could also raise a DbMigrationError here, stating the version is not valid","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"e750a98031c625eb0bc4b21a90cb7cf1c3ea160e","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    if version \u003e MAX_INT:"},{"line_number":211,"context_line":"        print(_(\u0027Version should be less than or equal to \u0027"},{"line_number":212,"context_line":"                \u0027%d.\u0027) % MAX_INT)"},{"line_number":213,"context_line":"        sys.exit(1)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    try:"},{"line_number":216,"context_line":"        if not extension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_bdc6ec46","line":213,"range":{"start_line":213,"start_character":8,"end_line":213,"end_character":19},"in_reply_to":"1a122d0e_48f3d89e","updated":"2016-04-21 06:41:21.000000000","message":"Hi Steve,\n\nDbMigrationError is implemented in oslo_db which cannot not be raised from here. I have defined own custom exception for invalid value of version and raised it.","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"382eced74973533af302ecd0ebf157fadbafa6b4","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        else:"},{"line_number":224,"context_line":"            _sync_extension_repo(extension, version)"},{"line_number":225,"context_line":"    except migration.exception.DbMigrationError as dbm_error:"},{"line_number":226,"context_line":"            print(six.text_type(dbm_error))"},{"line_number":227,"context_line":"            sys.exit(1)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_a8038c72","line":227,"range":{"start_line":226,"start_character":12,"end_line":227,"end_character":23},"updated":"2016-04-18 06:13:50.000000000","message":"why change this? it was raising valid exceptions before when migrations failed.","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"e750a98031c625eb0bc4b21a90cb7cf1c3ea160e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        else:"},{"line_number":224,"context_line":"            _sync_extension_repo(extension, version)"},{"line_number":225,"context_line":"    except migration.exception.DbMigrationError as dbm_error:"},{"line_number":226,"context_line":"            print(six.text_type(dbm_error))"},{"line_number":227,"context_line":"            sys.exit(1)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_daa48ea7","line":227,"range":{"start_line":226,"start_character":12,"end_line":227,"end_character":23},"in_reply_to":"1a122d0e_a8038c72","updated":"2016-04-21 06:41:21.000000000","message":"Hi Steve,\n\nAs explained in the commit message, it prints stacktrace with KeyError when version passed is greater than current version and DbMigrationError with stacktrace when version is passed less than current version. Stacktrace does not make any sense to the user. So this line handles appropriate exception and displays user friendly message to user.","commit_id":"db2378ad332f85ce782c072cd7bd9b3290d18e98"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"37fd22dc289599e524672f995cc450b00635d159","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                       \u0027revoke\u0027,"},{"line_number":41,"context_line":"                       \u0027endpoint_filter\u0027"},{"line_number":42,"context_line":"                       ]"},{"line_number":43,"context_line":"MAX_INT \u003d 0x7FFFFFFF"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"#  Different RDBMSs use different schemes for naming the Foreign Key"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_41defc6d","line":43,"updated":"2016-04-18 14:23:06.000000000","message":"please use sys.maxsize here","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"89533930650d5daddf1cf2e8f6a010368a1da701","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                       \u0027revoke\u0027,"},{"line_number":41,"context_line":"                       \u0027endpoint_filter\u0027"},{"line_number":42,"context_line":"                       ]"},{"line_number":43,"context_line":"MAX_INT \u003d 0x7FFFFFFF"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"#  Different RDBMSs use different schemes for naming the Foreign Key"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_7d617e04","line":43,"in_reply_to":"1a122d0e_41defc6d","updated":"2016-04-21 06:40:28.000000000","message":"Done","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"37fd22dc289599e524672f995cc450b00635d159","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    if version \u003e MAX_INT:"},{"line_number":211,"context_line":"        print(_(\u0027Version should be less than or equal to \u0027"},{"line_number":212,"context_line":"                \u0027%d.\u0027) % MAX_INT)"},{"line_number":213,"context_line":"        sys.exit(1)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    try:"},{"line_number":216,"context_line":"        if not extension:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_a1a430b9","line":213,"updated":"2016-04-18 14:23:06.000000000","message":"Why do this outside the try-catch code?\n\nyou could also raise a DbMigrationError here, stating the version is not valid.","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"37fd22dc289599e524672f995cc450b00635d159","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            _sync_extension_repo(extension, version)"},{"line_number":225,"context_line":"    except migration.exception.DbMigrationError as dbm_error:"},{"line_number":226,"context_line":"            print(six.text_type(dbm_error))"},{"line_number":227,"context_line":"            sys.exit(1)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_e1858807","line":227,"updated":"2016-04-18 14:23:06.000000000","message":"why not raise dbMigrationError instead of thsi sys.exit?","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"89533930650d5daddf1cf2e8f6a010368a1da701","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            _sync_extension_repo(extension, version)"},{"line_number":225,"context_line":"    except migration.exception.DbMigrationError as dbm_error:"},{"line_number":226,"context_line":"            print(six.text_type(dbm_error))"},{"line_number":227,"context_line":"            sys.exit(1)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"def get_db_version(extension\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_dd653245","line":227,"in_reply_to":"1a122d0e_e1858807","updated":"2016-04-21 06:40:28.000000000","message":"Hi Raildo,\n\nDbMigrationError is implemented in oslo_db which cannot not be raised from here.","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6f7f42c4d553f11b3b47b67ba40be3de11924c48","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    if version \u003e sys.maxsize:"},{"line_number":211,"context_line":"        msg \u003d (_(\u0027Version should be less than \u0027"},{"line_number":212,"context_line":"                 \u0027or equal to %d.\u0027) % sys.maxsize)"},{"line_number":213,"context_line":"        raise exception.InvalidInputError(reason\u003dmsg)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    if not extension:"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_bebcce06","line":212,"updated":"2016-05-11 02:04:49.000000000","message":"We should suggest to the user that the version should be less than or equal to the max migration value:\n\n    if version \u003e max_migration_possible:\n        msg \u003d (_(\u0027Version should be less than \u0027\n        \u0027or equal to %d.\u0027) % max_migration_possible)","commit_id":"084600ae3731fbf4ed0f24e83d712adbe5b66f71"}],"keystone/exception.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6f7f42c4d553f11b3b47b67ba40be3de11924c48","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"class InvalidInputError(Error):"},{"line_number":362,"context_line":"    message_format \u003d _(\"Invalid input received: %(reason)s\")"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"class EndpointGroupNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_1e5b5af7","line":362,"updated":"2016-05-11 02:04:49.000000000","message":"We have a bunch of validation error message above, maybe we can reuse one of those instead of creating a new one.","commit_id":"084600ae3731fbf4ed0f24e83d712adbe5b66f71"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a35cf2bb07468ef8f905a6aed2fd2d1d50c9c687","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"        self.assertEqual(self.max_version, version)"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"    def test_add_argument_parser_non_integer_version(self):"},{"line_number":1212,"context_line":"        CONF.clear()"},{"line_number":1213,"context_line":"        config_files \u003d self.config_files()"},{"line_number":1214,"context_line":"        self.assertRaises(unit.UnexpectedExit, cli.main,"},{"line_number":1215,"context_line":"                          [\u0027keystone-manage\u0027, \u0027db_sync\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_c1279562","line":1212,"updated":"2016-04-18 23:58:57.000000000","message":"Why is this needed? I don\u0027t see it anywhere else. Will it affect state in the other tests?","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"d71bf2c771b6f05265f7cfab94679379937cab87","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"        self.assertEqual(self.max_version, version)"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"    def test_add_argument_parser_non_integer_version(self):"},{"line_number":1212,"context_line":"        CONF.clear()"},{"line_number":1213,"context_line":"        config_files \u003d self.config_files()"},{"line_number":1214,"context_line":"        self.assertRaises(unit.UnexpectedExit, cli.main,"},{"line_number":1215,"context_line":"                          [\u0027keystone-manage\u0027, \u0027db_sync\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_8cd01bf8","line":1212,"in_reply_to":"1a122d0e_c1279562","updated":"2016-04-19 12:20:33.000000000","message":"Hi Colleen,\n\nI have made this change because arguments are set in CONF at line no. 1178 and it gives ArgsAlreadyParsedError from oslo_config when we try to set arguments in CONF again.","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a35cf2bb07468ef8f905a6aed2fd2d1d50c9c687","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"        config_files \u003d self.config_files()"},{"line_number":1223,"context_line":"        try:"},{"line_number":1224,"context_line":"            cli.main([\u0027keystone-manage\u0027, \u0027db_sync\u0027, \u002768\u0027], config_files)"},{"line_number":1225,"context_line":"        except Exception:"},{"line_number":1226,"context_line":"            self.fail(\"Encountered an unexpected exception.\")"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"    def test_extension_not_controlled(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_e11c5115","line":1225,"updated":"2016-04-18 23:58:57.000000000","message":"Why does this try/except need to be here? If cli.main() raises an exception that will cause the test to fail without hiding the traceback.","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"d71bf2c771b6f05265f7cfab94679379937cab87","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"        config_files \u003d self.config_files()"},{"line_number":1223,"context_line":"        try:"},{"line_number":1224,"context_line":"            cli.main([\u0027keystone-manage\u0027, \u0027db_sync\u0027, \u002768\u0027], config_files)"},{"line_number":1225,"context_line":"        except Exception:"},{"line_number":1226,"context_line":"            self.fail(\"Encountered an unexpected exception.\")"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"    def test_extension_not_controlled(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_ec1eefb9","line":1225,"in_reply_to":"1a122d0e_e11c5115","updated":"2016-04-19 12:20:33.000000000","message":"Hi Colleen,\n\nThis is the positive testcase when valid value for version is passed. Hence, cli.main() will not raise any exception.","commit_id":"bd6192af0532741824cf5368d44603f1ae1dc0b7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6f7f42c4d553f11b3b47b67ba40be3de11924c48","unresolved":false,"context_lines":[{"line_number":1187,"context_line":"    def test_dbsync_invalid_input(self):"},{"line_number":1188,"context_line":"        self.assertRaises(exception.InvalidInputError,"},{"line_number":1189,"context_line":"                          migration_helpers.sync_database_to_version,"},{"line_number":1190,"context_line":"                          version\u003dsys.maxsize + 1)"},{"line_number":1191,"context_line":""},{"line_number":1192,"context_line":"    def test_assert_not_schema_downgrade(self):"},{"line_number":1193,"context_line":"        self.upgrade(self.max_version)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_de3272a6","line":1190,"updated":"2016-05-11 02:04:49.000000000","message":"A user could technically still have issues with this. If there are only 350 migration versions and a user specifies 9223372036854775806 (sys.maxsize -1) then they wouldn\u0027t get any sort of helpful error message.","commit_id":"084600ae3731fbf4ed0f24e83d712adbe5b66f71"}]}
