)]}'
{"kuryr_kubernetes/controller/handlers/lbaas.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1872906d181b585536c8e842988a437602d90fef","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            status \u003d obj_lbaas.flatten_object(_dict)"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"            try:"},{"line_number":415,"context_line":"                self._create_crd_spec(endpoints, status)"},{"line_number":416,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":417,"context_line":"                LOG.exception(\"Kubernetes Client Exception recreating \""},{"line_number":418,"context_line":"                              \"KuryrLoadBalancer CRD from annotation: %s\", ex)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_fd9bd6c5","line":415,"range":{"start_line":415,"start_character":16,"end_line":415,"end_character":56},"updated":"2020-07-31 10:53:51.000000000","message":"The CRD must also have a spec included.","commit_id":"94ab34e2334fbe4bc7993e284e293fea08e5062e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1872906d181b585536c8e842988a437602d90fef","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                              \"KuryrLoadBalancer CRD from annotation: %s\", ex)"},{"line_number":419,"context_line":"                raise k_exc.ResourceNotReady(endpoints)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        if spec:"},{"line_number":422,"context_line":"            # In this step we only need to make sure all annotations are"},{"line_number":423,"context_line":"            # removed. It may happen that the Endpoints only had spec set,"},{"line_number":424,"context_line":"            # in which case we just remove it and let the normal flow handle"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_9db45a37","line":421,"range":{"start_line":421,"start_character":8,"end_line":421,"end_character":16},"updated":"2020-07-31 10:53:51.000000000","message":"Based on the way we\u0027re handling the CRDs now, we should also have a crd created when only the spec is present.","commit_id":"94ab34e2334fbe4bc7993e284e293fea08e5062e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1872906d181b585536c8e842988a437602d90fef","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            if state:"},{"line_number":430,"context_line":"                endpoints_ann.append(k_const.K8S_ANNOTATION_LBAAS_STATE)"},{"line_number":431,"context_line":"            k8s.remove_annotations(endpoints[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":432,"context_line":"                                   *endpoints_ann)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"            service_link \u003d utils.get_service_link(endpoints)"},{"line_number":435,"context_line":"            k8s.remove_annotations(service_link,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_1da96ade","line":432,"range":{"start_line":432,"start_character":35,"end_line":432,"end_character":49},"updated":"2020-07-31 10:53:51.000000000","message":"typo","commit_id":"94ab34e2334fbe4bc7993e284e293fea08e5062e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"00faba95063425db3b7f91e17a61dcc2959d9d2c","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            ]"},{"line_number":438,"context_line":"            if state:"},{"line_number":439,"context_line":"                to_remove.append((endpoints[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":440,"context_line":"                 k_const.K8S_ANNOTATION_LBAAS_STATE))"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"            for path, name in to_remove:"},{"line_number":443,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_b63698e5","line":440,"updated":"2020-07-31 13:08:38.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"4a42241db05eb75ac5f0f81300a04b5b004f1ac5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2a24021d776cbb3df6d88dccad4d7b23528a9152","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            # No annotations, return"},{"line_number":401,"context_line":"            return False"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        if state or spec:"},{"line_number":404,"context_line":"            # Oh well, we need to do full, painful conversion, let\u0027s get"},{"line_number":405,"context_line":"            # to it. First of all we only care about the state and figure"},{"line_number":406,"context_line":"            # out spec from what we have."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_b585b2d1","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":24},"updated":"2020-08-05 11:50:37.000000000","message":"Shouldn\u0027t this now only check for spec? If spec\u0027s there, then there\u0027s the state too. I wonder if it\u0027s possible to only have state though.","commit_id":"31160d883bb461cc48a0b870572081c63d18eaf5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1b8e20248edeabc543dc86ea1dad3e9b7850d7c5","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            # No annotations, return"},{"line_number":401,"context_line":"            return False"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        if state or spec:"},{"line_number":404,"context_line":"            # Oh well, we need to do full, painful conversion, let\u0027s get"},{"line_number":405,"context_line":"            # to it. First of all we only care about the state and figure"},{"line_number":406,"context_line":"            # out spec from what we have."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_15dc5ee2","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":24},"in_reply_to":"9f560f44_b585b2d1","updated":"2020-08-05 11:54:31.000000000","message":"The spec always is filled before the state/status part. It\u0027s possible the spec is there but status is not just like we see in the api service.","commit_id":"31160d883bb461cc48a0b870572081c63d18eaf5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2a24021d776cbb3df6d88dccad4d7b23528a9152","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        if state or spec:"},{"line_number":404,"context_line":"            # Oh well, we need to do full, painful conversion, let\u0027s get"},{"line_number":405,"context_line":"            # to it. First of all we only care about the state and figure"},{"line_number":406,"context_line":"            # out spec from what we have."},{"line_number":407,"context_line":"            if state:"},{"line_number":408,"context_line":"                _dict \u003d jsonutils.loads(state)"},{"line_number":409,"context_line":"                # This is strongly using the fact that annotation\u0027s o.vo"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_551ff6b5","line":406,"range":{"start_line":405,"start_character":21,"end_line":406,"end_character":41},"updated":"2020-08-05 11:50:37.000000000","message":"Right, that\u0027s not true now, sorry for being so talkative in the comments.","commit_id":"31160d883bb461cc48a0b870572081c63d18eaf5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"b45a385900b0219cefe9053f4dd2dcd8855fbe3f","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                config.CONF.kubernetes.endpoints_driver_octavia_provider)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def on_present(self, endpoints):"},{"line_number":269,"context_line":"        if self._move_annotations_to_crd(endpoints):"},{"line_number":270,"context_line":"            return"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":273,"context_line":"        loadbalancer_crd \u003d k8s.get_loadbalancer_crd(endpoints)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_ebe41e3e","line":270,"range":{"start_line":269,"start_character":0,"end_line":270,"end_character":18},"updated":"2020-08-11 07:04:15.000000000","message":"interestingly for the other 3 CRDs we have follow a different approach (one each):\n- namespace/network CRDs --\u003e namespace handler init function\n- networkpolicy CRDs --\u003e kuryrnetwork handler (instead of policy handler) init function\n- pods/ports CRDs --\u003e similar to this, on_present per pod modification.\n\nThis is just a temporal thing to remove in follow up versions, but I wonder if we can somehow unify them. Caveat I see of having it on \"on_present\" is that you will never know when the code can be removed if there are pod/svc not modified (though with the re-processing of events that should not happen I suppose)","commit_id":"d80e1bff997df66d025ebb3d222ba6489a1207a1"}]}
