)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"66e8ffe6c8aab458a7a84aef2ac5d181c248fb67","unresolved":false,"context_lines":[{"line_number":22,"context_line":"a polling interval. Without it, these would be stuck in the BUILD"},{"line_number":23,"context_line":"state since the agent wouldn\u0027t realize it needed to wire the ports."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This patch switches to looking at the IFINDEX of the interfaces to"},{"line_number":26,"context_line":"use as a sort of logical timestamp. If an interface gets removed"},{"line_number":27,"context_line":"and readded, it will get a different index, so the original timestamp"},{"line_number":28,"context_line":"comparison logic will still work."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_1a7fb617","line":25,"updated":"2016-09-13 12:46:37.000000000","message":"Is this kernel behaviour documented or guaranteed to happen in the future?, I\u0027m not familiar with it, so investigating.","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7c230193f9f76c52cceffe287b412187f07c7758","unresolved":false,"context_lines":[{"line_number":22,"context_line":"a polling interval. Without it, these would be stuck in the BUILD"},{"line_number":23,"context_line":"state since the agent wouldn\u0027t realize it needed to wire the ports."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This patch switches to looking at the IFINDEX of the interfaces to"},{"line_number":26,"context_line":"use as a sort of logical timestamp. If an interface gets removed"},{"line_number":27,"context_line":"and readded, it will get a different index, so the original timestamp"},{"line_number":28,"context_line":"comparison logic will still work."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a8ec9b2_732b3131","line":25,"in_reply_to":"7a8ec9b2_55038073","updated":"2016-09-14 05:46:44.000000000","message":"Seems reasonable,  \n\nAnd there\u0027s a risk, but now that I look again you added functional tests to catch any regression on that behaviour.\n\nThank you.","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8e4be94f9ea5cf9e0e4a8da2b5d8f44582a549e5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"a polling interval. Without it, these would be stuck in the BUILD"},{"line_number":23,"context_line":"state since the agent wouldn\u0027t realize it needed to wire the ports."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This patch switches to looking at the IFINDEX of the interfaces to"},{"line_number":26,"context_line":"use as a sort of logical timestamp. If an interface gets removed"},{"line_number":27,"context_line":"and readded, it will get a different index, so the original timestamp"},{"line_number":28,"context_line":"comparison logic will still work."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a8ec9b2_55038073","line":25,"in_reply_to":"9a89bdaa_1a7fb617","updated":"2016-09-14 02:29:59.000000000","message":"I\u0027m not sure it is, but it works on both my older and newer kernel versions that I tested with. Considering how screwed up it is now, it seems like the safer path to me.","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"}],"neutron/agent/linux/bridge_lib.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e8066f3548b31cae3a61955cc5386ea551a1816f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return os.path.exists(BRIDGE_PORT_FS_FOR_DEVICE % interface)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def get_interface_ifindex(interface):"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        with open(os.path.join(BRIDGE_FS, interface, \u0027ifindex\u0027), \u0027r\u0027) as fh:"},{"line_number":45,"context_line":"            return int(fh.read().strip())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_8cf6e5d5","line":42,"updated":"2016-09-14 00:22:53.000000000","message":"we\u0027re still using timestamps everywhere else in the linuxbridge codebase, does it make sense to change the name of just this method?\n\nThat said, you sort of broke the \u0027API\u0027 as the abstract method \u0027get_devices_modified_timestamps\u0027 no longer returns timestamps but integers. I am not sure this is as clean is it can be.\n\nI imagine this has no impact on upgrades, as all of this is computed in memory, can you confirm?","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8e4be94f9ea5cf9e0e4a8da2b5d8f44582a549e5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return os.path.exists(BRIDGE_PORT_FS_FOR_DEVICE % interface)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def get_interface_ifindex(interface):"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        with open(os.path.join(BRIDGE_FS, interface, \u0027ifindex\u0027), \u0027r\u0027) as fh:"},{"line_number":45,"context_line":"            return int(fh.read().strip())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_b5dbe41a","line":42,"in_reply_to":"7a8ec9b2_8cf6e5d5","updated":"2016-09-14 02:29:59.000000000","message":"Yes, this is all in memory. I didn\u0027t want to change the rest of the methods just because of how late it is in the cycle and someone could be using the common agent base out of tree now.","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"96816a962edc6c09b2f5c3638cd467a2439d669c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return os.path.exists(BRIDGE_PORT_FS_FOR_DEVICE % interface)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def get_interface_ifindex(interface):"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        with open(os.path.join(BRIDGE_FS, interface, \u0027ifindex\u0027), \u0027r\u0027) as fh:"},{"line_number":45,"context_line":"            return int(fh.read().strip())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_e5bae8e0","line":42,"in_reply_to":"7a8ec9b2_b5dbe41a","updated":"2016-09-14 16:57:20.000000000","message":"least you could do is add a NOTE somewhere referencing the bug, in case you get hit by a bus.","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"844dd78543b12d9d8e16049f7d3b4c07871f2cb5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        return os.path.exists(BRIDGE_PORT_FS_FOR_DEVICE % interface)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def get_interface_ifindex(interface):"},{"line_number":43,"context_line":"    try:"},{"line_number":44,"context_line":"        with open(os.path.join(BRIDGE_FS, interface, \u0027ifindex\u0027), \u0027r\u0027) as fh:"},{"line_number":45,"context_line":"            return int(fh.read().strip())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_25ff7068","line":42,"in_reply_to":"7a8ec9b2_e5bae8e0","updated":"2016-09-14 17:03:02.000000000","message":"Done","commit_id":"0bd227e705159dc3aaf449062c4948f476e5155a"}]}
