)]}'
{"nova/virt/libvirt/vif.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"4a027c75a0b91295a3b7a1bb2e2638ee7203f43d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def get_br_name(self, iface_id):"},{"line_number":162,"context_line":"        return (\"qbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def get_trunk_br_name(self, iface_id):"},{"line_number":165,"context_line":"        return (\"tbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def get_veth_pair_names(self, iface_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_3bab30d8","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":25},"updated":"2016-05-30 13:50:29.000000000","message":"It would be more flexible if we did not have ovs bridge names hardcoded in the vif driver. Instead we could pass in the bridge name from neutron like enabled here:\n\nhttps://review.openstack.org/260700\n\nFor example:\n\n vif_details \u003d {\u0027bridge_name\u0027: \u0027tbr...\u0027, ...}","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"6d21b45d4c1e5974ad894373949c791de59ff653","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def get_br_name(self, iface_id):"},{"line_number":162,"context_line":"        return (\"qbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def get_trunk_br_name(self, iface_id):"},{"line_number":165,"context_line":"        return (\"tbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def get_veth_pair_names(self, iface_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_f0ab7c1c","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":25},"in_reply_to":"9abb7d3a_0a716fa8","updated":"2016-06-10 19:34:43.000000000","message":"It\u0027s probably a simple change on the neutron side to expose bridge_name. You never know what you might stumble over in the future (good and bad), having some flexibility here would be nice. Maybe we should avoid hard-coding a bridge name.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":16800,"name":"Rawlin Peters","email":"rawlin.peters@hpe.com","username":"rawlin"},"change_message_id":"d3ece4d09201c5ef24b15a93aeaffe637ae2c98b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def get_br_name(self, iface_id):"},{"line_number":162,"context_line":"        return (\"qbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def get_trunk_br_name(self, iface_id):"},{"line_number":165,"context_line":"        return (\"tbr\" + iface_id)[:network_model.NIC_NAME_LEN]"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def get_veth_pair_names(self, iface_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_0a716fa8","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":25},"in_reply_to":"9abb7d3a_3bab30d8","updated":"2016-05-31 18:28:44.000000000","message":"I agree that would be more flexible, but given that naming schemes don\u0027t typically change much, I don\u0027t think it\u0027s all that bad to hardcode.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"4a027c75a0b91295a3b7a1bb2e2638ee7203f43d","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                (\"qvo%s\" % iface_id)[:network_model.NIC_NAME_LEN])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def get_ovs_patch_pair_names(self, iface_id):"},{"line_number":172,"context_line":"        return (\"patch-tbr-int-%s\" % iface_id,"},{"line_number":173,"context_line":"                \"patch-int-tbr-%s\" % iface_id)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def get_firewall_required(self, vif):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_dbc78410","line":172,"range":{"start_line":172,"start_character":17,"end_line":172,"end_character":33},"updated":"2016-05-30 13:50:29.000000000","message":"Good idea to have longer and better names if the kernel length constraint does not apply.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"4a027c75a0b91295a3b7a1bb2e2638ee7203f43d","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        return self.get_config_bridge(instance, newvif, image_meta,"},{"line_number":219,"context_line":"                                      inst_type, virt_type, host)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _get_config_ovs_trunk(self, instance, vif, image_meta,"},{"line_number":222,"context_line":"                              inst_type, virt_type, host):"},{"line_number":223,"context_line":"        newvif \u003d copy.deepcopy(vif)"},{"line_number":224,"context_line":"        newvif[\u0027network\u0027][\u0027bridge\u0027] \u003d self.get_trunk_br_name(vif[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_fb44081c","line":221,"range":{"start_line":221,"start_character":8,"end_line":221,"end_character":29},"updated":"2016-05-30 13:50:29.000000000","message":"If the bridge-name-to-plug was passed in we could have a single get_config_ovs_bridge(), couldn\u0027t we?","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":16800,"name":"Rawlin Peters","email":"rawlin.peters@hpe.com","username":"rawlin"},"change_message_id":"d3ece4d09201c5ef24b15a93aeaffe637ae2c98b","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        return self.get_config_bridge(instance, newvif, image_meta,"},{"line_number":219,"context_line":"                                      inst_type, virt_type, host)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _get_config_ovs_trunk(self, instance, vif, image_meta,"},{"line_number":222,"context_line":"                              inst_type, virt_type, host):"},{"line_number":223,"context_line":"        newvif \u003d copy.deepcopy(vif)"},{"line_number":224,"context_line":"        newvif[\u0027network\u0027][\u0027bridge\u0027] \u003d self.get_trunk_br_name(vif[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_8f2a918e","line":221,"range":{"start_line":221,"start_character":8,"end_line":221,"end_character":29},"in_reply_to":"9abb7d3a_fb44081c","updated":"2016-05-31 18:28:44.000000000","message":"We could, but we\u0027d have to pass two parameters in the vif details:\n1) the bridge to attach the tap device to (which would be used in get_config_*)\n2) the bridge to connect the created linux bridge (for ovs_hybrid) or OVS bridge (for ovs_trunk) to (which would be used in plug_*)","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"4a027c75a0b91295a3b7a1bb2e2638ee7203f43d","unresolved":false,"context_lines":[{"line_number":496,"context_line":"        br_name \u003d self.get_trunk_br_name(iface_id)"},{"line_number":497,"context_line":"        linux_net.create_ovs_bridge(br_name)"},{"line_number":498,"context_line":"        p1_name, p2_name \u003d self.get_ovs_patch_pair_names(iface_id)"},{"line_number":499,"context_line":"        linux_net.create_ovs_patch_port_pair(br_name,"},{"line_number":500,"context_line":"                                             self.get_bridge_name(vif),"},{"line_number":501,"context_line":"                                             p1_name, p2_name, iface_id,"},{"line_number":502,"context_line":"                                             vif[\u0027address\u0027], instance.uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_1bde2c3f","line":499,"range":{"start_line":499,"start_character":18,"end_line":499,"end_character":44},"updated":"2016-05-30 13:50:29.000000000","message":"It is debated currently (https://review.openstack.org/318317) if the trunk patch should be created by vif driver or the neutron agent. But you have probably seen that already.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":16800,"name":"Rawlin Peters","email":"rawlin.peters@hpe.com","username":"rawlin"},"change_message_id":"d3ece4d09201c5ef24b15a93aeaffe637ae2c98b","unresolved":false,"context_lines":[{"line_number":496,"context_line":"        br_name \u003d self.get_trunk_br_name(iface_id)"},{"line_number":497,"context_line":"        linux_net.create_ovs_bridge(br_name)"},{"line_number":498,"context_line":"        p1_name, p2_name \u003d self.get_ovs_patch_pair_names(iface_id)"},{"line_number":499,"context_line":"        linux_net.create_ovs_patch_port_pair(br_name,"},{"line_number":500,"context_line":"                                             self.get_bridge_name(vif),"},{"line_number":501,"context_line":"                                             p1_name, p2_name, iface_id,"},{"line_number":502,"context_line":"                                             vif[\u0027address\u0027], instance.uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_8a50bfd5","line":499,"range":{"start_line":499,"start_character":18,"end_line":499,"end_character":44},"in_reply_to":"9abb7d3a_1bde2c3f","updated":"2016-05-31 18:28:44.000000000","message":"I\u0027ve been trying to keep up with the current discussion. These patches (or more likely the mirrored patches in os-vif) can be modified to reflect whatever is agreed upon.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"inactive contributor"},"change_message_id":"4a027c75a0b91295a3b7a1bb2e2638ee7203f43d","unresolved":false,"context_lines":[{"line_number":823,"context_line":"        int_br_name \u003d self.get_bridge_name(vif)"},{"line_number":824,"context_line":"        p1_name, p2_name \u003d self.get_ovs_patch_pair_names(vif[\u0027id\u0027])"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        linux_net.delete_ovs_vif_port(trunk_br_name, p1_name, False)"},{"line_number":827,"context_line":"        linux_net.delete_ovs_vif_port(int_br_name, p2_name, False)"},{"line_number":828,"context_line":"        linux_net.delete_ovs_bridge(trunk_br_name)"},{"line_number":829,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_bbbf205f","line":826,"range":{"start_line":826,"start_character":18,"end_line":826,"end_character":37},"updated":"2016-05-30 13:50:29.000000000","message":"It is also debated who should delete.","commit_id":"70fc70fd9d9739d1d128ec6808fd856980c0971a"}]}
