)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"31a49e540cc1a25b33290163dcf502b0f2a0fc7c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   on port update by admin or tenant user."},{"line_number":15,"context_line":"   \u0027binding:vnic_type\u0027 can be also skipped in port defintion"},{"line_number":16,"context_line":"2. Management of vnic_type by ML2 plugin, assuming default"},{"line_number":17,"context_line":"vnic_type\u003dno-sriov"},{"line_number":18,"context_line":"3. Add \u0027vnic_type\u0027 to ml2_port_bindings DB table"},{"line_number":19,"context_line":"4. Add supported vnic_types for MechasmDrivers that are capable to bind"},{"line_number":20,"context_line":"port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUX%2F%2Bqr4%3D","line":17,"updated":"2014-02-19 22:10:26.000000000","message":"Change \u0027no-sriov\u0027 to \u0027normal\u0027.","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"0d22bcc5ba2a22f942a891afd17e6a3e442ac130","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   on port update by admin or tenant user."},{"line_number":15,"context_line":"   \u0027binding:vnic_type\u0027 can be also skipped in port defintion"},{"line_number":16,"context_line":"2. Management of vnic_type by ML2 plugin, assuming default"},{"line_number":17,"context_line":"vnic_type\u003dno-sriov"},{"line_number":18,"context_line":"3. Add \u0027vnic_type\u0027 to ml2_port_bindings DB table"},{"line_number":19,"context_line":"4. Add supported vnic_types for MechasmDrivers that are capable to bind"},{"line_number":20,"context_line":"port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUX%2F%2BoRI%3D","line":17,"in_reply_to":"AAAAUX%2F%2Bqr4%3D","updated":"2014-02-20 05:11:04.000000000","message":"Done","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"31a49e540cc1a25b33290163dcf502b0f2a0fc7c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"2. Management of vnic_type by ML2 plugin, assuming default"},{"line_number":17,"context_line":"vnic_type\u003dno-sriov"},{"line_number":18,"context_line":"3. Add \u0027vnic_type\u0027 to ml2_port_bindings DB table"},{"line_number":19,"context_line":"4. Add supported vnic_types for MechasmDrivers that are capable to bind"},{"line_number":20,"context_line":"port."},{"line_number":21,"context_line":"5. Add DB migration script for ml2_vnic_type."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUX%2F%2BqsA%3D","line":19,"updated":"2014-02-19 22:10:26.000000000","message":"Fix spelling of MechanismDrivers.","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"0d22bcc5ba2a22f942a891afd17e6a3e442ac130","unresolved":false,"context_lines":[{"line_number":16,"context_line":"2. Management of vnic_type by ML2 plugin, assuming default"},{"line_number":17,"context_line":"vnic_type\u003dno-sriov"},{"line_number":18,"context_line":"3. Add \u0027vnic_type\u0027 to ml2_port_bindings DB table"},{"line_number":19,"context_line":"4. Add supported vnic_types for MechasmDrivers that are capable to bind"},{"line_number":20,"context_line":"port."},{"line_number":21,"context_line":"5. Add DB migration script for ml2_vnic_type."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUX%2F%2BoRE%3D","line":19,"in_reply_to":"AAAAUX%2F%2BqsA%3D","updated":"2014-02-20 05:11:04.000000000","message":"Done","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"}],"etc/policy.json":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"e83769857e2bb8d51be6cdd51e4e1ba31e025b4f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"get_port:binding:capabilities\": \"rule:admin_only\","},{"line_number":56,"context_line":"    \"get_port:binding:host_id\": \"rule:admin_only\","},{"line_number":57,"context_line":"    \"get_port:binding:profile\": \"rule:admin_only\","},{"line_number":58,"context_line":"    \"get_port:binding:vnic_type\": \"rule:admin_or_owner\","},{"line_number":59,"context_line":"    \"update_port\": \"rule:admin_or_owner\","},{"line_number":60,"context_line":"    \"update_port:fixed_ips\": \"rule:admin_or_network_owner\","},{"line_number":61,"context_line":"    \"update_port:port_security_enabled\": \"rule:admin_or_network_owner\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAAUX%2F%2Fo7A%3D","line":58,"updated":"2014-02-11 20:21:10.000000000","message":"should update_port:binding:vnic_type be added as well?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"get_port:binding:capabilities\": \"rule:admin_only\","},{"line_number":56,"context_line":"    \"get_port:binding:host_id\": \"rule:admin_only\","},{"line_number":57,"context_line":"    \"get_port:binding:profile\": \"rule:admin_only\","},{"line_number":58,"context_line":"    \"get_port:binding:vnic_type\": \"rule:admin_or_owner\","},{"line_number":59,"context_line":"    \"update_port\": \"rule:admin_or_owner\","},{"line_number":60,"context_line":"    \"update_port:fixed_ips\": \"rule:admin_or_network_owner\","},{"line_number":61,"context_line":"    \"update_port:port_security_enabled\": \"rule:admin_or_network_owner\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAAUX%2F%2FJBE%3D","line":58,"in_reply_to":"AAAAUX%2F%2FPXg%3D","updated":"2014-02-16 14:01:51.000000000","message":"Adding the update support","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"get_port:binding:capabilities\": \"rule:admin_only\","},{"line_number":56,"context_line":"    \"get_port:binding:host_id\": \"rule:admin_only\","},{"line_number":57,"context_line":"    \"get_port:binding:profile\": \"rule:admin_only\","},{"line_number":58,"context_line":"    \"get_port:binding:vnic_type\": \"rule:admin_or_owner\","},{"line_number":59,"context_line":"    \"update_port\": \"rule:admin_or_owner\","},{"line_number":60,"context_line":"    \"update_port:fixed_ips\": \"rule:admin_or_network_owner\","},{"line_number":61,"context_line":"    \"update_port:port_security_enabled\": \"rule:admin_or_network_owner\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAAUX%2F%2FPXg%3D","line":58,"in_reply_to":"AAAAUX%2F%2FlO0%3D","updated":"2014-02-14 16:50:31.000000000","message":"I believe its important to support update. At some point, nova will take care of requesting the vnic_type based on --nic params, and its possible the user will have passed in an existing port that has other things like MAC or IP set (or eventually QoS), so nova will need to do an update. I think the same logic as in https://review.openstack.org/#/c/73500/ can be used for the update, which will trigger rebinding if vnic_type is changed.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a5a180b142adf293ef346b64cbfba6df243e55e2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"get_port:binding:capabilities\": \"rule:admin_only\","},{"line_number":56,"context_line":"    \"get_port:binding:host_id\": \"rule:admin_only\","},{"line_number":57,"context_line":"    \"get_port:binding:profile\": \"rule:admin_only\","},{"line_number":58,"context_line":"    \"get_port:binding:vnic_type\": \"rule:admin_or_owner\","},{"line_number":59,"context_line":"    \"update_port\": \"rule:admin_or_owner\","},{"line_number":60,"context_line":"    \"update_port:fixed_ips\": \"rule:admin_or_network_owner\","},{"line_number":61,"context_line":"    \"update_port:port_security_enabled\": \"rule:admin_or_network_owner\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAAUX%2F%2FlO0%3D","line":58,"in_reply_to":"AAAAUX%2F%2Fo7A%3D","updated":"2014-02-12 09:12:12.000000000","message":"Current patch suggests that vnic_type can be set on port create and cannot be modified.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"}],"neutron/db/migration/alembic_migrations/versions/27cc183af192_ml2_vnic_type.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"e83769857e2bb8d51be6cdd51e4e1ba31e025b4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# revision identifiers, used by Alembic."},{"line_number":25,"context_line":"revision \u003d \u002727cc183af192\u0027"},{"line_number":26,"context_line":"down_revision \u003d \u002749f5e553f61f\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fo7g%3D","line":26,"updated":"2014-02-11 20:21:10.000000000","message":"this is not a head anymore, please update","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a5a180b142adf293ef346b64cbfba6df243e55e2","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# revision identifiers, used by Alembic."},{"line_number":25,"context_line":"revision \u003d \u002727cc183af192\u0027"},{"line_number":26,"context_line":"down_revision \u003d \u002749f5e553f61f\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FlOw%3D","line":26,"in_reply_to":"AAAAUX%2F%2Fo7g%3D","updated":"2014-02-12 09:12:12.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"e83769857e2bb8d51be6cdd51e4e1ba31e025b4f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fo6U%3D","line":45,"updated":"2014-02-11 20:21:10.000000000","message":"you can\u0027t add non-nullable column on the table with data, this operation will fail.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI%2Fs%3D","line":45,"in_reply_to":"AAAAUX%2F%2FPW4%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPW4%3D","line":45,"in_reply_to":"AAAAUX%2F%2FlOU%3D","updated":"2014-02-14 16:50:31.000000000","message":"See https://review.openstack.org/#/c/72452/3/neutron/db/migration/alembic_migrations/versions/50d5ba354c23_ml2_binding_vif_details.py.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a5a180b142adf293ef346b64cbfba6df243e55e2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FlOU%3D","line":45,"in_reply_to":"AAAAUX%2F%2Fo6U%3D","updated":"2014-02-12 09:12:12.000000000","message":"Can you please suggest how to fix it?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B08A%3D","line":45,"updated":"2014-02-18 19:46:58.000000000","message":"The other two patches have been updated to use server_default here rather than code like on line 55.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64), nullable\u003dFalse))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0YQ%3D","line":45,"in_reply_to":"AAAAUX%2F%2B08A%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"31a49e540cc1a25b33290163dcf502b0f2a0fc7c","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64),"},{"line_number":46,"context_line":"                            nullable\u003dFalse, server_default\u003d\u0027normal\u0027))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2Bquk%3D","line":46,"updated":"2014-02-19 22:10:26.000000000","message":"Would be best to use portbindings.VNIC_NORMAL.","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"0d22bcc5ba2a22f942a891afd17e6a3e442ac130","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027ml2_port_bindings\u0027,"},{"line_number":45,"context_line":"                  sa.Column(\u0027vnic_type\u0027, sa.String(length\u003d64),"},{"line_number":46,"context_line":"                            nullable\u003dFalse, server_default\u003d\u0027normal\u0027))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2BoRo%3D","line":46,"in_reply_to":"AAAAUX%2F%2Bquk%3D","updated":"2014-02-20 05:11:04.000000000","message":"Done","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"}],"neutron/extensions/portbindings.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_OTHER \u003d \u0027other\u0027"},{"line_number":59,"context_line":"VNIC_TYPES \u003d [VNIC_VIRTIO, VNIC_DIRECT, VNIC_MACVTAP, VNIC_OTHER]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":62,"context_line":"    \u0027ports\u0027: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPQE%3D","line":59,"updated":"2014-02-14 16:50:31.000000000","message":"What VNIC_TYPE value applies for the agent\u0027s ports? Is this what VNIC_OTHER is for? Or is something like VNIC_AGENT needed? Should the agent code that creates the port specify a VNIC_TYPE?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_OTHER \u003d \u0027other\u0027"},{"line_number":59,"context_line":"VNIC_TYPES \u003d [VNIC_VIRTIO, VNIC_DIRECT, VNIC_MACVTAP, VNIC_OTHER]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":62,"context_line":"    \u0027ports\u0027: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI%2Fc%3D","line":59,"in_reply_to":"AAAAUX%2F%2FPQE%3D","updated":"2014-02-16 14:01:51.000000000","message":"I am not sure what would be the right approach regarding agent\u0027s code for port creation. the VNIC_OTHER was added for this. I think changing name to VNIC_AGENT makes sense.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                   \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":65,"context_line":"                   \u0027enforce_policy\u0027: True,"},{"line_number":66,"context_line":"                   \u0027is_visible\u0027: True},"},{"line_number":67,"context_line":"        VNIC_TYPE: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":68,"context_line":"                    \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":69,"context_line":"                    \u0027is_visible\u0027: True,"},{"line_number":70,"context_line":"                    \u0027validate\u0027: {\u0027type:values\u0027: [VNIC_DIRECT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPTQ%3D","line":67,"updated":"2014-02-14 16:50:31.000000000","message":"I think allow_put needs to be True. See my comment in policy.json.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                   \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":65,"context_line":"                   \u0027enforce_policy\u0027: True,"},{"line_number":66,"context_line":"                   \u0027is_visible\u0027: True},"},{"line_number":67,"context_line":"        VNIC_TYPE: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":68,"context_line":"                    \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":69,"context_line":"                    \u0027is_visible\u0027: True,"},{"line_number":70,"context_line":"                    \u0027validate\u0027: {\u0027type:values\u0027: [VNIC_DIRECT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI%2FY%3D","line":67,"in_reply_to":"AAAAUX%2F%2FPTQ%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    \u0027is_visible\u0027: True,"},{"line_number":70,"context_line":"                    \u0027validate\u0027: {\u0027type:values\u0027: [VNIC_DIRECT,"},{"line_number":71,"context_line":"                                                 VNIC_MACVTAP,"},{"line_number":72,"context_line":"                                                 VNIC_VIRTIO]},"},{"line_number":73,"context_line":"                    \u0027enforce_policy\u0027: True},"},{"line_number":74,"context_line":"        HOST_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":75,"context_line":"                  \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPR4%3D","line":72,"updated":"2014-02-14 16:50:31.000000000","message":"Why not validate using the VNIC_TYPES variable defined on line 59? Also, why disallow VNIC_OTHER?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    \u0027is_visible\u0027: True,"},{"line_number":70,"context_line":"                    \u0027validate\u0027: {\u0027type:values\u0027: [VNIC_DIRECT,"},{"line_number":71,"context_line":"                                                 VNIC_MACVTAP,"},{"line_number":72,"context_line":"                                                 VNIC_VIRTIO]},"},{"line_number":73,"context_line":"                    \u0027enforce_policy\u0027: True},"},{"line_number":74,"context_line":"        HOST_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":75,"context_line":"                  \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI%2FE%3D","line":72,"in_reply_to":"AAAAUX%2F%2FPR4%3D","updated":"2014-02-16 14:01:51.000000000","message":"Taking this comment to the code, thanks","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                                                 VNIC_VIRTIO]},"},{"line_number":73,"context_line":"                    \u0027enforce_policy\u0027: True},"},{"line_number":74,"context_line":"        HOST_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":75,"context_line":"                  \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":76,"context_line":"                  \u0027is_visible\u0027: True,"},{"line_number":77,"context_line":"                  \u0027enforce_policy\u0027: True},"},{"line_number":78,"context_line":"        PROFILE: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPRU%3D","line":75,"updated":"2014-02-14 16:50:31.000000000","message":"Does it make sense to specify VNIC_VIRTIO here as the default?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                                                 VNIC_VIRTIO]},"},{"line_number":73,"context_line":"                    \u0027enforce_policy\u0027: True},"},{"line_number":74,"context_line":"        HOST_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":75,"context_line":"                  \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":76,"context_line":"                  \u0027is_visible\u0027: True,"},{"line_number":77,"context_line":"                  \u0027enforce_policy\u0027: True},"},{"line_number":78,"context_line":"        PROFILE: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI%2BI%3D","line":75,"in_reply_to":"AAAAUX%2F%2FPRU%3D","updated":"2014-02-16 14:01:51.000000000","message":"Need to verify behavour with other plugins","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"b281a92d2eb1393a721e9b225f40362bc4afdb02","unresolved":false,"context_lines":[{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_AGENT \u003d \u0027agent\u0027"},{"line_number":59,"context_line":"VNIC_TYPES \u003d [VNIC_VIRTIO, VNIC_DIRECT, VNIC_MACVTAP, VNIC_AGENT]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":62,"context_line":"    \u0027ports\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B8hw%3D","line":59,"updated":"2014-02-18 02:50:31.000000000","message":"What about the case where the port is not an SRIOV port? I think we need a default value such as VNIC_NO_SRIOV or some such thing.","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"802075c9fe1b2ee4747e1af8c287e76f774dc30d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_AGENT \u003d \u0027agent\u0027"},{"line_number":59,"context_line":"VNIC_TYPES \u003d [VNIC_VIRTIO, VNIC_DIRECT, VNIC_MACVTAP, VNIC_AGENT]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":62,"context_line":"    \u0027ports\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B7uA%3D","line":59,"in_reply_to":"AAAAUX%2F%2B8hw%3D","updated":"2014-02-18 05:34:50.000000000","message":"I think your suggestion regarding VNIC_NO_SRIOV makes sense. In such case the VNIC_AGENT will not be necessary.","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"             VIF_TYPE_802_QBH, VIF_TYPE_HYPERV, VIF_TYPE_MIDONET,"},{"line_number":53,"context_line":"             VIF_TYPE_OTHER]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"VNIC_NO_SRIOV \u003d \u0027no_sriov\u0027"},{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_TYPES \u003d [VNIC_NO_SRIOV, VNIC_DIRECT, VNIC_MACVTAP]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B01E%3D","line":55,"updated":"2014-02-18 19:46:58.000000000","message":"Are there potentially variations other than SR-IOV that might eventually need to be requested via VNIC_TYPE? If so, maybe calling this VNIC_NORMAL would be clearer and than VNIC_NO_SRIOV.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":52,"context_line":"             VIF_TYPE_802_QBH, VIF_TYPE_HYPERV, VIF_TYPE_MIDONET,"},{"line_number":53,"context_line":"             VIF_TYPE_OTHER]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"VNIC_NO_SRIOV \u003d \u0027no_sriov\u0027"},{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_TYPES \u003d [VNIC_NO_SRIOV, VNIC_DIRECT, VNIC_MACVTAP]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0Xs%3D","line":55,"in_reply_to":"AAAAUX%2F%2B01E%3D","updated":"2014-02-18 20:35:47.000000000","message":"Fine. Will change the name","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"bb025991e6b36843df4565b2c5a7418c810bf4f4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"             VIF_TYPE_802_QBH, VIF_TYPE_HYPERV, VIF_TYPE_MIDONET,"},{"line_number":53,"context_line":"             VIF_TYPE_OTHER]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"VNIC_NO_SRIOV \u003d \u0027no_sriov\u0027"},{"line_number":56,"context_line":"VNIC_DIRECT \u003d \u0027direct\u0027"},{"line_number":57,"context_line":"VNIC_MACVTAP \u003d \u0027macvtap\u0027"},{"line_number":58,"context_line":"VNIC_TYPES \u003d [VNIC_NO_SRIOV, VNIC_DIRECT, VNIC_MACVTAP]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0fQ%3D","line":55,"in_reply_to":"AAAAUX%2F%2B01E%3D","updated":"2014-02-18 20:10:49.000000000","message":"I am fine with this.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}],"neutron/plugins/ml2/db.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                for record in records]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def ensure_port_binding(session, port_id, vnic\u003dportbindings.VNIC_VIRTIO):"},{"line_number":64,"context_line":"    with session.begin(subtransactions\u003dTrue):"},{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            record \u003d (session.query(models.PortBinding)."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPOI%3D","line":63,"updated":"2014-02-14 16:50:31.000000000","message":"We don\u0027t pass in host or cap_port_filter (or profile or vif_details in those patches) to this function. Can\u0027t vnic_type be handled similarly to those? Specifying the default value in portbindings.py (see my comment there) should eliminate the need to set the default here.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                for record in records]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def ensure_port_binding(session, port_id, vnic\u003dportbindings.VNIC_VIRTIO):"},{"line_number":64,"context_line":"    with session.begin(subtransactions\u003dTrue):"},{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            record \u003d (session.query(models.PortBinding)."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI8Y%3D","line":63,"in_reply_to":"AAAAUX%2F%2FPOI%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"b281a92d2eb1393a721e9b225f40362bc4afdb02","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                port_id\u003dport_id,"},{"line_number":72,"context_line":"                host\u003d\u0027\u0027,"},{"line_number":73,"context_line":"                vif_type\u003dportbindings.VIF_TYPE_UNBOUND,"},{"line_number":74,"context_line":"                vnic_type\u003dportbindings.VNIC_VIRTIO,"},{"line_number":75,"context_line":"                cap_port_filter\u003dFalse)"},{"line_number":76,"context_line":"            session.add(record)"},{"line_number":77,"context_line":"        return record"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B8iM%3D","line":74,"updated":"2014-02-18 02:50:31.000000000","message":"I think \"vnic_type\" is a confusing name to me. Perhaps this is better to default to VNIC_NO_SRIOV since in the likely majority of cases these Neutron ports will not be SRIOV ports, and if we leave things as they are, they will all have a vnic_type of VNIC_VIRTIO.","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"802075c9fe1b2ee4747e1af8c287e76f774dc30d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                port_id\u003dport_id,"},{"line_number":72,"context_line":"                host\u003d\u0027\u0027,"},{"line_number":73,"context_line":"                vif_type\u003dportbindings.VIF_TYPE_UNBOUND,"},{"line_number":74,"context_line":"                vnic_type\u003dportbindings.VNIC_VIRTIO,"},{"line_number":75,"context_line":"                cap_port_filter\u003dFalse)"},{"line_number":76,"context_line":"            session.add(record)"},{"line_number":77,"context_line":"        return record"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B7tw%3D","line":74,"in_reply_to":"AAAAUX%2F%2B8iM%3D","updated":"2014-02-18 05:34:50.000000000","message":"Agree.","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                port_id\u003dport_id,"},{"line_number":72,"context_line":"                host\u003d\u0027\u0027,"},{"line_number":73,"context_line":"                vif_type\u003dportbindings.VIF_TYPE_UNBOUND,"},{"line_number":74,"context_line":"                vnic_type\u003dportbindings.VNIC_NO_SRIOV,"},{"line_number":75,"context_line":"                cap_port_filter\u003dFalse)"},{"line_number":76,"context_line":"            session.add(record)"},{"line_number":77,"context_line":"        return record"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0z0%3D","line":74,"updated":"2014-02-18 19:46:58.000000000","message":"This shouldn\u0027t be needed if default value is passed in models.py.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                port_id\u003dport_id,"},{"line_number":72,"context_line":"                host\u003d\u0027\u0027,"},{"line_number":73,"context_line":"                vif_type\u003dportbindings.VIF_TYPE_UNBOUND,"},{"line_number":74,"context_line":"                vnic_type\u003dportbindings.VNIC_NO_SRIOV,"},{"line_number":75,"context_line":"                cap_port_filter\u003dFalse)"},{"line_number":76,"context_line":"            session.add(record)"},{"line_number":77,"context_line":"        return record"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0XI%3D","line":74,"in_reply_to":"AAAAUX%2F%2B0z0%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}],"neutron/plugins/ml2/drivers/mech_agent.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"e83769857e2bb8d51be6cdd51e4e1ba31e025b4f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.warning(_(\"Attempting to bind with unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                        vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fo4w%3D","line":65,"updated":"2014-02-11 20:21:10.000000000","message":"the warning message looks confusing. Are we attempting to bind  port or just ignoring user\u0027s attempt?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.warning(_(\"Attempting to bind with unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                        vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI8M%3D","line":65,"in_reply_to":"AAAAUX%2F%2FPMw%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.warning(_(\"Attempting to bind with unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                        vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPMw%3D","line":65,"in_reply_to":"AAAAUX%2F%2FlK8%3D","updated":"2014-02-14 16:50:31.000000000","message":"I think this should be a debug message or else eliminated. ML2 tries to bind with all registered MDs, and any specific MD not being able to bind a specific port is a totally normal occurrence that should not normally result in a message being logged. This just like the case where MD\u0027s corresponding agent is not running on the host.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a5a180b142adf293ef346b64cbfba6df243e55e2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.warning(_(\"Attempting to bind with unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                        vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FlK8%3D","line":65,"in_reply_to":"AAAAUX%2F%2Fo4w%3D","updated":"2014-02-12 09:12:12.000000000","message":"Agree, will change the message to reflect it","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"b281a92d2eb1393a721e9b225f40362bc4afdb02","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, agent_type, vif_type, cap_port_filter,"},{"line_number":43,"context_line":"                 supported_vnic_types\u003d[portbindings.VNIC_VIRTIO]):"},{"line_number":44,"context_line":"        \"\"\"Initialize base class for specific L2 agent type."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param agent_type: Constant identifying agent type in agents_db"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B8iw%3D","line":43,"updated":"2014-02-18 02:50:31.000000000","message":"Why is the only default value for supported_vnic_types VNIC_VIRTIO?","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"802075c9fe1b2ee4747e1af8c287e76f774dc30d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, agent_type, vif_type, cap_port_filter,"},{"line_number":43,"context_line":"                 supported_vnic_types\u003d[portbindings.VNIC_VIRTIO]):"},{"line_number":44,"context_line":"        \"\"\"Initialize base class for specific L2 agent type."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param agent_type: Constant identifying agent type in agents_db"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B7sw%3D","line":43,"in_reply_to":"AAAAUX%2F%2B8iw%3D","updated":"2014-02-18 05:34:50.000000000","message":"The default here is in order to enable the existing OVS and LinuxBridge MDs without changing them. Once binding SR-IOV MD will be added it will pass SRIOV VNIC types to the base class","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, agent_type, vif_type, cap_port_filter,"},{"line_number":43,"context_line":"                 supported_vnic_types\u003d[portbindings.VNIC_NO_SRIOV]):"},{"line_number":44,"context_line":"        \"\"\"Initialize base class for specific L2 agent type."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param agent_type: Constant identifying agent type in agents_db"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0yk%3D","line":43,"updated":"2014-02-18 19:46:58.000000000","message":"See my comment on portbindings.py. I\u0027d prefer to have non-SRIOV mechanism drivers stating that the support VNIC_NORMAL rather than implying that they support everything except for SR-IOV.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, agent_type, vif_type, cap_port_filter,"},{"line_number":43,"context_line":"                 supported_vnic_types\u003d[portbindings.VNIC_NO_SRIOV]):"},{"line_number":44,"context_line":"        \"\"\"Initialize base class for specific L2 agent type."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        :param agent_type: Constant identifying agent type in agents_db"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0WY%3D","line":43,"in_reply_to":"AAAAUX%2F%2B0yk%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        pass"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def bind_port(self, context):"},{"line_number":58,"context_line":"        vnic_type \u003d context.current.get(\u0027binding:vnic_type\u0027,"},{"line_number":59,"context_line":"                                        portbindings.VNIC_NO_SRIOV)"},{"line_number":60,"context_line":"        LOG.debug(_(\"Attempting to bind port %(port)s on \""},{"line_number":61,"context_line":"                    \"network %(network)s\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0vg%3D","line":58,"updated":"2014-02-18 19:46:58.000000000","message":"Why not use portbinding.VNIC_TYPE above?","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        pass"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def bind_port(self, context):"},{"line_number":58,"context_line":"        vnic_type \u003d context.current.get(\u0027binding:vnic_type\u0027,"},{"line_number":59,"context_line":"                                        portbindings.VNIC_NO_SRIOV)"},{"line_number":60,"context_line":"        LOG.debug(_(\"Attempting to bind port %(port)s on \""},{"line_number":61,"context_line":"                    \"network %(network)s\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0Vo%3D","line":58,"in_reply_to":"AAAAUX%2F%2B0vg%3D","updated":"2014-02-18 20:35:47.000000000","message":"Probably the line longer than allowed by pep8 :-)","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def bind_port(self, context):"},{"line_number":58,"context_line":"        vnic_type \u003d context.current.get(\u0027binding:vnic_type\u0027,"},{"line_number":59,"context_line":"                                        portbindings.VNIC_NO_SRIOV)"},{"line_number":60,"context_line":"        LOG.debug(_(\"Attempting to bind port %(port)s on \""},{"line_number":61,"context_line":"                    \"network %(network)s\"),"},{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0vs%3D","line":59,"updated":"2014-02-18 19:46:58.000000000","message":"Are there any cases where a binding:vnic_type key would not be available? I think a default in model.py and a server_default in the migration should be ensuring its always present in the DB. If its not in the port dictionary, that seems like a bug.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def bind_port(self, context):"},{"line_number":58,"context_line":"        vnic_type \u003d context.current.get(\u0027binding:vnic_type\u0027,"},{"line_number":59,"context_line":"                                        portbindings.VNIC_NO_SRIOV)"},{"line_number":60,"context_line":"        LOG.debug(_(\"Attempting to bind port %(port)s on \""},{"line_number":61,"context_line":"                    \"network %(network)s\"),"},{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0Uc%3D","line":59,"in_reply_to":"AAAAUX%2F%2B0vs%3D","updated":"2014-02-18 20:35:47.000000000","message":"Agree.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.debug(_(\"Failed to bind due to unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                      vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0u8%3D","line":65,"updated":"2014-02-18 19:46:58.000000000","message":"s/Failed to bind/Refusing to bind/ since this isn\u0027t really a failure.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                  {\u0027port\u0027: context.current[\u0027id\u0027],"},{"line_number":63,"context_line":"                   \u0027network\u0027: context.network.current[\u0027id\u0027]})"},{"line_number":64,"context_line":"        if vnic_type not in self.supported_vnic_types:"},{"line_number":65,"context_line":"            LOG.debug(_(\"Failed to bind due to unsupported vnic_type: %s\"),"},{"line_number":66,"context_line":"                      vnic_type)"},{"line_number":67,"context_line":"            return"},{"line_number":68,"context_line":"        for agent in context.host_agents(self.agent_type):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0UU%3D","line":65,"in_reply_to":"AAAAUX%2F%2B0u8%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}],"neutron/plugins/ml2/managers.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                    binding.driver \u003d driver.name"},{"line_number":450,"context_line":"                    LOG.debug(_(\"Bound port: %(port)s, host: %(host)s, \""},{"line_number":451,"context_line":"                                \"driver: %(driver)s, vif_type: %(vif_type)s, \""},{"line_number":452,"context_line":"                                \"vnic_type: %(vnic_type)s \""},{"line_number":453,"context_line":"                                \"cap_port_filter: %(cap_port_filter)s, \""},{"line_number":454,"context_line":"                                \"segment: %(segment)s\"),"},{"line_number":455,"context_line":"                              {\u0027port\u0027: context._port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPLQ%3D","line":452,"updated":"2014-02-14 16:50:31.000000000","message":"Please move vnic_type up a line so that it is right after host since port, host, and vnic_type are the inputs to the binding process, while driver, vif_type, cap_port_filter, and segment are the outputs from the binding process.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"e83769857e2bb8d51be6cdd51e4e1ba31e025b4f","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                    binding.driver \u003d driver.name"},{"line_number":450,"context_line":"                    LOG.debug(_(\"Bound port: %(port)s, host: %(host)s, \""},{"line_number":451,"context_line":"                                \"driver: %(driver)s, vif_type: %(vif_type)s, \""},{"line_number":452,"context_line":"                                \"vnic_type: %(vnic_type)s \""},{"line_number":453,"context_line":"                                \"cap_port_filter: %(cap_port_filter)s, \""},{"line_number":454,"context_line":"                                \"segment: %(segment)s\"),"},{"line_number":455,"context_line":"                              {\u0027port\u0027: context._port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Fo4c%3D","line":452,"updated":"2014-02-11 20:21:10.000000000","message":"nit: missing \u0027,\u0027 at the end of the line","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                    binding.driver \u003d driver.name"},{"line_number":450,"context_line":"                    LOG.debug(_(\"Bound port: %(port)s, host: %(host)s, \""},{"line_number":451,"context_line":"                                \"driver: %(driver)s, vif_type: %(vif_type)s, \""},{"line_number":452,"context_line":"                                \"vnic_type: %(vnic_type)s \""},{"line_number":453,"context_line":"                                \"cap_port_filter: %(cap_port_filter)s, \""},{"line_number":454,"context_line":"                                \"segment: %(segment)s\"),"},{"line_number":455,"context_line":"                              {\u0027port\u0027: context._port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI7s%3D","line":452,"in_reply_to":"AAAAUX%2F%2FPLQ%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a5a180b142adf293ef346b64cbfba6df243e55e2","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                    binding.driver \u003d driver.name"},{"line_number":450,"context_line":"                    LOG.debug(_(\"Bound port: %(port)s, host: %(host)s, \""},{"line_number":451,"context_line":"                                \"driver: %(driver)s, vif_type: %(vif_type)s, \""},{"line_number":452,"context_line":"                                \"vnic_type: %(vnic_type)s \""},{"line_number":453,"context_line":"                                \"cap_port_filter: %(cap_port_filter)s, \""},{"line_number":454,"context_line":"                                \"segment: %(segment)s\"),"},{"line_number":455,"context_line":"                              {\u0027port\u0027: context._port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FlDE%3D","line":452,"in_reply_to":"AAAAUX%2F%2Fo4c%3D","updated":"2014-02-12 09:12:12.000000000","message":"Fixed","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"}],"neutron/plugins/ml2/models.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B00E%3D","line":56,"updated":"2014-02-18 19:46:58.000000000","message":"Pass default here?","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c3131e5bfb651a617b3a634954c8941e59bd1f2b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B05k%3D","line":56,"updated":"2014-02-18 21:48:04.000000000","message":"nit, why it\u0027s 64? I guess that a smaller one should do.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0WU%3D","line":56,"in_reply_to":"AAAAUX%2F%2B00E%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"9b170af0bcba8fc1cd768c2b0c709810dab49fad","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bxeo%3D","line":56,"in_reply_to":"AAAAUX%2F%2B05k%3D","updated":"2014-02-19 09:58:49.000000000","message":"Actually, just followed the vif_type definition. It may potentially contain some more  types, like for  different agents. Do you think its important to limit it to shorter string? Any specific length you would suggest?","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"31a49e540cc1a25b33290163dcf502b0f2a0fc7c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse, default\u003d\u0027normal\u0027)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2Bqus%3D","line":56,"updated":"2014-02-19 22:10:26.000000000","message":"Would be best to use portbindings.VNIC_NORMAL.","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"0d22bcc5ba2a22f942a891afd17e6a3e442ac130","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":54,"context_line":"                        primary_key\u003dTrue)"},{"line_number":55,"context_line":"    host \u003d sa.Column(sa.String(255), nullable\u003dFalse)"},{"line_number":56,"context_line":"    vnic_type \u003d sa.Column(sa.String(64), nullable\u003dFalse, default\u003d\u0027normal\u0027)"},{"line_number":57,"context_line":"    vif_type \u003d sa.Column(sa.String(64), nullable\u003dFalse)"},{"line_number":58,"context_line":"    cap_port_filter \u003d sa.Column(sa.Boolean, nullable\u003dFalse)"},{"line_number":59,"context_line":"    driver \u003d sa.Column(sa.String(64))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2BoRQ%3D","line":56,"in_reply_to":"AAAAUX%2F%2Bqus%3D","updated":"2014-02-20 05:11:04.000000000","message":"Done","commit_id":"2382081564d87c9c3cd600a6ed90cc12fa2b484c"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    def _update_port_dict_binding(self, port, binding):"},{"line_number":235,"context_line":"        port[portbindings.HOST_ID] \u003d binding.host"},{"line_number":236,"context_line":"        port[portbindings.VIF_TYPE] \u003d binding.vif_type"},{"line_number":237,"context_line":"        port[portbindings.VNIC_TYPE] \u003d binding.vnic_type"},{"line_number":238,"context_line":"        port[portbindings.CAPABILITIES] \u003d {"},{"line_number":239,"context_line":"            portbindings.CAP_PORT_FILTER: binding.cap_port_filter}"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPK0%3D","line":237,"updated":"2014-02-14 16:50:31.000000000","message":"Please move this up a line so it is with the other binding input rather than in the middle of the binding outputs.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    def _update_port_dict_binding(self, port, binding):"},{"line_number":235,"context_line":"        port[portbindings.HOST_ID] \u003d binding.host"},{"line_number":236,"context_line":"        port[portbindings.VIF_TYPE] \u003d binding.vif_type"},{"line_number":237,"context_line":"        port[portbindings.VNIC_TYPE] \u003d binding.vnic_type"},{"line_number":238,"context_line":"        port[portbindings.CAPABILITIES] \u003d {"},{"line_number":239,"context_line":"            portbindings.CAP_PORT_FILTER: binding.cap_port_filter}"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI7o%3D","line":237,"in_reply_to":"AAAAUX%2F%2FPK0%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":564,"context_line":"            dhcp_opts \u003d port[\u0027port\u0027].get(edo_ext.EXTRADHCPOPTS, [])"},{"line_number":565,"context_line":"            result \u003d super(Ml2Plugin, self).create_port(context, port)"},{"line_number":566,"context_line":"            self._process_port_create_security_group(context, result, sgids)"},{"line_number":567,"context_line":"            self._process_port_vnic_type(attrs, result)"},{"line_number":568,"context_line":"            network \u003d self.get_network(context, result[\u0027network_id\u0027])"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"            mech_context \u003d driver_context.PortContext(self, context, result,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPH8%3D","line":567,"updated":"2014-02-14 16:50:31.000000000","message":"Rather than adding a _process_port_vnic_type() function, consider handling binding:vnic_type in _process_port_binding(). This will likely be necessary in order to allow updates to binding:vnic_type to trigger rebinding the port. I think the same logic as in https://review.openstack.org/#/c/73500/1/neutron/plugins/ml2/plugin.py can be used (except no need for JSON encoding of course).","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":564,"context_line":"            dhcp_opts \u003d port[\u0027port\u0027].get(edo_ext.EXTRADHCPOPTS, [])"},{"line_number":565,"context_line":"            result \u003d super(Ml2Plugin, self).create_port(context, port)"},{"line_number":566,"context_line":"            self._process_port_create_security_group(context, result, sgids)"},{"line_number":567,"context_line":"            self._process_port_vnic_type(attrs, result)"},{"line_number":568,"context_line":"            network \u003d self.get_network(context, result[\u0027network_id\u0027])"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"            mech_context \u003d driver_context.PortContext(self, context, result,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FIyI%3D","line":567,"in_reply_to":"AAAAUX%2F%2FPH8%3D","updated":"2014-02-16 14:01:51.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"2e58a932a96146854fbc69eeb1642ead43021806","unresolved":false,"context_lines":[{"line_number":715,"context_line":"    def _process_port_vnic_type(self, p, result):"},{"line_number":716,"context_line":"        vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":717,"context_line":"        if p.get(\u0027device_owner\u0027) and p[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":718,"context_line":"            vnic_type \u003d portbindings.VNIC_OTHER"},{"line_number":719,"context_line":"        elif not attributes.is_attr_set(p.get(portbindings.VNIC_TYPE)):"},{"line_number":720,"context_line":"            vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":721,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPGs%3D","line":718,"updated":"2014-02-14 16:50:31.000000000","message":"Why is special casing the default value needed? If this is for the agents, can\u0027t we just have them supply VNIC_OTHER when they create their ports?","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"aee812604fb7a658b3dfb93f1c121a2cddef4b53","unresolved":false,"context_lines":[{"line_number":715,"context_line":"    def _process_port_vnic_type(self, p, result):"},{"line_number":716,"context_line":"        vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":717,"context_line":"        if p.get(\u0027device_owner\u0027) and p[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":718,"context_line":"            vnic_type \u003d portbindings.VNIC_OTHER"},{"line_number":719,"context_line":"        elif not attributes.is_attr_set(p.get(portbindings.VNIC_TYPE)):"},{"line_number":720,"context_line":"            vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":721,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FI64%3D","line":718,"in_reply_to":"AAAAUX%2F%2FPGs%3D","updated":"2014-02-16 14:01:51.000000000","message":"Changing the code following your suggestion","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6697,"name":"Sandhya Dasu","email":"sandhya.openinfra@gmail.com","username":"sadasu"},"change_message_id":"68b073eb3b78553bd6973ca426971294a00a5dd8","unresolved":false,"context_lines":[{"line_number":716,"context_line":"        vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":717,"context_line":"        if p.get(\u0027device_owner\u0027) and p[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":718,"context_line":"            vnic_type \u003d portbindings.VNIC_OTHER"},{"line_number":719,"context_line":"        elif not attributes.is_attr_set(p.get(portbindings.VNIC_TYPE)):"},{"line_number":720,"context_line":"            vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":721,"context_line":"        else:"},{"line_number":722,"context_line":"            vnic_type \u003d p.get(portbindings.VNIC_TYPE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FykQ%3D","line":719,"updated":"2014-02-10 20:05:04.000000000","message":"Code in elif and else can be combined to 1 case since the default value of vnic_type is already set to portbindings.VNIC_VIRTIO earlier.","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"7acb48c5a76fd1fc954079dbfb24900caf9518d3","unresolved":false,"context_lines":[{"line_number":716,"context_line":"        vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":717,"context_line":"        if p.get(\u0027device_owner\u0027) and p[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":718,"context_line":"            vnic_type \u003d portbindings.VNIC_OTHER"},{"line_number":719,"context_line":"        elif not attributes.is_attr_set(p.get(portbindings.VNIC_TYPE)):"},{"line_number":720,"context_line":"            vnic_type \u003d portbindings.VNIC_VIRTIO"},{"line_number":721,"context_line":"        else:"},{"line_number":722,"context_line":"            vnic_type \u003d p.get(portbindings.VNIC_TYPE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FvR4%3D","line":719,"in_reply_to":"AAAAUX%2F%2FykQ%3D","updated":"2014-02-11 05:26:55.000000000","message":"Done","commit_id":"b9b3ac69da2fc4dced7553f1a486153513069943"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"b281a92d2eb1393a721e9b225f40362bc4afdb02","unresolved":false,"context_lines":[{"line_number":572,"context_line":"            result \u003d super(Ml2Plugin, self).create_port(context, port)"},{"line_number":573,"context_line":"            self._process_port_create_security_group(context, result, sgids)"},{"line_number":574,"context_line":"            network \u003d self.get_network(context, result[\u0027network_id\u0027])"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"            mech_context \u003d driver_context.PortContext(self, context, result,"},{"line_number":577,"context_line":"                                                      network)"},{"line_number":578,"context_line":"            self._process_port_binding(mech_context, attrs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B8jU%3D","line":575,"updated":"2014-02-18 02:50:31.000000000","message":"Nit: Unrelated whitespace change.","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"802075c9fe1b2ee4747e1af8c287e76f774dc30d","unresolved":false,"context_lines":[{"line_number":572,"context_line":"            result \u003d super(Ml2Plugin, self).create_port(context, port)"},{"line_number":573,"context_line":"            self._process_port_create_security_group(context, result, sgids)"},{"line_number":574,"context_line":"            network \u003d self.get_network(context, result[\u0027network_id\u0027])"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"            mech_context \u003d driver_context.PortContext(self, context, result,"},{"line_number":577,"context_line":"                                                      network)"},{"line_number":578,"context_line":"            self._process_port_binding(mech_context, attrs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B7sU%3D","line":575,"in_reply_to":"AAAAUX%2F%2B8jU%3D","updated":"2014-02-18 05:34:50.000000000","message":"Removed","commit_id":"e8230b18461245dcbea5c9959de0df38bafc0f15"}],"neutron/policy.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \u0027extension:port_binding\u0027:"},{"line_number":49,"context_line":"    [\u0027port:binding:vif_type\u0027, \u0027port:binding:capabilities\u0027,"},{"line_number":50,"context_line":"     \u0027port:binding:profile\u0027, \u0027port:binding:host_id\u0027,"},{"line_number":51,"context_line":"     \u0027port:binding:vnic_type\u0027]"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":"DEPRECATED_ACTION_MAP \u003d {"},{"line_number":54,"context_line":"    \u0027view\u0027: [\u0027get\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0sA%3D","line":51,"updated":"2014-02-18 19:46:58.000000000","message":"Given that the port:binding:vnic_type policies are different than the other port:binding:* policies, I don\u0027t think it makes sense to include it in the mapping from the deprecated policy. I think you can just remove this change.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \u0027extension:port_binding\u0027:"},{"line_number":49,"context_line":"    [\u0027port:binding:vif_type\u0027, \u0027port:binding:capabilities\u0027,"},{"line_number":50,"context_line":"     \u0027port:binding:profile\u0027, \u0027port:binding:host_id\u0027,"},{"line_number":51,"context_line":"     \u0027port:binding:vnic_type\u0027]"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":"DEPRECATED_ACTION_MAP \u003d {"},{"line_number":54,"context_line":"    \u0027view\u0027: [\u0027get\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0T8%3D","line":51,"in_reply_to":"AAAAUX%2F%2B0sA%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}],"neutron/tests/unit/_test_extension_portbindings.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class PortBindingsVnicTestCaseMixin(object):"},{"line_number":285,"context_line":"    fmt \u003d \u0027json\u0027"},{"line_number":286,"context_line":"    vnic_type \u003d \u0027no_sriov\u0027"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _check_response_portbindings_vnic_type(self, port):"},{"line_number":289,"context_line":"        self.assertIn(\u0027status\u0027, port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0rA%3D","line":286,"updated":"2014-02-18 19:46:58.000000000","message":"Why not use portbinding.VNIC_NO_SRIOV (or portbinding.VNIC_NORMAL)?","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class PortBindingsVnicTestCaseMixin(object):"},{"line_number":285,"context_line":"    fmt \u003d \u0027json\u0027"},{"line_number":286,"context_line":"    vnic_type \u003d \u0027no_sriov\u0027"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _check_response_portbindings_vnic_type(self, port):"},{"line_number":289,"context_line":"        self.assertIn(\u0027status\u0027, port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0To%3D","line":286,"in_reply_to":"AAAAUX%2F%2B0rA%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c3131e5bfb651a617b3a634954c8941e59bd1f2b","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                   arg_list\u003d(portbindings.VNIC_TYPE,),"},{"line_number":301,"context_line":"                                   set_context\u003dTrue,"},{"line_number":302,"context_line":"                                   tenant_id\u003d\u0027test\u0027,"},{"line_number":303,"context_line":"                                   **vnic_arg):"},{"line_number":304,"context_line":"                        pass"},{"line_number":305,"context_line":"                except exc.HTTPClientError:"},{"line_number":306,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BzzA%3D","line":303,"updated":"2014-02-18 21:48:04.000000000","message":"Is this a SUCCESS case as well? is 201 the code httplib.CREATED? In that case, I\u0027d suggest:\n 1. use httplib.CREATED instead\n 2. in the except clause in below, failure should be indicated.","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"9b170af0bcba8fc1cd768c2b0c709810dab49fad","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                   arg_list\u003d(portbindings.VNIC_TYPE,),"},{"line_number":301,"context_line":"                                   set_context\u003dTrue,"},{"line_number":302,"context_line":"                                   tenant_id\u003d\u0027test\u0027,"},{"line_number":303,"context_line":"                                   **vnic_arg):"},{"line_number":304,"context_line":"                        pass"},{"line_number":305,"context_line":"                except exc.HTTPClientError:"},{"line_number":306,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bxb8%3D","line":303,"in_reply_to":"AAAAUX%2F%2BzzA%3D","updated":"2014-02-19 09:58:49.000000000","message":"Reworked this case","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}],"neutron/tests/unit/ml2/_test_mech_agent.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"df7ee8dc566cab0f38f5b5d6ffecd34bee7388e7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._network_context \u003d FakeNetworkContext(segments)"},{"line_number":46,"context_line":"        self._bound_segment_id \u003d None"},{"line_number":47,"context_line":"        self._bound_vif_type \u003d None"},{"line_number":48,"context_line":"        self._bound_vnic_type \u003d \u0027no_sriov\u0027"},{"line_number":49,"context_line":"        self._bound_cap_port_filter \u003d None"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0rc%3D","line":48,"updated":"2014-02-18 19:46:58.000000000","message":"Why not use portbindings.VNIC_NO_SRIOV (or portbindings.VNIC_NORMAL)?","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"637d93cc719c617e25a3a8241a8f22ea1a41bc60","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._network_context \u003d FakeNetworkContext(segments)"},{"line_number":46,"context_line":"        self._bound_segment_id \u003d None"},{"line_number":47,"context_line":"        self._bound_vif_type \u003d None"},{"line_number":48,"context_line":"        self._bound_vnic_type \u003d \u0027no_sriov\u0027"},{"line_number":49,"context_line":"        self._bound_cap_port_filter \u003d None"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2B0Tg%3D","line":48,"in_reply_to":"AAAAUX%2F%2B0rc%3D","updated":"2014-02-18 20:35:47.000000000","message":"Done","commit_id":"35f26a0067c937ff60cae9584c06f50c3c45238d"}]}
