)]}'
{"octavia/api/handlers/queue/producer.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7d3d614a96d2b7ebbbe488c124dd969ea7b3cced","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def payload_class(self):"},{"line_number":153,"context_line":"        return self.PAYLOAD_CLASS"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def update(self, data_model, updated_model):"},{"line_number":156,"context_line":"        \"\"\"sends an update message to the controller via oslo.messaging"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param updated_model:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df3967d1_0a28d4df","line":155,"updated":"2017-08-01 21:47:39.000000000","message":"Why don\u0027t we just handle this in the flow in the CW?","commit_id":"f9b2fa50375804f19a490b4dd04b3df36fd153e6"}],"octavia/controller/healthmanager/update_db.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7d3d614a96d2b7ebbbe488c124dd969ea7b3cced","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                                \u0027%(status)s\u0027), {\u0027pool\u0027: pool_id,"},{"line_number":176,"context_line":"                                \u0027status\u0027: pool.get(\u0027status\u0027)})"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"                members \u003d pool[\u0027members\u0027]"},{"line_number":179,"context_line":"                for member_id, status in members.items():"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"                    member_status \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"df3967d1_859b97c7","line":178,"updated":"2017-08-01 21:47:39.000000000","message":"We really aren\u0027t handling this right.  If a member just stops showing up in the haproxy stats we leave it as whatever the last status was.  BAD.\n\nI think we really need to get the list of expected members on the pool and set any missing as OFFLINE.","commit_id":"f9b2fa50375804f19a490b4dd04b3df36fd153e6"},{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"6b88dbc336503fc871a4f42d93ca35a7c4f2e670","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                real_members \u003d [member.id for member in db_pool.members]"},{"line_number":207,"context_line":"                reported_members \u003d [member for member in members.keys()]"},{"line_number":208,"context_line":"                missing_members \u003d set(real_members) - set(reported_members)"},{"line_number":209,"context_line":"                for member_id in missing_members:"},{"line_number":210,"context_line":"                    self._update_status_and_emit_event("},{"line_number":211,"context_line":"                        session, self.member_repo, constants.MEMBER,"},{"line_number":212,"context_line":"                        member_id, constants.OFFLINE"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_9d74d0ff","line":209,"range":{"start_line":209,"start_character":16,"end_line":209,"end_character":49},"updated":"2017-08-03 13:40:33.000000000","message":"This could be a bit racefull IMO.\nTheoretically, there could be a case of a long missing_members list, and by the time that \u0027for loop\u0027 iterates through it all some members can send a health status report.\n\nSuch case could be handled with a simple check that a member is still not in (an updated) reported_members list before you set its status to OFFLINE.","commit_id":"65522f5adf2171aa4d2463967d412151a62ef42f"},{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"c97d3d1ca3a107e8402a0eef07f2d36ba64ed381","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                real_members \u003d [member.id for member in db_pool.members]"},{"line_number":207,"context_line":"                reported_members \u003d [member for member in members.keys()]"},{"line_number":208,"context_line":"                missing_members \u003d set(real_members) - set(reported_members)"},{"line_number":209,"context_line":"                for member_id in missing_members:"},{"line_number":210,"context_line":"                    self._update_status_and_emit_event("},{"line_number":211,"context_line":"                        session, self.member_repo, constants.MEMBER,"},{"line_number":212,"context_line":"                        member_id, constants.OFFLINE"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_437a8f24","line":209,"range":{"start_line":209,"start_character":16,"end_line":209,"end_character":49},"in_reply_to":"bf3e73b7_e13ba6ce","updated":"2017-08-08 19:59:44.000000000","message":"As a follow up to an IRC chat with Adam, the reported_members are part of (a processed) \u0027health\u0027 param provided to this func and there is no way to fetch an up to date health state for a single member since this is not something we read from the db, but rather get it as a health msg.\n\nSo, since I have no further comments I\u0027m changing my vote.","commit_id":"65522f5adf2171aa4d2463967d412151a62ef42f"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"efc1f5df1f58b49049b53fbdadcb4636c2fc934c","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                real_members \u003d [member.id for member in db_pool.members]"},{"line_number":207,"context_line":"                reported_members \u003d [member for member in members.keys()]"},{"line_number":208,"context_line":"                missing_members \u003d set(real_members) - set(reported_members)"},{"line_number":209,"context_line":"                for member_id in missing_members:"},{"line_number":210,"context_line":"                    self._update_status_and_emit_event("},{"line_number":211,"context_line":"                        session, self.member_repo, constants.MEMBER,"},{"line_number":212,"context_line":"                        member_id, constants.OFFLINE"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf3e73b7_e13ba6ce","line":209,"range":{"start_line":209,"start_character":16,"end_line":209,"end_character":49},"in_reply_to":"df3967d1_9d74d0ff","updated":"2017-08-07 21:52:57.000000000","message":"What we are working with for \"reported_members\" is the members list from this health message -- we can\u0027t compare against the possible result of some future health message. Where would you expect this \"updated\" list to come from?","commit_id":"65522f5adf2171aa4d2463967d412151a62ef42f"}]}
