)]}'
{"kubernetes_crds/kuryr_crds/kuryrport.yaml":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        openAPIV3Schema:"},{"line_number":22,"context_line":"          type: object"},{"line_number":23,"context_line":"          properties:"},{"line_number":24,"context_line":"            spec:"},{"line_number":25,"context_line":"              type: object"},{"line_number":26,"context_line":"              properties:"},{"line_number":27,"context_line":"                podUid:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"bf51134e_f9f565cc","line":24,"range":{"start_line":24,"start_character":12,"end_line":24,"end_character":16},"updated":"2020-07-12 11:26:05.000000000","message":"It might be good to include which objects are required for the spec. You can take a look on how we included that on the NP crd https://github.com/openstack/kuryr-kubernetes/blob/master/kubernetes_crds/kuryr_crds/kuryrnetpolicy.yaml#L32-L37.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        openAPIV3Schema:"},{"line_number":22,"context_line":"          type: object"},{"line_number":23,"context_line":"          properties:"},{"line_number":24,"context_line":"            spec:"},{"line_number":25,"context_line":"              type: object"},{"line_number":26,"context_line":"              properties:"},{"line_number":27,"context_line":"                podUid:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"bf51134e_8b632b1a","line":24,"range":{"start_line":24,"start_character":12,"end_line":24,"end_character":16},"in_reply_to":"bf51134e_f9f565cc","updated":"2020-07-13 11:00:25.000000000","message":"I was thinking about that, although it seems, that all of the properties are needed - even if initially vif property is an empty object.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    kind: KuryrPort"},{"line_number":12,"context_line":"    shortNames:"},{"line_number":13,"context_line":"    - kp"},{"line_number":14,"context_line":"    - kuryrp"},{"line_number":15,"context_line":"    - kport"},{"line_number":16,"context_line":"  versions:"},{"line_number":17,"context_line":"    - name: v1"},{"line_number":18,"context_line":"      served: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"bf51134e_77d6c355","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":11},"updated":"2020-07-23 15:59:32.000000000","message":"Hm, I\u0027d probably stick with just kp.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    kind: KuryrPort"},{"line_number":12,"context_line":"    shortNames:"},{"line_number":13,"context_line":"    - kp"},{"line_number":14,"context_line":"    - kuryrp"},{"line_number":15,"context_line":"    - kport"},{"line_number":16,"context_line":"  versions:"},{"line_number":17,"context_line":"    - name: v1"},{"line_number":18,"context_line":"      served: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"bf51134e_b176a43d","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":11},"in_reply_to":"bf51134e_77d6c355","updated":"2020-07-23 18:57:52.000000000","message":"ack.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    kind: KuryrPort"},{"line_number":12,"context_line":"    shortNames:"},{"line_number":13,"context_line":"    - kp"},{"line_number":14,"context_line":"    - kuryrp"},{"line_number":15,"context_line":"    - kport"},{"line_number":16,"context_line":"  versions:"},{"line_number":17,"context_line":"    - name: v1"},{"line_number":18,"context_line":"      served: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"bf51134e_ce99eed0","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":11},"in_reply_to":"bf51134e_b176a43d","updated":"2020-07-24 09:35:08.000000000","message":"agree","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1bc4249fb7471207fe2ea052f01c8d395b7db3b1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"              properties:"},{"line_number":29,"context_line":"                podUid:"},{"line_number":30,"context_line":"                  type: string"},{"line_number":31,"context_line":"                podNodename:"},{"line_number":32,"context_line":"                  type: string"},{"line_number":33,"context_line":"                vifs:"},{"line_number":34,"context_line":"                  type: object"}],"source_content_type":"text/x-yaml","patch_set":20,"id":"9f560f44_be59abff","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":27},"updated":"2020-07-27 14:03:31.000000000","message":"Ah, seems like K8s API capitalizes this as nodeName, so doing podNodeName here might be better.","commit_id":"d1f4abd4579ec257d9d1c1cd750c99180d2578a1"}],"kuryr_kubernetes/cni/daemon/service.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done_kp,"},{"line_number":193,"context_line":"                                                              self.on_del_kp))"},{"line_number":194,"context_line":"        # self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_d06c999d","line":195,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done_kp,"},{"line_number":193,"context_line":"                                                              self.on_del_kp))"},{"line_number":194,"context_line":"        # self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_b06765b7","line":195,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_1008d1d7","line":198,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_f00a7dcf","line":198,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.is_running \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_500ec9e4","line":199,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.is_running \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_30119505","line":199,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done_kp,"},{"line_number":193,"context_line":"                                                              self.on_del_kp))"},{"line_number":194,"context_line":"        # self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_0b0edfe3","line":195,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done_kp,"},{"line_number":193,"context_line":"                                                              self.on_del_kp))"},{"line_number":194,"context_line":"        # self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_eb10cb02","line":195,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_4bfbb7bf","line":198,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                                                     # self.on_deleted))"},{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_2bf643d8","line":198,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.is_running \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_8b014fb2","line":199,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E116 unexpected indentation (comment)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":197,"context_line":"        # self.watcher.add(\"%(base)s/pods?fieldSelector\u003dspec.nodeName\u003d\""},{"line_number":198,"context_line":"                         # \"%(node_name)s\" % {\u0027base\u0027: k_const.K8S_API_BASE,"},{"line_number":199,"context_line":"                                            # \u0027node_name\u0027: self._get_nodename()})"},{"line_number":200,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.is_running \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_6bfcbbb4","line":199,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"755f0464624ecd1cf7edbc9eb94322a4346b6f03","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                #              need to care about other changes now."},{"line_number":230,"context_line":"                old_vifs \u003d {"},{"line_number":231,"context_line":"                    ifname:"},{"line_number":232,"context_line":"                        base.VersionedObject.obj_from_primitive(vif_obj) for"},{"line_number":233,"context_line":"                        ifname, vif_obj in ("},{"line_number":234,"context_line":"                            self.registry[pod_name][\u0027vifs\u0027].items())"},{"line_number":235,"context_line":"                }"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_3b5ddf14","line":232,"updated":"2020-06-26 16:23:34.000000000","message":"pep8: F821 undefined name \u0027base\u0027","commit_id":"a294ccd00cae96a6adfec20e990287f52367654e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                              self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_598e1179","line":195,"range":{"start_line":195,"start_character":8,"end_line":195,"end_character":61},"updated":"2020-07-12 11:26:05.000000000","message":"Shouldn\u0027t we keep watching the CRDs filtered by the node running the cni?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                              self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_f00a9223","line":195,"range":{"start_line":195,"start_character":8,"end_line":195,"end_character":61},"in_reply_to":"bf51134e_598e1179","updated":"2020-07-13 09:24:18.000000000","message":"yes, but can we do that for CRDs?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.KuryrPortCallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                              self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_ab6eeffc","line":195,"range":{"start_line":195,"start_character":8,"end_line":195,"end_character":61},"in_reply_to":"bf51134e_f00a9223","updated":"2020-07-13 11:00:25.000000000","message":"Unfortunately, there is no way to use selectors on CRDs.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_6d1b961b","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"updated":"2020-07-23 15:59:32.000000000","message":"No need to format this one, right? ;)","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0a8ae9ced6007efb1467d2865ead93bfac85ca52","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_84beb5fc","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_04f2a506","updated":"2020-07-24 11:09:24.000000000","message":"But that would need to get in quite fast, otherwise we\u0027d need to think about CRDs with and without labels and that gets complicated.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"132a4d2787185e3dd2595879a4551017394097d4","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_ce93aeff","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_2e918a9b","updated":"2020-07-24 09:41:04.000000000","message":"That\u0027s not a bad idea if it works. And according to [1] it might.\n\n[1] https://github.com/kubernetes/kubernetes/issues/59451","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"94e4a7e284d2f1487a6a68b85288bae5b99b8d82","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_04f2a506","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_69a6dcad","updated":"2020-07-24 11:06:41.000000000","message":"works for me to have it as a follow up/bug","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_71a1ac95","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_6d1b961b","updated":"2020-07-23 18:57:52.000000000","message":"Heh. Right. Selectors doesn\u0027t work anyway, while I was planned to use them here, hence the fstring.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_2e918a9b","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_71a1ac95","updated":"2020-07-24 09:35:08.000000000","message":"can we use labels? and use node label on the kuryrports related to the node it is in? to ensure cnis only listen to events on their own node?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"9aa9c99ab39890e6eb6c4080546b2e74807aee37","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_04346549","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_84beb5fc","updated":"2020-07-24 11:46:30.000000000","message":"right, labels can probably be added already... well an this change should be also 1 line... so perhaps it can be part of the same PS as it is not going to be that different and to avoid the issue dulek mentioned","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"0086b009246941b73ecab17fd8ac1f90bd25b853","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":193,"context_line":"                                                     self.on_deleted))"},{"line_number":194,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":195,"context_line":"        self.watcher.add(f\"{k_const.K8S_API_CRD_KURYRPORTS}\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.is_running \u003d True"},{"line_number":198,"context_line":"        self.health_thread \u003d threading.Thread("}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_69a6dcad","line":195,"range":{"start_line":195,"start_character":25,"end_line":195,"end_character":60},"in_reply_to":"bf51134e_ce93aeff","updated":"2020-07-24 10:24:22.000000000","message":"Can it be done as a bugfix maybe?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"fd8e525a7501a71597494fb11913fea9d4506c1a","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":194,"context_line":"                                                     self.on_deleted))"},{"line_number":195,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":196,"context_line":"        # TODO(gryf): maybe labels could be an option for selecting kuryrports"},{"line_number":197,"context_line":"        # which relates to the node."},{"line_number":198,"context_line":"        query_label \u003d urllib.parse.quote_plus(f\u0027{k_const.KURYRPORT_LABEL}\u003d\u0027"},{"line_number":199,"context_line":"                                              f\u0027{self._get_nodename()}\u0027)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_66a8171f","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":36},"updated":"2020-07-28 14:31:02.000000000","message":"Should this get removed?","commit_id":"a9062e6b3bf52f9a40f11541e72256b1e6c53bc0"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"73e9e3bc0e0f1d45c6a0b48a39173a69d6a73542","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        self.pipeline.register(h_cni.CallbackHandler(self.on_done,"},{"line_number":194,"context_line":"                                                     self.on_deleted))"},{"line_number":195,"context_line":"        self.watcher \u003d k_watcher.Watcher(self.pipeline)"},{"line_number":196,"context_line":"        # TODO(gryf): maybe labels could be an option for selecting kuryrports"},{"line_number":197,"context_line":"        # which relates to the node."},{"line_number":198,"context_line":"        query_label \u003d urllib.parse.quote_plus(f\u0027{k_const.KURYRPORT_LABEL}\u003d\u0027"},{"line_number":199,"context_line":"                                              f\u0027{self._get_nodename()}\u0027)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_05895074","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":36},"in_reply_to":"9f560f44_66a8171f","updated":"2020-07-28 14:56:07.000000000","message":"Definitely.","commit_id":"a9062e6b3bf52f9a40f11541e72256b1e6c53bc0"}],"kuryr_kubernetes/cni/handlers.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from kuryr_kubernetes.handlers import dispatch as k_dis"},{"line_number":26,"context_line":"from kuryr_kubernetes.handlers import k8s_base"},{"line_number":27,"context_line":"from kuryr_kubernetes import utils"},{"line_number":28,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b943d83e","line":28,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: H306: imports not in alphabetical order (kuryr_kubernetes.utils, kuryr_kubernetes.os_vif_util)","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        if self._del_callback:"},{"line_number":112,"context_line":"            self._del_callback(pod)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":115,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_90fb41bf","line":114,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        if self._del_callback:"},{"line_number":112,"context_line":"            self._del_callback(pod)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":115,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_cb6227ae","line":114,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"755f0464624ecd1cf7edbc9eb94322a4346b6f03","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if self._del_callback:"},{"line_number":113,"context_line":"            self._del_callback(pod)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":116,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_1b6c5bcc","line":115,"updated":"2020-06-26 16:23:34.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"a294ccd00cae96a6adfec20e990287f52367654e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self._del_callback(pod)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":117,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"},{"line_number":120,"context_line":"        super(KuryrPortCallbackHandler, self).__init__(None, on_vif)"},{"line_number":121,"context_line":"        self._del_callback \u003d on_del"},{"line_number":122,"context_line":"        self._kuryrport \u003d None"},{"line_number":123,"context_line":"        self._callback_vifs \u003d None"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def should_callback(self, kuryrport, vifs):"},{"line_number":126,"context_line":"        \"\"\"Called after all vifs have been processed"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        Calls callback if there was at least one vif in the CRD"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        :param kuryrport: dict containing Kubernetes KuryrPort CRD object"},{"line_number":131,"context_line":"        :param vifs: dict containing os_vif VIF objects and ifnames"},{"line_number":132,"context_line":"        :returns True/False"},{"line_number":133,"context_line":"        \"\"\""},{"line_number":134,"context_line":"        self._kuryrport \u003d kuryrport"},{"line_number":135,"context_line":"        self._callback_vifs \u003d vifs"},{"line_number":136,"context_line":"        if vifs:"},{"line_number":137,"context_line":"            return True"},{"line_number":138,"context_line":"        return False"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def callback(self):"},{"line_number":141,"context_line":"        self._callback(self._kuryrport, self._callback_vifs)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def on_deleted(self, kuryrport):"},{"line_number":144,"context_line":"        LOG.debug(\"Got kuryrport %s deletion event.\","},{"line_number":145,"context_line":"                  kuryrport[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":146,"context_line":"        if self._del_callback:"},{"line_number":147,"context_line":"            self._del_callback(kuryrport)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CNIPipeline(k_dis.EventPipeline):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_19f939c7","line":147,"range":{"start_line":116,"start_character":0,"end_line":147,"end_character":41},"updated":"2020-07-12 11:26:05.000000000","message":"This looks really similar to the CallbackHandler, and I don\u0027t see the CallbackHandler being used anymore. Perhaps we could update it instead of creating a new one?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self._del_callback(pod)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":117,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"},{"line_number":120,"context_line":"        super(KuryrPortCallbackHandler, self).__init__(None, on_vif)"},{"line_number":121,"context_line":"        self._del_callback \u003d on_del"},{"line_number":122,"context_line":"        self._kuryrport \u003d None"},{"line_number":123,"context_line":"        self._callback_vifs \u003d None"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def should_callback(self, kuryrport, vifs):"},{"line_number":126,"context_line":"        \"\"\"Called after all vifs have been processed"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        Calls callback if there was at least one vif in the CRD"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        :param kuryrport: dict containing Kubernetes KuryrPort CRD object"},{"line_number":131,"context_line":"        :param vifs: dict containing os_vif VIF objects and ifnames"},{"line_number":132,"context_line":"        :returns True/False"},{"line_number":133,"context_line":"        \"\"\""},{"line_number":134,"context_line":"        self._kuryrport \u003d kuryrport"},{"line_number":135,"context_line":"        self._callback_vifs \u003d vifs"},{"line_number":136,"context_line":"        if vifs:"},{"line_number":137,"context_line":"            return True"},{"line_number":138,"context_line":"        return False"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def callback(self):"},{"line_number":141,"context_line":"        self._callback(self._kuryrport, self._callback_vifs)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def on_deleted(self, kuryrport):"},{"line_number":144,"context_line":"        LOG.debug(\"Got kuryrport %s deletion event.\","},{"line_number":145,"context_line":"                  kuryrport[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":146,"context_line":"        if self._del_callback:"},{"line_number":147,"context_line":"            self._del_callback(kuryrport)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CNIPipeline(k_dis.EventPipeline):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_502b7e93","line":147,"range":{"start_line":116,"start_character":0,"end_line":147,"end_character":41},"in_reply_to":"bf51134e_19f939c7","updated":"2020-07-13 09:24:18.000000000","message":"yep, why is this needed instead of the callbackhandler?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self._del_callback(pod)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class KuryrPortCallbackHandler(CNIHandlerBase):"},{"line_number":117,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_KURYRPORT"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def __init__(self, on_vif, on_del\u003dNone):"},{"line_number":120,"context_line":"        super(KuryrPortCallbackHandler, self).__init__(None, on_vif)"},{"line_number":121,"context_line":"        self._del_callback \u003d on_del"},{"line_number":122,"context_line":"        self._kuryrport \u003d None"},{"line_number":123,"context_line":"        self._callback_vifs \u003d None"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def should_callback(self, kuryrport, vifs):"},{"line_number":126,"context_line":"        \"\"\"Called after all vifs have been processed"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        Calls callback if there was at least one vif in the CRD"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        :param kuryrport: dict containing Kubernetes KuryrPort CRD object"},{"line_number":131,"context_line":"        :param vifs: dict containing os_vif VIF objects and ifnames"},{"line_number":132,"context_line":"        :returns True/False"},{"line_number":133,"context_line":"        \"\"\""},{"line_number":134,"context_line":"        self._kuryrport \u003d kuryrport"},{"line_number":135,"context_line":"        self._callback_vifs \u003d vifs"},{"line_number":136,"context_line":"        if vifs:"},{"line_number":137,"context_line":"            return True"},{"line_number":138,"context_line":"        return False"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def callback(self):"},{"line_number":141,"context_line":"        self._callback(self._kuryrport, self._callback_vifs)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def on_deleted(self, kuryrport):"},{"line_number":144,"context_line":"        LOG.debug(\"Got kuryrport %s deletion event.\","},{"line_number":145,"context_line":"                  kuryrport[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":146,"context_line":"        if self._del_callback:"},{"line_number":147,"context_line":"            self._del_callback(kuryrport)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CNIPipeline(k_dis.EventPipeline):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_2b53ff3a","line":147,"range":{"start_line":116,"start_character":0,"end_line":147,"end_character":41},"in_reply_to":"bf51134e_502b7e93","updated":"2020-07-13 11:00:25.000000000","message":"TLDR: I\u0027ll change it.\n\nI was using different callback handler, because I\u0027d developed CRD handling in parallel with existing vif handler. So eventually, Callback Handler has stopped being used. Note, that even if the implementation is working, it is still work in progress, so the leftovers are here and there :)","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8620226b888cdd2833b38c9330dbdea9ac789959","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class CNIHandlerBase(k8s_base.ResourceEventHandler, metaclass\u003dabc.ABCMeta):"},{"line_number":33,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_POD"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, cni, on_done):"},{"line_number":36,"context_line":"        self._cni \u003d cni"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_143990f1","line":33,"range":{"start_line":33,"start_character":4,"end_line":33,"end_character":37},"updated":"2020-07-20 11:40:59.000000000","message":"Should this now be K8S_OBJ_KURYRPORT and remove the object_kind reference from line 85?","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"495c711f9f692c9634be363a1359ab12b09d6eef","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class CNIHandlerBase(k8s_base.ResourceEventHandler, metaclass\u003dabc.ABCMeta):"},{"line_number":33,"context_line":"    OBJECT_KIND \u003d k_const.K8S_OBJ_POD"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, cni, on_done):"},{"line_number":36,"context_line":"        self._cni \u003d cni"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_1b2194fd","line":33,"range":{"start_line":33,"start_character":4,"end_line":33,"end_character":37},"in_reply_to":"bf51134e_143990f1","updated":"2020-07-22 13:08:17.000000000","message":"Yeah. A leftover.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8620226b888cdd2833b38c9330dbdea9ac789959","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        raise NotImplementedError()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _get_vifs(self, pod):"},{"line_number":64,"context_line":"        # TODO(gryf): switch to gather events from CRD rather, than a pod."},{"line_number":65,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":66,"context_line":"        try:"},{"line_number":67,"context_line":"            kuryrport_crd \u003d k8s.get(f\u0027{k_const.K8S_API_CRD_NAMESPACES}/\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_347134e0","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":74},"updated":"2020-07-20 11:40:59.000000000","message":"leftover?","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"495c711f9f692c9634be363a1359ab12b09d6eef","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        raise NotImplementedError()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _get_vifs(self, pod):"},{"line_number":64,"context_line":"        # TODO(gryf): switch to gather events from CRD rather, than a pod."},{"line_number":65,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":66,"context_line":"        try:"},{"line_number":67,"context_line":"            kuryrport_crd \u003d k8s.get(f\u0027{k_const.K8S_API_CRD_NAMESPACES}/\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_3b6bb81f","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":74},"in_reply_to":"bf51134e_347134e0","updated":"2020-07-22 13:08:17.000000000","message":"Yup :)","commit_id":"061accec689e743004b8c2cca9545419b72730f1"}],"kuryr_kubernetes/cni/plugins/k8s_cni_registry.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8620226b888cdd2833b38c9330dbdea9ac789959","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return vifs[k_const.DEFAULT_IFNAME]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def delete(self, params):"},{"line_number":103,"context_line":"        pod_name \u003d self._get_obj_name(params)"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            reg_ci \u003d self.registry[pod_name][\u0027containerid\u0027]"},{"line_number":106,"context_line":"            LOG.debug(\u0027Read containerid \u003d %s for pod %s\u0027, reg_ci, pod_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_373656e9","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":16},"updated":"2020-07-20 11:40:59.000000000","message":"should this be kp_name?","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"495c711f9f692c9634be363a1359ab12b09d6eef","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return vifs[k_const.DEFAULT_IFNAME]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def delete(self, params):"},{"line_number":103,"context_line":"        pod_name \u003d self._get_obj_name(params)"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            reg_ci \u003d self.registry[pod_name][\u0027containerid\u0027]"},{"line_number":106,"context_line":"            LOG.debug(\u0027Read containerid \u003d %s for pod %s\u0027, reg_ci, pod_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_dbd27cd1","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":16},"in_reply_to":"bf51134e_373656e9","updated":"2020-07-22 13:08:17.000000000","message":"Right. Technically it\u0027s also pod name, since kuryrport CRD have the same name as the pod, just to be able to query API for it (sadly, we cannot use selectors for CRDs), it is the name of CRD, which we store on registry.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"fd8e525a7501a71597494fb11913fea9d4506c1a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"RETRY_DELAY \u003d 1000  # 1 second in milliseconds"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# TODO(dulek): Another corner case is (and was) when pod is deleted before it\u0027s"},{"line_number":34,"context_line":"#              annotated by controller or even noticed by any watcher. Kubelet"},{"line_number":35,"context_line":"#              will try to delete such vif, but we will have no data about it."},{"line_number":36,"context_line":"#              This is currently worked around by returning successfully in"},{"line_number":37,"context_line":"#              case of timing out in delete. To solve this properly we need"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_01b665fb","line":34,"range":{"start_line":33,"start_character":15,"end_line":34,"end_character":69},"updated":"2020-07-28 14:31:02.000000000","message":"may need update","commit_id":"a9062e6b3bf52f9a40f11541e72256b1e6c53bc0"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"73e9e3bc0e0f1d45c6a0b48a39173a69d6a73542","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"RETRY_DELAY \u003d 1000  # 1 second in milliseconds"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# TODO(dulek): Another corner case is (and was) when pod is deleted before it\u0027s"},{"line_number":34,"context_line":"#              annotated by controller or even noticed by any watcher. Kubelet"},{"line_number":35,"context_line":"#              will try to delete such vif, but we will have no data about it."},{"line_number":36,"context_line":"#              This is currently worked around by returning successfully in"},{"line_number":37,"context_line":"#              case of timing out in delete. To solve this properly we need"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_e5e6dc44","line":34,"range":{"start_line":33,"start_character":15,"end_line":34,"end_character":69},"in_reply_to":"9f560f44_01b665fb","updated":"2020-07-28 14:56:07.000000000","message":"ack.","commit_id":"a9062e6b3bf52f9a40f11541e72256b1e6c53bc0"}],"kuryr_kubernetes/constants.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"POD_FINALIZER \u003d \u0027openstack.org/pod\u0027"},{"line_number":66,"context_line":"KURYRNETWORK_FINALIZER \u003d \u0027kuryrnetwork.finalizers.kuryr.openstack.org\u0027"},{"line_number":67,"context_line":"KURYRPORT_FINALIZER \u003d \u0027kuryrport.finalizers.kuryr.openstack.org\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"K8S_OS_VIF_NOOP_PLUGIN \u003d \"noop\""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_b03c9ae1","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":64},"updated":"2020-07-13 09:24:18.000000000","message":"seems the right format is different (take a look at dulek\u0027s patch)","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"POD_FINALIZER \u003d \u0027openstack.org/pod\u0027"},{"line_number":66,"context_line":"KURYRNETWORK_FINALIZER \u003d \u0027kuryrnetwork.finalizers.kuryr.openstack.org\u0027"},{"line_number":67,"context_line":"KURYRPORT_FINALIZER \u003d \u0027kuryrport.finalizers.kuryr.openstack.org\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"K8S_OS_VIF_NOOP_PLUGIN \u003d \"noop\""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_8b1a0b7a","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":64},"in_reply_to":"bf51134e_b03c9ae1","updated":"2020-07-13 11:00:25.000000000","message":"For CRD its perfectly fine. You can use any arbitrary string. For pod (as in line 65) it cannot be whatever string, but fully qualified domain name with something (anything) for path in the URL.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":62,"context_line":"K8S_ANNOTATION_CURRENT_DRIVER \u003d \u0027current_driver\u0027"},{"line_number":63,"context_line":"K8S_ANNOTATION_NEUTRON_PORT \u003d \u0027neutron_id\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"POD_FINALIZER \u003d \u0027openstack.org/pod\u0027"},{"line_number":66,"context_line":"KURYRNETWORK_FINALIZER \u003d \u0027kuryrnetwork.finalizers.kuryr.openstack.org\u0027"},{"line_number":67,"context_line":"KURYRPORT_FINALIZER \u003d \u0027kuryrport.finalizers.kuryr.openstack.org\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"K8S_OS_VIF_NOOP_PLUGIN \u003d \"noop\""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_325e1976","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":64},"updated":"2020-07-23 15:59:32.000000000","message":"Let\u0027s make sure new finalizers follow the same pattern, I think the one on NP CRD patch is pretty okay:\n\n NETWORKPOLICY_FINALIZER \u003d \u0027kuryr.openstack.org/networkpolicy-finalizer\u0027\n\nOtherwise sometimes K8s API validations seem to be unhappy.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":62,"context_line":"K8S_ANNOTATION_CURRENT_DRIVER \u003d \u0027current_driver\u0027"},{"line_number":63,"context_line":"K8S_ANNOTATION_NEUTRON_PORT \u003d \u0027neutron_id\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"POD_FINALIZER \u003d \u0027openstack.org/pod\u0027"},{"line_number":66,"context_line":"KURYRNETWORK_FINALIZER \u003d \u0027kuryrnetwork.finalizers.kuryr.openstack.org\u0027"},{"line_number":67,"context_line":"KURYRPORT_FINALIZER \u003d \u0027kuryrport.finalizers.kuryr.openstack.org\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"K8S_OS_VIF_NOOP_PLUGIN \u003d \"noop\""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_91bf20a9","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":64},"in_reply_to":"bf51134e_325e1976","updated":"2020-07-23 18:57:52.000000000","message":"According to the docs, it\u0027s just string. I don\u0027t get all the fuss around FQDN here, but okay, I\u0027ll follow the pattern.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1119efd5415291b482c6f4f7393367952d4b0e86","unresolved":false,"context_lines":[{"line_number":62,"context_line":"K8S_ANNOTATION_CURRENT_DRIVER \u003d \u0027current_driver\u0027"},{"line_number":63,"context_line":"K8S_ANNOTATION_NEUTRON_PORT \u003d \u0027neutron_id\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"POD_FINALIZER \u003d \u0027openstack.org/pod\u0027"},{"line_number":66,"context_line":"KURYRNETWORK_FINALIZER \u003d \u0027kuryrnetwork.finalizers.kuryr.openstack.org\u0027"},{"line_number":67,"context_line":"KURYRPORT_FINALIZER \u003d \u0027kuryrport.finalizers.kuryr.openstack.org\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"K8S_OS_VIF_NOOP_PLUGIN \u003d \"noop\""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_8bb7e83a","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":64},"in_reply_to":"bf51134e_91bf20a9","updated":"2020-07-24 08:01:45.000000000","message":"It\u0027s due to this undocumented validation being done on finalizers: https://github.com/kubernetes/kubernetes/blob/7ceac2baf0820fd354259aa8b7f0e37b0bc6b814/pkg/apis/core/validation/validation.go#L5594-L5604.\n\nIt\u0027s not great, but I don\u0027t really want to argue with K8s and we need to support older versions so we need to stick with those rules anyway.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"}],"kuryr_kubernetes/controller/drivers/neutron_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_vif_sgs(self, pod, security_groups):"},{"line_number":97,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":98,"context_line":"        vifs \u003d utils.get_vifs(pod)"},{"line_number":99,"context_line":"        if vifs:"},{"line_number":100,"context_line":"            # NOTE(ltomasbo): It just updates the default_vif security group"},{"line_number":101,"context_line":"            port_id \u003d vifs[constants.DEFAULT_IFNAME].id"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_9202853d","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":34},"updated":"2020-07-23 15:59:32.000000000","message":"Doesn\u0027t this have some fallback in case it was old pod and doesn\u0027t have KuryrPort yet?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1119efd5415291b482c6f4f7393367952d4b0e86","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_vif_sgs(self, pod, security_groups):"},{"line_number":97,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":98,"context_line":"        vifs \u003d utils.get_vifs(pod)"},{"line_number":99,"context_line":"        if vifs:"},{"line_number":100,"context_line":"            # NOTE(ltomasbo): It just updates the default_vif security group"},{"line_number":101,"context_line":"            port_id \u003d vifs[constants.DEFAULT_IFNAME].id"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_cbfd6009","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":34},"in_reply_to":"bf51134e_1102f06f","updated":"2020-07-24 08:01:45.000000000","message":"It might not be needed as the patch seems to be converting everything on the start.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_vif_sgs(self, pod, security_groups):"},{"line_number":97,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":98,"context_line":"        vifs \u003d utils.get_vifs(pod)"},{"line_number":99,"context_line":"        if vifs:"},{"line_number":100,"context_line":"            # NOTE(ltomasbo): It just updates the default_vif security group"},{"line_number":101,"context_line":"            port_id \u003d vifs[constants.DEFAULT_IFNAME].id"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_1102f06f","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":34},"in_reply_to":"bf51134e_9202853d","updated":"2020-07-23 18:57:52.000000000","message":"Good point.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"af642e30642cb1807acc1e2cb6d5a0d818bd13a0","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_vif_sgs(self, pod, security_groups):"},{"line_number":97,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":98,"context_line":"        vifs \u003d utils.get_vifs(pod)"},{"line_number":99,"context_line":"        if vifs:"},{"line_number":100,"context_line":"            # NOTE(ltomasbo): It just updates the default_vif security group"},{"line_number":101,"context_line":"            port_id \u003d vifs[constants.DEFAULT_IFNAME].id"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_c49f0d63","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":34},"in_reply_to":"bf51134e_ab158c9d","updated":"2020-07-24 12:49:58.000000000","message":"It\u0027s not needed. Conversion is done early, so here we should have kurport CRD already created.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"dc08088b79d51baacd838ab7e72e6231c7efc27f","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_vif_sgs(self, pod, security_groups):"},{"line_number":97,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":98,"context_line":"        vifs \u003d utils.get_vifs(pod)"},{"line_number":99,"context_line":"        if vifs:"},{"line_number":100,"context_line":"            # NOTE(ltomasbo): It just updates the default_vif security group"},{"line_number":101,"context_line":"            port_id \u003d vifs[constants.DEFAULT_IFNAME].id"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_ab158c9d","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":34},"in_reply_to":"bf51134e_cbfd6009","updated":"2020-07-24 08:32:47.000000000","message":"I\u0027ll check that.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"}],"kuryr_kubernetes/controller/drivers/utils.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from kuryr_kubernetes import clients"},{"line_number":25,"context_line":"from kuryr_kubernetes import constants"},{"line_number":26,"context_line":"from kuryr_kubernetes import exceptions as k_exc"},{"line_number":27,"context_line":"from kuryr_kubernetes import utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"OPERATORS_WITH_VALUES \u003d [constants.K8S_OPERATOR_IN,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_9076a16f","line":27,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F401 \u0027kuryr_kubernetes.utils\u0027 imported but unused","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"def get_pod_state(pod):"},{"line_number":63,"context_line":"    try:"},{"line_number":64,"context_line":"        annotations \u003d pod[\u0027metadata\u0027][\u0027annotations\u0027]"},{"line_number":65,"context_line":"        state_annotation \u003d annotations[constants.K8S_ANNOTATION_LABEL]"},{"line_number":66,"context_line":"        return True"},{"line_number":67,"context_line":"    except KeyError:"},{"line_number":68,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_70714d76","line":65,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F841 local variable \u0027state_annotation\u0027 is assigned to but never used","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from kuryr_kubernetes import clients"},{"line_number":25,"context_line":"from kuryr_kubernetes import constants"},{"line_number":26,"context_line":"from kuryr_kubernetes import exceptions as k_exc"},{"line_number":27,"context_line":"from kuryr_kubernetes import utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"OPERATORS_WITH_VALUES \u003d [constants.K8S_OPERATOR_IN,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_ab6533b7","line":27,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F401 \u0027kuryr_kubernetes.utils\u0027 imported but unused","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"def get_pod_state(pod):"},{"line_number":63,"context_line":"    try:"},{"line_number":64,"context_line":"        annotations \u003d pod[\u0027metadata\u0027][\u0027annotations\u0027]"},{"line_number":65,"context_line":"        state_annotation \u003d annotations[constants.K8S_ANNOTATION_LABEL]"},{"line_number":66,"context_line":"        return True"},{"line_number":67,"context_line":"    except KeyError:"},{"line_number":68,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_0b59bffc","line":65,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F841 local variable \u0027state_annotation\u0027 is assigned to but never used","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"755f0464624ecd1cf7edbc9eb94322a4346b6f03","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from kuryr_kubernetes import clients"},{"line_number":25,"context_line":"from kuryr_kubernetes import constants"},{"line_number":26,"context_line":"from kuryr_kubernetes import exceptions as k_exc"},{"line_number":27,"context_line":"from kuryr_kubernetes import utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"OPERATORS_WITH_VALUES \u003d [constants.K8S_OPERATOR_IN,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_fb66c7ec","line":27,"updated":"2020-06-26 16:23:34.000000000","message":"pep8: F401 \u0027kuryr_kubernetes.utils\u0027 imported but unused","commit_id":"a294ccd00cae96a6adfec20e990287f52367654e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"755f0464624ecd1cf7edbc9eb94322a4346b6f03","unresolved":false,"context_lines":[{"line_number":62,"context_line":"def get_pod_state(pod):"},{"line_number":63,"context_line":"    try:"},{"line_number":64,"context_line":"        annotations \u003d pod[\u0027metadata\u0027][\u0027annotations\u0027]"},{"line_number":65,"context_line":"        state_annotation \u003d annotations[constants.K8S_ANNOTATION_LABEL]"},{"line_number":66,"context_line":"        return True"},{"line_number":67,"context_line":"    except KeyError:"},{"line_number":68,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_5b6253d9","line":65,"updated":"2020-06-26 16:23:34.000000000","message":"pep8: F841 local variable \u0027state_annotation\u0027 is assigned to but never used","commit_id":"a294ccd00cae96a6adfec20e990287f52367654e"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"f579250822f2551a8e5a7f057355d1a226fa025e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    return pod[\u0027spec\u0027][\u0027nodeName\u0027]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def get_pod_state(pod):"},{"line_number":62,"context_line":"    try:"},{"line_number":63,"context_line":"        pod[\u0027metadata\u0027][\u0027annotations\u0027][constants.K8S_ANNOTATION_LABEL]"},{"line_number":64,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_6613f467","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":17},"updated":"2020-07-02 16:06:01.000000000","message":"perhaps this is now has_pod_state instead of get","commit_id":"a18b902e672786ab14d240bcf5df6f977c34360f"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"b42fabdd903e6ff4fd57dd317c200c15ebb2c3f6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    return pod[\u0027spec\u0027][\u0027nodeName\u0027]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def get_pod_state(pod):"},{"line_number":62,"context_line":"    try:"},{"line_number":63,"context_line":"        pod[\u0027metadata\u0027][\u0027annotations\u0027][constants.K8S_ANNOTATION_LABEL]"},{"line_number":64,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_c362a7d8","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":17},"in_reply_to":"bf51134e_6613f467","updated":"2020-07-03 06:59:41.000000000","message":"Actually, we are looking for labels alone, and yeah, that will deserve name change for this function.\n\nOTOH, this function might be unnecessary and removed, since what originally we are looking for was the information in annotation, which now resides in CRD.","commit_id":"a18b902e672786ab14d240bcf5df6f977c34360f"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    return pod[\u0027spec\u0027][\u0027nodeName\u0027]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def get_pod_state(pod):"},{"line_number":63,"context_line":"    try:"},{"line_number":64,"context_line":"        pod[\u0027metadata\u0027][\u0027annotations\u0027][constants.K8S_ANNOTATION_LABEL]"},{"line_number":65,"context_line":"        return True"},{"line_number":66,"context_line":"    except KeyError:"},{"line_number":67,"context_line":"        return False"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def get_kuryrport(pod):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_eede723c","line":67,"range":{"start_line":62,"start_character":1,"end_line":67,"end_character":20},"updated":"2020-07-24 09:35:08.000000000","message":"is this function used?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"0086b009246941b73ecab17fd8ac1f90bd25b853","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    return pod[\u0027spec\u0027][\u0027nodeName\u0027]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def get_pod_state(pod):"},{"line_number":63,"context_line":"    try:"},{"line_number":64,"context_line":"        pod[\u0027metadata\u0027][\u0027annotations\u0027][constants.K8S_ANNOTATION_LABEL]"},{"line_number":65,"context_line":"        return True"},{"line_number":66,"context_line":"    except KeyError:"},{"line_number":67,"context_line":"        return False"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def get_kuryrport(pod):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_a9b914cc","line":67,"range":{"start_line":62,"start_character":1,"end_line":67,"end_character":20},"in_reply_to":"bf51134e_eede723c","updated":"2020-07-24 10:24:22.000000000","message":"Not anymore. Nice catch :)","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"}],"kuryr_kubernetes/controller/handlers/kuryrport.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    LOG.exception(\"Failed to update KuryrPort CRD: %s\", ex)"},{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_70482d2c","line":88,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    LOG.exception(\"Failed to update KuryrPort CRD: %s\", ex)"},{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_d053f9e0","line":88,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027project_id\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_b04e4535","line":89,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027security_groups\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                if self._is_network_policy_enabled():"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_1063b1b3","line":91,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                if self._is_network_policy_enabled():"},{"line_number":95,"context_line":"                    crd_pod_selectors \u003d self._drv_sg.create_sg_rules(pod)"},{"line_number":96,"context_line":"                    if oslo_cfg.CONF.octavia_defaults.enforce_sg_rules:"},{"line_number":97,"context_line":"                        services \u003d driver_utils.get_services()"},{"line_number":98,"context_line":"                        self._update_services("}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_f0655db6","line":95,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                    if oslo_cfg.CONF.octavia_defaults.enforce_sg_rules:"},{"line_number":97,"context_line":"                        services \u003d driver_utils.get_services()"},{"line_number":98,"context_line":"                        self._update_services("},{"line_number":99,"context_line":"                            services, crd_pod_selectors, project_id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def on_finalize(self, kuryrnet_crd):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_5059a9fb","line":99,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: F821 undefined name \u0027project_id\u0027","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f6b3abac710161bbe64c245855f2af6ab949532a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            services, crd_pod_selectors, project_id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def on_finalize(self, kuryrnet_crd):"},{"line_number":103,"context_line":"        pass"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _update_kuryrport_crd(self, pod, state):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_305cf5eb","line":102,"updated":"2020-06-25 10:11:28.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"6d7098c29e9cffad9f1080635e870c663a63390c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    LOG.exception(\"Failed to update KuryrPort CRD: %s\", ex)"},{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_eb5babf2","line":88,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    LOG.exception(\"Failed to update KuryrPort CRD: %s\", ex)"},{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_4b761772","line":88,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027project_id\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                    for ifname, vif in vifs.items():"},{"line_number":87,"context_line":"                        self._drv_vif_pool.release_vif("},{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_2b712377","line":89,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027security_groups\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                            pod, vif, project_id,"},{"line_number":89,"context_line":"                            security_groups)"},{"line_number":90,"context_line":"                except k_exc.K8sClientException:"},{"line_number":91,"context_line":"                    pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                if self._is_network_policy_enabled():"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_8b6caf9c","line":91,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    raise k_exc.ResourceNotReady(pod_name)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"                if self._is_network_policy_enabled():"},{"line_number":95,"context_line":"                    crd_pod_selectors \u003d self._drv_sg.create_sg_rules(pod)"},{"line_number":96,"context_line":"                    if oslo_cfg.CONF.octavia_defaults.enforce_sg_rules:"},{"line_number":97,"context_line":"                        services \u003d driver_utils.get_services()"},{"line_number":98,"context_line":"                        self._update_services("}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_6b679bb8","line":95,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027pod\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                    if oslo_cfg.CONF.octavia_defaults.enforce_sg_rules:"},{"line_number":97,"context_line":"                        services \u003d driver_utils.get_services()"},{"line_number":98,"context_line":"                        self._update_services("},{"line_number":99,"context_line":"                            services, crd_pod_selectors, project_id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def on_finalize(self, kuryrnet_crd):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_cb07c7c9","line":99,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: F821 undefined name \u0027project_id\u0027","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f501d497afdbc86c60c590220cbc30317329ecd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            services, crd_pod_selectors, project_id)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def on_finalize(self, kuryrnet_crd):"},{"line_number":103,"context_line":"        pass"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _update_kuryrport_crd(self, pod, state):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_ab0a53ce","line":102,"updated":"2020-06-25 16:22:12.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"4e02c8a61898050f1ce32cafd98feff689ce1720"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"d840513eb29a39f8f3ff63199fda25a9e4410fb5","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                        self._update_services(services, crd_pod_selectors,"},{"line_number":119,"context_line":"                                              project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def on_delete(self, *args, **kwargs):"},{"line_number":122,"context_line":"        LOG.info(\u0027deleting %s, %s\u0027, args, kwargs)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def on_finalize(self, kuryrport_crd):"},{"line_number":125,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_847a1274","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":49},"updated":"2020-07-10 08:58:03.000000000","message":"this cannot be directly reached, right? Are you leaving it to log when the kuryrport crd gets actually deleted (not just the finalizer removed)? If that so, perhaps worth to add it to vif handler (and actually to the other CRDs -- kuryrnetworks, loadbalancers, networkpolicies, ...).","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                        self._update_services(services, crd_pod_selectors,"},{"line_number":119,"context_line":"                                              project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def on_delete(self, *args, **kwargs):"},{"line_number":122,"context_line":"        LOG.info(\u0027deleting %s, %s\u0027, args, kwargs)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def on_finalize(self, kuryrport_crd):"},{"line_number":125,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_ab58af30","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":49},"in_reply_to":"bf51134e_64425e11","updated":"2020-07-13 09:24:18.000000000","message":"I actually like it! And think it is worth leaving it, perhaps changing the message to Deleted XXX","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5105f72e5e810ab29cea99d38fc3c8ab9846401b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                        self._update_services(services, crd_pod_selectors,"},{"line_number":119,"context_line":"                                              project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def on_delete(self, *args, **kwargs):"},{"line_number":122,"context_line":"        LOG.info(\u0027deleting %s, %s\u0027, args, kwargs)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def on_finalize(self, kuryrport_crd):"},{"line_number":125,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_64425e11","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":49},"in_reply_to":"bf51134e_847a1274","updated":"2020-07-10 09:00:39.000000000","message":"Just ignore it :) I was using this before finalizers, I\u0027ll remove it later, just like two unused methods at the end of the module.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"1dd59bdc7e0f987f8bd76a5b6cac6dccc237f530","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                        self._update_services(services, crd_pod_selectors,"},{"line_number":119,"context_line":"                                              project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def on_delete(self, *args, **kwargs):"},{"line_number":122,"context_line":"        LOG.info(\u0027deleting %s, %s\u0027, args, kwargs)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def on_finalize(self, kuryrport_crd):"},{"line_number":125,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_40e1ed9a","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":49},"in_reply_to":"bf51134e_ab58af30","updated":"2020-07-13 12:16:11.000000000","message":"Actually, with finalizers usage, this method will never be called, therefore I\u0027ll remove it.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"d840513eb29a39f8f3ff63199fda25a9e4410fb5","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            LOG.exception(\"Failed to remove pod finalizers: %s\", ex)"},{"line_number":189,"context_line":"            # TODO(gryf): raise?"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def create_vifs(self, kuryrport_crd):"},{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            pod \u003d self.k8s.get(f\"{constants.K8S_API_NAMESPACES}\""},{"line_number":194,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027namespace\u0027]}\""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_64f41ef2","line":191,"range":{"start_line":191,"start_character":8,"end_line":191,"end_character":19},"updated":"2020-07-10 08:58:03.000000000","message":"not sure if this is create vif or get vif","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5105f72e5e810ab29cea99d38fc3c8ab9846401b","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            LOG.exception(\"Failed to remove pod finalizers: %s\", ex)"},{"line_number":189,"context_line":"            # TODO(gryf): raise?"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def create_vifs(self, kuryrport_crd):"},{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            pod \u003d self.k8s.get(f\"{constants.K8S_API_NAMESPACES}\""},{"line_number":194,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027namespace\u0027]}\""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_a447561d","line":191,"range":{"start_line":191,"start_character":8,"end_line":191,"end_character":19},"in_reply_to":"bf51134e_64f41ef2","updated":"2020-07-10 09:00:39.000000000","message":"Right :) Naming is always hard :)","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                                               project_id,"},{"line_number":257,"context_line":"                                               security_groups)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def _set_pod_labels(self, pod, vifs):"},{"line_number":260,"context_line":"        labels \u003d pod[\u0027metadata\u0027].get(\u0027labels\u0027)"},{"line_number":261,"context_line":"        if not labels:"},{"line_number":262,"context_line":"            LOG.debug(\"Removing Label annotation: %r\", labels)"},{"line_number":263,"context_line":"            labels_annotation \u003d None"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            labels[\u0027vif_set\u0027] \u003d False"},{"line_number":266,"context_line":"            if vifs:"},{"line_number":267,"context_line":"                labels[\u0027vif_set\u0027] \u003d True"},{"line_number":268,"context_line":"            labels_annotation \u003d jsonutils.dumps(labels, sort_keys\u003dTrue)"},{"line_number":269,"context_line":"            LOG.debug(\"Setting Labels annotation: %r\", labels_annotation)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":272,"context_line":"        k8s.annotate(pod[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":273,"context_line":"                     {constants.K8S_ANNOTATION_LABEL: labels_annotation},"},{"line_number":274,"context_line":"                     resource_version\u003dpod[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def _update_kuryrport_crd(self, kuryrport_crd, vifs):"},{"line_number":277,"context_line":"        LOG.info(\u0027Updatting CRD %s\u0027, kuryrport_crd[\"metadata\"][\"name\"])"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_19749967","line":274,"range":{"start_line":259,"start_character":0,"end_line":274,"end_character":73},"updated":"2020-07-12 11:26:05.000000000","message":"Perhaps this patching with annotation can get removed as we\u0027re ensuring the pod has the needed resources created by the existence of the CRD.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                                               project_id,"},{"line_number":257,"context_line":"                                               security_groups)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def _set_pod_labels(self, pod, vifs):"},{"line_number":260,"context_line":"        labels \u003d pod[\u0027metadata\u0027].get(\u0027labels\u0027)"},{"line_number":261,"context_line":"        if not labels:"},{"line_number":262,"context_line":"            LOG.debug(\"Removing Label annotation: %r\", labels)"},{"line_number":263,"context_line":"            labels_annotation \u003d None"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            labels[\u0027vif_set\u0027] \u003d False"},{"line_number":266,"context_line":"            if vifs:"},{"line_number":267,"context_line":"                labels[\u0027vif_set\u0027] \u003d True"},{"line_number":268,"context_line":"            labels_annotation \u003d jsonutils.dumps(labels, sort_keys\u003dTrue)"},{"line_number":269,"context_line":"            LOG.debug(\"Setting Labels annotation: %r\", labels_annotation)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":272,"context_line":"        k8s.annotate(pod[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":273,"context_line":"                     {constants.K8S_ANNOTATION_LABEL: labels_annotation},"},{"line_number":274,"context_line":"                     resource_version\u003dpod[\u0027metadata\u0027][\u0027resourceVersion\u0027])"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def _update_kuryrport_crd(self, kuryrport_crd, vifs):"},{"line_number":277,"context_line":"        LOG.info(\u0027Updatting CRD %s\u0027, kuryrport_crd[\"metadata\"][\"name\"])"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_3d198279","line":274,"range":{"start_line":259,"start_character":0,"end_line":274,"end_character":73},"in_reply_to":"bf51134e_19749967","updated":"2020-07-13 11:00:25.000000000","message":"I didn\u0027t touch it/removed it by intention not to break current approach. Especially, that I didn\u0027t analyzed where labels might be used outside of kuryr itself (maybe on CNO? IDK).","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8620226b888cdd2833b38c9330dbdea9ac789959","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":221,"context_line":"            LOG.warning(\"Ignoring event due to pod %s not being \""},{"line_number":222,"context_line":"                        \"scheduled yet.\", pod_name)"},{"line_number":223,"context_line":"            return"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        vifs \u003d {constants.DEFAULT_IFNAME: {\u0027default\u0027: True, \u0027vif\u0027: main_vif}}"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_976be283","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":18},"updated":"2020-07-20 11:40:59.000000000","message":"Looks like this return won\u0027t ignore the event anymore as mentioned in the LOG at line 221, and same goes for line 213.\nPerhaps the return value of the get_vifs method could be checked to ensure the event is ignored or not.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"495c711f9f692c9634be363a1359ab12b09d6eef","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            pod_name \u003d pod[\u0027metadata\u0027][\u0027name\u0027]"},{"line_number":221,"context_line":"            LOG.warning(\"Ignoring event due to pod %s not being \""},{"line_number":222,"context_line":"                        \"scheduled yet.\", pod_name)"},{"line_number":223,"context_line":"            return"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        vifs \u003d {constants.DEFAULT_IFNAME: {\u0027default\u0027: True, \u0027vif\u0027: main_vif}}"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_76b7053c","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":18},"in_reply_to":"bf51134e_976be283","updated":"2020-07-22 13:08:17.000000000","message":"Oh, you\u0027re right. I\u0027ll add the check in \u0027on_present\u0027 of the returned value from this method.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                               f\"/{namespace}/pods/{name}\")"},{"line_number":129,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":130,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":131,"context_line":"            # TODO(gryf): Should we nevertheless try to free resources even"},{"line_number":132,"context_line":"            # though pod is gone?"},{"line_number":133,"context_line":"            raise"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (driver_utils.is_host_network(pod) or"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_8d11ca56","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":33},"updated":"2020-07-23 15:59:32.000000000","message":"Hm, I\u0027d say yes - if we have it\u0027s KuryrPort. Also we should still be able to recover from that situation - i.e. remove finalizer on the KuryrPort.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"132a4d2787185e3dd2595879a4551017394097d4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                               f\"/{namespace}/pods/{name}\")"},{"line_number":129,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":130,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":131,"context_line":"            # TODO(gryf): Should we nevertheless try to free resources even"},{"line_number":132,"context_line":"            # though pod is gone?"},{"line_number":133,"context_line":"            raise"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (driver_utils.is_host_network(pod) or"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_2e822aa6","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":33},"in_reply_to":"bf51134e_2e66aa56","updated":"2020-07-24 09:41:04.000000000","message":"I\u0027d code it defensively just in case something deleted the finalizer.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"af642e30642cb1807acc1e2cb6d5a0d818bd13a0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                               f\"/{namespace}/pods/{name}\")"},{"line_number":129,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":130,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":131,"context_line":"            # TODO(gryf): Should we nevertheless try to free resources even"},{"line_number":132,"context_line":"            # though pod is gone?"},{"line_number":133,"context_line":"            raise"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (driver_utils.is_host_network(pod) or"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_4493fd5c","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":33},"in_reply_to":"bf51134e_2e822aa6","updated":"2020-07-24 12:49:58.000000000","message":"I\u0027ll need pod itself (and it\u0027s annotations) for nested/dpdk drivers, so I\u0027d like to have a fallback.\n\nAlso, without pod object, releasing resources will be a PITA, since all of the methods which gathering security groups and releasing vif expect pod object to be passed around, even though there are only couple of fields used in the nested methods.\n\nSo either we create some phony pod dict object with the necessary fields, or change the methods signature (release_vif, get_security_groups, get_project).","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                               f\"/{namespace}/pods/{name}\")"},{"line_number":129,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":130,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":131,"context_line":"            # TODO(gryf): Should we nevertheless try to free resources even"},{"line_number":132,"context_line":"            # though pod is gone?"},{"line_number":133,"context_line":"            raise"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (driver_utils.is_host_network(pod) or"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_911ba0c8","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":33},"in_reply_to":"bf51134e_8d11ca56","updated":"2020-07-23 18:57:52.000000000","message":"Ack.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                               f\"/{namespace}/pods/{name}\")"},{"line_number":129,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":130,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":131,"context_line":"            # TODO(gryf): Should we nevertheless try to free resources even"},{"line_number":132,"context_line":"            # though pod is gone?"},{"line_number":133,"context_line":"            raise"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (driver_utils.is_host_network(pod) or"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_2e66aa56","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":33},"in_reply_to":"bf51134e_911ba0c8","updated":"2020-07-24 09:35:08.000000000","message":"you have the finalizer on the pod, right? so that should never happen... Do you have all the information needed on the kuryrport_crd to proceed if the pod is not there?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            services \u003d driver_utils.get_services()"},{"line_number":174,"context_line":"            self._update_services(services, crd_pod_selectors, project_id)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # remove finalizer from KuryrPort CRD"},{"line_number":177,"context_line":"        try:"},{"line_number":178,"context_line":"            self.k8s.patch_crd(\u0027metadata\u0027,"},{"line_number":179,"context_line":"                               kuryrport_crd[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":180,"context_line":"                               \u0027finalizers\u0027, action\u003d\u0027remove\u0027)"},{"line_number":181,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":182,"context_line":"            LOG.exception(\"Failed to remove KuryrPort CRD finalizers: %s\", ex)"},{"line_number":183,"context_line":"            raise"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # Remove finalizer out of pod."},{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            self.k8s.patch(\u0027metadata\u0027, pod[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":188,"context_line":"                           {\u0027finalizers\u0027: []})"},{"line_number":189,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":190,"context_line":"            LOG.exception(\"Failed to remove pod finalizers: %s\", ex)"},{"line_number":191,"context_line":"            # TODO(gryf): raise?"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def get_vifs(self, kuryrport_crd):"},{"line_number":194,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_4d21729f","line":191,"range":{"start_line":176,"start_character":0,"end_line":191,"end_character":32},"updated":"2020-07-23 15:59:32.000000000","message":"Those issues can be addressed by usage of remove_finalizer() method from NP CRD patch, it attempts to figure out the corner cases nicely.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            services \u003d driver_utils.get_services()"},{"line_number":174,"context_line":"            self._update_services(services, crd_pod_selectors, project_id)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # remove finalizer from KuryrPort CRD"},{"line_number":177,"context_line":"        try:"},{"line_number":178,"context_line":"            self.k8s.patch_crd(\u0027metadata\u0027,"},{"line_number":179,"context_line":"                               kuryrport_crd[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":180,"context_line":"                               \u0027finalizers\u0027, action\u003d\u0027remove\u0027)"},{"line_number":181,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":182,"context_line":"            LOG.exception(\"Failed to remove KuryrPort CRD finalizers: %s\", ex)"},{"line_number":183,"context_line":"            raise"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        # Remove finalizer out of pod."},{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            self.k8s.patch(\u0027metadata\u0027, pod[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":188,"context_line":"                           {\u0027finalizers\u0027: []})"},{"line_number":189,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":190,"context_line":"            LOG.exception(\"Failed to remove pod finalizers: %s\", ex)"},{"line_number":191,"context_line":"            # TODO(gryf): raise?"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def get_vifs(self, kuryrport_crd):"},{"line_number":194,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_f1293cf2","line":191,"range":{"start_line":176,"start_character":0,"end_line":191,"end_character":32},"in_reply_to":"bf51134e_4d21729f","updated":"2020-07-23 18:57:52.000000000","message":"ok, I\u0027ll adopt it.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               f\"/pods\""},{"line_number":198,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027name\u0027]}\")"},{"line_number":199,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":200,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":201,"context_line":"            # TODO(gryf): should we remove this CRD because no pod has been"},{"line_number":202,"context_line":"            # found, so it doesn\u0027t make sense for keeping it here?"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":206,"context_line":"        security_groups \u003d self._drv_sg.get_security_groups(pod, project_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_6d3556db","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":17},"updated":"2020-07-23 15:59:32.000000000","message":"It\u0027s probably worth sending a DELETE for it.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"af642e30642cb1807acc1e2cb6d5a0d818bd13a0","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               f\"/pods\""},{"line_number":198,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027name\u0027]}\")"},{"line_number":199,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":200,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":201,"context_line":"            # TODO(gryf): should we remove this CRD because no pod has been"},{"line_number":202,"context_line":"            # found, so it doesn\u0027t make sense for keeping it here?"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":206,"context_line":"        security_groups \u003d self._drv_sg.get_security_groups(pod, project_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_248249a6","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":17},"in_reply_to":"bf51134e_0b2118a0","updated":"2020-07-24 12:49:58.000000000","message":"See my comment to line 131/132.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1119efd5415291b482c6f4f7393367952d4b0e86","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               f\"/pods\""},{"line_number":198,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027name\u0027]}\")"},{"line_number":199,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":200,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":201,"context_line":"            # TODO(gryf): should we remove this CRD because no pod has been"},{"line_number":202,"context_line":"            # found, so it doesn\u0027t make sense for keeping it here?"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":206,"context_line":"        security_groups \u003d self._drv_sg.get_security_groups(pod, project_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_0b2118a0","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":17},"in_reply_to":"bf51134e_5138e839","updated":"2020-07-24 08:01:45.000000000","message":"IMO we should try removing or releasing the port.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               f\"/pods\""},{"line_number":198,"context_line":"                               f\"/{kuryrport_crd[\u0027metadata\u0027][\u0027name\u0027]}\")"},{"line_number":199,"context_line":"        except k_exc.K8sResourceNotFound as ex:"},{"line_number":200,"context_line":"            LOG.exception(\"Failed to get pod: %s\", ex)"},{"line_number":201,"context_line":"            # TODO(gryf): should we remove this CRD because no pod has been"},{"line_number":202,"context_line":"            # found, so it doesn\u0027t make sense for keeping it here?"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":206,"context_line":"        security_groups \u003d self._drv_sg.get_security_groups(pod, project_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_5138e839","line":203,"range":{"start_line":200,"start_character":0,"end_line":203,"end_character":17},"in_reply_to":"bf51134e_6d3556db","updated":"2020-07-23 18:57:52.000000000","message":"Delete or maybe perform removing it together with finalizer? Also, the question remains if we should try to free the resources…","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        vifs \u003d {constants.DEFAULT_IFNAME: {\u0027default\u0027: True, \u0027vif\u0027: main_vif}}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        # Request the additional interfaces from multiple drivers"},{"line_number":231,"context_line":"        index \u003d 1"},{"line_number":232,"context_line":"        for driver in self._drv_multi_vif:"},{"line_number":233,"context_line":"            additional_vifs \u003d driver.request_additional_vifs(pod, project_id,"},{"line_number":234,"context_line":"                                                             security_groups)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_ed4e866c","line":231,"range":{"start_line":231,"start_character":0,"end_line":231,"end_character":17},"updated":"2020-07-23 15:59:32.000000000","message":"Use itertools.enumerate instead?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        vifs \u003d {constants.DEFAULT_IFNAME: {\u0027default\u0027: True, \u0027vif\u0027: main_vif}}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        # Request the additional interfaces from multiple drivers"},{"line_number":231,"context_line":"        index \u003d 1"},{"line_number":232,"context_line":"        for driver in self._drv_multi_vif:"},{"line_number":233,"context_line":"            additional_vifs \u003d driver.request_additional_vifs(pod, project_id,"},{"line_number":234,"context_line":"                                                             security_groups)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_f112dcb3","line":231,"range":{"start_line":231,"start_character":0,"end_line":231,"end_character":17},"in_reply_to":"bf51134e_ed4e866c","updated":"2020-07-23 18:57:52.000000000","message":"Simply enumerate() will help here either. Thanks.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        LOG.info(\u0027Updatting CRD %s\u0027, kuryrport_crd[\"metadata\"][\"name\"])"},{"line_number":254,"context_line":"        spec \u003d {}"},{"line_number":255,"context_line":"        for ifname, data in vifs.items():"},{"line_number":256,"context_line":"            spec[ifname] \u003d {\u0027default\u0027: data[\u0027default\u0027],"},{"line_number":257,"context_line":"                            \u0027vif\u0027: data[\u0027vif\u0027].obj_to_primitive()}"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.k8s.patch_crd(\u0027spec\u0027, kuryrport_crd[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":260,"context_line":"                           {\u0027vifs\u0027: spec})"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_8d68aaba","line":257,"range":{"start_line":256,"start_character":0,"end_line":257,"end_character":66},"updated":"2020-07-23 15:59:32.000000000","message":"If we\u0027re touching this here already… Let\u0027s make sure we reset changes [1] to the VIF object before serializing it, it should save up some space in the CRD.\n\n[1] https://docs.openstack.org/oslo.versionedobjects/latest/reference/base.html#oslo_versionedobjects.base.VersionedObject.obj_reset_changes","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        LOG.info(\u0027Updatting CRD %s\u0027, kuryrport_crd[\"metadata\"][\"name\"])"},{"line_number":254,"context_line":"        spec \u003d {}"},{"line_number":255,"context_line":"        for ifname, data in vifs.items():"},{"line_number":256,"context_line":"            spec[ifname] \u003d {\u0027default\u0027: data[\u0027default\u0027],"},{"line_number":257,"context_line":"                            \u0027vif\u0027: data[\u0027vif\u0027].obj_to_primitive()}"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        self.k8s.patch_crd(\u0027spec\u0027, kuryrport_crd[\u0027metadata\u0027][\u0027selfLink\u0027],"},{"line_number":260,"context_line":"                           {\u0027vifs\u0027: spec})"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_111030a8","line":257,"range":{"start_line":256,"start_character":0,"end_line":257,"end_character":66},"in_reply_to":"bf51134e_8d68aaba","updated":"2020-07-23 18:57:52.000000000","message":"Ack.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1504c32e7cd2685128711780989e0bec252da46c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                if (data[\u0027vif\u0027].plugin \u003d\u003d constants.KURYR_VIF_TYPE_SRIOV and"},{"line_number":81,"context_line":"                        oslo_cfg.CONF.sriov.enable_node_annotations):"},{"line_number":82,"context_line":"                    pod_node \u003d kuryrport_crd[\u0027spec\u0027][\u0027podNodeName\u0027]"},{"line_number":83,"context_line":"                    # TODO(gryf): This probably will need adoption, so it will"},{"line_number":84,"context_line":"                    # add information to CRD instead of the pod."},{"line_number":85,"context_line":"                    driver_utils.update_port_pci_info(pod_node, data[\u0027vif\u0027])"},{"line_number":86,"context_line":"                if not data[\u0027vif\u0027].active:"},{"line_number":87,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_f9cb0f47","line":84,"range":{"start_line":83,"start_character":0,"end_line":84,"end_character":64},"updated":"2020-07-29 14:53:49.000000000","message":"looks like this comment is not needed.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"88c79ae77fec135f8317db6f94a039ab0a5460a1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                if (data[\u0027vif\u0027].plugin \u003d\u003d constants.KURYR_VIF_TYPE_SRIOV and"},{"line_number":81,"context_line":"                        oslo_cfg.CONF.sriov.enable_node_annotations):"},{"line_number":82,"context_line":"                    pod_node \u003d kuryrport_crd[\u0027spec\u0027][\u0027podNodeName\u0027]"},{"line_number":83,"context_line":"                    # TODO(gryf): This probably will need adoption, so it will"},{"line_number":84,"context_line":"                    # add information to CRD instead of the pod."},{"line_number":85,"context_line":"                    driver_utils.update_port_pci_info(pod_node, data[\u0027vif\u0027])"},{"line_number":86,"context_line":"                if not data[\u0027vif\u0027].active:"},{"line_number":87,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_3ed608f3","line":84,"range":{"start_line":83,"start_character":0,"end_line":84,"end_character":64},"in_reply_to":"9f560f44_f9cb0f47","updated":"2020-07-29 18:11:00.000000000","message":"Right. With SRIOV vif type there are updated annotations unrelated to the K8S_ANNOTATION_VIF.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"1504c32e7cd2685128711780989e0bec252da46c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            self.k8s.remove_finalizer(kuryrport_crd, constants.POD_FINALIZER)"},{"line_number":136,"context_line":"            raise"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":139,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":143,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_394467b7","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":18},"updated":"2020-07-29 14:53:49.000000000","message":"shouldn\u0027t this come on the beginning of the method?","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"bebdfc0f52af939a308569da1821a7b27890ed13","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            self.k8s.remove_finalizer(kuryrport_crd, constants.POD_FINALIZER)"},{"line_number":136,"context_line":"            raise"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":139,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":143,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_b436b4e6","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":18},"in_reply_to":"9f560f44_1e77c4d6","updated":"2020-07-30 04:02:59.000000000","message":"Ok, I\u0027ll add it to my bugfix list.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"88c79ae77fec135f8317db6f94a039ab0a5460a1","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            self.k8s.remove_finalizer(kuryrport_crd, constants.POD_FINALIZER)"},{"line_number":136,"context_line":"            raise"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":139,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":143,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_de00ac6a","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":18},"in_reply_to":"9f560f44_394467b7","updated":"2020-07-29 18:11:00.000000000","message":"Well, no. Notice, that pod is requested in line 130 - so this check is made right after we get it from k8s API.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"68b8f19bd06fb6822684cc4a27956e86a4ff44a5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            self.k8s.remove_finalizer(kuryrport_crd, constants.POD_FINALIZER)"},{"line_number":136,"context_line":"            raise"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":139,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":140,"context_line":"            return"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        project_id \u003d self._drv_project.get_project(pod)"},{"line_number":143,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_1e77c4d6","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":18},"in_reply_to":"9f560f44_de00ac6a","updated":"2020-07-29 18:30:52.000000000","message":"I\u0027d say this check is no longer needed at all - pods that have kuryrports are not on host network and are scheduled (have nodeName). It should be safe to just assume that.\n\nAnyway - just a minor issue, few cycles spent. ;)","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"}],"kuryr_kubernetes/controller/handlers/pod_label.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bf7ef33edd323fb46542c4d73df355af60cf40fd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # annotates the pod with the pod state."},{"line_number":53,"context_line":"            return"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if (constants.K8S_ANNOTATION_VIF in"},{"line_number":56,"context_line":"                pod[\u0027metadata\u0027].get(\u0027annotations\u0027, {})):"},{"line_number":57,"context_line":"            # NOTE(dulek): This might happen on upgrade, we need to wait for"},{"line_number":58,"context_line":"            #              annotation to be moved to KuryrPort CRD."},{"line_number":59,"context_line":"            return"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        current_pod_labels \u003d pod[\u0027metadata\u0027].get(\u0027labels\u0027)"},{"line_number":62,"context_line":"        previous_pod_labels \u003d self._get_pod_labels(pod)"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_cb2be791","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":18},"updated":"2020-07-28 16:58:56.000000000","message":"I\u0027m not 100% sure this works, can someone proofread it?","commit_id":"33c93f8de35a230215a4f83fdc76a1dd3511b8e4"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2a34cb5a11efbe60310188fb481e1daba7cc816a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # annotates the pod with the pod state."},{"line_number":53,"context_line":"            return"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if (constants.K8S_ANNOTATION_VIF in"},{"line_number":56,"context_line":"                pod[\u0027metadata\u0027].get(\u0027annotations\u0027, {})):"},{"line_number":57,"context_line":"            # NOTE(dulek): This might happen on upgrade, we need to wait for"},{"line_number":58,"context_line":"            #              annotation to be moved to KuryrPort CRD."},{"line_number":59,"context_line":"            return"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        current_pod_labels \u003d pod[\u0027metadata\u0027].get(\u0027labels\u0027)"},{"line_number":62,"context_line":"        previous_pod_labels \u003d self._get_pod_labels(pod)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_8ea1ebac","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":18},"updated":"2020-07-29 14:09:09.000000000","message":"Most likely this piece is not needed now, but that\u0027s not a big deal, I think.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"4292d14d659e84a1ceb3774f2f8d4bbad07e5bdf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # annotates the pod with the pod state."},{"line_number":53,"context_line":"            return"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if (constants.K8S_ANNOTATION_VIF in"},{"line_number":56,"context_line":"                pod[\u0027metadata\u0027].get(\u0027annotations\u0027, {})):"},{"line_number":57,"context_line":"            # NOTE(dulek): This might happen on upgrade, we need to wait for"},{"line_number":58,"context_line":"            #              annotation to be moved to KuryrPort CRD."},{"line_number":59,"context_line":"            return"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        current_pod_labels \u003d pod[\u0027metadata\u0027].get(\u0027labels\u0027)"},{"line_number":62,"context_line":"        previous_pod_labels \u003d self._get_pod_labels(pod)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_eed507b9","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":18},"in_reply_to":"9f560f44_8ea1ebac","updated":"2020-07-29 14:22:03.000000000","message":"If we decide to get rid of it, we can do that later.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"}],"kuryr_kubernetes/controller/handlers/vif.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from kuryr_kubernetes.handlers import k8s_base"},{"line_number":27,"context_line":"from kuryr_kubernetes import objects"},{"line_number":28,"context_line":"from kuryr_kubernetes import utils"},{"line_number":29,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b92e3889","line":29,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: F401 \u0027kuryr_kubernetes.os_vif_util as ovu\u0027 imported but unused","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from kuryr_kubernetes.handlers import k8s_base"},{"line_number":27,"context_line":"from kuryr_kubernetes import objects"},{"line_number":28,"context_line":"from kuryr_kubernetes import utils"},{"line_number":29,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d9332cf5","line":29,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: H306: imports not in alphabetical order (kuryr_kubernetes.utils, kuryr_kubernetes.os_vif_util)","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                   security_groups)"},{"line_number":154,"context_line":"            try:"},{"line_number":155,"context_line":"                self._add_kuryrport_crd(pod, state)"},{"line_number":156,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":157,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":158,"context_line":"                              \"kuryrport CRD for vid %s.\" % vif.id)"},{"line_number":159,"context_line":"                for ifname, vif in state.vifs.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_194f646b","line":156,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: F841 local variable \u0027ex\u0027 is assigned to but never used","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        vifs \u003d {}"},{"line_number":330,"context_line":"        for ifname, vif in state.vifs.items():"},{"line_number":331,"context_line":"            vifs[ifname] \u003d {\u0027default\u0027: state.vifs[ifname].id \u003d\u003d"},{"line_number":332,"context_line":"                                state.default_vif.id,"},{"line_number":333,"context_line":"                            \u0027vif\u0027: vif.obj_to_primitive()}"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"        kuryr_port \u003d {\u0027apiVersion\u0027: \u0027openstack.org/v1\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_f951d00f","line":332,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        vifs \u003d {}"},{"line_number":347,"context_line":"        for ifname, vif in state.vifs.items():"},{"line_number":348,"context_line":"            vifs[ifname] \u003d {\u0027default\u0027: state.vifs[ifname].id \u003d\u003d"},{"line_number":349,"context_line":"                                state.default_vif.id,"},{"line_number":350,"context_line":"                            \u0027vif\u0027: vif.obj_to_primitive()}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_59555cf9","line":347,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: F821 undefined name \u0027state\u0027","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        vifs \u003d {}"},{"line_number":347,"context_line":"        for ifname, vif in state.vifs.items():"},{"line_number":348,"context_line":"            vifs[ifname] \u003d {\u0027default\u0027: state.vifs[ifname].id \u003d\u003d"},{"line_number":349,"context_line":"                                state.default_vif.id,"},{"line_number":350,"context_line":"                            \u0027vif\u0027: vif.obj_to_primitive()}"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_3958682f","line":348,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: F821 undefined name \u0027state\u0027","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        vifs \u003d {}"},{"line_number":347,"context_line":"        for ifname, vif in state.vifs.items():"},{"line_number":348,"context_line":"            vifs[ifname] \u003d {\u0027default\u0027: state.vifs[ifname].id \u003d\u003d"},{"line_number":349,"context_line":"                                state.default_vif.id,"},{"line_number":350,"context_line":"                            \u0027vif\u0027: vif.obj_to_primitive()}"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        k8s.patch_crd(\u0027vifs\u0027, f\u0027{constants.K8S_API_CRD_NAMESPACES}/\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_9942543d","line":349,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        vifs \u003d {}"},{"line_number":347,"context_line":"        for ifname, vif in state.vifs.items():"},{"line_number":348,"context_line":"            vifs[ifname] \u003d {\u0027default\u0027: state.vifs[ifname].id \u003d\u003d"},{"line_number":349,"context_line":"                                state.default_vif.id,"},{"line_number":350,"context_line":"                            \u0027vif\u0027: vif.obj_to_primitive()}"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        k8s.patch_crd(\u0027vifs\u0027, f\u0027{constants.K8S_API_CRD_NAMESPACES}/\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_793dc0b9","line":349,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: F821 undefined name \u0027state\u0027","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0a5f076c1abe8c2157b5bc4f42993609a0e2c9dd","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                   f\u0027{pod[\"metadata\"][\"name\"]}\u0027)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d9484c5d","line":363,"updated":"2020-06-03 17:41:14.000000000","message":"pep8: W391 blank line at end of file","commit_id":"8feb0fb64f666a88f464865641b9f647b032b1b4"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"f579250822f2551a8e5a7f057355d1a226fa025e","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            security_groups \u003d []"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        try:"},{"line_number":180,"context_line":"            self._rm_kuryrport_crd(pod)"},{"line_number":181,"context_line":"        except k_exc.K8sClientException:"},{"line_number":182,"context_line":"            LOG.exception(\"Could not remove KuryrPort CRD for pod %s.\","},{"line_number":183,"context_line":"                          pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":184,"context_line":"            raise k_exc.ResourceNotReady(pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":185,"context_line":"        except k_exc.K8sResourceNotFound:"},{"line_number":186,"context_line":"            pass"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_89657be4","line":184,"range":{"start_line":180,"start_character":39,"end_line":184,"end_character":1},"updated":"2020-07-02 16:06:01.000000000","message":"if kuryr-controller dies here, this will probably be a leftover (the kuryrport cr)","commit_id":"a18b902e672786ab14d240bcf5df6f977c34360f"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"b42fabdd903e6ff4fd57dd317c200c15ebb2c3f6","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            security_groups \u003d []"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        try:"},{"line_number":180,"context_line":"            self._rm_kuryrport_crd(pod)"},{"line_number":181,"context_line":"        except k_exc.K8sClientException:"},{"line_number":182,"context_line":"            LOG.exception(\"Could not remove KuryrPort CRD for pod %s.\","},{"line_number":183,"context_line":"                          pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":184,"context_line":"            raise k_exc.ResourceNotReady(pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":185,"context_line":"        except k_exc.K8sResourceNotFound:"},{"line_number":186,"context_line":"            pass"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_039adfc3","line":184,"range":{"start_line":180,"start_character":39,"end_line":184,"end_character":1},"in_reply_to":"bf51134e_89657be4","updated":"2020-07-03 06:59:41.000000000","message":"Right.","commit_id":"a18b902e672786ab14d240bcf5df6f977c34360f"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                self._add_kuryrport_crd(pod)"},{"line_number":94,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":95,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":96,"context_line":"                              \"kuryrport CRD: %s\", ex)"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":99,"context_line":"            except k_exc.K8sClientException as ex:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_790af5d1","line":96,"range":{"start_line":95,"start_character":0,"end_line":96,"end_character":54},"updated":"2020-07-12 11:26:05.000000000","message":"We might need to retry here by raising a exceptions.ResourceNotReady in case it failed to create the CRD.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                self._add_kuryrport_crd(pod)"},{"line_number":94,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":95,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":96,"context_line":"                              \"kuryrport CRD: %s\", ex)"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":99,"context_line":"            except k_exc.K8sClientException as ex:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_7d281a85","line":96,"range":{"start_line":95,"start_character":0,"end_line":96,"end_character":54},"in_reply_to":"bf51134e_790af5d1","updated":"2020-07-13 11:00:25.000000000","message":"Ack.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a68114bc73f0068b2a3b21d20d509cd6ce0a5af4","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":96,"context_line":"                              \"kuryrport CRD: %s\", ex)"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":99,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":100,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":101,"context_line":"                # TODO(gryf): raise?"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_19ddb96f","line":98,"range":{"start_line":98,"start_character":16,"end_line":98,"end_character":46},"updated":"2020-07-12 11:26:05.000000000","message":"Is there a need to also add the finalizer to the pod itself?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":96,"context_line":"                              \"kuryrport CRD: %s\", ex)"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":99,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":100,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":101,"context_line":"                # TODO(gryf): raise?"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_8bffabff","line":98,"range":{"start_line":98,"start_character":16,"end_line":98,"end_character":46},"in_reply_to":"bf51134e_19ddb96f","updated":"2020-07-13 09:24:18.000000000","message":"probably, otherwise we may have CRD leftovers, right?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":96,"context_line":"                              \"kuryrport CRD: %s\", ex)"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":99,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":100,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":101,"context_line":"                # TODO(gryf): raise?"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_7d4dba70","line":98,"range":{"start_line":98,"start_character":16,"end_line":98,"end_character":46},"in_reply_to":"bf51134e_8bffabff","updated":"2020-07-13 11:00:25.000000000","message":"Yes. The idea behind placing finalizer on pod was to make sure, there are all the corresponding resources swiped clean.\n\nIn CRD we are removing (or trying to do so) this finalizer, after successfully free the resources.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":101,"context_line":"                # TODO(gryf): raise?"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def on_finalize(self, pod):"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":106,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_8b284b86","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":31},"updated":"2020-07-13 09:24:18.000000000","message":"I like what you did for the on_delete on the CRD handler, perhaps worth to add it here too. Also, as you are using on_finalize, this is assuming you also add finalizers to the pod objects","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"952a5526c2d08de4c890c74418b89f645edbd5d9","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":101,"context_line":"                # TODO(gryf): raise?"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def on_finalize(self, pod):"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if (driver_utils.is_host_network(pod) or"},{"line_number":106,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_fd40aa37","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":31},"in_reply_to":"bf51134e_8b284b86","updated":"2020-07-13 11:00:25.000000000","message":"Ack.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c6a3145745103ffa666d89703aa2267c49107dca","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        kp \u003d driver_utils.get_kuryrport(pod)"},{"line_number":110,"context_line":"        if not kp:"},{"line_number":111,"context_line":"            # there is no associated KuryrPort CRD, let\u0027s finish the port"},{"line_number":112,"context_line":"            # deletion"},{"line_number":113,"context_line":"            try:"},{"line_number":114,"context_line":"                self._patch_pod_finalizer(pod, set_finalizer\u003dFalse)"},{"line_number":115,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":116,"context_line":"                LOG.exception(\"Failed to remove pod finalizer: %s\", ex)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(\u0027Removing CRD %s\u0027, pod[\"metadata\"][\"name\"])"},{"line_number":119,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            k8s.delete(KURYRPORT_URI.format(ns\u003dpod[\"metadata\"][\"namespace\"],"},{"line_number":122,"context_line":"                                            crd\u003dpod[\"metadata\"][\"name\"]))"},{"line_number":123,"context_line":"        except k_exc.K8sClientException:"},{"line_number":124,"context_line":"            LOG.exception(\"Could not remove KuryrPort CRD for pod %s.\","},{"line_number":125,"context_line":"                          pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":126,"context_line":"            raise k_exc.ResourceNotReady(pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except k_exc.K8sResourceNotFound:"},{"line_number":129,"context_line":"            try:"},{"line_number":130,"context_line":"                self._patch_pod_finalizer(pod, set_finalizer\u003dFalse)"},{"line_number":131,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":132,"context_line":"                LOG.exception(\"Failed to remove pod finalizer: %s\", ex)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def is_ready(self, quota):"},{"line_number":135,"context_line":"        if utils.has_limit(quota.ports):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_4b32b3f3","line":132,"range":{"start_line":109,"start_character":0,"end_line":132,"end_character":71},"updated":"2020-07-13 09:24:18.000000000","message":"umm, do we need all this? or just remove the CRD object, and let the CRD handler to manage the finalizers removal?","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"77d2b9ef3b0694ffa40b6e72fd4eaacddd12b022","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                not pod[\u0027spec\u0027].get(\u0027nodeName\u0027)):"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        kp \u003d driver_utils.get_kuryrport(pod)"},{"line_number":110,"context_line":"        if not kp:"},{"line_number":111,"context_line":"            # there is no associated KuryrPort CRD, let\u0027s finish the port"},{"line_number":112,"context_line":"            # deletion"},{"line_number":113,"context_line":"            try:"},{"line_number":114,"context_line":"                self._patch_pod_finalizer(pod, set_finalizer\u003dFalse)"},{"line_number":115,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":116,"context_line":"                LOG.exception(\"Failed to remove pod finalizer: %s\", ex)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        LOG.info(\u0027Removing CRD %s\u0027, pod[\"metadata\"][\"name\"])"},{"line_number":119,"context_line":"        k8s \u003d clients.get_kubernetes_client()"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            k8s.delete(KURYRPORT_URI.format(ns\u003dpod[\"metadata\"][\"namespace\"],"},{"line_number":122,"context_line":"                                            crd\u003dpod[\"metadata\"][\"name\"]))"},{"line_number":123,"context_line":"        except k_exc.K8sClientException:"},{"line_number":124,"context_line":"            LOG.exception(\"Could not remove KuryrPort CRD for pod %s.\","},{"line_number":125,"context_line":"                          pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":126,"context_line":"            raise k_exc.ResourceNotReady(pod[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        except k_exc.K8sResourceNotFound:"},{"line_number":129,"context_line":"            try:"},{"line_number":130,"context_line":"                self._patch_pod_finalizer(pod, set_finalizer\u003dFalse)"},{"line_number":131,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":132,"context_line":"                LOG.exception(\"Failed to remove pod finalizer: %s\", ex)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def is_ready(self, quota):"},{"line_number":135,"context_line":"        if utils.has_limit(quota.ports):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_7d765aa6","line":132,"range":{"start_line":109,"start_character":0,"end_line":132,"end_character":71},"in_reply_to":"bf51134e_4b32b3f3","updated":"2020-07-13 10:37:16.000000000","message":"+1. I believe lines 109-116 may not be needed. Also, K8sResourceNotFound must be handled before K8sClientException. Otherwise if a 404 error happens it will cached by K8sClientException.","commit_id":"8d82bd6d2b321d74b20917de0d929f7f563e50d5"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8620226b888cdd2833b38c9330dbdea9ac789959","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        LOG.debug(\"Got KuryrPort: %r\", kp)"},{"line_number":91,"context_line":"        if not kp:"},{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                self._set_pod_labels(pod, False)"},{"line_number":94,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":95,"context_line":"                LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":96,"context_line":"                # FIXME(ivc): improve granularity of K8sClient exceptions:"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_b786e664","line":93,"range":{"start_line":93,"start_character":16,"end_line":93,"end_character":48},"updated":"2020-07-20 11:40:59.000000000","message":"As we\u0027re relying on the CRD to hold the VIF information, I believe the \u0027vif_set\u0027 filed can be removed, as it\u0027s not really being used.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"495c711f9f692c9634be363a1359ab12b09d6eef","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        LOG.debug(\"Got KuryrPort: %r\", kp)"},{"line_number":91,"context_line":"        if not kp:"},{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                self._set_pod_labels(pod, False)"},{"line_number":94,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":95,"context_line":"                LOG.debug(\"Failed to set annotation: %s\", ex)"},{"line_number":96,"context_line":"                # FIXME(ivc): improve granularity of K8sClient exceptions:"}],"source_content_type":"text/x-python","patch_set":15,"id":"bf51134e_d671b1aa","line":93,"range":{"start_line":93,"start_character":16,"end_line":93,"end_character":48},"in_reply_to":"bf51134e_b786e664","updated":"2020-07-22 13:08:17.000000000","message":"You\u0027re probably right. I didn\u0027t find any occurrence for vif_set label on the CNI side, so I guess it can be safely removed.","commit_id":"061accec689e743004b8c2cca9545419b72730f1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            return"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        kp \u003d driver_utils.get_kuryrport(pod)"},{"line_number":72,"context_line":"        if (self._is_pod_completed(pod)):"},{"line_number":73,"context_line":"            if kp:"},{"line_number":74,"context_line":"                LOG.debug(\"Pod has completed execution, removing the vifs\")"},{"line_number":75,"context_line":"                self.on_finalize(pod)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_6d91d69a","line":72,"range":{"start_line":72,"start_character":11,"end_line":72,"end_character":40},"updated":"2020-07-23 15:59:32.000000000","message":"No need for parentheses.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            return"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        kp \u003d driver_utils.get_kuryrport(pod)"},{"line_number":72,"context_line":"        if (self._is_pod_completed(pod)):"},{"line_number":73,"context_line":"            if kp:"},{"line_number":74,"context_line":"                LOG.debug(\"Pod has completed execution, removing the vifs\")"},{"line_number":75,"context_line":"                self.on_finalize(pod)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_318294c9","line":72,"range":{"start_line":72,"start_character":11,"end_line":72,"end_character":40},"in_reply_to":"bf51134e_6d91d69a","updated":"2020-07-23 18:57:52.000000000","message":"ack.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        LOG.debug(\"Got KuryrPort: %r\", kp)"},{"line_number":90,"context_line":"        if not kp:"},{"line_number":91,"context_line":"            try:"},{"line_number":92,"context_line":"                self._add_kuryrport_crd(pod)"},{"line_number":93,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":94,"context_line":"                LOG.exception(\"Kubernetes Client Exception creating \""},{"line_number":95,"context_line":"                              \"KuryrPort CRD: %s\", ex)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_cd6c629e","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":44},"updated":"2020-07-23 15:59:32.000000000","message":"Wow, how awesome would it be to have kuryr-daemon create this thing one day.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                              \"KuryrPort CRD: %s\", ex)"},{"line_number":96,"context_line":"                raise k_exc.ResourceNotReady(pod)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"            try:"},{"line_number":99,"context_line":"                self._patch_pod_finalizer(pod)"},{"line_number":100,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":101,"context_line":"                LOG.exception(\"Failed to set pod finalizer: %s\", ex)"},{"line_number":102,"context_line":"                # TODO(gryf): raise?"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def on_finalize(self, pod):"},{"line_number":105,"context_line":"        k8s \u003d clients.get_kubernetes_client()"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_2df51eee","line":102,"range":{"start_line":98,"start_character":0,"end_line":102,"end_character":36},"updated":"2020-07-23 15:59:32.000000000","message":"Again to be handled by add_finalizer() from NP CRD patch, but in general - raise.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            k8s.delete(KURYRPORT_URI.format(ns\u003dpod[\"metadata\"][\"namespace\"],"},{"line_number":108,"context_line":"                                            crd\u003dpod[\"metadata\"][\"name\"]))"},{"line_number":109,"context_line":"        except k_exc.K8sResourceNotFound:"},{"line_number":110,"context_line":"            try:"},{"line_number":111,"context_line":"                self._patch_pod_finalizer(pod, set_finalizer\u003dFalse)"},{"line_number":112,"context_line":"            except k_exc.K8sClientException as ex:"},{"line_number":113,"context_line":"                LOG.exception(\"Failed to remove pod finalizer: %s\", ex)"},{"line_number":114,"context_line":"                # TODO(gryf): raise ResourceNotReady?"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        except k_exc.K8sClientException:"},{"line_number":117,"context_line":"            LOG.exception(\"Could not remove KuryrPort CRD for pod %s.\","}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_8ddb8a7b","line":114,"range":{"start_line":110,"start_character":0,"end_line":114,"end_character":53},"updated":"2020-07-23 15:59:32.000000000","message":"Ditto.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                                      crd\u003d\u0027\u0027), kuryr_port)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _patch_pod_finalizer(self, pod, set_finalizer\u003dTrue):"},{"line_number":180,"context_line":"        \"\"\"Add finalize for pod\"\"\""},{"line_number":181,"context_line":"        finalizer \u003d []"},{"line_number":182,"context_line":"        if set_finalizer:"},{"line_number":183,"context_line":"            finalizer \u003d [constants.POD_FINALIZER]"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_6eed42b6","line":180,"range":{"start_line":180,"start_character":7,"end_line":180,"end_character":34},"updated":"2020-07-24 09:35:08.000000000","message":"add or remove, right?","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c9d82111069db948bc0044d38b1c1d9dc95c8678","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _patch_pod_finalizer(self, pod, set_finalizer\u003dTrue):"},{"line_number":180,"context_line":"        \"\"\"Add finalize for pod\"\"\""},{"line_number":181,"context_line":"        finalizer \u003d []"},{"line_number":182,"context_line":"        if set_finalizer:"},{"line_number":183,"context_line":"            finalizer \u003d [constants.POD_FINALIZER]"},{"line_number":184,"context_line":"        k8s \u003d clients.get_kubernetes_client()"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_cec56e0c","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":22},"updated":"2020-07-24 09:35:08.000000000","message":"this may be wrong. We can remove all the finalizers in our CRDs, but not in the pod. There may be other components using finalizers for the pods and we should only remove ours","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"94e4a7e284d2f1487a6a68b85288bae5b99b8d82","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _patch_pod_finalizer(self, pod, set_finalizer\u003dTrue):"},{"line_number":180,"context_line":"        \"\"\"Add finalize for pod\"\"\""},{"line_number":181,"context_line":"        finalizer \u003d []"},{"line_number":182,"context_line":"        if set_finalizer:"},{"line_number":183,"context_line":"            finalizer \u003d [constants.POD_FINALIZER]"},{"line_number":184,"context_line":"        k8s \u003d clients.get_kubernetes_client()"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_24d6c954","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":22},"in_reply_to":"bf51134e_0eb76688","updated":"2020-07-24 11:06:41.000000000","message":"yep, I reviewed your patch at the end... if they use your method it should be fine","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"132a4d2787185e3dd2595879a4551017394097d4","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _patch_pod_finalizer(self, pod, set_finalizer\u003dTrue):"},{"line_number":180,"context_line":"        \"\"\"Add finalize for pod\"\"\""},{"line_number":181,"context_line":"        finalizer \u003d []"},{"line_number":182,"context_line":"        if set_finalizer:"},{"line_number":183,"context_line":"            finalizer \u003d [constants.POD_FINALIZER]"},{"line_number":184,"context_line":"        k8s \u003d clients.get_kubernetes_client()"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_0eb76688","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":22},"in_reply_to":"bf51134e_cec56e0c","updated":"2020-07-24 09:41:04.000000000","message":"Yes, I indicated it a few times in review that I made some nice methods to add or remove a finalizer on my NP CRD patch.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9b0832cc457d2217a802a576955654919025bb14","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                for ifname, vif in state.vifs.items()}"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            self._add_kuryrport_crd(self, pod, vifs)"},{"line_number":206,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":207,"context_line":"            LOG.exception(\"Kubernetes Client Exception recreating \""},{"line_number":208,"context_line":"                          \"KuryrPort CRD from annotation: %s\", ex)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_4d5972fc","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":52},"updated":"2020-07-23 15:59:32.000000000","message":"We need to make sure annotation is removed after this happens, otherwise on every on_present() we\u0027ll end up trying to create a KuryrPort.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b46aaee06f27de7a51779258ed73683761715ce","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                for ifname, vif in state.vifs.items()}"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            self._add_kuryrport_crd(self, pod, vifs)"},{"line_number":206,"context_line":"        except k_exc.K8sClientException as ex:"},{"line_number":207,"context_line":"            LOG.exception(\"Kubernetes Client Exception recreating \""},{"line_number":208,"context_line":"                          \"KuryrPort CRD from annotation: %s\", ex)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf51134e_514f48bd","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":52},"in_reply_to":"bf51134e_4d5972fc","updated":"2020-07-23 18:57:52.000000000","message":"Good one! I\u0027ll add this next in iteration.","commit_id":"385d87e19c2ed2170a41cb355d971f23ca3ae640"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"68b8f19bd06fb6822684cc4a27956e86a4ff44a5","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return (\u0027policy\u0027 in enabled_handlers and svc_sg_driver \u003d\u003d \u0027policy\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _add_kuryrport_crd(self, pod, vifs\u003dNone):"},{"line_number":152,"context_line":"        LOG.info(\u0027Adding CRD %s\u0027, pod[\"metadata\"][\"name\"])"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        if not vifs:"},{"line_number":155,"context_line":"            vifs \u003d {}"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_bebb3870","line":152,"range":{"start_line":152,"start_character":0,"end_line":152,"end_character":58},"updated":"2020-07-29 18:30:52.000000000","message":"This should be debug, to be fixed in a follow-up.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"bebdfc0f52af939a308569da1821a7b27890ed13","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return (\u0027policy\u0027 in enabled_handlers and svc_sg_driver \u003d\u003d \u0027policy\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _add_kuryrport_crd(self, pod, vifs\u003dNone):"},{"line_number":152,"context_line":"        LOG.info(\u0027Adding CRD %s\u0027, pod[\"metadata\"][\"name\"])"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        if not vifs:"},{"line_number":155,"context_line":"            vifs \u003d {}"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_f4302ceb","line":152,"range":{"start_line":152,"start_character":0,"end_line":152,"end_character":58},"in_reply_to":"9f560f44_bebb3870","updated":"2020-07-30 04:02:59.000000000","message":"Ack.","commit_id":"7d7857e4d4919f2302e17120f69a739fae9d0ec5"}]}
