)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"1fe1097df768e3299295b81deb1ebed8619ef81e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It can take a while for a pod to have annotations and a hostIP"},{"line_number":10,"context_line":"defined. It is also possible that a pod is deleted before"},{"line_number":11,"context_line":"the state is set, causing a NotFound k8s exceptions. Lastely,"},{"line_number":12,"context_line":"a service migth be missing the lbaas_spec annotation, which causes"},{"line_number":13,"context_line":"the event handled on the endpoints to crash. All this scenarios"},{"line_number":14,"context_line":"can be avoided by raising a resource not ready exception, which"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_61849b5e","line":11,"range":{"start_line":11,"start_character":53,"end_line":11,"end_character":60},"updated":"2019-08-22 08:03:08.000000000","message":"Lastly","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"1fe1097df768e3299295b81deb1ebed8619ef81e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It can take a while for a pod to have annotations and a hostIP"},{"line_number":10,"context_line":"defined. It is also possible that a pod is deleted before"},{"line_number":11,"context_line":"the state is set, causing a NotFound k8s exceptions. Lastely,"},{"line_number":12,"context_line":"a service migth be missing the lbaas_spec annotation, which causes"},{"line_number":13,"context_line":"the event handled on the endpoints to crash. All this scenarios"},{"line_number":14,"context_line":"can be avoided by raising a resource not ready exception, which"},{"line_number":15,"context_line":"allows the operation to be retried."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_81875761","line":12,"range":{"start_line":12,"start_character":10,"end_line":12,"end_character":15},"updated":"2019-08-22 08:03:08.000000000","message":"might","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"}],"kuryr_kubernetes/controller/drivers/vif_pool.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"35d84d366266baa3a2fa110ff8772a7f01637d61","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            host_addr \u003d self._get_host_addr(pod)"},{"line_number":194,"context_line":"        except KeyError:"},{"line_number":195,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":196,"context_line":"            LOG.warning(\"Pod %s has not been scheduled yet.\", pod_name)"},{"line_number":197,"context_line":"            raise exceptions.ResourceNotReady(pod)"},{"line_number":198,"context_line":"        pool_key \u003d self._get_pool_key(host_addr, project_id, None, subnets)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_ab9ea666","line":197,"range":{"start_line":195,"start_character":0,"end_line":197,"end_character":50},"updated":"2019-08-27 11:58:31.000000000","message":"Is this really necessary? We\u0027ll get an UPDATE event once the pod will get scheduled, right?","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"44b3efba0bb0d05ce01e1289a988adfd7b84c387","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            host_addr \u003d self._get_host_addr(pod)"},{"line_number":194,"context_line":"        except KeyError:"},{"line_number":195,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":196,"context_line":"            LOG.warning(\"Pod %s has not been scheduled yet.\", pod_name)"},{"line_number":197,"context_line":"            raise exceptions.ResourceNotReady(pod)"},{"line_number":198,"context_line":"        pool_key \u003d self._get_pool_key(host_addr, project_id, None, subnets)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_3c419b0b","line":197,"range":{"start_line":195,"start_character":0,"end_line":197,"end_character":50},"in_reply_to":"7faddb67_4ebe2001","updated":"2019-08-27 15:36:58.000000000","message":"Good point, Michal. Thanks!","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"665ef9981d9ff74d0d8b66aeccc2b87f2f106594","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            host_addr \u003d self._get_host_addr(pod)"},{"line_number":194,"context_line":"        except KeyError:"},{"line_number":195,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":196,"context_line":"            LOG.warning(\"Pod %s has not been scheduled yet.\", pod_name)"},{"line_number":197,"context_line":"            raise exceptions.ResourceNotReady(pod)"},{"line_number":198,"context_line":"        pool_key \u003d self._get_pool_key(host_addr, project_id, None, subnets)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_4ebe2001","line":197,"range":{"start_line":195,"start_character":0,"end_line":197,"end_character":50},"in_reply_to":"7faddb67_8b008a68","updated":"2019-08-27 12:31:41.000000000","message":"Ah, we should actually just ignore this then. We can ignore this event and wait for the one with host address. Raising ResourceNotReady will make the handler to retry this event with exactly the same pod resource dict representation. See code [1] and notice that pod is not being fetch again from K8s API.\n\n[1] https://github.com/openstack/kuryr-kubernetes/blob/b3d808fb80e2eb58d13892b990406b10db23ff40/kuryr_kubernetes/controller/handlers/vif.py#L79-L95","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"c1c5d3415d250314c67bcda08ff1223208764d26","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            host_addr \u003d self._get_host_addr(pod)"},{"line_number":194,"context_line":"        except KeyError:"},{"line_number":195,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":196,"context_line":"            LOG.warning(\"Pod %s has not been scheduled yet.\", pod_name)"},{"line_number":197,"context_line":"            raise exceptions.ResourceNotReady(pod)"},{"line_number":198,"context_line":"        pool_key \u003d self._get_pool_key(host_addr, project_id, None, subnets)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_8b008a68","line":197,"range":{"start_line":195,"start_character":0,"end_line":197,"end_character":50},"in_reply_to":"7faddb67_ab9ea666","updated":"2019-08-27 12:09:14.000000000","message":"yes, we expect the pod to already have a host addr here, in case it does not the controller will crash and restart. We avoid this by raising this exception.","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"}],"kuryr_kubernetes/controller/handlers/lbaas.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"1fe1097df768e3299295b81deb1ebed8619ef81e","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        lb \u003d lbaas_state.loadbalancer"},{"line_number":290,"context_line":"        default_sgs \u003d config.CONF.neutron_defaults.pod_security_groups"},{"line_number":291,"context_line":"        if lbaas_spec:"},{"line_number":292,"context_line":"            lbaas_spec_sgs \u003d lbaas_spec.security_groups_ids"},{"line_number":293,"context_line":"        else:"},{"line_number":294,"context_line":"            raise k_exc.ResourceNotReady(svc_link)"},{"line_number":295,"context_line":"        if lb.security_groups and lb.security_groups !\u003d lbaas_spec_sgs:"},{"line_number":296,"context_line":"            sgs \u003d [lb_sg for lb_sg in lb.security_groups"},{"line_number":297,"context_line":"                   if lb_sg not in default_sgs]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_c1dd4f6d","line":294,"range":{"start_line":291,"start_character":0,"end_line":294,"end_character":50},"updated":"2019-08-22 08:03:08.000000000","message":"although I agree with this... I\u0027m not sure how it is possible that lbaas_spec is null at this point. That should have been avoided by the should_ignore function as the endpoint handler is only processed once the service handle adds the annotations on the endpoints (if memory works)","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"2950b3975037f2c91ef09fadef9663f754018c2e","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        lb \u003d lbaas_state.loadbalancer"},{"line_number":290,"context_line":"        default_sgs \u003d config.CONF.neutron_defaults.pod_security_groups"},{"line_number":291,"context_line":"        if lbaas_spec:"},{"line_number":292,"context_line":"            lbaas_spec_sgs \u003d lbaas_spec.security_groups_ids"},{"line_number":293,"context_line":"        else:"},{"line_number":294,"context_line":"            raise k_exc.ResourceNotReady(svc_link)"},{"line_number":295,"context_line":"        if lb.security_groups and lb.security_groups !\u003d lbaas_spec_sgs:"},{"line_number":296,"context_line":"            sgs \u003d [lb_sg for lb_sg in lb.security_groups"},{"line_number":297,"context_line":"                   if lb_sg not in default_sgs]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_dc4a1825","line":294,"range":{"start_line":291,"start_character":0,"end_line":294,"end_character":50},"in_reply_to":"7faddb67_0168471e","updated":"2019-08-22 08:40:59.000000000","message":"great! yes! we need to handle that there! (and we can keep this for safety reason (but adding a note) what do you think?","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"4145c3ba8640b94aaa6efb987044450f4ba02a8b","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        lb \u003d lbaas_state.loadbalancer"},{"line_number":290,"context_line":"        default_sgs \u003d config.CONF.neutron_defaults.pod_security_groups"},{"line_number":291,"context_line":"        if lbaas_spec:"},{"line_number":292,"context_line":"            lbaas_spec_sgs \u003d lbaas_spec.security_groups_ids"},{"line_number":293,"context_line":"        else:"},{"line_number":294,"context_line":"            raise k_exc.ResourceNotReady(svc_link)"},{"line_number":295,"context_line":"        if lb.security_groups and lb.security_groups !\u003d lbaas_spec_sgs:"},{"line_number":296,"context_line":"            sgs \u003d [lb_sg for lb_sg in lb.security_groups"},{"line_number":297,"context_line":"                   if lb_sg not in default_sgs]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_0168471e","line":294,"range":{"start_line":291,"start_character":0,"end_line":294,"end_character":50},"in_reply_to":"7faddb67_c1dd4f6d","updated":"2019-08-22 08:20:49.000000000","message":"I just noticed we are handling failures only for the endpoints and not for the SVC [1]. So, I think it\u0027s possible that the endpoints got annotated first and when the SVC was about to get annotated the controller crashed or an internal k8s API error happened, resulting in svc without annotation. \n\n[1] https://github.com/openstack/kuryr-kubernetes/blob/master/kuryr_kubernetes/utils.py#L257-L282","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"}],"kuryr_kubernetes/controller/handlers/vif.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"1fe1097df768e3299295b81deb1ebed8619ef81e","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                         resource_version\u003dpod[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":213,"context_line":"        except k_exc.K8sClientException:"},{"line_number":214,"context_line":"            for ifname, vif in state.vifs.items():"},{"line_number":215,"context_line":"                self._drv_vif_pool.release_vif(pod, vif, project_id,"},{"line_number":216,"context_line":"                                               security_groups)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _update_services(self, services, crd_pod_selectors, project_id):"},{"line_number":219,"context_line":"        for service in services.get(\u0027items\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_a15053d6","line":216,"range":{"start_line":215,"start_character":0,"end_line":216,"end_character":63},"updated":"2019-08-22 08:03:08.000000000","message":"do we need to release the vif if the set_pod_state was called from line 125? In that case the port is already associated, just waiting for being active, right?","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"4145c3ba8640b94aaa6efb987044450f4ba02a8b","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                         resource_version\u003dpod[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":213,"context_line":"        except k_exc.K8sClientException:"},{"line_number":214,"context_line":"            for ifname, vif in state.vifs.items():"},{"line_number":215,"context_line":"                self._drv_vif_pool.release_vif(pod, vif, project_id,"},{"line_number":216,"context_line":"                                               security_groups)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _update_services(self, services, crd_pod_selectors, project_id):"},{"line_number":219,"context_line":"        for service in services.get(\u0027items\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_41b5dfeb","line":216,"range":{"start_line":215,"start_character":0,"end_line":216,"end_character":63},"in_reply_to":"7faddb67_a15053d6","updated":"2019-08-22 08:20:49.000000000","message":"In that point, in case the a not found exception occurs due to pod missing, I believe the VIF should be released, as another pod for the deployment will be created with probably another IP.\nI\u0027ve seen this happen with the controller manager pod, if memory works.","commit_id":"e11e86059540dfb55ba38d0b045cf42671764c71"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5dde58fe07cab75031cdd11dece4b033419adc5f","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                    state.additional_vifs[k] \u003d vif"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            try:"},{"line_number":112,"context_line":"                self._set_pod_state(pod, state)"},{"line_number":113,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":114,"context_line":"                LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":115,"context_line":"                # FIXME(ivc): improve granularity of K8sClient exceptions:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9b725f12","line":112,"range":{"start_line":112,"start_character":15,"end_line":112,"end_character":47},"updated":"2019-08-22 15:00:48.000000000","message":"didn\u0027t you want to raise ResourceNotReady here too? Just checking... as I think this will be retried anyway","commit_id":"fe0999176a847c33560e1cb6c8af497069ebbd14"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"eee4722f2c0355cc710cfacdd89e034c62bdbafc","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                    state.additional_vifs[k] \u003d vif"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            try:"},{"line_number":112,"context_line":"                self._set_pod_state(pod, state)"},{"line_number":113,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":114,"context_line":"                LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":115,"context_line":"                # FIXME(ivc): improve granularity of K8sClient exceptions:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_4f3accc4","line":112,"range":{"start_line":112,"start_character":15,"end_line":112,"end_character":47},"in_reply_to":"7faddb67_9b725f12","updated":"2019-08-23 13:20:24.000000000","message":"It was not my intention, we didn\u0027t have any problems at this point.","commit_id":"fe0999176a847c33560e1cb6c8af497069ebbd14"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5dde58fe07cab75031cdd11dece4b033419adc5f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    try:"},{"line_number":133,"context_line":"                        self._set_pod_state(pod, state)"},{"line_number":134,"context_line":"                    except k_exc.K8sResourceNotFound as ex:"},{"line_number":135,"context_line":"                        LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":136,"context_line":"                        for ifname, vif in state.vifs.items():"},{"line_number":137,"context_line":"                            self._drv_vif_pool.release_vif("},{"line_number":138,"context_line":"                                pod, vif, project_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9b1d7fc0","line":135,"range":{"start_line":135,"start_character":35,"end_line":135,"end_character":59},"updated":"2019-08-22 15:00:48.000000000","message":"perhaps this is not the right message here, right? it should mention resource has not been found, right? perhaps also worth to use LOG.exception...","commit_id":"fe0999176a847c33560e1cb6c8af497069ebbd14"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"f54d5bf0e5875f6a1f49b5afe5663a476615d3be","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    try:"},{"line_number":133,"context_line":"                        self._set_pod_state(pod, state)"},{"line_number":134,"context_line":"                    except k_exc.K8sResourceNotFound as ex:"},{"line_number":135,"context_line":"                        LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":136,"context_line":"                        for ifname, vif in state.vifs.items():"},{"line_number":137,"context_line":"                            self._drv_vif_pool.release_vif("},{"line_number":138,"context_line":"                                pod, vif, project_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_cf2f9c3c","line":135,"range":{"start_line":135,"start_character":35,"end_line":135,"end_character":59},"in_reply_to":"7faddb67_9b1d7fc0","updated":"2019-08-23 14:42:36.000000000","message":"I think it\u0027s okay to use this message as the not found will be stated in the exceptions logged. I\u0027m updating it to use LOG.exception","commit_id":"fe0999176a847c33560e1cb6c8af497069ebbd14"}],"kuryr_kubernetes/utils.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5dde58fe07cab75031cdd11dece4b033419adc5f","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        k8s.annotate(svc_link,"},{"line_number":281,"context_line":"                     {constants.K8S_ANNOTATION_LBAAS_SPEC: annotation},"},{"line_number":282,"context_line":"                     resource_version\u003dservice[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":283,"context_line":"    except exceptions.K8sResourceNotFound:"},{"line_number":284,"context_line":"        raise exceptions.ResourceNotReady(svc_link)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"def get_lbaas_state(endpoint):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_bb971b46","line":284,"range":{"start_line":283,"start_character":0,"end_line":284,"end_character":51},"updated":"2019-08-22 15:00:48.000000000","message":"should you also debug and raise exception.K8sclientException as for the endpoints? This way we may know we have hit it this","commit_id":"fe0999176a847c33560e1cb6c8af497069ebbd14"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"35d84d366266baa3a2fa110ff8772a7f01637d61","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                     {constants.K8S_ANNOTATION_LBAAS_SPEC: annotation},"},{"line_number":282,"context_line":"                     resource_version\u003dservice[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":283,"context_line":"    except exceptions.K8sResourceNotFound:"},{"line_number":284,"context_line":"        raise exceptions.ResourceNotReady(svc_link)"},{"line_number":285,"context_line":"    except exceptions.K8sClientException:"},{"line_number":286,"context_line":"        LOG.exception(\"Failed to annotate svc %r\", svc_link)"},{"line_number":287,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_2b48762c","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":51},"updated":"2019-08-27 11:58:31.000000000","message":"It might still be useful to log the original exception here.","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"44b3efba0bb0d05ce01e1289a988adfd7b84c387","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                     {constants.K8S_ANNOTATION_LBAAS_SPEC: annotation},"},{"line_number":282,"context_line":"                     resource_version\u003dservice[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":283,"context_line":"    except exceptions.K8sResourceNotFound:"},{"line_number":284,"context_line":"        raise exceptions.ResourceNotReady(svc_link)"},{"line_number":285,"context_line":"    except exceptions.K8sClientException:"},{"line_number":286,"context_line":"        LOG.exception(\"Failed to annotate svc %r\", svc_link)"},{"line_number":287,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_7c3713b1","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":51},"in_reply_to":"7faddb67_2b48762c","updated":"2019-08-27 15:36:58.000000000","message":"Done","commit_id":"bcf52edb32ff7ba63a25f4a3a264d3dd252603ff"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5afc45dbf28f25c11cd53e7c8029282ef288d863","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                     {constants.K8S_ANNOTATION_LBAAS_SPEC: annotation},"},{"line_number":282,"context_line":"                     resource_version\u003dservice[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":283,"context_line":"    except exceptions.K8sResourceNotFound as ex:"},{"line_number":284,"context_line":"        LOG.debug(\"Failed to annotate svc: %s\", ex)"},{"line_number":285,"context_line":"        raise exceptions.ResourceNotReady(svc_link)"},{"line_number":286,"context_line":"    except exceptions.K8sClientException as ex:"},{"line_number":287,"context_line":"        LOG.exception(\"Failed to annotate svc: %r\", ex)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_fca9c324","line":284,"range":{"start_line":284,"start_character":8,"end_line":284,"end_character":51},"updated":"2019-08-27 15:58:49.000000000","message":"perhaps worth to add the same on line 275","commit_id":"5e4f4fceb234661e7a3411da60f5a64892289793"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5afc45dbf28f25c11cd53e7c8029282ef288d863","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    except exceptions.K8sResourceNotFound as ex:"},{"line_number":284,"context_line":"        LOG.debug(\"Failed to annotate svc: %s\", ex)"},{"line_number":285,"context_line":"        raise exceptions.ResourceNotReady(svc_link)"},{"line_number":286,"context_line":"    except exceptions.K8sClientException as ex:"},{"line_number":287,"context_line":"        LOG.exception(\"Failed to annotate svc: %r\", ex)"},{"line_number":288,"context_line":"        raise"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_dc008738","line":287,"range":{"start_line":286,"start_character":0,"end_line":287,"end_character":55},"updated":"2019-08-27 15:58:49.000000000","message":"LOG.exception already adds info about the exception, so either you don\u0027t include \"as ex\" and remove the %r on the error message, or you do similar to what is done for endpoints on line 276-278","commit_id":"5e4f4fceb234661e7a3411da60f5a64892289793"}]}
