)]}'
{"bin/quantum-manage":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright 2011 Nicira Neworks, Inc."},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAM3%2F%2Fv2s%3D","line":4,"updated":"2013-01-07 20:03:04.000000000","message":"As much as I\u0027d love having you in my team, I am afraid the copyright line is wrong :)","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import os"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":"sys.path.insert(0, os.getcwd())"},{"line_number":22,"context_line":"from quantum.admin import main"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"main()"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAM3%2F%2Fv2w%3D","line":21,"updated":"2013-01-07 20:03:04.000000000","message":"This is usually not required for the other exe scripts.\nWhy do we need it here?","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":19,"context_line":"import os"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":"sys.path.insert(0, os.getcwd())"},{"line_number":22,"context_line":"from quantum.admin import main"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"main()"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAM3%2F%2F3NM%3D","line":22,"updated":"2012-12-30 07:33:01.000000000","message":"Do we need a newline here?","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import os"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":"sys.path.insert(0, os.getcwd())"},{"line_number":22,"context_line":"from quantum.admin import main"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"main()"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAM3%2F%2F0cA%3D","line":22,"in_reply_to":"AAAAM3%2F%2F3NM%3D","updated":"2013-01-07 20:54:53.000000000","message":"Per hacking yes.  (pep8 was happy here).\n\nFixed","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"}],"quantum/admin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2012 New Dream Network, LLC (DreamHost)"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F6MQ%3D","line":1,"updated":"2012-12-21 15:26:30.000000000","message":"This is probably a dumb and pointless opinion, but admin.py does not give me the idea of a cli module, as this is. I personally prefer keystone approach, where the admin mgmt module is just called cli.py","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2012 New Dream Network, LLC (DreamHost)"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F344%3D","line":1,"in_reply_to":"AAAAM3%2F%2F6MQ%3D","updated":"2012-12-28 06:48:03.000000000","message":"Good idea.  Done.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def database_sync(prog, additional_argv):"},{"line_number":81,"context_line":"    ini_path \u003d os.path.join(os.path.dirname(migration.__file__), \u0027alembic.ini\u0027)"},{"line_number":82,"context_line":"    new_argv \u003d [\u0027-c\u0027, ini_path]"},{"line_number":83,"context_line":"    new_argv +\u003d additional_argv"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F6jA%3D","line":81,"updated":"2012-12-21 01:47:39.000000000","message":"even with package install this file will be in with the python code?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def database_sync(prog, additional_argv):"},{"line_number":81,"context_line":"    ini_path \u003d os.path.join(os.path.dirname(migration.__file__), \u0027alembic.ini\u0027)"},{"line_number":82,"context_line":"    new_argv \u003d [\u0027-c\u0027, ini_path]"},{"line_number":83,"context_line":"    new_argv +\u003d additional_argv"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F34k%3D","line":81,"in_reply_to":"AAAAM3%2F%2F6jA%3D","updated":"2012-12-28 06:48:03.000000000","message":"Yes.  I\u0027ve included it in the MANIFEST.in (Nova has migrate.cfg in a similar location.)","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}],"quantum/cli.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":26,"context_line":"from quantum.openstack.common import cfg"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_core_opts \u003d ["},{"line_number":29,"context_line":"    cfg.StrOpt(\u0027core_plugin\u0027,"},{"line_number":30,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":31,"context_line":"               help\u003d\u0027Quantum plugin provider module\u0027),"},{"line_number":32,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2F3NI%3D","line":29,"updated":"2012-12-30 07:33:01.000000000","message":"Will there be cases when we would want to enable a user to upgrade from one plugin to another - for example linux bridge to ovs?\nI am not sure that this is in the scope of this patch set.","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from quantum.openstack.common import cfg"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_core_opts \u003d ["},{"line_number":29,"context_line":"    cfg.StrOpt(\u0027core_plugin\u0027,"},{"line_number":30,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":31,"context_line":"               help\u003d\u0027Quantum plugin provider module\u0027),"},{"line_number":32,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2F0Zk%3D","line":29,"in_reply_to":"AAAAM3%2F%2F3NI%3D","updated":"2013-01-07 20:54:53.000000000","message":"The scope of this change focused on providing a path from Folsom to the current release.  In the future, we should consider how folks can migrate between LB and OVS.","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"}],"quantum/db/migration/README":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The migrations in the alembic/versions contain the changes needed to migrate"},{"line_number":20,"context_line":"Quantum Folsom to Quantum Grizzly.  Quantum uses a wrapper around the Alembic"},{"line_number":21,"context_line":"library which manages the actual migration."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6i8%3D","line":21,"updated":"2012-12-21 01:47:39.000000000","message":"in general, won\u0027t this be from any rev of quantum to any newer rev of quantum, with the initial supported version being Quantum Folsom?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The migrations in the alembic/versions contain the changes needed to migrate"},{"line_number":20,"context_line":"Quantum Folsom to Quantum Grizzly.  Quantum uses a wrapper around the Alembic"},{"line_number":21,"context_line":"library which manages the actual migration."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34g%3D","line":21,"in_reply_to":"AAAAM3%2F%2F6i8%3D","updated":"2012-12-28 06:48:03.000000000","message":"Yes.  I\u0027ve update the text to reflect that.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"library which manages the actual migration."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"},{"line_number":25,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":26,"context_line":" --config-file /path/to/plugin/config.ini upgrade head"},{"line_number":27,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6i4%3D","line":24,"updated":"2012-12-21 01:47:39.000000000","message":"are a?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"library which manages the actual migration."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"},{"line_number":25,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":26,"context_line":" --config-file /path/to/plugin/config.ini upgrade head"},{"line_number":27,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34c%3D","line":24,"in_reply_to":"AAAAM3%2F%2F6i4%3D","updated":"2012-12-28 06:48:03.000000000","message":"Done","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"},{"line_number":25,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":26,"context_line":" --config-file /path/to/plugin/config.ini upgrade head"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"To create a script to run the migration offline:"},{"line_number":29,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6Lc%3D","line":26,"updated":"2012-12-21 15:26:30.000000000","message":"In order to actually use these commands I had to put db_sync before the alembic command.\nIt seems that the admin cli wants db_sync or check_migration as first argument","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"If you deployer or developer and want to migrate from Folsom to Grizzly:"},{"line_number":25,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":26,"context_line":" --config-file /path/to/plugin/config.ini upgrade head"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"To create a script to run the migration offline:"},{"line_number":29,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34Y%3D","line":26,"in_reply_to":"AAAAM3%2F%2F6Lc%3D","updated":"2012-12-28 06:48:03.000000000","message":"Good catch. (the cli worked differently in earlier iterations).","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To check the current database version:"},{"line_number":33,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":34,"context_line":" --config-file /path/to/plugin/config.ini current"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"To run the offline migration between specific migration versions:"},{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6i0%3D","line":34,"updated":"2012-12-21 01:47:39.000000000","message":"do you expect quantum-manage to be used for non-DB-upgrade tasks in the future?  If so, perhaps make the command names include \"db\".  If not, perhaps name it quantum-db-manage.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To check the current database version:"},{"line_number":33,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":34,"context_line":" --config-file /path/to/plugin/config.ini current"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"To run the offline migration between specific migration versions:"},{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F3xg%3D","line":34,"in_reply_to":"AAAAM3%2F%2F34U%3D","updated":"2012-12-28 20:09:21.000000000","message":"My thinking is basically that once you have a generic command like quantum-manage, people will shove other types of functionality into it, so it would be best to either scope this utility to be specific to db operations, or name the commands in a way that their names indicate that they are db commands.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To check the current database version:"},{"line_number":33,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":34,"context_line":" --config-file /path/to/plugin/config.ini current"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"To run the offline migration between specific migration versions:"},{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fw7Y%3D","line":34,"in_reply_to":"AAAAM3%2F%2F3xg%3D","updated":"2013-01-07 20:55:04.000000000","message":"Good point.  I\u0027ve changed the name.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"To check the current database version:"},{"line_number":33,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":34,"context_line":" --config-file /path/to/plugin/config.ini current"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"To run the offline migration between specific migration versions:"},{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34U%3D","line":34,"in_reply_to":"AAAAM3%2F%2F6i0%3D","updated":"2012-12-28 06:48:03.000000000","message":"I went back and forth on this one.  \u003ccomponent-manage\u003e is how the other projects are doing it, but that probably not a good enough reason to keep it.  We could add other admin features to the cli, but I\u0027m not sure we\u0027ll add in any in Grizzly.  Thoughts?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":38,"context_line":"--config-file /path/to/plugin/config.ini upgrade \\"},{"line_number":39,"context_line":"\u003cstart version\u003e:\u003cend version\u003e --sql"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Upgrade the database incrementally:"},{"line_number":42,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":43,"context_line":"--config-file /path/to/plugin/config.ini upgrade  --delta \u003c# of revisions\u003e"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6NU%3D","line":40,"updated":"2012-12-21 15:26:30.000000000","message":"A command listing available migration version would probably be helpful too","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":38,"context_line":"--config-file /path/to/plugin/config.ini upgrade \\"},{"line_number":39,"context_line":"\u003cstart version\u003e:\u003cend version\u003e --sql"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Upgrade the database incrementally:"},{"line_number":42,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":43,"context_line":"--config-file /path/to/plugin/config.ini upgrade  --delta \u003c# of revisions\u003e"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F33o%3D","line":40,"in_reply_to":"AAAAM3%2F%2F6NU%3D","updated":"2012-12-28 06:48:03.000000000","message":"Not sure this is possible.  I\u0027ll have to look into it.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"DEVELOPERS:"},{"line_number":51,"context_line":"If you wish to generate a migration:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6is%3D","line":51,"updated":"2012-12-21 01:47:39.000000000","message":"could you describe more what a \"migration\", and how they are stored in templates?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"DEVELOPERS:"},{"line_number":51,"context_line":"If you wish to generate a migration:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34M%3D","line":51,"in_reply_to":"AAAAM3%2F%2F6is%3D","updated":"2012-12-28 06:48:03.000000000","message":"Good call. Done.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"If you wish to generate a migration:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This will generate a new migration template for you to customize."},{"line_number":57,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6iw%3D","line":54,"updated":"2012-12-21 01:47:39.000000000","message":"maybe create-revision ?\n\nin general, these command names could be more clear.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"If you wish to generate a migration:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This will generate a new migration template for you to customize."},{"line_number":57,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F33s%3D","line":54,"in_reply_to":"AAAAM3%2F%2F6iw%3D","updated":"2012-12-28 06:48:03.000000000","message":"Good idea.  I\u0027ll add a few more subcommands.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This will generate a new migration template for you to customize."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Alternatively, you can have the Alembic library generate a migration for you"},{"line_number":59,"context_line":"using a live database and your updated models.  You should inspect the"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6NQ%3D","line":56,"updated":"2012-12-21 15:26:30.000000000","message":"Looking at the difference between this use case and the next one here we probably generate an empty template.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"$ quantum-manage --config-file /path/to/quantum.conf \\"},{"line_number":54,"context_line":" --config-file /path/to/plugin/config.ini revision -m \"description of revision\""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This will generate a new migration template for you to customize."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Alternatively, you can have the Alembic library generate a migration for you"},{"line_number":59,"context_line":"using a live database and your updated models.  You should inspect the"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F34I%3D","line":56,"in_reply_to":"AAAAM3%2F%2F6NQ%3D","updated":"2012-12-28 06:48:03.000000000","message":"Correct.  I\u0027ve reordered the README to highlight auto generated versions first.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}],"quantum/db/migration/alembic.ini":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# the \u0027revision\u0027 command, regardless of autogenerate"},{"line_number":12,"context_line":"# revision_environment \u003d false"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"sqlalchemy.url \u003d driver://user:pass@localhost/dbname"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Logging configuration"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAM3%2F%2F6io%3D","line":14,"updated":"2012-12-21 01:47:39.000000000","message":"is there anyway we can get this from the plugin config file?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"# the \u0027revision\u0027 command, regardless of autogenerate"},{"line_number":12,"context_line":"# revision_environment \u003d false"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"sqlalchemy.url \u003d driver://user:pass@localhost/dbname"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Logging configuration"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAM3%2F%2F3lI%3D","line":14,"in_reply_to":"AAAAM3%2F%2F34E%3D","updated":"2012-12-28 20:09:21.000000000","message":"ok, don\u0027t fully understand the flow, but I\u0027ll trust you.  So is it that this value is never used?  If so, we might default it to the empty string, or otherwise provide a comment indicating that it is not used?  Not a big deal if this doesn\u0027t make sense though.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# the \u0027revision\u0027 command, regardless of autogenerate"},{"line_number":12,"context_line":"# revision_environment \u003d false"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"sqlalchemy.url \u003d driver://user:pass@localhost/dbname"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Logging configuration"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAM3%2F%2Fw7M%3D","line":14,"in_reply_to":"AAAAM3%2F%2F3lI%3D","updated":"2013-01-07 20:55:04.000000000","message":"It\u0027s basically a dummy value.  I\u0027ve updated to dummy value with comment.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# the \u0027revision\u0027 command, regardless of autogenerate"},{"line_number":12,"context_line":"# revision_environment \u003d false"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"sqlalchemy.url \u003d driver://user:pass@localhost/dbname"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Logging configuration"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAM3%2F%2F34E%3D","line":14,"in_reply_to":"AAAAM3%2F%2F6io%3D","updated":"2012-12-28 06:48:03.000000000","message":"We do.  This exists as a baseline config that gets updated when Alembic executes env.py.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"# the \u0027revision\u0027 command, regardless of autogenerate"},{"line_number":12,"context_line":"# revision_environment \u003d false"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"sqlalchemy.url \u003d driver://user:pass@localhost/dbname"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Logging configuration"}],"source_content_type":"text/x-properties","patch_set":4,"id":"AAAAM3%2F%2Fv3I%3D","line":14,"updated":"2013-01-07 20:03:04.000000000","message":"I wonder if we should have the above option in the file.\nI have not tried to remove it and see what happens, but it seems we always override it with the corresponding options form quantum\u0027s [DATABASE] section.\n\nI don\u0027t have any strong opinion here, but keeping here might tempt users to put their own connection string - and then they\u0027ll wonder why it has no effect.","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"}],"quantum/db/migration/alembic/env.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":36,"context_line":"# add in the Quantum specific configuration options"},{"line_number":37,"context_line":"config.set_section_option(\u0027alembic\u0027,"},{"line_number":38,"context_line":"                          \u0027sqlalchemy.url\u0027,"},{"line_number":39,"context_line":"                          admin.CONF.DATABASE.sql_connection)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# import the class to ensure that models are imported"},{"line_number":42,"context_line":"config.set_section_option(\u0027quantum\u0027, \u0027core_plugin\u0027, admin.CONF.core_plugin)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F6LI%3D","line":39,"updated":"2012-12-21 15:26:30.000000000","message":"I was considering a scenario where we run migrations at quantum startup if necessary - however the alembic environment seems to be a bit bound to the admin CLI in this way.\n\nHave you considered trying to use quantum.common.config for alembic as well?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# add in the Quantum specific configuration options"},{"line_number":37,"context_line":"config.set_section_option(\u0027alembic\u0027,"},{"line_number":38,"context_line":"                          \u0027sqlalchemy.url\u0027,"},{"line_number":39,"context_line":"                          admin.CONF.DATABASE.sql_connection)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# import the class to ensure that models are imported"},{"line_number":42,"context_line":"config.set_section_option(\u0027quantum\u0027, \u0027core_plugin\u0027, admin.CONF.core_plugin)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F34A%3D","line":39,"in_reply_to":"AAAAM3%2F%2F6LI%3D","updated":"2012-12-28 06:48:03.000000000","message":"I did.  Currently, the internals of the library look for this file for some default values at specific keys which are the same as our values.  I\u0027ll look to see if we can map it better.  I\u0027ll add some code to execute the migration at start-up and post another patchset.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}],"quantum/db/migration/alembic/versions/4960853fd5ac_folsom_initial.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PLUGINS \u003d {"},{"line_number":28,"context_line":"    \u0027bigswitch\u0027: \u0027quantum.plugins.bigswitch.plugin.QuantumRestProxyV2\u0027,"},{"line_number":29,"context_line":"    \u0027lbr\u0027: \u0027quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2\u0027,"},{"line_number":30,"context_line":"    \u0027meta\u0027: \u0027quantum.plugins.metaplugin.meta_quantum_plugin.MetaPluginV2\u0027,"},{"line_number":31,"context_line":"    \u0027nec\u0027: \u0027quantum.plugins.nec.nec_plugin.NECPluginV2\u0027,"},{"line_number":32,"context_line":"    \u0027nvp\u0027: \u0027quantum.plugins.nicira/nicira_nvp_plugin/QuantumPlugin\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F6NY%3D","line":29,"updated":"2012-12-21 15:26:30.000000000","message":"any reason for excluding Cisco plugin from this list?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PLUGINS \u003d {"},{"line_number":28,"context_line":"    \u0027bigswitch\u0027: \u0027quantum.plugins.bigswitch.plugin.QuantumRestProxyV2\u0027,"},{"line_number":29,"context_line":"    \u0027lbr\u0027: \u0027quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2\u0027,"},{"line_number":30,"context_line":"    \u0027meta\u0027: \u0027quantum.plugins.metaplugin.meta_quantum_plugin.MetaPluginV2\u0027,"},{"line_number":31,"context_line":"    \u0027nec\u0027: \u0027quantum.plugins.nec.nec_plugin.NECPluginV2\u0027,"},{"line_number":32,"context_line":"    \u0027nvp\u0027: \u0027quantum.plugins.nicira/nicira_nvp_plugin/QuantumPlugin\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F338%3D","line":29,"in_reply_to":"AAAAM3%2F%2F6NY%3D","updated":"2012-12-28 06:48:03.000000000","message":"Oops.  Added.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        upgrade_nec()"},{"line_number":71,"context_line":"    elif active_plugin \u003d\u003d PLUGINS[\u0027ryu\u0027]:"},{"line_number":72,"context_line":"        upgrade_ryu()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def upgrade_base():"},{"line_number":76,"context_line":"    op.create_table("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F6ic%3D","line":73,"updated":"2012-12-21 01:47:39.000000000","message":"seems like a shame that we need to duplicate the definition of tables here, rather than being able to leverage the already defined model classes.  I image there\u0027s no way around that, otherwise you probably would have done it already.  \n\nWhat happens if there is a slight different between the definitions here and in the model classes?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":70,"context_line":"        upgrade_nec()"},{"line_number":71,"context_line":"    elif active_plugin \u003d\u003d PLUGINS[\u0027ryu\u0027]:"},{"line_number":72,"context_line":"        upgrade_ryu()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def upgrade_base():"},{"line_number":76,"context_line":"    op.create_table("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F3lE%3D","line":73,"in_reply_to":"AAAAM3%2F%2F334%3D","updated":"2012-12-28 20:09:21.000000000","message":"If we think there\u0027s a fairly straightforward way to compare the two, that would be nice, though as I think about it a bit more, this may be hard, as a model will be updated \"in-place\" over time, whereas this file will always map to what the models where at the start of folsom.  So I guess in that case its not really duplication, so perhaps its just best to ignore my original comment :)","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        upgrade_nec()"},{"line_number":71,"context_line":"    elif active_plugin \u003d\u003d PLUGINS[\u0027ryu\u0027]:"},{"line_number":72,"context_line":"        upgrade_ryu()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def upgrade_base():"},{"line_number":76,"context_line":"    op.create_table("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2F334%3D","line":73,"in_reply_to":"AAAAM3%2F%2F6ic%3D","updated":"2012-12-28 06:48:03.000000000","message":"I agree it\u0027s less than ideal, but there\u0027s not another way around the double definition.  \n\nIt really depends on the differences between the migration and models.  We could develop a test that compares the two databases schemas after migrations are run.  Would that work?","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}],"quantum/db/migration/alembic/versions/README":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains the migration scripts for the Quantum project.  Please"},{"line_number":2,"context_line":"see the README in quantum/db/migration on how to use and generate new"},{"line_number":3,"context_line":"migrations."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6iY%3D","line":4,"updated":"2012-12-21 01:47:39.000000000","message":"I assume people should not edit these files directly, so might be good to call that out explicitly here, or in the files themselves.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains the migration scripts for the Quantum project.  Please"},{"line_number":2,"context_line":"see the README in quantum/db/migration on how to use and generate new"},{"line_number":3,"context_line":"migrations."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F3kw%3D","line":4,"in_reply_to":"AAAAM3%2F%2F330%3D","updated":"2012-12-28 20:09:21.000000000","message":"Oh, from the README it sounded like that in the common case, the entire template would be auto-generated, and in rare cases, manual intervention might be necessary.  I haven\u0027t used this myself yet, so I was just going off of what I read.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains the migration scripts for the Quantum project.  Please"},{"line_number":2,"context_line":"see the README in quantum/db/migration on how to use and generate new"},{"line_number":3,"context_line":"migrations."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F330%3D","line":4,"in_reply_to":"AAAAM3%2F%2F6iY%3D","updated":"2012-12-28 06:48:03.000000000","message":"Devs will need to edit the auto-generated template files in this directory.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}],"quantum/tests/unit/test_cli.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2012 New Dream Network, LLC (DreamHost)"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fv5w%3D","line":3,"updated":"2013-01-07 20:03:04.000000000","message":"2013 :)","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"}],"quantum/tests/unit/test_db_migration.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":18,"context_line":"# @author Mark McClain (DreamHost)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"import unittest2 as unittest"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from quantum.db import migration"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2F3i8%3D","line":21,"updated":"2012-12-28 21:00:14.000000000","message":"One question I had was whether we could add unit tests that confirm that all existing migration files are \"reasonable\".  As far as I can tell, the existing unit tests would not even import the migration files, so there could be something extremely basic broken in them and it would not be detected.  \n\nI guess another angle would be to say that the devstack gate should catch such issues, which reminds me that we should update devstack to run db_sync, right?","commit_id":"4e40a89d00f60bc9d0cc49741f6719a28769cae7"}],"tools/pip-requires":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"180465318d4aad12aaaadf1e9744b3dfcba8156e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"sqlalchemy\u003d\u003d0.7.9"},{"line_number":15,"context_line":"webob\u003d\u003d1.0.8"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.2.0"},{"line_number":17,"context_line":"alembic\u003e\u003d0.4.1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6iQ%3D","line":17,"updated":"2012-12-21 01:47:39.000000000","message":"not sure if this would ignite a flame war, but we should make sure the main distros (ubuntu, red hat, etc) have support for this version of alembic, or can work on it for their next release, given that we\u0027re outside the openstack norm on this one.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":14,"context_line":"sqlalchemy\u003d\u003d0.7.9"},{"line_number":15,"context_line":"webob\u003d\u003d1.0.8"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.2.0"},{"line_number":17,"context_line":"alembic\u003e\u003d0.4.1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F6Mo%3D","line":17,"in_reply_to":"AAAAM3%2F%2F6iQ%3D","updated":"2012-12-21 15:26:30.000000000","message":"I installed it from apt, and have version 0.3.4","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"117d81cd9ce7cbee86e9dbccc964880419a2967b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"sqlalchemy\u003d\u003d0.7.9"},{"line_number":15,"context_line":"webob\u003d\u003d1.0.8"},{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.2.0"},{"line_number":17,"context_line":"alembic\u003e\u003d0.4.1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2F33w%3D","line":17,"in_reply_to":"AAAAM3%2F%2F6iQ%3D","updated":"2012-12-28 06:48:03.000000000","message":"I\u0027ll check with packagers to see what versions they\u0027ll support.","commit_id":"68285f451e97216bf9e8f4ce083f34b6c4a3d1ad"}]}
