)]}'
{"etc/quantum/plugins/bigswitch/restproxy.ini":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"34aa24ba8d9f416a09efa08b99e7ef7d9a572512","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# vif_type \u003d ovs"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"# Overrides for vif types based on nova compute node host IDs"},{"line_number":55,"context_line":"# Comma separated list of host IDs to fix to a specific VIF type"},{"line_number":56,"context_line":"#node_overrride_vif_ivs\u003d\u003chost-id1\u003e, \u003chost-id2\u003e"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[ROUTER]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAAPn%2F%2Fp%2FE%3D","line":55,"updated":"2013-06-25 20:55:02.000000000","message":"you might also want to spell out the format of the key name here. I believe you want it to be:\nnove_override_vif_\u003cvif_type\u003e\nwhere vif_type is defined in the relevant constants module?","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# vif_type \u003d ovs"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"# Overrides for vif types based on nova compute node host IDs"},{"line_number":55,"context_line":"# Comma separated list of host IDs to fix to a specific VIF type"},{"line_number":56,"context_line":"#node_overrride_vif_ivs\u003d\u003chost-id1\u003e, \u003chost-id2\u003e"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[ROUTER]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAAPn%2F%2Fp70%3D","line":55,"in_reply_to":"AAAAPn%2F%2Fp%2FE%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"34aa24ba8d9f416a09efa08b99e7ef7d9a572512","unresolved":false,"context_lines":[{"line_number":56,"context_line":"#node_overrride_vif_ivs\u003d\u003chost-id1\u003e, \u003chost-id2\u003e"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[ROUTER]"},{"line_number":59,"context_line":"# Specify the default router rules installed in newly created tenant routers"},{"line_number":60,"context_line":"# Specify multiple times for multiple rules"},{"line_number":61,"context_line":"# Format is \u003ctenant\u003e:\u003csource\u003e:\u003cdestination\u003e:\u003caction\u003e"},{"line_number":62,"context_line":"# Optionally, a comma-separated list of nexthops may be included after \u003caction\u003e"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAAPn%2F%2Fp%2FM%3D","line":59,"updated":"2013-06-25 20:55:02.000000000","message":"ROUTER -\u003e router\n(rebasing the patch will fix this)","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"#node_overrride_vif_ivs\u003d\u003chost-id1\u003e, \u003chost-id2\u003e"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[ROUTER]"},{"line_number":59,"context_line":"# Specify the default router rules installed in newly created tenant routers"},{"line_number":60,"context_line":"# Specify multiple times for multiple rules"},{"line_number":61,"context_line":"# Format is \u003ctenant\u003e:\u003csource\u003e:\u003cdestination\u003e:\u003caction\u003e"},{"line_number":62,"context_line":"# Optionally, a comma-separated list of nexthops may be included after \u003caction\u003e"}],"source_content_type":"text/x-properties","patch_set":1,"id":"AAAAPn%2F%2Fpt0%3D","line":59,"in_reply_to":"AAAAPn%2F%2Fp%2FM%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"}],"quantum/db/migration/alembic_migrations/versions/3cabb850f4a5_table_to_track_port_.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6b5b2fe1c01c882f84b807118988c50c0a3ba28","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                              sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":51,"context_line":"                    sa.Column(\u0027host_id\u0027,"},{"line_number":52,"context_line":"                              sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":53,"context_line":"                    sa.PrimaryKeyConstraint(\u0027port_id\u0027)"},{"line_number":54,"context_line":"                    )"},{"line_number":55,"context_line":"    ### end Alembic commands ###"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fq7w%3D","line":53,"updated":"2013-06-25 15:38:53.000000000","message":"primary key constraint can be specificed in sa.Column constructor (not important, though)","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                              sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":51,"context_line":"                    sa.Column(\u0027host_id\u0027,"},{"line_number":52,"context_line":"                              sa.String(length\u003d255), nullable\u003dFalse),"},{"line_number":53,"context_line":"                    sa.PrimaryKeyConstraint(\u0027port_id\u0027)"},{"line_number":54,"context_line":"                    )"},{"line_number":55,"context_line":"    ### end Alembic commands ###"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FqkQ%3D","line":53,"in_reply_to":"AAAAPn%2F%2Fq7w%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6b5b2fe1c01c882f84b807118988c50c0a3ba28","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def downgrade(active_plugin\u003dNone, options\u003dNone):"},{"line_number":59,"context_line":"    if not migration.should_run(active_plugin, migration_for_plugins):"},{"line_number":60,"context_line":"        return"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    ### commands auto generated by Alembic - please adjust! ###"},{"line_number":63,"context_line":"    op.drop_table(\u0027portlocations\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fq74%3D","line":60,"updated":"2013-06-25 15:38:53.000000000","message":"the downgrad routine It\u0027s probably not stricly necessary, but still welcome","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"}],"quantum/plugins/bigswitch/plugin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6b5b2fe1c01c882f84b807118988c50c0a3ba28","unresolved":false,"context_lines":[{"line_number":130,"context_line":"# Each VIF Type can have a list of nova host IDs that are fixed to that type"},{"line_number":131,"context_line":"VIF_TYPES \u003d [getattr(portbindings, v)"},{"line_number":132,"context_line":"             for v in dir(portbindings)"},{"line_number":133,"context_line":"             if v.startswith(\"VIF_TYPE_\")]"},{"line_number":134,"context_line":"for i in VIF_TYPES:"},{"line_number":135,"context_line":"    opt \u003d cfg.ListOpt(\u0027node_override_vif_\u0027 + i, default\u003d[],"},{"line_number":136,"context_line":"                      help\u003d_(\"Nova compute nodes to manually set VIF \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fq7E%3D","line":133,"updated":"2013-06-25 15:38:53.000000000","message":"Perhaps it might worth building a VIF_TYPES array in portbindings. dir operation can be fairly expensive.","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":130,"context_line":"# Each VIF Type can have a list of nova host IDs that are fixed to that type"},{"line_number":131,"context_line":"VIF_TYPES \u003d [getattr(portbindings, v)"},{"line_number":132,"context_line":"             for v in dir(portbindings)"},{"line_number":133,"context_line":"             if v.startswith(\"VIF_TYPE_\")]"},{"line_number":134,"context_line":"for i in VIF_TYPES:"},{"line_number":135,"context_line":"    opt \u003d cfg.ListOpt(\u0027node_override_vif_\u0027 + i, default\u003d[],"},{"line_number":136,"context_line":"                      help\u003d_(\"Nova compute nodes to manually set VIF \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fqr0%3D","line":133,"in_reply_to":"AAAAPn%2F%2Fq7E%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6b5b2fe1c01c882f84b807118988c50c0a3ba28","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    nova_opts.append(opt)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# Add the vif types for reference later"},{"line_number":141,"context_line":"nova_opts.append(cfg.ListOpt(\u0027VIF_TYPES\u0027, default\u003dVIF_TYPES))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"cfg.CONF.register_opts(nova_opts, \"NOVA\")"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fq60%3D","line":141,"updated":"2013-06-25 15:38:53.000000000","message":"I think there\u0027s a convention of using lower case for options","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    nova_opts.append(opt)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# Add the vif types for reference later"},{"line_number":141,"context_line":"nova_opts.append(cfg.ListOpt(\u0027VIF_TYPES\u0027, default\u003dVIF_TYPES))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"cfg.CONF.register_opts(nova_opts, \"NOVA\")"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fqrw%3D","line":141,"in_reply_to":"AAAAPn%2F%2Fq60%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"}],"quantum/plugins/bigswitch/porttracker_db.py":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"34aa24ba8d9f416a09efa08b99e7ef7d9a572512","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":"import sqlalchemy as sa"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from quantum.db import model_base"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fp%2Bk%3D","line":16,"updated":"2013-06-25 20:55:02.000000000","message":"nit: blank line?","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":"import sqlalchemy as sa"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from quantum.db import model_base"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FpuQ%3D","line":16,"in_reply_to":"AAAAPn%2F%2Fp%2Bk%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c6b5b2fe1c01c882f84b807118988c50c0a3ba28","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def put_port_hostid(context, port_id, host_id):"},{"line_number":40,"context_line":"    if port_id \u003d\u003d \u0027\u0027:"},{"line_number":41,"context_line":"        LOG.warning(_(\"Received an empty port ID for host \u0027%s\u0027\"), host_id)"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fq8c%3D","line":40,"updated":"2013-06-25 15:38:53.000000000","message":"Is port_id \u003d\u003d None a casa you should worry about as well?","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def put_port_hostid(context, port_id, host_id):"},{"line_number":40,"context_line":"    if port_id \u003d\u003d \u0027\u0027:"},{"line_number":41,"context_line":"        LOG.warning(_(\"Received an empty port ID for host \u0027%s\u0027\"), host_id)"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FqkY%3D","line":40,"in_reply_to":"AAAAPn%2F%2Fq8c%3D","updated":"2013-06-25 23:48:03.000000000","message":"Not that I know of, do you have a reference to a case where this could happen?","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"}],"quantum/tests/unit/bigswitch/etc/restproxy.ini.test":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"34aa24ba8d9f416a09efa08b99e7ef7d9a572512","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# Overrides for vif types based on nova compute node host IDs"},{"line_number":34,"context_line":"# Comma separated list of host IDs to fix to a specific VIF type"},{"line_number":35,"context_line":"node_override_vif_ivs \u003d ivshost"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[ROUTER]"},{"line_number":38,"context_line":"# Specify the default router rules installed in newly created tenant routers"},{"line_number":39,"context_line":"# Specify multiple times for multiple rules"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAPn%2F%2Fp%2BY%3D","line":36,"updated":"2013-06-25 20:55:02.000000000","message":"similar comments as in restproxy.ini","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"3a7624ec2a337d9b26b061b3e071085b1a761fb5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# Overrides for vif types based on nova compute node host IDs"},{"line_number":34,"context_line":"# Comma separated list of host IDs to fix to a specific VIF type"},{"line_number":35,"context_line":"node_override_vif_ivs \u003d ivshost"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[ROUTER]"},{"line_number":38,"context_line":"# Specify the default router rules installed in newly created tenant routers"},{"line_number":39,"context_line":"# Specify multiple times for multiple rules"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAPn%2F%2FpuE%3D","line":36,"in_reply_to":"AAAAPn%2F%2Fp%2BY%3D","updated":"2013-06-25 23:48:03.000000000","message":"Done","commit_id":"36c124ab9e10d69ddefc07ebab7e06b1893e19aa"}]}
