)]}'
{"bin/glance-manage":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"810e5dc79ad1b3d24f9b7a639cd4e7c3d7c175f1","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        default_cfg_files \u003d cfg.find_config_files(project\u003d\u0027glance\u0027,"},{"line_number":110,"context_line":"                                                  prog\u003d\u0027glance-registry\u0027)"},{"line_number":111,"context_line":"        "},{"line_number":112,"context_line":"        args \u003d config.parse_args(default_config_files\u003ddefault_cfg_files,"},{"line_number":113,"context_line":"                                 usage\u003d\"%prog [options] \u003ccmd\u003e\")"},{"line_number":114,"context_line":"        "}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAALH%2F%2FMhk%3D","line":111,"updated":"2012-10-05 22:15:43.000000000","message":"whitespace","commit_id":"9474641caae4c81b7e8e988694a7a02ef69899d5"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"810e5dc79ad1b3d24f9b7a639cd4e7c3d7c175f1","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        "},{"line_number":112,"context_line":"        args \u003d config.parse_args(default_config_files\u003ddefault_cfg_files,"},{"line_number":113,"context_line":"                                 usage\u003d\"%prog [options] \u003ccmd\u003e\")"},{"line_number":114,"context_line":"        "},{"line_number":115,"context_line":"        config.setup_logging()"},{"line_number":116,"context_line":"    except RuntimeError, e:"},{"line_number":117,"context_line":"        sys.exit(\"ERROR: %s\" % e)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAALH%2F%2FMhg%3D","line":114,"updated":"2012-10-05 22:15:43.000000000","message":"whitespace","commit_id":"9474641caae4c81b7e8e988694a7a02ef69899d5"}],"glance/db/sqlalchemy/migration.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"a00cea388be6c42a817c3a8e7f314efdfc73f4d2","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                     \"migration control\") % locals())"},{"line_number":125,"context_line":"            raise exception.DatabaseMigrationError(msg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    upgrade(version\u003dversion)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def get_migrate_repo_path():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FLv0%3D","side":"PARENT","line":127,"updated":"2012-10-08 16:48:39.000000000","message":"I don\u0027t want to get rid of this method. People should be able to call \u0027glance-manage db_sync \u003cVERSION\u003e\u0027, \u0027glance-manage upgrade \u003cVERSION\u003e\u0027 or \u0027glance-manage downgrade \u003cVERSION\u003e\u0027.","commit_id":"eed7baf6df64ef2707bb553b470ac9ca9deca48f"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"3dd26f1dc44f76df63a3b02383b428d094d831c8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                     \"migration control\") % locals())"},{"line_number":125,"context_line":"            raise exception.DatabaseMigrationError(msg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    upgrade(version\u003dversion)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def get_migrate_repo_path():"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FJ60%3D","side":"PARENT","line":127,"in_reply_to":"AAAALH%2F%2FLv0%3D","updated":"2012-10-10 18:08:40.000000000","message":"I misread the code here - you\u0027re obviously not getting rid of \u0027upgrade\u0027!","commit_id":"eed7baf6df64ef2707bb553b470ac9ca9deca48f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f178e23ed8e6cf32279842bc39112031ba8ec9c6","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        _version_control(current_version or 0)"},{"line_number":121,"context_line":"    except versioning_exceptions.DatabaseAlreadyControlledError, e:"},{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJ3Q%3D","line":123,"updated":"2012-10-10 19:15:47.000000000","message":"ws","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f178e23ed8e6cf32279842bc39112031ba8ec9c6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    except versioning_exceptions.DatabaseAlreadyControlledError, e:"},{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJ2s%3D","line":124,"updated":"2012-10-10 19:15:47.000000000","message":"also can we just have?:-\n\n    if current_version: \n\ninstead of \n\n    if current_version is not None:","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"ef8e205c7b8bea0db1b12dea90cbb8bc5ebbbcda","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    except versioning_exceptions.DatabaseAlreadyControlledError, e:"},{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJyk%3D","line":124,"in_reply_to":"AAAALH%2F%2FJ2s%3D","updated":"2012-10-10 20:16:56.000000000","message":"Nope, you need to be super careful in these cases as \u0027current_version\u0027 defined as 0 means something completely different as when it defaults to None.","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"3f7703cdabbaea2838067b0505cbf3c78ea9a54f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    except versioning_exceptions.DatabaseAlreadyControlledError, e:"},{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJyU%3D","line":124,"in_reply_to":"AAAALH%2F%2FJyk%3D","updated":"2012-10-10 20:18:52.000000000","message":"yeah, you\u0027r right someone could have version 0, my first thought was to avoid that too","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f178e23ed8e6cf32279842bc39112031ba8ec9c6","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            upgrade(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJ28%3D","line":125,"updated":"2012-10-10 19:15:47.000000000","message":"why not check version here for None?","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":5704,"name":"sathish-nagappan","email":"sathish.nagappan@nebula.com","username":"sathish-nagappan"},"change_message_id":"766ec2baefa59be9dcc7793694d6e8ccc3a4317a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            upgrade(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJwc%3D","line":125,"in_reply_to":"AAAALH%2F%2FJ28%3D","updated":"2012-10-10 20:46:02.000000000","message":"I don\u0027t think we need to. I included the \u0027version is not None\u0027 in the  else clause because if version is none the function int() throws an error. Regardless of whether or not we include the extra phrase I think logic path will be the same. Do you see any corner cases?","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"a0744b5886907f779fc383b04c7e2c5c59289f55","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":"   "},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            upgrade(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJsQ%3D","line":125,"in_reply_to":"AAAALH%2F%2FJwc%3D","updated":"2012-10-10 21:31:37.000000000","message":"no, it seems ok. thanks for the clarification.","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f178e23ed8e6cf32279842bc39112031ba8ec9c6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            upgrade(version\u003dversion)"},{"line_number":129,"context_line":"    else:"},{"line_number":130,"context_line":"        if version is not None and int(version) \u003c int(db_version()):"},{"line_number":131,"context_line":"            downgrade(version\u003dversion)"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            upgrade(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2FJ2o%3D","line":130,"updated":"2012-10-10 19:15:47.000000000","message":"same as second comment","commit_id":"e2d0cea9cbbf5b0b1b4d1b242486e45d25cc7035"},{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"fbad113c3dc052b0503f3476872402f252eb00dd","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    else:"},{"line_number":130,"context_line":"        if version is not None and int(version) \u003c int(db_version()):"},{"line_number":131,"context_line":"            downgrade(version\u003dversion)"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            upgrade(version\u003dversion)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAALH%2F%2FIQU%3D","line":132,"updated":"2012-10-12 21:44:54.000000000","message":"if version \u003d\u003d current_version we need not do an upgrade or downgrade...","commit_id":"1a9a0ffee05208af75e04dffdc6235355996e5d2"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"43de48f5fd2349524e57b20c179755171304f39f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    except versioning_exceptions.DatabaseAlreadyControlledError, e:"},{"line_number":122,"context_line":"        pass"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    if current_version is not None:"},{"line_number":125,"context_line":"        if version \u003c current_version:"},{"line_number":126,"context_line":"            downgrade(version\u003dversion)"},{"line_number":127,"context_line":"        elif version \u003e current_version:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAALn%2F%2F9lI%3D","line":124,"updated":"2012-10-24 17:57:16.000000000","message":"This whole if block could be simpler.\n\n if current_version is None:\n     current_version \u003d int(db_version())\n if version is None or version \u003e current_version:\n     upgrade(version\u003dversion)\n elif version \u003c current_version:\n     downgrade(version\u003dversion)","commit_id":"042653eeb32ef1e9576b2db2e071f1f70cd2c202"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"43de48f5fd2349524e57b20c179755171304f39f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        elif version \u003e current_version:"},{"line_number":128,"context_line":"            upgrade(version\u003dversion)"},{"line_number":129,"context_line":"    else:"},{"line_number":130,"context_line":"        DBversion \u003d int(db_version())"},{"line_number":131,"context_line":"        if version is not None and int(version) \u003c DBversion:"},{"line_number":132,"context_line":"            downgrade(version\u003dversion)"},{"line_number":133,"context_line":"        elif version is None or int(version) \u003e DBversion:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAALn%2F%2F9kw%3D","line":130,"updated":"2012-10-24 17:57:16.000000000","message":"If you refactor the if block as I commented above, you needn\u0027t worry. However, this variable name \"DBversion\" is not in the format that we would typically use in openstack projects. See hacking for details. But it would need to be renamed to something like \"db_version\".","commit_id":"042653eeb32ef1e9576b2db2e071f1f70cd2c202"}],"glance/tests/unit/test_migrations.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"43de48f5fd2349524e57b20c179755171304f39f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # Now walk it back down to 0 from the latest, testing"},{"line_number":208,"context_line":"        # the downgrade paths."},{"line_number":209,"context_line":"        for version in reversed(xrange(0, TestMigrations.REPOSITORY.latest)):"},{"line_number":210,"context_line":"            migration_api.db_sync(version)"},{"line_number":211,"context_line":"            cur_version \u003d migration_api.db_version()"},{"line_number":212,"context_line":"            self.assertEqual(cur_version, version)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAALn%2F%2F9kc%3D","line":210,"updated":"2012-10-24 17:57:16.000000000","message":"I think I\u0027d rather leave this alone and write a separate test for the new db_sync functionality.","commit_id":"042653eeb32ef1e9576b2db2e071f1f70cd2c202"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6271a95b5058bb8a675404a1ad095d4351ec6a6e","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            cur_version \u003d migration_api.db_version()"},{"line_number":212,"context_line":"            self.assertEqual(cur_version, version)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_db_sync(self, initial_version\u003d0):"},{"line_number":215,"context_line":"        migration_api.db_sync(initial_version)"},{"line_number":216,"context_line":"        cur_version \u003d migration_api.db_version()"},{"line_number":217,"context_line":"        self.assertEqual(cur_version, initial_version)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAALn%2F%2F8Tk%3D","line":214,"updated":"2012-10-25 19:22:48.000000000","message":"It\u0027s kind of weird to have a kwarg in a test signature. Maybe just set initial_version \u003d 0 on the next line?","commit_id":"94262ebb51d12f4a4508c869107dba6504deb04b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ddc79bad903a7b709050ed08b80ffe6f33386d68","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            cur_version \u003d migration_api.db_version()"},{"line_number":212,"context_line":"            self.assertEqual(cur_version, version)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_db_sync(self, initial_version\u003d0):"},{"line_number":215,"context_line":"        migration_api.db_sync(initial_version)"},{"line_number":216,"context_line":"        cur_version \u003d migration_api.db_version()"},{"line_number":217,"context_line":"        self.assertEqual(cur_version, initial_version)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAALn%2F%2F8Qs%3D","line":214,"in_reply_to":"AAAALn%2F%2F8Tk%3D","updated":"2012-10-25 19:54:39.000000000","message":"agree to that","commit_id":"94262ebb51d12f4a4508c869107dba6504deb04b"}]}
