)]}'
{"kuryr_kubernetes/controller/handlers/loadbalancer.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c78290bcbdc7ab78de5034264fce7c764928d6da","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def on_present(self, loadbalancer_crd):"},{"line_number":60,"context_line":"        if loadbalancer_crd.get(\u0027status\u0027, None) is None:"},{"line_number":61,"context_line":"            status \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            kubernetes \u003d clients.get_kubernetes_client()"},{"line_number":64,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff04eb85_c2f82c4e","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":23},"updated":"2021-04-09 14:43:42.000000000","message":"No need to define this, just pass \u0027{}\u0027 into the patch_crd function.","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"76c5ab63ec4623960df8547052f15bb2463b4f84","unresolved":true,"context_lines":[{"line_number":66,"context_line":"                                     utils.get_res_link(loadbalancer_crd),"},{"line_number":67,"context_line":"                                     status)"},{"line_number":68,"context_line":"            except k_exc.K8sResourceNotFound:"},{"line_number":69,"context_line":"                LOG.debug(\u0027KuryrLoadbalancer CRD not found %s\u0027,"},{"line_number":70,"context_line":"                          loadbalancer_crd)"},{"line_number":71,"context_line":"            except k_exc.K8sClientException:"},{"line_number":72,"context_line":"                LOG.exception(\u0027Error updating KuryLoadbalancer CRD %s\u0027,"},{"line_number":73,"context_line":"                              loadbalancer_crd)"},{"line_number":74,"context_line":"                raise"},{"line_number":75,"context_line":"            return"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1c2e95_64269176","line":73,"range":{"start_line":69,"start_character":0,"end_line":73,"end_character":47},"updated":"2021-03-31 15:40:18.000000000","message":"Can we just log utils.get_res_unique_name(loadbalancer_crd) instead of full resource?","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9936c470cf95d6bd2e41dc7f86954a3daf28d19b","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self._drv_nodes_subnets.get_nodes_subnets())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def on_present(self, loadbalancer_crd):"},{"line_number":60,"context_line":"        if loadbalancer_crd.get(\u0027status\u0027, None) is None:"},{"line_number":61,"context_line":"            status \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            kubernetes \u003d clients.get_kubernetes_client()"},{"line_number":64,"context_line":"            try:"},{"line_number":65,"context_line":"                kubernetes.patch_crd(\u0027status\u0027,"},{"line_number":66,"context_line":"                                     utils.get_res_link(loadbalancer_crd),"},{"line_number":67,"context_line":"                                     status)"},{"line_number":68,"context_line":"            except k_exc.K8sResourceNotFound:"},{"line_number":69,"context_line":"                LOG.debug(\u0027KuryrLoadbalancer CRD not found %s\u0027,"},{"line_number":70,"context_line":"                          loadbalancer_crd)"},{"line_number":71,"context_line":"            except k_exc.K8sClientException:"},{"line_number":72,"context_line":"                LOG.exception(\u0027Error updating KuryLoadbalancer CRD %s\u0027,"},{"line_number":73,"context_line":"                              loadbalancer_crd)"},{"line_number":74,"context_line":"                raise"},{"line_number":75,"context_line":"            return"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if self._should_ignore(loadbalancer_crd):"},{"line_number":78,"context_line":"            LOG.debug(\"Ignoring Kubernetes service %s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"f7e43fe4_3547bc2a","line":75,"range":{"start_line":60,"start_character":0,"end_line":75,"end_character":18},"updated":"2021-03-31 15:34:13.000000000","message":"Well, I\u0027m not a fan of this approach, I\u0027d rather not do API calls to modify resource when the only reason is our code unable to process a technically valid resource.","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c78290bcbdc7ab78de5034264fce7c764928d6da","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            self._drv_nodes_subnets.get_nodes_subnets())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def on_present(self, loadbalancer_crd):"},{"line_number":60,"context_line":"        if loadbalancer_crd.get(\u0027status\u0027, None) is None:"},{"line_number":61,"context_line":"            status \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            kubernetes \u003d clients.get_kubernetes_client()"},{"line_number":64,"context_line":"            try:"},{"line_number":65,"context_line":"                kubernetes.patch_crd(\u0027status\u0027,"},{"line_number":66,"context_line":"                                     utils.get_res_link(loadbalancer_crd),"},{"line_number":67,"context_line":"                                     status)"},{"line_number":68,"context_line":"            except k_exc.K8sResourceNotFound:"},{"line_number":69,"context_line":"                LOG.debug(\u0027KuryrLoadbalancer CRD not found %s\u0027,"},{"line_number":70,"context_line":"                          loadbalancer_crd)"},{"line_number":71,"context_line":"            except k_exc.K8sClientException:"},{"line_number":72,"context_line":"                LOG.exception(\u0027Error updating KuryLoadbalancer CRD %s\u0027,"},{"line_number":73,"context_line":"                              loadbalancer_crd)"},{"line_number":74,"context_line":"                raise"},{"line_number":75,"context_line":"            return"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if self._should_ignore(loadbalancer_crd):"},{"line_number":78,"context_line":"            LOG.debug(\"Ignoring Kubernetes service %s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"8e741605_3209d7b7","line":75,"range":{"start_line":60,"start_character":0,"end_line":75,"end_character":18},"in_reply_to":"2b90ca40_c16847b2","updated":"2021-04-09 14:43:42.000000000","message":"Okay, that won\u0027t work, we need separate JSON patch operation to add \u0027status\u0027 field anyway.","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c7c04f22775d7deb49b97089c97e7aecf494af2a","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self._drv_nodes_subnets.get_nodes_subnets())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def on_present(self, loadbalancer_crd):"},{"line_number":60,"context_line":"        if loadbalancer_crd.get(\u0027status\u0027, None) is None:"},{"line_number":61,"context_line":"            status \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            kubernetes \u003d clients.get_kubernetes_client()"},{"line_number":64,"context_line":"            try:"},{"line_number":65,"context_line":"                kubernetes.patch_crd(\u0027status\u0027,"},{"line_number":66,"context_line":"                                     utils.get_res_link(loadbalancer_crd),"},{"line_number":67,"context_line":"                                     status)"},{"line_number":68,"context_line":"            except k_exc.K8sResourceNotFound:"},{"line_number":69,"context_line":"                LOG.debug(\u0027KuryrLoadbalancer CRD not found %s\u0027,"},{"line_number":70,"context_line":"                          loadbalancer_crd)"},{"line_number":71,"context_line":"            except k_exc.K8sClientException:"},{"line_number":72,"context_line":"                LOG.exception(\u0027Error updating KuryLoadbalancer CRD %s\u0027,"},{"line_number":73,"context_line":"                              loadbalancer_crd)"},{"line_number":74,"context_line":"                raise"},{"line_number":75,"context_line":"            return"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if self._should_ignore(loadbalancer_crd):"},{"line_number":78,"context_line":"            LOG.debug(\"Ignoring Kubernetes service %s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"2b90ca40_c16847b2","line":75,"range":{"start_line":60,"start_character":0,"end_line":75,"end_character":18},"in_reply_to":"d083751d_b9aafa80","updated":"2021-03-31 15:45:47.000000000","message":"Seems like outside of this handler we\u0027re nicely prepared that status might not exist [1]\n\n[1] https://github.com/openstack/kuryr-kubernetes/blob/master/kuryr_kubernetes/controller/drivers/lbaasv2.py#L883-L884","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"76c5ab63ec4623960df8547052f15bb2463b4f84","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self._drv_nodes_subnets.get_nodes_subnets())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def on_present(self, loadbalancer_crd):"},{"line_number":60,"context_line":"        if loadbalancer_crd.get(\u0027status\u0027, None) is None:"},{"line_number":61,"context_line":"            status \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            kubernetes \u003d clients.get_kubernetes_client()"},{"line_number":64,"context_line":"            try:"},{"line_number":65,"context_line":"                kubernetes.patch_crd(\u0027status\u0027,"},{"line_number":66,"context_line":"                                     utils.get_res_link(loadbalancer_crd),"},{"line_number":67,"context_line":"                                     status)"},{"line_number":68,"context_line":"            except k_exc.K8sResourceNotFound:"},{"line_number":69,"context_line":"                LOG.debug(\u0027KuryrLoadbalancer CRD not found %s\u0027,"},{"line_number":70,"context_line":"                          loadbalancer_crd)"},{"line_number":71,"context_line":"            except k_exc.K8sClientException:"},{"line_number":72,"context_line":"                LOG.exception(\u0027Error updating KuryLoadbalancer CRD %s\u0027,"},{"line_number":73,"context_line":"                              loadbalancer_crd)"},{"line_number":74,"context_line":"                raise"},{"line_number":75,"context_line":"            return"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        if self._should_ignore(loadbalancer_crd):"},{"line_number":78,"context_line":"            LOG.debug(\"Ignoring Kubernetes service %s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"d083751d_b9aafa80","line":75,"range":{"start_line":60,"start_character":0,"end_line":75,"end_character":18},"in_reply_to":"f7e43fe4_3547bc2a","updated":"2021-03-31 15:40:18.000000000","message":"Could we just do:\n\n loadbalancer_crd[\u0027status\u0027] \u003d {}\n\nand proceed? Would it explode elsewhere?","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5863e4bd528c56b3de8e341dc326d6d51bb766f1","unresolved":true,"context_lines":[{"line_number":459,"context_line":"        if removed_ids:"},{"line_number":460,"context_line":"            loadbalancer_crd[\u0027status\u0027][\u0027members\u0027] \u003d [m for m in"},{"line_number":461,"context_line":"                                                     loadbalancer_crd["},{"line_number":462,"context_line":"                                                         \u0027status\u0027].get("},{"line_number":463,"context_line":"                                                             \u0027members\u0027, [])"},{"line_number":464,"context_line":"                                                     if m[\u0027id\u0027] not in"},{"line_number":465,"context_line":"                                                     removed_ids]"}],"source_content_type":"text/x-python","patch_set":3,"id":"d54ada17_00d95665","line":462,"updated":"2021-03-31 09:30:18.000000000","message":"Perhaps a better way to have it like this:\n\n  members \u003d [m for m in loadbalancer_crd[\u0027status\u0027].get(\u0027members\u0027, [])\n             if m[\u0027id\u0027] not in removed_ids]\n  loadbalancer_crd[\u0027status\u0027][\u0027members\u0027] \u003d members\n\nIt will be easier to decipher what is going on in the list comprehension.","commit_id":"7cf0931a99c4afb524e2525d8460a756b47d1e5c"}]}
