)]}'
{"neutron/agent/linux/ovs_lib.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"86db5eb13418448e7ae762ed62d062148a8f2cb3","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            # Tolerate ports which might not have an ofport as they are not"},{"line_number":378,"context_line":"            # ready yet"},{"line_number":379,"context_line":"            try:"},{"line_number":380,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":381,"context_line":"            except ValueError:"},{"line_number":382,"context_line":"                LOG.warn(_(\"ofport for vif:%s is not a valid integer. \""},{"line_number":383,"context_line":"                           \"The port has not yet been configured by OVS\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FZ6Q%3D","line":380,"updated":"2014-01-14 03:39:08.000000000","message":"I think the ofport here will also be -1?","commit_id":"72b86af75de42b4e7b055192ee2692b622e43224"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1eecb954d32242a65ac9bb0c593dfbd1b986d503","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            # Tolerate ports which might not have an ofport as they are not"},{"line_number":378,"context_line":"            # ready yet"},{"line_number":379,"context_line":"            try:"},{"line_number":380,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":381,"context_line":"            except ValueError:"},{"line_number":382,"context_line":"                LOG.warn(_(\"ofport for vif:%s is not a valid integer. \""},{"line_number":383,"context_line":"                           \"The port has not yet been configured by OVS\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FYd8%3D","line":380,"in_reply_to":"AAAAUH%2F%2FZ6Q%3D","updated":"2014-01-14 11:48:17.000000000","message":"ofport -1 means an error condition and should be correctly matched by the regex, which has a prepending dash.\n\nOr are you talking about something else?","commit_id":"72b86af75de42b4e7b055192ee2692b622e43224"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"c0adaef413fa9cda232fb8d27f94abcf7c071b83","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            external_ids \u003d dict(row[1][1])"},{"line_number":348,"context_line":"            # Do not consider VIFs which aren\u0027t yet ready (ofport \u003d [])"},{"line_number":349,"context_line":"            ofport \u003d row[2]"},{"line_number":350,"context_line":"            if ofport:"},{"line_number":351,"context_line":"                if (\"iface-id\" in external_ids and"},{"line_number":352,"context_line":"                    \"attached-mac\" in external_ids):"},{"line_number":353,"context_line":"                    edge_ports.add(external_ids[\u0027iface-id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BbfI%3D","line":350,"updated":"2014-01-26 21:37:56.000000000","message":"if ofport !\u003d [\"set\",[]]:\n\nhttp://logs.openstack.org/38/65838/4/check/check-tempest-dsvm-neutron-isolated/d108e4a/logs/screen-q-agt.txt.gz?#_2014-01-19_20_32_35_437","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1e27bbb7fae9ef2c7de777455cbe3e5d9e40ae1e","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            external_ids \u003d dict(row[1][1])"},{"line_number":348,"context_line":"            # Do not consider VIFs which aren\u0027t yet ready (ofport \u003d [])"},{"line_number":349,"context_line":"            ofport \u003d row[2]"},{"line_number":350,"context_line":"            if ofport:"},{"line_number":351,"context_line":"                if (\"iface-id\" in external_ids and"},{"line_number":352,"context_line":"                    \"attached-mac\" in external_ids):"},{"line_number":353,"context_line":"                    edge_ports.add(external_ids[\u0027iface-id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F97Rg%3D","line":350,"in_reply_to":"AAAAUH%2F%2BbfI%3D","updated":"2014-02-01 00:22:54.000000000","message":"ah I think this is what causes port.ofport\u003dNone to end up in treat_devices_added.\n\nWe\u0027ll see","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"664801b5a1251591fe384280e0586bb463462ddf","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                        external_ids[\"xs-vif-uuid\"])"},{"line_number":373,"context_line":"                    edge_ports.add(iface_id)"},{"line_number":374,"context_line":"            else:"},{"line_number":375,"context_line":"                LOG.warn(_(\"Found not-yet ready openvswitch port:%s\"), row)"},{"line_number":376,"context_line":"        return edge_ports"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def get_vif_port_by_id(self, port_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pU0%3D","line":375,"updated":"2014-02-05 11:42:59.000000000","message":"nit: :\u003cspace\u003e","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8eeab93b1e973a6f5795552654612ac0449e33d8","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                        external_ids[\"xs-vif-uuid\"])"},{"line_number":373,"context_line":"                    edge_ports.add(iface_id)"},{"line_number":374,"context_line":"            else:"},{"line_number":375,"context_line":"                LOG.warn(_(\"Found not-yet ready openvswitch port:%s\"), row)"},{"line_number":376,"context_line":"        return edge_ports"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def get_vif_port_by_id(self, port_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pCs%3D","line":375,"in_reply_to":"AAAAUH%2F9pU0%3D","updated":"2014-02-05 12:27:12.000000000","message":"I don\u0027t know why I used the dash\nI must have been drunk","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"664801b5a1251591fe384280e0586bb463462ddf","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            try:"},{"line_number":393,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":394,"context_line":"            except ValueError:"},{"line_number":395,"context_line":"                LOG.warn(_(\"ofport for vif:%s is not a valid integer. \""},{"line_number":396,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":397,"context_line":"                         vif_id)"},{"line_number":398,"context_line":"                ofport \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pUw%3D","line":395,"updated":"2014-02-05 11:42:59.000000000","message":"ditto","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8eeab93b1e973a6f5795552654612ac0449e33d8","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            try:"},{"line_number":393,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":394,"context_line":"            except ValueError:"},{"line_number":395,"context_line":"                LOG.warn(_(\"ofport for vif:%s is not a valid integer. \""},{"line_number":396,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":397,"context_line":"                         vif_id)"},{"line_number":398,"context_line":"                ofport \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pCQ%3D","line":395,"in_reply_to":"AAAAUH%2F9pUw%3D","updated":"2014-02-05 12:27:12.000000000","message":"where?","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"779a4c6d3075d5164336a87284a2b74f44a35600","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                continue"},{"line_number":359,"context_line":"            external_ids \u003d dict(row[1][1])"},{"line_number":360,"context_line":"            # Do not consider VIFs which aren\u0027t yet ready"},{"line_number":361,"context_line":"            # This can happen when ofport values are either [] or [\"set\", []]"},{"line_number":362,"context_line":"            ofport \u003d row[2]"},{"line_number":363,"context_line":"            if ofport and ofport !\u003d [\"set\", []]:"},{"line_number":364,"context_line":"                if (\"iface-id\" in external_ids and"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F4J0%3D","line":361,"updated":"2014-02-10 08:28:01.000000000","message":"If ofport is always an integer after a VIF becomes readly, how about checking whether ofport is an integer as get_vif_port_by_id does? Using the same way for checking ofport is ready is more consistent and comparing with [\"set\", []] looks too implementation specific.","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"20e330bb4a5daa5fdc3ad0d1c8ebdc2b7a04be83","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                continue"},{"line_number":359,"context_line":"            external_ids \u003d dict(row[1][1])"},{"line_number":360,"context_line":"            # Do not consider VIFs which aren\u0027t yet ready"},{"line_number":361,"context_line":"            # This can happen when ofport values are either [] or [\"set\", []]"},{"line_number":362,"context_line":"            ofport \u003d row[2]"},{"line_number":363,"context_line":"            if ofport and ofport !\u003d [\"set\", []]:"},{"line_number":364,"context_line":"                if (\"iface-id\" in external_ids and"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2Fvyk%3D","line":361,"in_reply_to":"AAAAUX%2F%2F2vQ%3D","updated":"2014-02-11 03:21:16.000000000","message":"ofport: optional integer\n              OpenFlow  port  number  for  this  interface.   Unlike most columns, this column’s value should be set only by Open vSwitch itself.  Other\n              clients should set this column to an empty set (the default) when creating an Interface.\n\n              Open vSwitch populates this column when the port number becomes known.  If the interface is successfully added, ofport will be  set  to  a\n              number  between  1  and  65535  (generally  either  in the range 1 to 65279, inclusive, or 65534, the port number for the OpenFlow ‘‘local\n              port’’).  If the interface cannot be added then Open vSwitch sets this column to -1.\n\n              When ofport_request is not set, Open vSwitch picks an appropriate value for this column and then tries to keep the value  constant  across\n              restarts.\n\n\nI agree with amotoki, the int way is more friendly.","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f1c2e74282ccc5410557ba31e6597819e2406ca2","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                continue"},{"line_number":359,"context_line":"            external_ids \u003d dict(row[1][1])"},{"line_number":360,"context_line":"            # Do not consider VIFs which aren\u0027t yet ready"},{"line_number":361,"context_line":"            # This can happen when ofport values are either [] or [\"set\", []]"},{"line_number":362,"context_line":"            ofport \u003d row[2]"},{"line_number":363,"context_line":"            if ofport and ofport !\u003d [\"set\", []]:"},{"line_number":364,"context_line":"                if (\"iface-id\" in external_ids and"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F2vQ%3D","line":361,"in_reply_to":"AAAAUX%2F%2F4J0%3D","updated":"2014-02-10 11:49:50.000000000","message":"It sounds awkward indeed, but this is what comes out from  reading json output.\n\nI will just make sure that ofport \u003d 0 is not a valid value (I recall the first port gets ofport \u003d1), and then apply your suggested change","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6d1545ad79f4542b4e1914d68fba9b4a23436134","unresolved":false,"context_lines":[{"line_number":411,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":412,"context_line":"                         vif_id)"},{"line_number":413,"context_line":"                ofport \u003d None"},{"line_number":414,"context_line":"            return VifPort(port_name, ofport, vif_id, vif_mac, self)"},{"line_number":415,"context_line":"        except Exception as e:"},{"line_number":416,"context_line":"            LOG.info(_(\"Unable to parse regex results. Exception: %s\"), e)"},{"line_number":417,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FdQU%3D","line":414,"updated":"2014-02-13 03:06:46.000000000","message":"can we return None if ofport \u003d\u003d -1 or ofport\u003d\u003dNone?","commit_id":"946ecbb53b02540c7d9aa277adcf98f0222d50a4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1f7444fe15a9154e534c077d89aca2913bfbbeaf","unresolved":false,"context_lines":[{"line_number":411,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":412,"context_line":"                         vif_id)"},{"line_number":413,"context_line":"                ofport \u003d None"},{"line_number":414,"context_line":"            return VifPort(port_name, ofport, vif_id, vif_mac, self)"},{"line_number":415,"context_line":"        except Exception as e:"},{"line_number":416,"context_line":"            LOG.info(_(\"Unable to parse regex results. Exception: %s\"), e)"},{"line_number":417,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FbuM%3D","line":414,"in_reply_to":"AAAAUX%2F%2FdQU%3D","updated":"2014-02-13 08:47:04.000000000","message":"I tried to avoid changing the interface of the method as much as possible in order to avoid potential issues with other plugins using ovs_lib.\nThis is mostly because I am a lazy coward.\n\nThis is however doable, but I would consider this as a follow up improvement.\nIn the meanwhile I will add a TODO statement","commit_id":"946ecbb53b02540c7d9aa277adcf98f0222d50a4"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"81c8be9af0afa9e5c54e27328cdf1755bab74046","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                        edge_ports.add(iface_id)"},{"line_number":387,"context_line":"                else:"},{"line_number":388,"context_line":"                    LOG.warn(_(\"Found failed openvswitch port: %s\"), row)"},{"line_number":389,"context_line":"            except (ValueError, TypeError):"},{"line_number":390,"context_line":"                LOG.warn(_(\"Found not yet ready openvswitch port: %s\"), row)"},{"line_number":391,"context_line":"        return edge_ports"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FU%2BQ%3D","line":389,"updated":"2014-02-13 22:56:14.000000000","message":"Are these exceptions only going to be raised from the statement on line 374? If so, consider limiting the scope of the try block accordingly.","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"de9384ce016a8da4834a6d73f898b430b7b9ab14","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                        edge_ports.add(iface_id)"},{"line_number":387,"context_line":"                else:"},{"line_number":388,"context_line":"                    LOG.warn(_(\"Found failed openvswitch port: %s\"), row)"},{"line_number":389,"context_line":"            except (ValueError, TypeError):"},{"line_number":390,"context_line":"                LOG.warn(_(\"Found not yet ready openvswitch port: %s\"), row)"},{"line_number":391,"context_line":"        return edge_ports"},{"line_number":392,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FUyE%3D","line":389,"in_reply_to":"AAAAUX%2F%2FU%2BQ%3D","updated":"2014-02-13 23:20:55.000000000","message":"Done","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"55ee0e16b3b53236fa24a10292415f030d615528","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            # available."},{"line_number":412,"context_line":"            try:"},{"line_number":413,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":414,"context_line":"            except ValueError:"},{"line_number":415,"context_line":"                LOG.warn(_(\"ofport for vif: %s is not a valid integer. \""},{"line_number":416,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":417,"context_line":"                         vif_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FT0A%3D","line":414,"updated":"2014-02-14 02:43:15.000000000","message":"Line 375 has TypeError, why do we lost it here?","commit_id":"2702baed390d094b0eac07d0ae167ed236868d00"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8d98311d97596bad0cb57709e93b7e804a7d7947","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            # available."},{"line_number":412,"context_line":"            try:"},{"line_number":413,"context_line":"                ofport \u003d int(match.group(\u0027ofport\u0027))"},{"line_number":414,"context_line":"            except ValueError:"},{"line_number":415,"context_line":"                LOG.warn(_(\"ofport for vif: %s is not a valid integer. \""},{"line_number":416,"context_line":"                           \"The port has not yet been configured by OVS\"),"},{"line_number":417,"context_line":"                         vif_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FKvI%3D","line":414,"in_reply_to":"AAAAUX%2F%2FT0A%3D","updated":"2014-02-15 09:18:34.000000000","message":"We won\u0027t need it here because thanks to the change in get_vif_port_set the agent won\u0027t call get_vif_by_id is ofport is None, which would be returned if the regex evaluation fail.\n\nIt is true that in order to be complete we should add it, but since this patch is already in the gate queue and this is a non critical change, I would rather push it as a separate patch. This patch indeed might help us reduce the occurency of bug 1253896.","commit_id":"2702baed390d094b0eac07d0ae167ed236868d00"}],"neutron/agent/linux/ovsdb_monitor.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"81c8be9af0afa9e5c54e27328cdf1755bab74046","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def __init__(self, root_helper\u003dNone, respawn_interval\u003dNone):"},{"line_number":73,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":74,"context_line":"            \u0027Interface\u0027,"},{"line_number":75,"context_line":"            columns\u003d[\u0027name\u0027, \u0027ofport\u0027],"},{"line_number":76,"context_line":"            format\u003d\u0027json\u0027,"},{"line_number":77,"context_line":"            root_helper\u003droot_helper,"},{"line_number":78,"context_line":"            respawn_interval\u003drespawn_interval,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FU9I%3D","line":75,"updated":"2014-02-13 22:56:14.000000000","message":"Unrelated, but I\u0027m not sure I realized that the monitor only provided updates for columns that were selected.  I think I believed that all changes would be monitored and column selection just affected what was displayed.  If this is not the case (and the docs seem to indicate that it is not), are there any other columns that should appear?","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"de9384ce016a8da4834a6d73f898b430b7b9ab14","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def __init__(self, root_helper\u003dNone, respawn_interval\u003dNone):"},{"line_number":73,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":74,"context_line":"            \u0027Interface\u0027,"},{"line_number":75,"context_line":"            columns\u003d[\u0027name\u0027, \u0027ofport\u0027],"},{"line_number":76,"context_line":"            format\u003d\u0027json\u0027,"},{"line_number":77,"context_line":"            root_helper\u003droot_helper,"},{"line_number":78,"context_line":"            respawn_interval\u003drespawn_interval,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FUx4%3D","line":75,"in_reply_to":"AAAAUX%2F%2FU9I%3D","updated":"2014-02-13 23:20:55.000000000","message":"I think those are all we need. Especially for the interface table there\u0027s nothing else which could trigger an event.","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"99d9518e31ec5f0bbad4b3ca6eaef2a601d54423","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def __init__(self, root_helper\u003dNone, respawn_interval\u003dNone):"},{"line_number":73,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":74,"context_line":"            \u0027Interface\u0027,"},{"line_number":75,"context_line":"            columns\u003d[\u0027name\u0027, \u0027ofport\u0027],"},{"line_number":76,"context_line":"            format\u003d\u0027json\u0027,"},{"line_number":77,"context_line":"            root_helper\u003droot_helper,"},{"line_number":78,"context_line":"            respawn_interval\u003drespawn_interval,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FTyw%3D","line":75,"in_reply_to":"AAAAUX%2F%2FUx4%3D","updated":"2014-02-14 02:43:55.000000000","message":"monitor [server] [database] table [column[,column]...]...\n              Connects to server and monitors the contents of table  in  data?\n              base.   By  default,  the initial contents of table are printed,\n              followed by each change as it occurs.  If at least one column is\n              specified, only those columns are monitored.  The following col?\n              umn names have special meanings:","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"}],"neutron/plugins/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"9b34fca82318f88a8912d25b14e3ec6e5a5e899e","unresolved":false,"context_lines":[{"line_number":930,"context_line":"                # There is no need to put the port DOWN in the plugin as"},{"line_number":931,"context_line":"                # it never went up in the first place"},{"line_number":932,"context_line":"                LOG.info(_(\"Port %s was not found on the integration bridge \""},{"line_number":933,"context_line":"                           \"and will therefore not be processed\"), device)"},{"line_number":934,"context_line":"            try:"},{"line_number":935,"context_line":"                details \u003d self.plugin_rpc.get_device_details(self.context,"},{"line_number":936,"context_line":"                                                             device,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FY3Q%3D","line":933,"updated":"2014-01-14 10:23:47.000000000","message":"If port disappeared, should we still treat it? Continue to the next device?","commit_id":"72b86af75de42b4e7b055192ee2692b622e43224"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1eecb954d32242a65ac9bb0c593dfbd1b986d503","unresolved":false,"context_lines":[{"line_number":930,"context_line":"                # There is no need to put the port DOWN in the plugin as"},{"line_number":931,"context_line":"                # it never went up in the first place"},{"line_number":932,"context_line":"                LOG.info(_(\"Port %s was not found on the integration bridge \""},{"line_number":933,"context_line":"                           \"and will therefore not be processed\"), device)"},{"line_number":934,"context_line":"            try:"},{"line_number":935,"context_line":"                details \u003d self.plugin_rpc.get_device_details(self.context,"},{"line_number":936,"context_line":"                                                             device,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FYd4%3D","line":933,"in_reply_to":"AAAAUH%2F%2FY3Q%3D","updated":"2014-01-14 11:48:17.000000000","message":"ah good point I forgot to add the continue statement :)","commit_id":"72b86af75de42b4e7b055192ee2692b622e43224"},{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"72914f5d2375c72c77fc356d526b9aea631c1fd6","unresolved":false,"context_lines":[{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":964,"context_line":"                    self.port_dead(port)"},{"line_number":965,"context_line":"        return resync"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FYKw%3D","line":963,"updated":"2014-01-14 13:16:48.000000000","message":"\u0027if port\u0027 useful? \u0027port\u0027 variable was already tested at line 928\n\nNormaly \u0027port.ofport\u0027 is already an integer (line 380 from ovs_lib.py)","commit_id":"c8ea350f997b570dbeb3b4cfa7d44d2301497632"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b131ae96cf0ff568060111399200585a1179f382","unresolved":false,"context_lines":[{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":964,"context_line":"                    self.port_dead(port)"},{"line_number":965,"context_line":"        return resync"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FRvM%3D","line":963,"in_reply_to":"AAAAUH%2F%2FYKw%3D","updated":"2014-01-15 15:24:45.000000000","message":"Good point I should have update the int conversion here as I did in the previous patch set.","commit_id":"c8ea350f997b570dbeb3b4cfa7d44d2301497632"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"a53b7e67102d6d615300762cda610e7e3f1b815c","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        lvm.vif_ports[port.vif_id] \u003d port"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"        self.int_br.set_db_attribute(\"Port\", port.port_name, \"tag\","},{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Buvw%3D","line":620,"updated":"2014-01-22 18:13:35.000000000","message":"I know it is not part of this patch, but a failure here like a timeout is not handled, eg http://logs.openstack.org/38/65838/4/check/check-tempest-dsvm-neutron-isolated/d108e4a/logs/screen-q-agt.txt.gz?#_2014-01-19_20_49_08_696","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1e27bbb7fae9ef2c7de777455cbe3e5d9e40ae1e","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        lvm.vif_ports[port.vif_id] \u003d port"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"        self.int_br.set_db_attribute(\"Port\", port.port_name, \"tag\","},{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F97TI%3D","line":620,"in_reply_to":"AAAAUH%2F%2Buvw%3D","updated":"2014-02-01 00:22:54.000000000","message":"I have already raised this issue: http://lists.openstack.org/pipermail/openstack-dev/2013-November/020315.html","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"fe19e9d151b8b2591a32df03588ac3fc7f25c121","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"},{"line_number":624,"context_line":"            self.int_br.delete_flows(in_port\u003dport.ofport)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def port_unbound(self, vif_id, net_uuid\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2B68g%3D","line":623,"updated":"2014-01-20 18:30:36.000000000","message":"I saw these in the logs:\n \u0027ovs-ofctl\u0027, \u0027del-flows\u0027, \u0027br-int\u0027, \u0027in_port\u003dNone\u0027\nso I guess it\u0027s best to check that port.ofport is not None too","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"3e477391cf562d9ed9ea9a4e9fcd9dfdc1805b27","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"},{"line_number":624,"context_line":"            self.int_br.delete_flows(in_port\u003dport.ofport)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def port_unbound(self, vif_id, net_uuid\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BwHQ%3D","line":623,"in_reply_to":"AAAAUH%2F%2B68g%3D","updated":"2014-01-22 14:30:46.000000000","message":"makes sense - even if probably there\u0027s something else to look at as the in_port should never be none when we get here.","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"c0adaef413fa9cda232fb8d27f94abcf7c071b83","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"},{"line_number":624,"context_line":"            self.int_br.delete_flows(in_port\u003dport.ofport)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def port_unbound(self, vif_id, net_uuid\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Bbf8%3D","line":623,"in_reply_to":"AAAAUH%2F%2Bvh0%3D","updated":"2014-01-26 21:37:56.000000000","message":"Scratch that. Yeah with this patch treat_devices_added() should not have called here with a port without an ofport.","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"be162aece8f3cf0e9a45f80589c899a7ea6df608","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                                     str(lvm.vlan))"},{"line_number":621,"context_line":"        # port.ofport can be a value between 1 and 65279 if the openvswitch"},{"line_number":622,"context_line":"        # port is ready, or -1 if the port cannot be created"},{"line_number":623,"context_line":"        if port.ofport !\u003d -1:"},{"line_number":624,"context_line":"            self.int_br.delete_flows(in_port\u003dport.ofport)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def port_unbound(self, vif_id, net_uuid\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Bvh0%3D","line":623,"in_reply_to":"AAAAUH%2F%2BwHQ%3D","updated":"2014-01-22 16:05:17.000000000","message":"I think there is a code path here: treat_devices_added() calls self.int_br.get_vif_port_by_id() which sometimes returns a VifPort with ofport\u003d\u003dNone. Then treat_devices_added() passes it to treat_vif_port() which calls here.\n\nThere are 16 of these in this log: http://logs.openstack.org/38/65838/4/check/check-tempest-dsvm-neutron-isolated/d108e4a/logs/screen-q-agt.txt.gz?#_2014-01-19_20_49_08_696","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"be162aece8f3cf0e9a45f80589c899a7ea6df608","unresolved":false,"context_lines":[{"line_number":957,"context_line":"                                                 device,"},{"line_number":958,"context_line":"                                                 self.agent_id,"},{"line_number":959,"context_line":"                                                 cfg.CONF.host)"},{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and port.ofport !\u003d -1):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BvxA%3D","line":960,"updated":"2014-01-22 16:05:17.000000000","message":"configuted -\u003e configured. Also do these messages really need to be at INFO? I don\u0027t think operators are interested or would understand them anyway as they have little context.","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1e27bbb7fae9ef2c7de777455cbe3e5d9e40ae1e","unresolved":false,"context_lines":[{"line_number":957,"context_line":"                                                 device,"},{"line_number":958,"context_line":"                                                 self.agent_id,"},{"line_number":959,"context_line":"                                                 cfg.CONF.host)"},{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and port.ofport !\u003d -1):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F97S4%3D","line":960,"in_reply_to":"AAAAUH%2F%2BvxA%3D","updated":"2014-02-01 00:22:54.000000000","message":"I think the message is one of those which might be of interested to operators should they debug connectivity for an instance.\n\nI would not make a hard stance regarding log severity anyway.","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"be162aece8f3cf0e9a45f80589c899a7ea6df608","unresolved":false,"context_lines":[{"line_number":959,"context_line":"                                                 cfg.CONF.host)"},{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and port.ofport !\u003d -1):"},{"line_number":964,"context_line":"                    self.port_dead(port)"},{"line_number":965,"context_line":"        return resync"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BvwY%3D","line":962,"updated":"2014-01-22 16:05:17.000000000","message":"maybe a warning","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1e27bbb7fae9ef2c7de777455cbe3e5d9e40ae1e","unresolved":false,"context_lines":[{"line_number":959,"context_line":"                                                 cfg.CONF.host)"},{"line_number":960,"context_line":"                LOG.info(_(\"Device %s correctly configuted\"), device)"},{"line_number":961,"context_line":"            else:"},{"line_number":962,"context_line":"                LOG.info(_(\"Device %s not defined on plugin\"), device)"},{"line_number":963,"context_line":"                if (port and port.ofport !\u003d -1):"},{"line_number":964,"context_line":"                    self.port_dead(port)"},{"line_number":965,"context_line":"        return resync"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F97S0%3D","line":962,"in_reply_to":"AAAAUH%2F%2BvwY%3D","updated":"2014-02-01 00:22:54.000000000","message":"Done","commit_id":"f8a94185e5c3cf9898f68da4c4d176f14142b978"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"2b15684bae95cef2a86dfd6b0e4e95dcfd53df7e","unresolved":false,"context_lines":[{"line_number":855,"context_line":"    def treat_vif_port(self, vif_port, port_id, network_id, network_type,"},{"line_number":856,"context_line":"                       physical_network, segmentation_id, admin_state_up):"},{"line_number":857,"context_line":"        # When this function is called for a port, the port should have"},{"line_number":858,"context_line":"        # an OVS ofport configured, as only this kind of ports where"},{"line_number":859,"context_line":"        # considered for being treated. If that does not happen, it is"},{"line_number":860,"context_line":"        # a potential error condition of which operators should be aware"},{"line_number":861,"context_line":"        if not vif_port.ofport:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pFE%3D","line":858,"updated":"2014-02-05 12:26:58.000000000","message":"\"as only these ports were...\"","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bb44f563d2a6412a3a4411ece4d1880d2d6ee7c6","unresolved":false,"context_lines":[{"line_number":855,"context_line":"    def treat_vif_port(self, vif_port, port_id, network_id, network_type,"},{"line_number":856,"context_line":"                       physical_network, segmentation_id, admin_state_up):"},{"line_number":857,"context_line":"        # When this function is called for a port, the port should have"},{"line_number":858,"context_line":"        # an OVS ofport configured, as only this kind of ports where"},{"line_number":859,"context_line":"        # considered for being treated. If that does not happen, it is"},{"line_number":860,"context_line":"        # a potential error condition of which operators should be aware"},{"line_number":861,"context_line":"        if not vif_port.ofport:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9bjU%3D","line":858,"in_reply_to":"AAAAUH%2F9pFE%3D","updated":"2014-02-06 23:24:26.000000000","message":"Done","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"664801b5a1251591fe384280e0586bb463462ddf","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        # considered for being treated. If that does not happen, it is"},{"line_number":860,"context_line":"        # a potential error condition of which operators should be aware"},{"line_number":861,"context_line":"        if not vif_port.ofport:"},{"line_number":862,"context_line":"            LOG.warn(_(\"VIF port:%s has no ofport configured, and might not \""},{"line_number":863,"context_line":"                       \"be able to transmit\"), vif_port.vif_id)"},{"line_number":864,"context_line":"        if vif_port:"},{"line_number":865,"context_line":"            if admin_state_up:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pUk%3D","line":862,"updated":"2014-02-05 11:42:59.000000000","message":"ditto","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8eeab93b1e973a6f5795552654612ac0449e33d8","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        # considered for being treated. If that does not happen, it is"},{"line_number":860,"context_line":"        # a potential error condition of which operators should be aware"},{"line_number":861,"context_line":"        if not vif_port.ofport:"},{"line_number":862,"context_line":"            LOG.warn(_(\"VIF port:%s has no ofport configured, and might not \""},{"line_number":863,"context_line":"                       \"be able to transmit\"), vif_port.vif_id)"},{"line_number":864,"context_line":"        if vif_port:"},{"line_number":865,"context_line":"            if admin_state_up:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9pB8%3D","line":862,"in_reply_to":"AAAAUH%2F9pUk%3D","updated":"2014-02-05 12:27:12.000000000","message":"where do you see a missing space?","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"a8b9ad8bc2ec9db2367fd6875df9e04e2d5b03d3","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        lvm \u003d self.local_vlan_map[net_uuid]"},{"line_number":596,"context_line":"        lvm.vif_ports[port.vif_id] \u003d port"},{"line_number":597,"context_line":"        # Do not bind a port if it\u0027s already bound"},{"line_number":598,"context_line":"        cur_tag \u003d self.int_br.db_get_val(\"Port\", port.port_name, \"tag\")"},{"line_number":599,"context_line":"        if cur_tag !\u003d str(lvm.vlan):"},{"line_number":600,"context_line":"            self.int_br.set_db_attribute(\"Port\", port.port_name, \"tag\","},{"line_number":601,"context_line":"                                         str(lvm.vlan))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2F87I%3D","line":598,"updated":"2014-02-08 17:53:59.000000000","message":"I think we could also have another pb.\n\nI saw in log of failing gate (isolaed) [1], a port cannot exist and an exception is raised by the exec lib. In that case, I think we should not try to add the tag to an non existent port.\n\nI also see the case [2] where the port disappears between the get and set tag commands.\n\n[1] http://logs.openstack.org/75/66375/13/check/check-tempest-dsvm-neutron-isolated/b687d7b/logs/screen-q-agt.txt.gz#_2014-02-07_16_31_23_310\n\n[2] http://logs.openstack.org/75/66375/13/check/check-tempest-dsvm-neutron-isolated/c8cca47/logs/screen-q-agt.txt.gz?#_2014-02-07_17_37_23_928","commit_id":"e97d96ad054c456976d70101c1deb34dbd164c76"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e761f1627f479360f071b62fb76258ff4f9bda2a","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        lvm \u003d self.local_vlan_map[net_uuid]"},{"line_number":596,"context_line":"        lvm.vif_ports[port.vif_id] \u003d port"},{"line_number":597,"context_line":"        # Do not bind a port if it\u0027s already bound"},{"line_number":598,"context_line":"        cur_tag \u003d self.int_br.db_get_val(\"Port\", port.port_name, \"tag\")"},{"line_number":599,"context_line":"        if cur_tag !\u003d str(lvm.vlan):"},{"line_number":600,"context_line":"            self.int_br.set_db_attribute(\"Port\", port.port_name, \"tag\","},{"line_number":601,"context_line":"                                         str(lvm.vlan))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2F7yY%3D","line":598,"in_reply_to":"AAAAUX%2F%2F87I%3D","updated":"2014-02-09 10:20:31.000000000","message":"I think the bug1253896-like manifestation for the log reported here was not caused by the errors you reported.\n\nI think these errors should be avoided, but as they unrelated from either this patch and bug 1253896 I would say to address them separately.\n\nIt also seems unlikely that the problem you mention is being introduced by this patch.","commit_id":"e97d96ad054c456976d70101c1deb34dbd164c76"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6b35b62c026fb942b8de13793e9ff7e6fccf62f4","unresolved":false,"context_lines":[{"line_number":925,"context_line":"    def treat_devices_added_or_updated(self, devices):"},{"line_number":926,"context_line":"        resync \u003d False"},{"line_number":927,"context_line":"        for device in devices:"},{"line_number":928,"context_line":"            LOG.info(_(\"Processing port %s\"), device)"},{"line_number":929,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":930,"context_line":"            if not port:"},{"line_number":931,"context_line":"                # The port has disappeared and should not be processed"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9YFE%3D","line":928,"updated":"2014-02-07 10:56:18.000000000","message":"nit: I\u0027d prefer debug log level for this line. Reading the logging standard that were proposed https://wiki.openstack.org/wiki/LoggingStandards , info should be a unit of work. Since you added line 969 that has info level I think line 928 should be debug, otherwise we\u0027d have 2 info lines for the same unit of work.","commit_id":"e97d96ad054c456976d70101c1deb34dbd164c76"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e761f1627f479360f071b62fb76258ff4f9bda2a","unresolved":false,"context_lines":[{"line_number":925,"context_line":"    def treat_devices_added_or_updated(self, devices):"},{"line_number":926,"context_line":"        resync \u003d False"},{"line_number":927,"context_line":"        for device in devices:"},{"line_number":928,"context_line":"            LOG.info(_(\"Processing port %s\"), device)"},{"line_number":929,"context_line":"            port \u003d self.int_br.get_vif_port_by_id(device)"},{"line_number":930,"context_line":"            if not port:"},{"line_number":931,"context_line":"                # The port has disappeared and should not be processed"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2F7yQ%3D","line":928,"in_reply_to":"AAAAUH%2F9YFE%3D","updated":"2014-02-09 10:20:31.000000000","message":"Sure Rossella.\nI am bad at anything related to uniforming to any kind of standard and/or rule!","commit_id":"e97d96ad054c456976d70101c1deb34dbd164c76"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"20e330bb4a5daa5fdc3ad0d1c8ebdc2b7a04be83","unresolved":false,"context_lines":[{"line_number":937,"context_line":"            try:"},{"line_number":938,"context_line":"                # TODO(salv-orlando): Provide bulk API for retrieving"},{"line_number":939,"context_line":"                # details for all devices in one call"},{"line_number":940,"context_line":"                details \u003d self.plugin_rpc.get_device_details(self.context,"},{"line_number":941,"context_line":"                                                             device,"},{"line_number":942,"context_line":"                                                             self.agent_id)"},{"line_number":943,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2FvxE%3D","line":940,"updated":"2014-02-11 03:21:16.000000000","message":"If the ofport \u003d\u003d -1, should we still need to call server?","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"9e7d83265b89006ed7648ec20c99fd049ffc0aa4","unresolved":false,"context_lines":[{"line_number":937,"context_line":"            try:"},{"line_number":938,"context_line":"                # TODO(salv-orlando): Provide bulk API for retrieving"},{"line_number":939,"context_line":"                # details for all devices in one call"},{"line_number":940,"context_line":"                details \u003d self.plugin_rpc.get_device_details(self.context,"},{"line_number":941,"context_line":"                                                             device,"},{"line_number":942,"context_line":"                                                             self.agent_id)"},{"line_number":943,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2Fh78%3D","line":940,"in_reply_to":"AAAAUX%2F%2FvxE%3D","updated":"2014-02-12 15:22:10.000000000","message":"I pushed this optimization in a first version of the patch.\nHowever, it was causing different failures so I decided to push it out from this patch and develop it as another patch, which I haven\u0027t yet done.\n\nBut the answer is yes, we don\u0027t need to call the server for ports which are not ready or are failed. Feel free to do a patch for it if you wish","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"21b632c3100b82cbbb833e481002b100ca104bf2","unresolved":false,"context_lines":[{"line_number":969,"context_line":"                LOG.info(_(\"Configuration for device %s completed.\"), device)"},{"line_number":970,"context_line":"            else:"},{"line_number":971,"context_line":"                LOG.warn(_(\"Device %s not defined on plugin\"), device)"},{"line_number":972,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":973,"context_line":"                    self.port_dead(port)"},{"line_number":974,"context_line":"        return resync"},{"line_number":975,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F4fQ%3D","line":972,"updated":"2014-02-10 07:18:04.000000000","message":"nit: do we need to cast ofport to an integer?","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f1c2e74282ccc5410557ba31e6597819e2406ca2","unresolved":false,"context_lines":[{"line_number":969,"context_line":"                LOG.info(_(\"Configuration for device %s completed.\"), device)"},{"line_number":970,"context_line":"            else:"},{"line_number":971,"context_line":"                LOG.warn(_(\"Device %s not defined on plugin\"), device)"},{"line_number":972,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":973,"context_line":"                    self.port_dead(port)"},{"line_number":974,"context_line":"        return resync"},{"line_number":975,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F2u8%3D","line":972,"in_reply_to":"AAAAUX%2F%2F4Fo%3D","updated":"2014-02-10 11:49:50.000000000","message":"Done","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"779a4c6d3075d5164336a87284a2b74f44a35600","unresolved":false,"context_lines":[{"line_number":969,"context_line":"                LOG.info(_(\"Configuration for device %s completed.\"), device)"},{"line_number":970,"context_line":"            else:"},{"line_number":971,"context_line":"                LOG.warn(_(\"Device %s not defined on plugin\"), device)"},{"line_number":972,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":973,"context_line":"                    self.port_dead(port)"},{"line_number":974,"context_line":"        return resync"},{"line_number":975,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2F4Fo%3D","line":972,"in_reply_to":"AAAAUX%2F%2F4fQ%3D","updated":"2014-02-10 08:28:01.000000000","message":"port.ofport is already an integer here.","commit_id":"d7d60972b02c20ba790cb1e5c1f069c11422044b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"58d3193cca1a1c59f4fd97ea2b9905094a8de258","unresolved":false,"context_lines":[{"line_number":969,"context_line":"                LOG.info(_(\"Configuration for device %s completed.\"), device)"},{"line_number":970,"context_line":"            else:"},{"line_number":971,"context_line":"                LOG.warn(_(\"Device %s not defined on plugin\"), device)"},{"line_number":972,"context_line":"                if (port and int(port.ofport) !\u003d -1):"},{"line_number":973,"context_line":"                    self.port_dead(port)"},{"line_number":974,"context_line":"        return resync"},{"line_number":975,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FXUQ%3D","line":972,"updated":"2014-02-13 17:54:57.000000000","message":"port.ofport is already an integer and int() is unnecessary.","commit_id":"314f2f82ac4d386ea830b3ca6e23a811b284b515"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"81c8be9af0afa9e5c54e27328cdf1755bab74046","unresolved":false,"context_lines":[{"line_number":958,"context_line":"                # update plugin about port status"},{"line_number":959,"context_line":"                if details.get(\u0027admin_state_up\u0027):"},{"line_number":960,"context_line":"                    LOG.debug(_(\"Setting status for %s to UP\"), device)"},{"line_number":961,"context_line":"                    self.plugin_rpc.update_device_up(self.context,"},{"line_number":962,"context_line":"                                                     device,"},{"line_number":963,"context_line":"                                                     self.agent_id,"},{"line_number":964,"context_line":"                                                     cfg.CONF.host)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FU%2BM%3D","line":961,"updated":"2014-02-13 22:56:14.000000000","message":"This appears to be an unrelated formatting change - consider reverting.","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"de9384ce016a8da4834a6d73f898b430b7b9ab14","unresolved":false,"context_lines":[{"line_number":958,"context_line":"                # update plugin about port status"},{"line_number":959,"context_line":"                if details.get(\u0027admin_state_up\u0027):"},{"line_number":960,"context_line":"                    LOG.debug(_(\"Setting status for %s to UP\"), device)"},{"line_number":961,"context_line":"                    self.plugin_rpc.update_device_up(self.context,"},{"line_number":962,"context_line":"                                                     device,"},{"line_number":963,"context_line":"                                                     self.agent_id,"},{"line_number":964,"context_line":"                                                     cfg.CONF.host)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FUxw%3D","line":961,"in_reply_to":"AAAAUX%2F%2FU%2BM%3D","updated":"2014-02-13 23:20:55.000000000","message":"Done","commit_id":"75eee1b211249c7683a6490a5f6d4ad460670ae0"}],"neutron/tests/unit/openvswitch/test_ovs_lib.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"cdd4f48745363f862ad97f233499e6ca47e2c565","unresolved":false,"context_lines":[{"line_number":408,"context_line":"            ovs_row \u003d []"},{"line_number":409,"context_line":"            r[\"data\"].append(ovs_row)"},{"line_number":410,"context_line":"            for cell in row:"},{"line_number":411,"context_line":"                if (isinstance(cell, str) or"},{"line_number":412,"context_line":"                    isinstance(cell, int) or"},{"line_number":413,"context_line":"                    isinstance(cell, list)):"},{"line_number":414,"context_line":"                    ovs_row.append(cell)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9m74%3D","line":411,"updated":"2014-02-05 17:43:47.000000000","message":"if isinstance(cell, (str, int, list)):","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bb44f563d2a6412a3a4411ece4d1880d2d6ee7c6","unresolved":false,"context_lines":[{"line_number":408,"context_line":"            ovs_row \u003d []"},{"line_number":409,"context_line":"            r[\"data\"].append(ovs_row)"},{"line_number":410,"context_line":"            for cell in row:"},{"line_number":411,"context_line":"                if (isinstance(cell, str) or"},{"line_number":412,"context_line":"                    isinstance(cell, int) or"},{"line_number":413,"context_line":"                    isinstance(cell, list)):"},{"line_number":414,"context_line":"                    ovs_row.append(cell)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F9bjI%3D","line":411,"in_reply_to":"AAAAUH%2F9m74%3D","updated":"2014-02-06 23:24:26.000000000","message":"I didn\u0027t know you could do this with isinstance.\nWill do","commit_id":"c3e8592a40c1fcff4696fb47d13439fd7dd9782b"}]}
