)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"33da28f5_9d6533a6","updated":"2022-05-27 13:32:53.000000000","message":"Thanks for the patch, left a few comments inline","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"ec6dae5153505bee22832272ebf97ec46b0f8653","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"27b74013_e73d89b2","updated":"2022-05-30 13:14:27.000000000","message":"recheck functional-master timeout not related","commit_id":"8eb096de8fdd290776dec62c4f63abf9756d6c93"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"79b87a61_94a36870","updated":"2022-05-31 09:51:17.000000000","message":"Several questions/nits here and there","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"70e60c2684d9512755f8f33297ee028e7c1b9311","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0aa14001_0edf8d30","updated":"2022-05-31 12:05:21.000000000","message":"recheck ovn-octavia-provider-functional-master  timeout ","commit_id":"c478567b4efb669dfb429fb4f3e3bbdb41c622f7"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"9e83cf1d06fa6741af2dde3fe0d4f733f1320e60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"407517f2_2277a1f0","updated":"2022-05-31 14:06:39.000000000","message":"recheck ovn-octavia-provider-functional-release timeout","commit_id":"c478567b4efb669dfb429fb4f3e3bbdb41c622f7"}],"ovn_octavia_provider/helper.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":1621,"context_line":"        # NO_MONITOR"},{"line_number":1622,"context_line":"        status \u003d constants.NO_MONITOR"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            external_ids \u003d copy.deepcopy(ovn_lb.external_ids)"},{"line_number":1625,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1626,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1627,"context_line":"            existing_members \u003d jsonutils.loads(existing_members)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9e88c18c_4e9cde30","line":1624,"updated":"2022-05-27 13:32:53.000000000","message":"I don\u0027t see why we need a deepcopy() since we are just reading from it","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"        # NO_MONITOR"},{"line_number":1622,"context_line":"        status \u003d constants.NO_MONITOR"},{"line_number":1623,"context_line":"        try:"},{"line_number":1624,"context_line":"            external_ids \u003d copy.deepcopy(ovn_lb.external_ids)"},{"line_number":1625,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1626,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1627,"context_line":"            existing_members \u003d jsonutils.loads(existing_members)"}],"source_content_type":"text/x-python","patch_set":3,"id":"34fd59c9_ae40cc10","line":1624,"in_reply_to":"9e88c18c_4e9cde30","updated":"2022-05-27 15:13:31.000000000","message":"Totally right! if was a copypaste from other method where the object was directly written.","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":1625,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1626,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1627,"context_line":"            existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1628,"context_line":"            status \u003d existing_members[member_id]"},{"line_number":1629,"context_line":"        except Exception:"},{"line_number":1630,"context_line":"            LOG.exception(\"Error getting status on external_ids member: %s\","},{"line_number":1631,"context_line":"                          str(member_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"c4c93bfc_b35999eb","line":1628,"updated":"2022-05-27 13:32:53.000000000","message":"nit: Don\u0027t need to save the status to another variable if we are just returning it a bit later, we can return now\n\nreturn existing_members[member_id]","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":1625,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1626,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1627,"context_line":"            existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1628,"context_line":"            status \u003d existing_members[member_id]"},{"line_number":1629,"context_line":"        except Exception:"},{"line_number":1630,"context_line":"            LOG.exception(\"Error getting status on external_ids member: %s\","},{"line_number":1631,"context_line":"                          str(member_id))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ded66b90_2c66d9d7","line":1628,"in_reply_to":"c4c93bfc_b35999eb","updated":"2022-05-27 15:13:31.000000000","message":"done","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":1633,"context_line":""},{"line_number":1634,"context_line":"    def _store_member_status(self, ovn_lb, member, status\u003dNone, delete\u003dFalse):"},{"line_number":1635,"context_line":"        try:"},{"line_number":1636,"context_line":"            external_ids \u003d copy.deepcopy(ovn_lb.external_ids)"},{"line_number":1637,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1639,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"2abc3728_70b64d51","line":1636,"updated":"2022-05-27 13:32:53.000000000","message":"ditto, I don\u0027t think we need a deepcopy here as we are just reading from it","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":1633,"context_line":""},{"line_number":1634,"context_line":"    def _store_member_status(self, ovn_lb, member, status\u003dNone, delete\u003dFalse):"},{"line_number":1635,"context_line":"        try:"},{"line_number":1636,"context_line":"            external_ids \u003d copy.deepcopy(ovn_lb.external_ids)"},{"line_number":1637,"context_line":"            existing_members \u003d external_ids.get("},{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1639,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"065d3754_ead88efe","line":1636,"in_reply_to":"2abc3728_70b64d51","updated":"2022-05-27 15:13:31.000000000","message":"same as above. done","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1639,"context_line":"            try:"},{"line_number":1640,"context_line":"                existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1641,"context_line":"            except Exception:"},{"line_number":1642,"context_line":"                existing_members \u003d {}"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":3,"id":"99a2a863_917a2774","line":1641,"range":{"start_line":1641,"start_character":12,"end_line":1641,"end_character":29},"updated":"2022-05-27 13:32:53.000000000","message":"Broad exceptions can hide many errors. Syntax and type errors, I think we should be more specific here as it\u0027s already guarded by another try..exception","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":1639,"context_line":"            try:"},{"line_number":1640,"context_line":"                existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1641,"context_line":"            except Exception:"},{"line_number":1642,"context_line":"                existing_members \u003d {}"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bbaf3901_383201a1","line":1641,"range":{"start_line":1641,"start_character":12,"end_line":1641,"end_character":29},"in_reply_to":"99a2a863_917a2774","updated":"2022-05-27 15:13:31.000000000","message":"right on, done.","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":2546,"context_line":""},{"line_number":2547,"context_line":"        try:"},{"line_number":2548,"context_line":"            member_statuses \u003d jsonutils.loads(member_statuses)"},{"line_number":2549,"context_line":"        except Exception:"},{"line_number":2550,"context_line":"            member_statuses \u003d {}"},{"line_number":2551,"context_line":""},{"line_number":2552,"context_line":"        for k, v in ovn_lb.external_ids.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"02e78788_53366dae","line":2549,"updated":"2022-05-27 13:32:53.000000000","message":"ditto, too broad of an exception. Could hide syntax errors","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":2546,"context_line":""},{"line_number":2547,"context_line":"        try:"},{"line_number":2548,"context_line":"            member_statuses \u003d jsonutils.loads(member_statuses)"},{"line_number":2549,"context_line":"        except Exception:"},{"line_number":2550,"context_line":"            member_statuses \u003d {}"},{"line_number":2551,"context_line":""},{"line_number":2552,"context_line":"        for k, v in ovn_lb.external_ids.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfcc90c5_b6574dd7","line":2549,"in_reply_to":"02e78788_53366dae","updated":"2022-05-27 15:13:31.000000000","message":"right on, done.","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":1632,"context_line":"                      str(member_id))"},{"line_number":1633,"context_line":"        return constants.NO_MONITOR"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def _store_member_status(self, ovn_lb, member, status\u003dNone, delete\u003dFalse):"},{"line_number":1636,"context_line":"        try:"},{"line_number":1637,"context_line":"            existing_members \u003d ovn_lb.external_ids.get("},{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"}],"source_content_type":"text/x-python","patch_set":6,"id":"558c7501_aa2988f0","line":1635,"range":{"start_line":1635,"start_character":4,"end_line":1635,"end_character":78},"updated":"2022-05-31 09:51:17.000000000","message":"delete is used to make this function to delete instead of storing the status, right? perhaps the function is \"update_member_status\" instead?","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"                      str(member_id))"},{"line_number":1633,"context_line":"        return constants.NO_MONITOR"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def _store_member_status(self, ovn_lb, member, status\u003dNone, delete\u003dFalse):"},{"line_number":1636,"context_line":"        try:"},{"line_number":1637,"context_line":"            existing_members \u003d ovn_lb.external_ids.get("},{"line_number":1638,"context_line":"                ovn_const.OVN_MEMBER_STATUS_KEY)"}],"source_content_type":"text/x-python","patch_set":6,"id":"6a84c8f3_9ea4719d","line":1635,"range":{"start_line":1635,"start_character":4,"end_line":1635,"end_character":78},"in_reply_to":"558c7501_aa2988f0","updated":"2022-05-31 10:47:35.000000000","message":"yes, initially it was just to save new ones but after added \"delete\" option your proposal looks a better name for the functions. done","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":1639,"context_line":"            try:"},{"line_number":1640,"context_line":"                existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1641,"context_line":"            except TypeError:"},{"line_number":1642,"context_line":"                LOG.error(\"Error getting member status on external_ids: %s\","},{"line_number":1643,"context_line":"                          str(existing_members))"},{"line_number":1644,"context_line":"                existing_members \u003d {}"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":6,"id":"57667d21_30701fde","line":1643,"range":{"start_line":1642,"start_character":16,"end_line":1643,"end_character":48},"updated":"2022-05-31 09:51:17.000000000","message":"is this an error? or something expected (e.g., the first time it gets stored). Perhaps this should be LOG.debug instead, and the message \"no member status on external ids\" or the like?\n\nFeel free to dismiss if I fully missed the point here","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":1639,"context_line":"            try:"},{"line_number":1640,"context_line":"                existing_members \u003d jsonutils.loads(existing_members)"},{"line_number":1641,"context_line":"            except TypeError:"},{"line_number":1642,"context_line":"                LOG.error(\"Error getting member status on external_ids: %s\","},{"line_number":1643,"context_line":"                          str(existing_members))"},{"line_number":1644,"context_line":"                existing_members \u003d {}"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ea13c55_7bcb1a14","line":1643,"range":{"start_line":1642,"start_character":16,"end_line":1643,"end_character":48},"in_reply_to":"57667d21_30701fde","updated":"2022-05-31 10:47:35.000000000","message":"On first time, existing_members will be None and this exception may happen. The process will continue correctly, let change to debug level. done","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":1660,"context_line":"                self.ovn_nbdb_api.db_remove("},{"line_number":1661,"context_line":"                    \u0027Load_Balancer\u0027, ovn_lb.uuid, \u0027external_ids\u0027,"},{"line_number":1662,"context_line":"                    (ovn_const.OVN_MEMBER_STATUS_KEY)).execute()"},{"line_number":1663,"context_line":"        except Exception:"},{"line_number":1664,"context_line":"            LOG.exception(\"Error storing member status on external_ids member:\""},{"line_number":1665,"context_line":"                          \" %s delete: %s status: %s\", str(member),"},{"line_number":1666,"context_line":"                          str(delete), str(status))"}],"source_content_type":"text/x-python","patch_set":6,"id":"66b9ee71_805f63ae","line":1663,"range":{"start_line":1663,"start_character":8,"end_line":1663,"end_character":25},"updated":"2022-05-31 09:51:17.000000000","message":"should this try/except only apply on lines 1652-1663 instead?","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":1660,"context_line":"                self.ovn_nbdb_api.db_remove("},{"line_number":1661,"context_line":"                    \u0027Load_Balancer\u0027, ovn_lb.uuid, \u0027external_ids\u0027,"},{"line_number":1662,"context_line":"                    (ovn_const.OVN_MEMBER_STATUS_KEY)).execute()"},{"line_number":1663,"context_line":"        except Exception:"},{"line_number":1664,"context_line":"            LOG.exception(\"Error storing member status on external_ids member:\""},{"line_number":1665,"context_line":"                          \" %s delete: %s status: %s\", str(member),"},{"line_number":1666,"context_line":"                          str(delete), str(status))"}],"source_content_type":"text/x-python","patch_set":6,"id":"4812c322_61762ba5","line":1663,"range":{"start_line":1663,"start_character":8,"end_line":1663,"end_character":25},"in_reply_to":"66b9ee71_805f63ae","updated":"2022-05-31 10:47:35.000000000","message":"Done","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":2528,"context_line":"                          \u0027info\u0027: request_info})"},{"line_number":2529,"context_line":""},{"line_number":2530,"context_line":"    def _get_current_operating_statuses(self, ovn_lb):"},{"line_number":2531,"context_line":""},{"line_number":2532,"context_line":"        # NOTE (froyo) We would base all logic in the external_ids field"},{"line_number":2533,"context_line":"        # \u0027neutron:member_status\u0027 that should include all LB member status"},{"line_number":2534,"context_line":"        # in order to calculate the global LB status (listeners, pools, members"}],"source_content_type":"text/x-python","patch_set":6,"id":"1c488765_53bc7ebf","line":2531,"updated":"2022-05-31 09:51:17.000000000","message":"supernit: remove extra empty line","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":2528,"context_line":"                          \u0027info\u0027: request_info})"},{"line_number":2529,"context_line":""},{"line_number":2530,"context_line":"    def _get_current_operating_statuses(self, ovn_lb):"},{"line_number":2531,"context_line":""},{"line_number":2532,"context_line":"        # NOTE (froyo) We would base all logic in the external_ids field"},{"line_number":2533,"context_line":"        # \u0027neutron:member_status\u0027 that should include all LB member status"},{"line_number":2534,"context_line":"        # in order to calculate the global LB status (listeners, pools, members"}],"source_content_type":"text/x-python","patch_set":6,"id":"2fb20489_f7aaea7d","line":2531,"in_reply_to":"1c488765_53bc7ebf","updated":"2022-05-31 10:47:35.000000000","message":"Done","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":2545,"context_line":"        member_statuses \u003d ovn_lb.external_ids.get("},{"line_number":2546,"context_line":"            ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":2547,"context_line":""},{"line_number":2548,"context_line":"        try:"},{"line_number":2549,"context_line":"            member_statuses \u003d jsonutils.loads(member_statuses)"},{"line_number":2550,"context_line":"        except TypeError:"},{"line_number":2551,"context_line":"            LOG.error(\"Error getting member status on external_ids: %s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"52d2adf8_ea917033","line":2548,"range":{"start_line":2548,"start_character":8,"end_line":2548,"end_character":12},"updated":"2022-05-31 09:51:17.000000000","message":"should this include line 2545 too?","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":2545,"context_line":"        member_statuses \u003d ovn_lb.external_ids.get("},{"line_number":2546,"context_line":"            ovn_const.OVN_MEMBER_STATUS_KEY)"},{"line_number":2547,"context_line":""},{"line_number":2548,"context_line":"        try:"},{"line_number":2549,"context_line":"            member_statuses \u003d jsonutils.loads(member_statuses)"},{"line_number":2550,"context_line":"        except TypeError:"},{"line_number":2551,"context_line":"            LOG.error(\"Error getting member status on external_ids: %s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"059a98a6_1ae8c72f","line":2548,"range":{"start_line":2548,"start_character":8,"end_line":2548,"end_character":12},"in_reply_to":"52d2adf8_ea917033","updated":"2022-05-31 10:47:35.000000000","message":"IMO not neccesary, ovn_lb.external_ids always will have a value and in case the key  ovn_const.OVN_MEMBER_STATUS_KEY isn\u0027t on it .get(...) will return None","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"23ffea2c48d9d1c2ab89a7d7f04268054cfaa307","unresolved":true,"context_lines":[{"line_number":2670,"context_line":"        if info[\u0027status\u0027] \u003d\u003d [\u0027offline\u0027]:"},{"line_number":2671,"context_line":"            member_status \u003d constants.ERROR"},{"line_number":2672,"context_line":""},{"line_number":2673,"context_line":"        self._store_member_status(ovn_lb, member_id, member_status)"},{"line_number":2674,"context_line":"        status \u003d self._get_current_operating_statuses(ovn_lb)"},{"line_number":2675,"context_line":"        return status"}],"source_content_type":"text/x-python","patch_set":6,"id":"c274e5c9_da8f3d8f","line":2674,"range":{"start_line":2673,"start_character":0,"end_line":2674,"end_character":61},"updated":"2022-05-31 09:51:17.000000000","message":"line 2673 is basically the one in charge of writing the status into ovn DB (external-ids), right? Then, on the next line 2674 you are obtaining the status (fully formatted, instead of just the members), but the ovn_lb, i.e., calling again the OVN DB. Should that not be skipped and rely on the information about the members you already have? Perhaps extra parameter with member_status to skip the DB search if you already know that information","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"5f49da67cf6837ff0d69eeef6e0f9cf2dc34e14f","unresolved":false,"context_lines":[{"line_number":2670,"context_line":"        if info[\u0027status\u0027] \u003d\u003d [\u0027offline\u0027]:"},{"line_number":2671,"context_line":"            member_status \u003d constants.ERROR"},{"line_number":2672,"context_line":""},{"line_number":2673,"context_line":"        self._store_member_status(ovn_lb, member_id, member_status)"},{"line_number":2674,"context_line":"        status \u003d self._get_current_operating_statuses(ovn_lb)"},{"line_number":2675,"context_line":"        return status"}],"source_content_type":"text/x-python","patch_set":6,"id":"3c1c8eda_e534bdef","line":2674,"range":{"start_line":2673,"start_character":0,"end_line":2674,"end_character":61},"in_reply_to":"c274e5c9_da8f3d8f","updated":"2022-05-31 10:47:35.000000000","message":"No, the ovn_lb object already have info on external_ids field, so not require to make additional OVN NB calls.","commit_id":"b297cbd3db942c47195e669b52bb529f2012c349"}],"ovn_octavia_provider/tests/functional/base.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bb9ceed909317e2f46abecc0b6d2c30231622e3b","unresolved":true,"context_lines":[{"line_number":842,"context_line":"            \u0027listeners\u0027: []"},{"line_number":843,"context_line":"        }"},{"line_number":844,"context_line":"        if getattr(member, \u0027admin_state_up\u0027, None):"},{"line_number":845,"context_line":"            expected_status[\u0027members\u0027][0][\u0027operating_status\u0027] \u003d \"NO_MONITOR\""},{"line_number":846,"context_line":"        else:"},{"line_number":847,"context_line":"            expected_status[\u0027members\u0027][0][\u0027operating_status\u0027] \u003d \"OFFLINE\""},{"line_number":848,"context_line":"        self._wait_for_status_and_validate(lb_data, [expected_status])"}],"source_content_type":"text/x-python","patch_set":3,"id":"c5c34e54_ba9b3cab","line":845,"range":{"start_line":845,"start_character":65,"end_line":845,"end_character":75},"updated":"2022-05-27 13:32:53.000000000","message":"nit, not related to this patch per-se but these ONLINE, OFFLINE, NO_MONITOR sounds like they should be constants to avoid typos somewhere","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"f4c09bd69114aef6fcd32b423374906e1932d323","unresolved":false,"context_lines":[{"line_number":842,"context_line":"            \u0027listeners\u0027: []"},{"line_number":843,"context_line":"        }"},{"line_number":844,"context_line":"        if getattr(member, \u0027admin_state_up\u0027, None):"},{"line_number":845,"context_line":"            expected_status[\u0027members\u0027][0][\u0027operating_status\u0027] \u003d \"NO_MONITOR\""},{"line_number":846,"context_line":"        else:"},{"line_number":847,"context_line":"            expected_status[\u0027members\u0027][0][\u0027operating_status\u0027] \u003d \"OFFLINE\""},{"line_number":848,"context_line":"        self._wait_for_status_and_validate(lb_data, [expected_status])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7471a321_7593dcf5","line":845,"range":{"start_line":845,"start_character":65,"end_line":845,"end_character":75},"in_reply_to":"c5c34e54_ba9b3cab","updated":"2022-05-27 15:13:31.000000000","message":"Right on, but as this file has hundreds of those ONLINE, OFFLINE, NO_MONITOR, ERROR, ACTIVE... and this particular ONLINE ---\u003e NO_MONITOR is neccesary, in order to not mask it over many replacements I prefer to keep just one fixed.","commit_id":"f68fa7ca399497f226a223fd77c58f8044a9d762"}]}
