)]}'
{"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fe9ea8d0c18042640f490bc3daae4f2f454679f6","unresolved":false,"context_lines":[{"line_number":325,"context_line":"    def get_vif_ports(self):"},{"line_number":326,"context_line":"        edge_ports \u003d []"},{"line_number":327,"context_line":"        port_info \u003d self.db_list("},{"line_number":328,"context_line":"            \u0027Interface\u0027, columns\u003d[\u0027name\u0027, \u0027external_ids\u0027, \u0027ofport\u0027])"},{"line_number":329,"context_line":"        by_name \u003d {x[\u0027name\u0027]: x for x in port_info}"},{"line_number":330,"context_line":"        for name in by_name:"},{"line_number":331,"context_line":"            external_ids \u003d by_name[name][\u0027external_ids\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_7174e9cd","line":328,"updated":"2015-07-09 21:50:22.000000000","message":"Ah, this query doesn\u0027t restrict to just this bridge, whereas self.get_port_name_list() does. Also, get_port_name_list() also removes interfaces with the same name as the bridge.","commit_id":"52859081fed4dcee2036588ae410aa656df1d4a6"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9eed10018d7cf416b61ecb62918bc9e0ce4a24dd","unresolved":false,"context_lines":[{"line_number":325,"context_line":"    def get_vif_ports(self):"},{"line_number":326,"context_line":"        edge_ports \u003d []"},{"line_number":327,"context_line":"        port_info \u003d self.db_list("},{"line_number":328,"context_line":"            \u0027Interface\u0027, columns\u003d[\u0027name\u0027, \u0027external_ids\u0027, \u0027ofport\u0027])"},{"line_number":329,"context_line":"        by_name \u003d {x[\u0027name\u0027]: x for x in port_info}"},{"line_number":330,"context_line":"        for name in by_name:"},{"line_number":331,"context_line":"            external_ids \u003d by_name[name][\u0027external_ids\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_ac0f7ade","line":328,"in_reply_to":"ba3cc151_7174e9cd","updated":"2015-07-09 22:01:35.000000000","message":"afaik, the right and safe way to match interface \u003c\u003d\u003e port is to use port \"interfaces\" attribute which lists its interface uuids","commit_id":"52859081fed4dcee2036588ae410aa656df1d4a6"},{"author":{"_account_id":360,"name":"Dan Prince","email":"dprince@redhat.com","username":"dan-prince"},"change_message_id":"9778351e5d3d682a7a6961ac46970183a3a35842","unresolved":false,"context_lines":[{"line_number":325,"context_line":"    def get_vif_ports(self):"},{"line_number":326,"context_line":"        edge_ports \u003d []"},{"line_number":327,"context_line":"        port_info \u003d self.db_list("},{"line_number":328,"context_line":"            \u0027Interface\u0027, columns\u003d[\u0027name\u0027, \u0027external_ids\u0027, \u0027ofport\u0027])"},{"line_number":329,"context_line":"        by_name \u003d {x[\u0027name\u0027]: x for x in port_info}"},{"line_number":330,"context_line":"        for name in by_name:"},{"line_number":331,"context_line":"            external_ids \u003d by_name[name][\u0027external_ids\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_c6a17648","line":328,"in_reply_to":"ba3cc151_ac0f7ade","updated":"2015-07-10 00:34:09.000000000","message":"Exactly. I saw the same pattern in the OVS DB...","commit_id":"52859081fed4dcee2036588ae410aa656df1d4a6"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"147b2d17382a6e0ee911fad112dc4b1e8c87cac8","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            \u0027Interface\u0027, columns\u003d[\u0027name\u0027, \u0027external_ids\u0027, \u0027ofport\u0027])"},{"line_number":330,"context_line":"        by_name \u003d {x[\u0027name\u0027]: x for x in port_info}"},{"line_number":331,"context_line":"        for name in port_names:"},{"line_number":332,"context_line":"            if not by_name.get(name):"},{"line_number":333,"context_line":"                #NOTE(dprince): some ports (like bonds) won\u0027t have all"},{"line_number":334,"context_line":"                # these attributes so we skip them entirely"},{"line_number":335,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_c6494fb9","line":332,"updated":"2015-07-10 19:58:49.000000000","message":"This should work. If we really wanted to make this efficient in the future, we could start adding a \u0027bridge-id\u0027 external id when creating ports, then just do a db_find(\u0027Interface\u0027, (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027bridge-id\u0027: self.br_name}), ..., etc.","commit_id":"dfbe804994a576994768c95720b4f0ba53e313d7"}]}
