)]}'
{"nova/network/model.py":[{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"cc225cfe52c4e6a82f0e69454fd354cec921483d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Constants for vhost-user related fields in \u0027vif_details\u0027."},{"line_number":58,"context_line":"VIF_DETAILS_VHOSTUSER_MODE \u003d \u0027vhostuser_mode\u0027"},{"line_number":59,"context_line":"VIF_DETAILS_VHOSTUSER_DIR \u003d \u0027vhostuser_sock_dir\u0027"},{"line_number":60,"context_line":"VIF_DETAILS_VHOSTUSER_OVS_PLUG \u003d \u0027vhostuser_ovs_plug\u0027"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Define supported virtual NIC types. VNIC_TYPE_DIRECT and VNIC_TYPE_MACVTAP"},{"line_number":63,"context_line":"# are used for SR-IOV ports"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_ceee37b4","line":60,"updated":"2015-01-29 12:20:36.000000000","message":"Please add comment to say what this means, and that the valid values are True and False.","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"0aef45d653d584438bdbf5c52396f7e2c833b1f8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Constants for vhost-user related fields in \u0027vif_details\u0027."},{"line_number":58,"context_line":"VIF_DETAILS_VHOSTUSER_MODE \u003d \u0027vhostuser_mode\u0027"},{"line_number":59,"context_line":"VIF_DETAILS_VHOSTUSER_DIR \u003d \u0027vhostuser_sock_dir\u0027"},{"line_number":60,"context_line":"VIF_DETAILS_VHOSTUSER_OVS_PLUG \u003d \u0027vhostuser_ovs_plug\u0027"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Define supported virtual NIC types. VNIC_TYPE_DIRECT and VNIC_TYPE_MACVTAP"},{"line_number":63,"context_line":"# are used for SR-IOV ports"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_4596924d","line":60,"in_reply_to":"fa81d914_ceee37b4","updated":"2015-01-29 18:06:56.000000000","message":"Done","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"}],"nova/tests/unit/network/test_neutronv2.py":[{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"cc225cfe52c4e6a82f0e69454fd354cec921483d","unresolved":false,"context_lines":[{"line_number":2419,"context_line":"        self.mox.ReplayAll()"},{"line_number":2420,"context_line":"        neutronapi.get_client(\u0027fake\u0027)"},{"line_number":2421,"context_line":"        net, iid \u003d api._nw_info_build_network(fake_port, fake_nets,"},{"line_number":2422,"context_line":"                                              fake_subnets)"},{"line_number":2423,"context_line":"        self.assertEqual(net[\u0027subnets\u0027], fake_subnets)"},{"line_number":2424,"context_line":"        self.assertEqual(net[\u0027id\u0027], \u0027net-id\u0027)"},{"line_number":2425,"context_line":"        self.assertEqual(net[\u0027label\u0027], \u0027foo\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_cee1d79b","line":2422,"updated":"2015-01-29 12:20:36.000000000","message":"I\u0027m still very much a newbie with OpenStack testing, but it looks very odd to me to test by calling an internal function of a class-under-test.  (I presume that the leading underscore, in \"_nw_info_build_network\", indicates that it is an internal implementation function and not for outside callers.)\n\nCould you exercise this code by calling one of the advertised APIs of the class concerned?  It seems to me that that would be more robust against possible future refactoring of the internal implementation.","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"0aef45d653d584438bdbf5c52396f7e2c833b1f8","unresolved":false,"context_lines":[{"line_number":2419,"context_line":"        self.mox.ReplayAll()"},{"line_number":2420,"context_line":"        neutronapi.get_client(\u0027fake\u0027)"},{"line_number":2421,"context_line":"        net, iid \u003d api._nw_info_build_network(fake_port, fake_nets,"},{"line_number":2422,"context_line":"                                              fake_subnets)"},{"line_number":2423,"context_line":"        self.assertEqual(net[\u0027subnets\u0027], fake_subnets)"},{"line_number":2424,"context_line":"        self.assertEqual(net[\u0027id\u0027], \u0027net-id\u0027)"},{"line_number":2425,"context_line":"        self.assertEqual(net[\u0027label\u0027], \u0027foo\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_a5d74eec","line":2422,"in_reply_to":"fa81d914_cee1d79b","updated":"2015-01-29 18:06:56.000000000","message":"It does make sense what you say. But how this is written is consistent with other tests for this function. I would prefer to leave it as it is and change it together with other tests.","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"cc225cfe52c4e6a82f0e69454fd354cec921483d","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":545,"context_line":"                                          port_name, iface_id, vif[\u0027address\u0027],"},{"line_number":546,"context_line":"                                          instance[\u0027uuid\u0027])"},{"line_number":547,"context_line":"            linux_net.ovs_set_vhostuser_port_type(port_name)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    def plug(self, instance, vif):"},{"line_number":550,"context_line":"        vif_type \u003d vif[\u0027type\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_2e3d13df","line":547,"updated":"2015-01-29 12:20:36.000000000","message":"Does this logic need to be here in Nova, as opposed to in the associated Neutron ML2 driver?","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"75871c4fe1287d22dec96bb4c00927735b5be426","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":545,"context_line":"                                          port_name, iface_id, vif[\u0027address\u0027],"},{"line_number":546,"context_line":"                                          instance[\u0027uuid\u0027])"},{"line_number":547,"context_line":"            linux_net.ovs_set_vhostuser_port_type(port_name)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    def plug(self, instance, vif):"},{"line_number":550,"context_line":"        vif_type \u003d vif[\u0027type\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_5806c021","line":547,"in_reply_to":"fa81d914_05b65afa","updated":"2015-02-02 13:15:02.000000000","message":"Sorry for being sloppy in saying the ML2 driver; I meant the agent, because (as you say) that runs on the compute host.\n\nCan you expand on \u0027because of how nova and neutron interact\u0027?  I agree that it\u0027s consistent with other VIFs, but I don\u0027t think that\u0027s a good thing because it creates lots of small islands of strange vendor-specific code in vif.py.  If that vendor-specific code _could_ be moved, so much the better, IMO.","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"0aef45d653d584438bdbf5c52396f7e2c833b1f8","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":545,"context_line":"                                          port_name, iface_id, vif[\u0027address\u0027],"},{"line_number":546,"context_line":"                                          instance[\u0027uuid\u0027])"},{"line_number":547,"context_line":"            linux_net.ovs_set_vhostuser_port_type(port_name)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    def plug(self, instance, vif):"},{"line_number":550,"context_line":"        vif_type \u003d vif[\u0027type\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_05b65afa","line":547,"in_reply_to":"fa81d914_2e3d13df","updated":"2015-01-29 18:06:56.000000000","message":"It has to done here, the ml2 driver is run on the network node and this code needs to run on the compute host. It can\u0027t be put in the neutron agent either, because of how nova and neutron interact. This is consistent with how other vif\u0027s work.","commit_id":"eb823f06681d44df430c8198b6149e47b074e998"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"ee68ef94b39ac34486aa5944754a79cd1e4f79a7","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                               \u0027server\u0027)"},{"line_number":342,"context_line":"        path \u003d vif_details.get(network_model.VIF_DETAILS_VHOSTUSER_DIR,"},{"line_number":343,"context_line":"                               VHOSTUSER_DIR_DEFAULT)"},{"line_number":344,"context_line":"        ovs_plug \u003d vif[\u0027details\u0027].get("},{"line_number":345,"context_line":"                            network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG,"},{"line_number":346,"context_line":"                            False)"},{"line_number":347,"context_line":"        if ovs_plug:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_26bb9d73","line":344,"updated":"2015-02-09 17:33:41.000000000","message":"why not just vif_details here? It\u0027s already been assigned above.","commit_id":"93b7ffb74ec4a17f6c65ec8b4902bdb8519b4791"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"94f741c7dcede46b6bde050698069b42432ffe55","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                               \u0027server\u0027)"},{"line_number":342,"context_line":"        path \u003d vif_details.get(network_model.VIF_DETAILS_VHOSTUSER_DIR,"},{"line_number":343,"context_line":"                               VHOSTUSER_DIR_DEFAULT)"},{"line_number":344,"context_line":"        ovs_plug \u003d vif[\u0027details\u0027].get("},{"line_number":345,"context_line":"                            network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG,"},{"line_number":346,"context_line":"                            False)"},{"line_number":347,"context_line":"        if ovs_plug:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_f4fcce41","line":344,"in_reply_to":"da86d52c_26bb9d73","updated":"2015-02-09 18:01:11.000000000","message":"sure, will fix","commit_id":"93b7ffb74ec4a17f6c65ec8b4902bdb8519b4791"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"ee68ef94b39ac34486aa5944754a79cd1e4f79a7","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        ovs_plug \u003d vif[\u0027details\u0027].get("},{"line_number":345,"context_line":"                            network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG,"},{"line_number":346,"context_line":"                            False)"},{"line_number":347,"context_line":"        if ovs_plug:"},{"line_number":348,"context_line":"            sock_name \u003d self.get_vif_devname_with_prefix(vif, \"usv\")"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            sock_name \u003d vif[\"id\"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e61c257a","line":347,"updated":"2015-02-09 17:33:41.000000000","message":"It probably isn\u0027t a stretch to ditch \u0027ovs_plug\" and just make this:\n\nif vif_details.get(network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG, False):","commit_id":"93b7ffb74ec4a17f6c65ec8b4902bdb8519b4791"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"662ae683ba77864a94f10f60559242dfa52ad3af","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        if ovs_plug:"},{"line_number":348,"context_line":"            sock_name \u003d self.get_vif_devname_with_prefix(vif, \"usv\")"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            sock_name \u003d vif[\"id\"]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        designer.set_vif_host_backend_vhostuser_config("},{"line_number":353,"context_line":"                                            conf,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_7cf26a07","line":350,"updated":"2015-02-16 21:01:16.000000000","message":"Rather than having this bit of logic in nova, why don\u0027t we just define that the \"VIF_DETAILS_VHOSTUSER_DIR\" is in fact the full socket path, rather than just the socket directory. That way Nova doesn\u0027t have to care about socket name at all - it can be 100% under neutron control","commit_id":"98129f95ba7f7640f307523d0d75afd17eb91b8e"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"6e599c281b1666360d0746f94dd8e7b5da28813e","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        if ovs_plug:"},{"line_number":348,"context_line":"            sock_name \u003d self.get_vif_devname_with_prefix(vif, \"usv\")"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            sock_name \u003d vif[\"id\"]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        designer.set_vif_host_backend_vhostuser_config("},{"line_number":353,"context_line":"                                            conf,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_81a96026","line":350,"in_reply_to":"da86d52c_7cf26a07","updated":"2015-02-17 13:54:45.000000000","message":"Done","commit_id":"98129f95ba7f7640f307523d0d75afd17eb91b8e"}]}
