)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"36523a42e6831c97fa208ec604e311eb14560aa8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix agent extension support after hashring merge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The agent API extension support made use of a cache that was filled"},{"line_number":10,"context_line":"by processing events. Before hashring support, all events were"},{"line_number":11,"context_line":"processed on one server, producing a complete cache on that server."},{"line_number":12,"context_line":"After distributing those events via the hashring, the cache for each"},{"line_number":13,"context_line":"process would only have a partial list of the hash, so lookups for"},{"line_number":14,"context_line":"agents would often fail. In addition, class on which the events were"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_90fa8e74","line":11,"range":{"start_line":10,"start_character":47,"end_line":11,"end_character":23},"updated":"2019-11-20 11:05:29.000000000","message":"were processed on *all servers*, right?","commit_id":"8d058e6405f1fa89499818c6ba5c0b5fe3703bca"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3df4fea9673661b77ed068f43a1278ef7b5946cf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix agent extension support after hashring merge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The agent API extension support made use of a cache that was filled"},{"line_number":10,"context_line":"by processing events. Before hashring support, all events were"},{"line_number":11,"context_line":"processed on one server, producing a complete cache on that server."},{"line_number":12,"context_line":"After distributing those events via the hashring, the cache for each"},{"line_number":13,"context_line":"process would only have a partial list of the hash, so lookups for"},{"line_number":14,"context_line":"agents would often fail. In addition, class on which the events were"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_bb7c42eb","line":11,"range":{"start_line":10,"start_character":47,"end_line":11,"end_character":23},"in_reply_to":"3fa7e38b_90fa8e74","updated":"2019-11-21 00:39:36.000000000","message":"Done","commit_id":"8d058e6405f1fa89499818c6ba5c0b5fe3703bca"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"c01dc1f3ec5e248f285b745df83504627efc669e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"This patch deletes the in-memory cache of agents and their last"},{"line_number":18,"context_line":"update times and instead stores the last update times in the OVSDB"},{"line_number":19,"context_line":"so they will be available to each worker."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I7a6f0f68a26381226686b410edb00dc6a56b5efb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_70235206","line":20,"updated":"2019-11-20 11:11:16.000000000","message":"You can also put here that as a side-effect it resolves https://bugs.launchpad.net/networking-ovn/+bug/1833394","commit_id":"8d058e6405f1fa89499818c6ba5c0b5fe3703bca"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3df4fea9673661b77ed068f43a1278ef7b5946cf","unresolved":false,"context_lines":[{"line_number":17,"context_line":"This patch deletes the in-memory cache of agents and their last"},{"line_number":18,"context_line":"update times and instead stores the last update times in the OVSDB"},{"line_number":19,"context_line":"so they will be available to each worker."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I7a6f0f68a26381226686b410edb00dc6a56b5efb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_dbdeded9","line":20,"in_reply_to":"3fa7e38b_70235206","updated":"2019-11-21 00:39:36.000000000","message":"Done","commit_id":"8d058e6405f1fa89499818c6ba5c0b5fe3703bca"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"ea51f6bd190033180fa4c194a932e82264288299","unresolved":false,"context_lines":[{"line_number":17,"context_line":"This patch deletes the in-memory AgentStats cache and instead stores"},{"line_number":18,"context_line":"the values in the OVSDB and caches the chassis is memory based off of"},{"line_number":19,"context_line":"the table contents instead of event triggers. This cache is required"},{"line_number":20,"context_line":"inc ase ovn-controller is gracefully and temporarily shut down to keep"},{"line_number":21,"context_line":"the Chassis from disappearing instead of showing up as \"down\"."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Closes-Bug: #1853386"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3fa7e38b_2a65094a","line":20,"range":{"start_line":20,"start_character":2,"end_line":20,"end_character":5},"updated":"2019-11-27 10:23:23.000000000","message":"little nit here","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"}],"networking_ovn/agent/stats.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"ea51f6bd190033180fa4c194a932e82264288299","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_781449a0","side":"PARENT","line":1,"updated":"2019-11-27 10:23:23.000000000","message":"Less is more ;)","commit_id":"635cd5e10f72caff3c3774883ab50931ffb1afb6"}],"networking_ovn/common/exceptions.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7ceb2a32edba7e05eeae3cf63af309cd84b49f7b","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class HashRingIsEmpty(n_exc.NeutronException):"},{"line_number":36,"context_line":"    _message \u003d _(\u0027Hash Ring returned empty when hashing \"%(key)s\". \u0027"},{"line_number":37,"context_line":"                 \u0027This should never happen in a normal situation, please \u0027"},{"line_number":38,"context_line":"                 \u0027check the status of your cluster\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c3685bbb","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":5},"updated":"2019-11-18 21:22:35.000000000","message":"not for nothing, but this underscore is wrong, don\u0027t know if that should be done separately since it\u0027s also broken in stable/train.\n\n\u003e\u003e\u003e import networking_ovn.common.exceptions as exc\n\u003e\u003e\u003e exc.HashRingIsEmpty()\nHashRingIsEmpty(u\u0027An unknown exception occurred.\u0027,)\n\n:(\n\nhttps://bugs.launchpad.net/networking-ovn/+bug/1853057","commit_id":"920915aae79dbde71534aa3db7f0e8458c089e09"}],"networking_ovn/ml2/mech_driver.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3a67dc124f4e14e0f31dd96b929c8f756beb873c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import signal"},{"line_number":20,"context_line":"import threading"},{"line_number":21,"context_line":"import types"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron.common import utils as n_utils"},{"line_number":25,"context_line":"from neutron.db import provisioning_blocks"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_0b840c5d","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":11},"updated":"2019-11-22 10:37:46.000000000","message":"We can get rid of this import\n\n./networking_ovn/ml2/mech_driver.py:22:1: F401 \u0027uuid\u0027 imported but unused","commit_id":"428b07f8f80089afc73a036b274fc01c2c522211"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3a67dc124f4e14e0f31dd96b929c8f756beb873c","unresolved":false,"context_lines":[{"line_number":983,"context_line":"        try:"},{"line_number":984,"context_line":"            updated_at \u003d timeutils.parse_isotime(chassis.external_ids[key])"},{"line_number":985,"context_line":"        except KeyError:"},{"line_number":986,"context_line":"            updated_at \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":"        if self._nb_ovn.nb_global.nb_cfg \u003d\u003d nb_cfg:"},{"line_number":989,"context_line":"            # update the time of our successful check"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_8b69dcbe","line":986,"range":{"start_line":986,"start_character":42,"end_line":986,"end_character":60},"updated":"2019-11-22 10:37:46.000000000","message":"Nit: Not sure we care about the TZ information do we. AFAICT, the times we use across the code is just UTC now, without any TZ.","commit_id":"428b07f8f80089afc73a036b274fc01c2c522211"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"cf1bfa8ef4a6be4740fc89c667733e0b4df02ac4","unresolved":false,"context_lines":[{"line_number":983,"context_line":"        try:"},{"line_number":984,"context_line":"            updated_at \u003d timeutils.parse_isotime(chassis.external_ids[key])"},{"line_number":985,"context_line":"        except KeyError:"},{"line_number":986,"context_line":"            updated_at \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":"        if self._nb_ovn.nb_global.nb_cfg \u003d\u003d nb_cfg:"},{"line_number":989,"context_line":"            # update the time of our successful check"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_41416a62","line":986,"range":{"start_line":986,"start_character":42,"end_line":986,"end_character":60},"in_reply_to":"3fa7e38b_8b69dcbe","updated":"2019-11-25 20:14:38.000000000","message":"Last time I tried w/o, the isoformat() call below failed.","commit_id":"428b07f8f80089afc73a036b274fc01c2c522211"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3a67dc124f4e14e0f31dd96b929c8f756beb873c","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"    try:"},{"line_number":1107,"context_line":"        # look up Chassis by *name*, which the id attribte is"},{"line_number":1108,"context_line":"        chassis \u003d _driver._sb_ovn.lookup(\u0027Chassis\u0027, id)"},{"line_number":1109,"context_line":"    except KeyError:"},{"line_number":1110,"context_line":"        # If the UUID is not found, check for the metadata agent ID"},{"line_number":1111,"context_line":"        for ch in _driver._sb_ovn.tables[\u0027Chassis\u0027].rows.values():"},{"line_number":1112,"context_line":"            metadata_agent_id \u003d ch.external_ids.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_2b79c891","line":1109,"range":{"start_line":1109,"start_character":4,"end_line":1109,"end_character":20},"updated":"2019-11-22 10:37:46.000000000","message":"I believe this will raise RowNotFound now instead of KeyError","commit_id":"428b07f8f80089afc73a036b274fc01c2c522211"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"cf1bfa8ef4a6be4740fc89c667733e0b4df02ac4","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"    try:"},{"line_number":1107,"context_line":"        # look up Chassis by *name*, which the id attribte is"},{"line_number":1108,"context_line":"        chassis \u003d _driver._sb_ovn.lookup(\u0027Chassis\u0027, id)"},{"line_number":1109,"context_line":"    except KeyError:"},{"line_number":1110,"context_line":"        # If the UUID is not found, check for the metadata agent ID"},{"line_number":1111,"context_line":"        for ch in _driver._sb_ovn.tables[\u0027Chassis\u0027].rows.values():"},{"line_number":1112,"context_line":"            metadata_agent_id \u003d ch.external_ids.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_015ff240","line":1109,"range":{"start_line":1109,"start_character":4,"end_line":1109,"end_character":20},"in_reply_to":"3fa7e38b_2b79c891","updated":"2019-11-25 20:14:38.000000000","message":"ack, good catch!","commit_id":"428b07f8f80089afc73a036b274fc01c2c522211"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"ea51f6bd190033180fa4c194a932e82264288299","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            return True"},{"line_number":995,"context_line":"        now \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        if (now - updated_at).total_seconds() \u003c cfg.CONF.agent_down_time:"},{"line_number":998,"context_line":"            # down, but not yet timed out"},{"line_number":999,"context_line":"            return True"},{"line_number":1000,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_8ab99d7d","line":997,"range":{"start_line":997,"start_character":18,"end_line":997,"end_character":28},"updated":"2019-11-27 10:23:23.000000000","message":"Hmm, I don\u0027t understand one thing. What if:\n1) In L984 there is no updated_at key (the utcnow() is taken)\n2) What if the check in L988 is False\n3) Then check in L997 is True and it the whole agent_alive() returns True,\n\nSo that means if we have Chassis entry, that has not the valid key set in the external_ids, and has not the valid Chassis.nb_cfg value set then we return that the agent is alive? But why?","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a30243dc91e8412a3c6c3d26fa3188d2cd0da881","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            return True"},{"line_number":995,"context_line":"        now \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        if (now - updated_at).total_seconds() \u003c cfg.CONF.agent_down_time:"},{"line_number":998,"context_line":"            # down, but not yet timed out"},{"line_number":999,"context_line":"            return True"},{"line_number":1000,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_138ac163","line":997,"range":{"start_line":997,"start_character":18,"end_line":997,"end_character":28},"in_reply_to":"3fa7e38b_25621adb","updated":"2019-11-27 15:52:43.000000000","message":"This isn\u0027t a test of \"it is currently really dead\". It is a test of \"hasn\u0027t been alive for X seconds\". That\u0027s just how the agent API works unfortunately.","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"93dd6e9b07c1739c73c1a664ba473b4c77e69462","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            return True"},{"line_number":995,"context_line":"        now \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        if (now - updated_at).total_seconds() \u003c cfg.CONF.agent_down_time:"},{"line_number":998,"context_line":"            # down, but not yet timed out"},{"line_number":999,"context_line":"            return True"},{"line_number":1000,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_77f51684","line":997,"range":{"start_line":997,"start_character":18,"end_line":997,"end_character":28},"in_reply_to":"3fa7e38b_53903997","updated":"2019-11-28 08:55:21.000000000","message":"Hum, you\u0027re right. The only moment, where this key will not exist is when new ovn-controller is added to agent list. There shouldn\u0027t be any other use-case of that. So in those terms we should be same. +1","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"7508a50a7d88009fa56775395cc89fbf73e9d86e","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            return True"},{"line_number":995,"context_line":"        now \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        if (now - updated_at).total_seconds() \u003c cfg.CONF.agent_down_time:"},{"line_number":998,"context_line":"            # down, but not yet timed out"},{"line_number":999,"context_line":"            return True"},{"line_number":1000,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_25621adb","line":997,"range":{"start_line":997,"start_character":18,"end_line":997,"end_character":28},"in_reply_to":"3fa7e38b_8ab99d7d","updated":"2019-11-27 10:33:55.000000000","message":"I still know that sooner or later this agent will be set as \u0027:(\u0027 because in a few next iterations the check in L997 will be false.\nBut in meantime binding could be scheduled there, but actually ovn-controller will be dead, so I believe thats better to fix this use-case here.","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a30243dc91e8412a3c6c3d26fa3188d2cd0da881","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            return True"},{"line_number":995,"context_line":"        now \u003d timeutils.utcnow(with_timezone\u003dTrue)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        if (now - updated_at).total_seconds() \u003c cfg.CONF.agent_down_time:"},{"line_number":998,"context_line":"            # down, but not yet timed out"},{"line_number":999,"context_line":"            return True"},{"line_number":1000,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_53903997","line":997,"range":{"start_line":997,"start_character":18,"end_line":997,"end_character":28},"in_reply_to":"3fa7e38b_8ab99d7d","updated":"2019-11-27 15:52:43.000000000","message":"We return that it is alive because it hasn\u0027t been dead long enough to be defined as dead by the configured agent_down_time. The only way we shouldn\u0027t have the the appropriate key is if this is the first time we are running.","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6b40b0c9a77db1a1562d2130a04d149545ede5c9","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"def delete_agent(self, context, id, _driver\u003dNone):"},{"line_number":1145,"context_line":"    get_agent(self, None, id, _driver\u003d_driver)"},{"line_number":1146,"context_line":"    raise n_exc.BadRequest(resource\u003d\u0027agent\u0027,"},{"line_number":1147,"context_line":"                           msg\u003d\u0027OVN agents cannot be deleted\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_8aebdd79","line":1147,"updated":"2019-11-27 10:23:10.000000000","message":"Q question: Is there a situation where the agent\u0027s gone from the OVSDB but still in the cache ? I think there might be (in case someone manually delete the entry in SBDB.\n\nI would make this method a bit more resilient to this type of error by doing the following:\n\ntry:\n    get_agent(...)\nexcept AgentNotFound:\n    AGENTS.pop(id, None)\n    raise\n\nWhat do you think ?","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a30243dc91e8412a3c6c3d26fa3188d2cd0da881","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"def delete_agent(self, context, id, _driver\u003dNone):"},{"line_number":1145,"context_line":"    get_agent(self, None, id, _driver\u003d_driver)"},{"line_number":1146,"context_line":"    raise n_exc.BadRequest(resource\u003d\u0027agent\u0027,"},{"line_number":1147,"context_line":"                           msg\u003d\u0027OVN agents cannot be deleted\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_9328f133","line":1147,"in_reply_to":"3fa7e38b_8aebdd79","updated":"2019-11-27 15:52:43.000000000","message":"We don\u0027t actually support deleting agents at this point at all. We only check get_agent here so that tests pass (send a 404 for non-existent agent) and we purposely keep the agents in the in-memory cache so that if ovn-controller is gracefully, but temporarily, stopped the agents don\u0027t just disappear instead of reporting as down.\n\nSo it seems like having a side-effect on the delete_agent call of removing the cache entry when we don\u0027t support actually removing agents would be a little weird. Am I misunderstanding?","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8716f33e60667d02289e4f631daf337fa2949341","unresolved":false,"context_lines":[{"line_number":1144,"context_line":"def delete_agent(self, context, id, _driver\u003dNone):"},{"line_number":1145,"context_line":"    get_agent(self, None, id, _driver\u003d_driver)"},{"line_number":1146,"context_line":"    raise n_exc.BadRequest(resource\u003d\u0027agent\u0027,"},{"line_number":1147,"context_line":"                           msg\u003d\u0027OVN agents cannot be deleted\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_569b4763","line":1147,"in_reply_to":"3fa7e38b_9328f133","updated":"2019-11-27 16:33:14.000000000","message":"My reasoning was because we could delete an agent by deleting them from the Chassis table in the Southbound database (maybe it was just an workaround).\n\nNow it won\u0027t work because get_agents() is using the items from the cache. \n\nNot a big deal, just wanted to point out that we may want to get rid of the agent entry if it has been deleted from the SBDB.","commit_id":"d506e5b489c51f4cb72867b6b27a1c06d4bd1a50"}],"networking_ovn/tests/functional/test_metadata_agent.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"820ab16add89d2a6754aefcbfcdbbb04c5375dd7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # chassis with the nb_cfg, 1 revisions when listing the agents."},{"line_number":118,"context_line":"        self.assertTrue(row_event.wait())"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_updating_metadata_doesnt_update_controller_stats(self):"},{"line_number":121,"context_line":"        self.nb_cfg \u003d None"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        def read_stats():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f01742a2","side":"PARENT","line":120,"updated":"2019-11-20 11:09:53.000000000","message":"Nice, this test was flaky :) Getting rid of it will help decrease failure rate.","commit_id":"eb3d0af1bd771d071090a3c5e8c002a7befd10ff"}]}
