)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14511,"name":"Maciej Szankin","email":"maciej+review@szankin.pl","username":"mszankin"},"change_message_id":"fd366ecc46748008a0a026c0beec5613c0dd7c79","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2017-03-03 16:23:01 +0100"},{"line_number":4,"context_line":"Commit:     Michael Henkel \u003cmhenkel@juniper.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-03 16:25:50 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba2be162_f02cdf03","line":6,"updated":"2017-03-03 17:10:47.000000000","message":"i find the lack of commit message disturbing.","commit_id":"5daf3a13972d76e7622bd0a9fa9e427d13f421f3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b11226df529872ca5c4daef0c34327aa918bc8ae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Michael Henkel \u003cmhenkel@juniper.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-13 10:54:45 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds support for DPDK for the OpenContrail SDN Controller."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a1ced50_69d8c11e","line":7,"updated":"2017-03-16 16:58:24.000000000","message":"The commit message needs a summary line different from the Implements: blueprint ... line.\n\nA actually don\u0027t see anything in this patch that has to do specifically with DPDK? Perhaps add a commit message summary line of:\n\n contrail: add vrouter VIF plugin type support","commit_id":"62311d765ffde34641233bc4879ca04ce58e3e2b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b11226df529872ca5c4daef0c34327aa918bc8ae","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds support for DPDK for the OpenContrail SDN Controller."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a1ced50_49adc587","line":9,"updated":"2017-03-16 16:58:24.000000000","message":"Please add something to this commit message that shows where the corresponding os-vif plugin for Contrail vRouter is:\n\nhttps://github.com/Juniper/contrail-nova-vif-driver\n\nAlso, I don\u0027t see what DPDK has to do with this particular patch?","commit_id":"62311d765ffde34641233bc4879ca04ce58e3e2b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7a101886f724c4da7620f91c51dc7deb7627ac2f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Michael Henkel \u003cmhenkel@juniper.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-17 10:10:42 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"contrail: add vrouter VIF plugin type support"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a1ced50_56f37e73","line":7,"updated":"2017-03-17 14:01:21.000000000","message":"Also, please move the above line to be directly above line 16.","commit_id":"a3de366ae666d546be038ebeff96c3e148999946"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"682aa76a9a7203489a8844675c9da3370d669fbd","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Aligned vif_name attribute"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":17,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"df140735_a00a4523","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":47},"updated":"2017-05-30 20:28:26.000000000","message":"I don\u0027t see anything dpdk-related, this blueprint should be renamed.","commit_id":"1eeb97287f1ae8a7785d9569077e1792282f6e19"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad8f2d34f5958808409dc6f0733300dba7d7b848","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Aligned vif_name attribute"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":17,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"df140735_b7125108","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":47},"in_reply_to":"df140735_a00a4523","updated":"2017-06-01 14:53:14.000000000","message":"contrail use vhost-user and dpdk to implement the vrouter if i remember correctly.","commit_id":"1eeb97287f1ae8a7785d9569077e1792282f6e19"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"beb1ff1fa08a37ec4b30b0db9dbd4ceecca90027","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Aligned vif_name attribute"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements: blueprint opencontrail-dpdk-support"},{"line_number":17,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"df140735_cd7092a8","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":47},"in_reply_to":"df140735_b7125108","updated":"2017-06-01 15:20:54.000000000","message":"Sure, but there\u0027s nothing in the code in *this* commit that mentions DPDK.  Talking about contrail-vrouter or something like that is fine, the fact that it\u0027d DPDK under the hood is irrelevent to this commit.","commit_id":"1eeb97287f1ae8a7785d9569077e1792282f6e19"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"in nova. It will initially be used for OpenContrail dpdk driver."},{"line_number":11,"context_line":"Added unit test."},{"line_number":12,"context_line":"The plugin is located here:"},{"line_number":13,"context_line":"https://github.com/Juniper/contrail-nova-vif-driver"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Aligned vif_name attribute"},{"line_number":16,"context_line":"Added release note"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"df140735_debb9ac1","line":13,"updated":"2017-06-01 17:04:59.000000000","message":"You\u0027re going to need to update your plugin code since the vif type name changed, right?\n\nhttps://github.com/Juniper/contrail-nova-vif-driver/blob/master/vif_plug_vrouter/vrouter.py#L51","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c937e3c7fb9751951c1852732014fd42a653d26f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The VIF plugin will provide support OpenContrail SDN Controller driver"},{"line_number":10,"context_line":"in nova. It will initially be used for OpenContrail dpdk driver."},{"line_number":11,"context_line":"Added unit test."},{"line_number":12,"context_line":"The plugin is located here:"},{"line_number":13,"context_line":"https://github.com/Juniper/contrail-nova-vif-driver"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"df140735_950c4195","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":16},"updated":"2017-06-07 11:52:45.000000000","message":"Remove this.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":22323,"name":"Michael  Henkel","email":"mhenkel@juniper.net","username":"mhenkel"},"change_message_id":"1e8ac7e4a8d0a98c6abffe5c6118d4e74765c80c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The VIF plugin will provide support OpenContrail SDN Controller driver"},{"line_number":10,"context_line":"in nova. It will initially be used for OpenContrail dpdk driver."},{"line_number":11,"context_line":"Added unit test."},{"line_number":12,"context_line":"The plugin is located here:"},{"line_number":13,"context_line":"https://github.com/Juniper/contrail-nova-vif-driver"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"df140735_b58624db","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":16},"in_reply_to":"df140735_950c4195","updated":"2017-06-07 12:15:56.000000000","message":"Done","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c937e3c7fb9751951c1852732014fd42a653d26f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The plugin is located here:"},{"line_number":13,"context_line":"https://github.com/Juniper/contrail-nova-vif-driver"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Aligned vif_name attribute"},{"line_number":16,"context_line":"Added release note"},{"line_number":17,"context_line":"Modified release note"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint opencontrail-nova-vif-plugin"},{"line_number":20,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"df140735_d512b9b4","line":17,"range":{"start_line":15,"start_character":0,"end_line":17,"end_character":21},"updated":"2017-06-07 11:52:45.000000000","message":"The commit message isn\u0027t a change log, you don\u0027t need stuff like this in here.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":22323,"name":"Michael  Henkel","email":"mhenkel@juniper.net","username":"mhenkel"},"change_message_id":"1e8ac7e4a8d0a98c6abffe5c6118d4e74765c80c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The plugin is located here:"},{"line_number":13,"context_line":"https://github.com/Juniper/contrail-nova-vif-driver"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Aligned vif_name attribute"},{"line_number":16,"context_line":"Added release note"},{"line_number":17,"context_line":"Modified release note"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint opencontrail-nova-vif-plugin"},{"line_number":20,"context_line":"Change-Id: Ic23effc05c901575f608f2b4c5ccd2b1fb3c2d5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"df140735_d58198c5","line":17,"range":{"start_line":15,"start_character":0,"end_line":17,"end_character":21},"in_reply_to":"df140735_d512b9b4","updated":"2017-06-07 12:15:56.000000000","message":"Done","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"}],"nova/network/model.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c937e3c7fb9751951c1852732014fd42a653d26f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"VIF_DETAILS_VHOSTUSER_FP_PLUG \u003d \u0027vhostuser_fp_plug\u0027"},{"line_number":85,"context_line":"# Specifies whether vhost-user socket should be used to"},{"line_number":86,"context_line":"# create a vrouter netdevice interface"},{"line_number":87,"context_line":"VIF_DETAILS_VHOSTUSER_VROUTER_PLUG \u003d \u0027vhostuser_vrouter_plug\u0027"},{"line_number":88,"context_line":"# ovs vhost user interface type name"},{"line_number":89,"context_line":"OVS_VHOSTUSER_INTERFACE_TYPE \u003d \u0027dpdkvhostuser\u0027"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_95cfa128","line":87,"range":{"start_line":87,"start_character":38,"end_line":87,"end_character":60},"updated":"2017-06-07 11:52:45.000000000","message":"Should this have contrail in the type name? Given how it\u0027s used here:\n\nhttps://review.openstack.org/#/c/441183/15/nova/network/os_vif_util.py@338\n\nWhich is totally specific to the contrail vendor plugin.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"90dd8352b5e2b4b0dc942664a84b82efecc41989","unresolved":false,"context_lines":[{"line_number":84,"context_line":"VIF_DETAILS_VHOSTUSER_FP_PLUG \u003d \u0027vhostuser_fp_plug\u0027"},{"line_number":85,"context_line":"# Specifies whether vhost-user socket should be used to"},{"line_number":86,"context_line":"# create a vrouter netdevice interface"},{"line_number":87,"context_line":"VIF_DETAILS_VHOSTUSER_VROUTER_PLUG \u003d \u0027vhostuser_vrouter_plug\u0027"},{"line_number":88,"context_line":"# ovs vhost user interface type name"},{"line_number":89,"context_line":"OVS_VHOSTUSER_INTERFACE_TYPE \u003d \u0027dpdkvhostuser\u0027"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_b53e24d8","line":87,"range":{"start_line":87,"start_character":38,"end_line":87,"end_character":60},"in_reply_to":"df140735_35c5745c","updated":"2017-06-07 12:17:35.000000000","message":"Then we should probably have a TODO in here to consider renaming this to a contrail-specific name.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":22323,"name":"Michael  Henkel","email":"mhenkel@juniper.net","username":"mhenkel"},"change_message_id":"1e8ac7e4a8d0a98c6abffe5c6118d4e74765c80c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"VIF_DETAILS_VHOSTUSER_FP_PLUG \u003d \u0027vhostuser_fp_plug\u0027"},{"line_number":85,"context_line":"# Specifies whether vhost-user socket should be used to"},{"line_number":86,"context_line":"# create a vrouter netdevice interface"},{"line_number":87,"context_line":"VIF_DETAILS_VHOSTUSER_VROUTER_PLUG \u003d \u0027vhostuser_vrouter_plug\u0027"},{"line_number":88,"context_line":"# ovs vhost user interface type name"},{"line_number":89,"context_line":"OVS_VHOSTUSER_INTERFACE_TYPE \u003d \u0027dpdkvhostuser\u0027"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_35c5745c","line":87,"range":{"start_line":87,"start_character":38,"end_line":87,"end_character":60},"in_reply_to":"df140735_95cfa128","updated":"2017-06-07 12:15:56.000000000","message":"This is what we currently use in our neutron open contrail plugin:\nhttps://github.com/Juniper/contrail-neutron-plugin/blob/master/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py#L137\nWe cannot change this now but for the next release we will look into it.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"}],"nova/network/os_vif_util.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"df4aebd024b951461656d5377ce2a64edb03d846","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        return obj"},{"line_number":336,"context_line":"    elif vif[\u0027details\u0027].get(model.VIF_DETAILS_VHOSTUSER_VROUTER_PLUG, False):"},{"line_number":337,"context_line":"        obj \u003d _get_vif_instance(vif, objects.vif.VIFVHostUser,"},{"line_number":338,"context_line":"                                plugin\u003d\"vrouter\","},{"line_number":339,"context_line":"                                vif_name\u003d_get_vif_name(vif))"},{"line_number":340,"context_line":"        _set_vhostuser_settings(vif, obj)"},{"line_number":341,"context_line":"        return obj"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_940e2b39","line":338,"range":{"start_line":338,"start_character":40,"end_line":338,"end_character":47},"updated":"2017-06-01 14:40:13.000000000","message":"This is an extremely generic name - why not contrail-vrouter or something? What happens when ACME SDN vendor has a vif type of \"vrouter\" that collides with this?","commit_id":"1eeb97287f1ae8a7785d9569077e1792282f6e19"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad8f2d34f5958808409dc6f0733300dba7d7b848","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        return obj"},{"line_number":336,"context_line":"    elif vif[\u0027details\u0027].get(model.VIF_DETAILS_VHOSTUSER_VROUTER_PLUG, False):"},{"line_number":337,"context_line":"        obj \u003d _get_vif_instance(vif, objects.vif.VIFVHostUser,"},{"line_number":338,"context_line":"                                plugin\u003d\"vrouter\","},{"line_number":339,"context_line":"                                vif_name\u003d_get_vif_name(vif))"},{"line_number":340,"context_line":"        _set_vhostuser_settings(vif, obj)"},{"line_number":341,"context_line":"        return obj"}],"source_content_type":"text/x-python","patch_set":10,"id":"df140735_57cad56c","line":338,"range":{"start_line":338,"start_character":40,"end_line":338,"end_character":47},"in_reply_to":"df140735_940e2b39","updated":"2017-06-01 14:53:14.000000000","message":"i agree contrail-vrouter would be better here","commit_id":"1eeb97287f1ae8a7785d9569077e1792282f6e19"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        return obj"},{"line_number":336,"context_line":"    elif vif[\u0027details\u0027].get(model.VIF_DETAILS_VHOSTUSER_VROUTER_PLUG, False):"},{"line_number":337,"context_line":"        obj \u003d _get_vif_instance(vif, objects.vif.VIFVHostUser,"},{"line_number":338,"context_line":"                                plugin\u003d\"contrail_vrouter\","},{"line_number":339,"context_line":"                                vif_name\u003d_get_vif_name(vif))"},{"line_number":340,"context_line":"        _set_vhostuser_settings(vif, obj)"},{"line_number":341,"context_line":"        return obj"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_5ec78a46","line":338,"range":{"start_line":338,"start_character":40,"end_line":338,"end_character":56},"updated":"2017-06-01 17:04:59.000000000","message":"You also need to update your plugin:\n\nhttps://github.com/Juniper/contrail-nova-vif-driver/blob/master/vif_plug_vrouter/vrouter.py#L51\n\nhttps://github.com/Juniper/contrail-nova-vif-driver/blob/master/setup.py#L27\n\nWe should hold off on approving this in nova until the plugin is updated.","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"}],"nova/tests/unit/network/test_os_vif_util.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2db311699ce8595be1add81e9ddc9abe868c753a","unresolved":false,"context_lines":[{"line_number":853,"context_line":"                subnets\u003dosv_objects.subnet.SubnetList("},{"line_number":854,"context_line":"                    objects\u003d[])))"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        self.assertObjEqual(expect, actual)"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"    def test_nova_to_osvif_vhostuser_vrouter_no_socket_path(self):"},{"line_number":859,"context_line":"        vif \u003d model.VIF("}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_f620eaf9","line":856,"updated":"2017-03-17 14:00:42.000000000","message":"From the test failure:\n\nft580.24: nova.tests.unit.network.test_os_vif_util.OSVIFUtilTestCase.test_nova_to_osvif_vhostuser_vrouter_StringException: Empty attachments:\n  pythonlogging:\u0027\u0027\n  stderr\n  stdout\n\nTraceback (most recent call last):\n  File \"nova/tests/unit/network/test_os_vif_util.py\", line 857, in test_nova_to_osvif_vhostuser_vrouter\n    self.assertObjEqual(expect, actual)\n  File \"nova/tests/unit/network/test_os_vif_util.py\", line 37, in assertObjEqual\n    actual.obj_to_primitive())\n  File \"/home/jenkins/workspace/gate-nova-python27-ubuntu-xenial/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py\", line 411, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/home/jenkins/workspace/gate-nova-python27-ubuntu-xenial/.tox/py27/local/lib/python2.7/site-packages/testtools/testcase.py\", line 498, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: !\u003d:\nreference \u003d {\u0027versioned_object.data\u0027: {\u0027active\u0027: False,\n                           \u0027address\u0027: \u002722:52:25:62:e2:aa\u0027,\n                           \u0027has_traffic_filtering\u0027: False,\n                           \u0027id\u0027: \u0027dc065497-3c8d-4f44-8fb4-e1d33c16a536\u0027,\n                           \u0027mode\u0027: u\u0027client\u0027,\n                           \u0027network\u0027: {\u0027versioned_object.data\u0027: {\u0027bridge_interface\u0027: None,\n                                                                 \u0027id\u0027: \u0027b82c1929-051e-481d-8110-4669916c7915\u0027,\n                                                                 \u0027label\u0027: u\u0027Demo Net\u0027,\n                                                                 \u0027mtu\u0027: 1500,\n                                                                 \u0027multi_host\u0027: False,\n                                                                 \u0027should_provide_bridge\u0027: False,\n                                                                 \u0027should_provide_vlan\u0027: False,\n                                                                 \u0027subnets\u0027: {\u0027versioned_object.data\u0027: {\u0027objects\u0027: []},\n                                                                             \u0027versioned_object.name\u0027: \u0027SubnetList\u0027,\n                                                                             \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n                                                                             \u0027versioned_object.version\u0027: \u00271.0\u0027}},\n                                       \u0027versioned_object.name\u0027: \u0027Network\u0027,\n                                       \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n                                       \u0027versioned_object.version\u0027: \u00271.1\u0027},\n                           \u0027path\u0027: u\u0027/fake/socket\u0027,\n                           \u0027plugin\u0027: u\u0027vrouter\u0027,\n                           \u0027preserve_on_delete\u0027: False,\n                           \u0027vif_name\u0027: u\u0027tap85264162-70\u0027},\n \u0027versioned_object.name\u0027: \u0027VIFVHostUser\u0027,\n \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n \u0027versioned_object.version\u0027: \u00271.1\u0027}\nactual    \u003d {\u0027versioned_object.data\u0027: {\u0027active\u0027: False,\n                           \u0027address\u0027: \u002722:52:25:62:e2:aa\u0027,\n                           \u0027has_traffic_filtering\u0027: False,\n                           \u0027id\u0027: \u0027dc065497-3c8d-4f44-8fb4-e1d33c16a536\u0027,\n                           \u0027mode\u0027: u\u0027client\u0027,\n                           \u0027network\u0027: {\u0027versioned_object.data\u0027: {\u0027bridge_interface\u0027: None,\n                                                                 \u0027id\u0027: \u0027b82c1929-051e-481d-8110-4669916c7915\u0027,\n                                                                 \u0027label\u0027: u\u0027Demo Net\u0027,\n                                                                 \u0027mtu\u0027: None,\n                                                                 \u0027multi_host\u0027: False,\n                                                                 \u0027should_provide_bridge\u0027: False,\n                                                                 \u0027should_provide_vlan\u0027: False,\n                                                                 \u0027subnets\u0027: {\u0027versioned_object.data\u0027: {\u0027objects\u0027: []},\n                                                                             \u0027versioned_object.name\u0027: \u0027SubnetList\u0027,\n                                                                             \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n                                                                             \u0027versioned_object.version\u0027: \u00271.0\u0027}},\n                                       \u0027versioned_object.name\u0027: \u0027Network\u0027,\n                                       \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n                                       \u0027versioned_object.version\u0027: \u00271.1\u0027},\n                           \u0027path\u0027: u\u0027/fake/socket\u0027,\n                           \u0027plugin\u0027: u\u0027vrouter\u0027,\n                           \u0027preserve_on_delete\u0027: False,\n                           \u0027vif_name\u0027: u\u0027nicdc065497-3c\u0027},\n \u0027versioned_object.name\u0027: \u0027VIFVHostUser\u0027,\n \u0027versioned_object.namespace\u0027: \u0027os_vif\u0027,\n \u0027versioned_object.version\u0027: \u00271.1\u0027}\n\nThe vif_name attribute is different...","commit_id":"a3de366ae666d546be038ebeff96c3e148999946"}],"nova/tests/unit/virt/libvirt/test_vif.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2db311699ce8595be1add81e9ddc9abe868c753a","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            port_profile\u003dself.os_vif_ovs_prof,"},{"line_number":404,"context_line":"            network\u003dself.os_vif_network)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        self.os_vif_vhostuser \u003d osv_objects.vif.VIFVHostUser("},{"line_number":407,"context_line":"            id\u003d\"dc065497-3c8d-4f44-8fb4-e1d33c16a536\","},{"line_number":408,"context_line":"            address\u003d\"22:52:25:62:e2:aa\","},{"line_number":409,"context_line":"            plugin\u003d\"vrouter\","}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_f649cad1","line":406,"updated":"2017-03-17 14:00:42.000000000","message":"You need to name this something other than os_vif_vhostuser, since that variable is already defined on line 396.","commit_id":"a3de366ae666d546be038ebeff96c3e148999946"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c937e3c7fb9751951c1852732014fd42a653d26f","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            port_profile\u003dself.os_vif_ovs_prof,"},{"line_number":404,"context_line":"            network\u003dself.os_vif_network)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        self.os_vif_vrouter \u003d osv_objects.vif.VIFVHostUser("},{"line_number":407,"context_line":"            id\u003d\"dc065497-3c8d-4f44-8fb4-e1d33c16a536\","},{"line_number":408,"context_line":"            address\u003d\"22:52:25:62:e2:aa\","},{"line_number":409,"context_line":"            plugin\u003d\"contrail_vrouter\","},{"line_number":410,"context_line":"            vif_name\u003d\"nicdc065497-3c\","},{"line_number":411,"context_line":"            path\u003d\u0027/var/run/vrouter/uvh_vif_nicdc065497-3c\u0027,"},{"line_number":412,"context_line":"            mode\u003d\u0027client\u0027,"},{"line_number":413,"context_line":"            network\u003dself.os_vif_network)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        self.os_vif_inst_info \u003d osv_objects.instance_info.InstanceInfo("},{"line_number":416,"context_line":"            uuid\u003d\"d5b1090c-9e00-4fa4-9504-4b1494857970\","}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_75176d53","line":413,"range":{"start_line":406,"start_character":8,"end_line":413,"end_character":40},"updated":"2017-06-07 11:52:45.000000000","message":"This isn\u0027t actually used so why is this needed? We\u0027re not testing plug with this type in this module.","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"},{"author":{"_account_id":22323,"name":"Michael  Henkel","email":"mhenkel@juniper.net","username":"mhenkel"},"change_message_id":"1e8ac7e4a8d0a98c6abffe5c6118d4e74765c80c","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            port_profile\u003dself.os_vif_ovs_prof,"},{"line_number":404,"context_line":"            network\u003dself.os_vif_network)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        self.os_vif_vrouter \u003d osv_objects.vif.VIFVHostUser("},{"line_number":407,"context_line":"            id\u003d\"dc065497-3c8d-4f44-8fb4-e1d33c16a536\","},{"line_number":408,"context_line":"            address\u003d\"22:52:25:62:e2:aa\","},{"line_number":409,"context_line":"            plugin\u003d\"contrail_vrouter\","},{"line_number":410,"context_line":"            vif_name\u003d\"nicdc065497-3c\","},{"line_number":411,"context_line":"            path\u003d\u0027/var/run/vrouter/uvh_vif_nicdc065497-3c\u0027,"},{"line_number":412,"context_line":"            mode\u003d\u0027client\u0027,"},{"line_number":413,"context_line":"            network\u003dself.os_vif_network)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        self.os_vif_inst_info \u003d osv_objects.instance_info.InstanceInfo("},{"line_number":416,"context_line":"            uuid\u003d\"d5b1090c-9e00-4fa4-9504-4b1494857970\","}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_15c6f017","line":413,"range":{"start_line":406,"start_character":8,"end_line":413,"end_character":40},"in_reply_to":"df140735_75176d53","updated":"2017-06-07 12:15:56.000000000","message":"Done","commit_id":"e92c3be03592e78ba4da692480b6a65d5656d8c5"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f8dc4f3a1064d1893f1f24bd433097db803df828","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from os_vif import exception as osv_exception"},{"line_number":26,"context_line":"from oslo_concurrency import processutils"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"import nova.conf"},{"line_number":31,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_b2699dfb","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":27},"updated":"2017-03-10 07:10:13.000000000","message":"It should be removed.","commit_id":"5daf3a13972d76e7622bd0a9fa9e427d13f421f3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f8dc4f3a1064d1893f1f24bd433097db803df828","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        designer.set_vif_bandwidth_config(conf, inst_type)"},{"line_number":446,"context_line":"        return conf"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def _set_config_VIFVHostUser(self, instance, vif, conf):"},{"line_number":449,"context_line":"        designer.set_vif_host_backend_vhostuser_config(conf, vif.mode, vif.path)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    def _set_config_VIFBridge(self, instance, vif, conf, host\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_3224cdc3","line":448,"updated":"2017-03-10 07:10:13.000000000","message":"This function is the same name as the function in line 467.","commit_id":"5daf3a13972d76e7622bd0a9fa9e427d13f421f3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f8dc4f3a1064d1893f1f24bd433097db803df828","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        return conf"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def _set_config_VIFVHostUser(self, instance, vif, conf):"},{"line_number":449,"context_line":"        designer.set_vif_host_backend_vhostuser_config(conf, vif.mode, vif.path)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"    def _set_config_VIFBridge(self, instance, vif, conf, host\u003dNone):"},{"line_number":452,"context_line":"        conf.net_type \u003d \"bridge\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_f26f95f9","line":449,"range":{"start_line":449,"start_character":0,"end_line":449,"end_character":80},"updated":"2017-03-10 07:10:13.000000000","message":"This line should be wrapped.","commit_id":"5daf3a13972d76e7622bd0a9fa9e427d13f421f3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f8dc4f3a1064d1893f1f24bd433097db803df828","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        conf.target_dev \u003d vif.vif_name"},{"line_number":465,"context_line":"        self._set_config_VIFPortProfile(instance, vif, conf)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def _set_config_VIFVHostUser(self, instance, vif, conf, host\u003dNone):"},{"line_number":468,"context_line":"        designer.set_vif_host_backend_vhostuser_config("},{"line_number":469,"context_line":"            conf, vif.mode, vif.path)"},{"line_number":470,"context_line":"        if not host.has_min_version(MIN_LIBVIRT_VHOSTUSER_MQ):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_9219f98a","line":467,"range":{"start_line":467,"start_character":8,"end_line":467,"end_character":32},"updated":"2017-03-10 07:10:13.000000000","message":"Here","commit_id":"5daf3a13972d76e7622bd0a9fa9e427d13f421f3"}],"releasenotes/notes/bp-opencontrail-nova-vif-plugin-b132102ad79ebf90.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The model name VIF_DETAILS_VHOSTUSER_VROUTER_PLUG (\u0027vhostuser_vrouter_plug\u0027)"},{"line_number":5,"context_line":"    is set by the neutron contrail plugin during a VM (network port) creation."},{"line_number":6,"context_line":"    For every port add, the function _nova_to_osvif_vif_vhostuser will be called."},{"line_number":7,"context_line":"    With the code change to match the vhostuser_vrouter_plug,"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_fedd3e14","line":4,"range":{"start_line":4,"start_character":19,"end_line":4,"end_character":53},"updated":"2017-06-01 17:04:59.000000000","message":"Remove the variable name - people reading release notes don\u0027t need to know about the code.","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The model name VIF_DETAILS_VHOSTUSER_VROUTER_PLUG (\u0027vhostuser_vrouter_plug\u0027)"},{"line_number":5,"context_line":"    is set by the neutron contrail plugin during a VM (network port) creation."},{"line_number":6,"context_line":"    For every port add, the function _nova_to_osvif_vif_vhostuser will be called."},{"line_number":7,"context_line":"    With the code change to match the vhostuser_vrouter_plug,"},{"line_number":8,"context_line":"    the plugin set to \"contrail_vrouter\"."},{"line_number":9,"context_line":"    With that the plug call of plugin will be invoked,"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_5ecc2a60","line":6,"range":{"start_line":6,"start_character":37,"end_line":6,"end_character":65},"updated":"2017-06-01 17:04:59.000000000","message":"This is unnecessary information for an operator/deployer, it\u0027s just internal code details.","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The model name VIF_DETAILS_VHOSTUSER_VROUTER_PLUG (\u0027vhostuser_vrouter_plug\u0027)"},{"line_number":5,"context_line":"    is set by the neutron contrail plugin during a VM (network port) creation."},{"line_number":6,"context_line":"    For every port add, the function _nova_to_osvif_vif_vhostuser will be called."},{"line_number":7,"context_line":"    With the code change to match the vhostuser_vrouter_plug,"},{"line_number":8,"context_line":"    the plugin set to \"contrail_vrouter\"."},{"line_number":9,"context_line":"    With that the plug call of plugin will be invoked,"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_dee03acf","line":6,"range":{"start_line":6,"start_character":19,"end_line":6,"end_character":22},"updated":"2017-06-01 17:04:59.000000000","message":"added","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0e9aed44fc57be83683e080315ec56c13ecc13a4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The model name VIF_DETAILS_VHOSTUSER_VROUTER_PLUG (\u0027vhostuser_vrouter_plug\u0027)"},{"line_number":5,"context_line":"    is set by the neutron contrail plugin during a VM (network port) creation."},{"line_number":6,"context_line":"    For every port add, the function _nova_to_osvif_vif_vhostuser will be called."},{"line_number":7,"context_line":"    With the code change to match the vhostuser_vrouter_plug,"},{"line_number":8,"context_line":"    the plugin set to \"contrail_vrouter\"."},{"line_number":9,"context_line":"    With that the plug call of plugin will be invoked,"},{"line_number":10,"context_line":"    instead of the plug inside nova. No configuration is required."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_5e51ca61","line":10,"range":{"start_line":7,"start_character":4,"end_line":10,"end_character":66},"updated":"2017-06-01 17:04:59.000000000","message":"This is a bit confusing, can we make this more generic to just say that the libvirt compute driver now supports plugging virtual interfaces of type \"contrail_vrouter\" which are provided by the contrail-nova-vif-driver plugin [1].\n\n[1] https://github.com/Juniper/contrail-nova-vif-driver\n\n--\n\nI believe that on startup, nova-compute initializes os-vif which loads the plugins, so all you need to use the plugin is have it installed.","commit_id":"cc732d22a8c64ec5390691eb4bf569274f85756c"}]}
