)]}'
{"doc/source/installation/listener_timeouts.rst":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"07a346790eeeb882d34594fe913c8e90c012a923","unresolved":true,"context_lines":[{"line_number":18,"context_line":"      kind: Service"},{"line_number":19,"context_line":"      metadata:"},{"line_number":20,"context_line":"        name: kuryr-demo"},{"line_number":21,"context_line":"          annotations:"},{"line_number":22,"context_line":"            openstack.org/kuryr-timeout-client-data: \u002770000\u0027"},{"line_number":23,"context_line":"            openstack.org/kuryr-timeout-member-data: \u002775000\u0027"},{"line_number":24,"context_line":"      spec:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d02b3e62_1038538f","line":21,"updated":"2021-03-07 15:12:19.000000000","message":"The indentation here should be aligned with name on the metadata.","commit_id":"a15617cdf3938114ef07a11c7d562ecf77716e3e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"f6b13d211a7d9ff01a2bc2c2a961fe3ccd83ada8","unresolved":true,"context_lines":[{"line_number":18,"context_line":"      kind: Service"},{"line_number":19,"context_line":"      metadata:"},{"line_number":20,"context_line":"        name: kuryr-demo"},{"line_number":21,"context_line":"        annotations:"},{"line_number":22,"context_line":"          openstack.org/kuryr-timeout-client-data: \u002770000\u0027"},{"line_number":23,"context_line":"          openstack.org/kuryr-timeout-member-data: \u002775000\u0027"},{"line_number":24,"context_line":"      spec:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"58fbb2db_fed3cbbd","line":21,"updated":"2021-03-12 01:30:47.000000000","message":"there is some issue with the indentation.","commit_id":"56e71adb84633ae56c14a640c23c9831c4e22a24"}],"kubernetes_crds/kuryr_crds/kuryrloadbalancer.yaml":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"882b06bbc0afcb78546796c0603fbf24669cc49b","unresolved":true,"context_lines":[{"line_number":128,"context_line":"                  - port"},{"line_number":129,"context_line":"                  - project_id"},{"line_number":130,"context_line":"                  - protocol"},{"line_number":131,"context_line":"                  properties:"},{"line_number":132,"context_line":"                    id:"},{"line_number":133,"context_line":"                      type: string"},{"line_number":134,"context_line":"                    loadbalancer_id:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"62812730_77e5c4c7","line":131,"updated":"2021-03-04 00:03:51.000000000","message":"In case the timeouts are return as a result of the api call, it\u0027s worth including them in the in the properties, so the user can have better visualization of the timeouts values enforced.","commit_id":"26aff0d9254ad1e68344a573b5683af576485bae"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"8179284576240780409ae481ef1cae03c5bedc4d","unresolved":true,"context_lines":[{"line_number":128,"context_line":"                  - port"},{"line_number":129,"context_line":"                  - project_id"},{"line_number":130,"context_line":"                  - protocol"},{"line_number":131,"context_line":"                  properties:"},{"line_number":132,"context_line":"                    id:"},{"line_number":133,"context_line":"                      type: string"},{"line_number":134,"context_line":"                    loadbalancer_id:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"f824c0aa_e21bfc30","line":131,"in_reply_to":"62812730_77e5c4c7","updated":"2021-03-04 08:06:29.000000000","message":"yes, +1, the timeout should be added (if possible) to the status. It will be worthy for instance to know if annotating the SVC with a new timeout has actually updated the listener (without having to check the information on the OSP side)","commit_id":"26aff0d9254ad1e68344a573b5683af576485bae"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9984a12e19290bc26e0f13253e594c2a5e2559aa","unresolved":true,"context_lines":[{"line_number":128,"context_line":"                  - port"},{"line_number":129,"context_line":"                  - project_id"},{"line_number":130,"context_line":"                  - protocol"},{"line_number":131,"context_line":"                  - timeout_client_data"},{"line_number":132,"context_line":"                  - timeout_member_data"},{"line_number":133,"context_line":"                  properties:"},{"line_number":134,"context_line":"                    id:"},{"line_number":135,"context_line":"                      type: string"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"0fe2c1a6_c87d7fb8","line":132,"range":{"start_line":131,"start_character":0,"end_line":132,"end_character":39},"updated":"2021-03-16 13:02:49.000000000","message":"I don\u0027t think you should add those as required without an upgrade path. I just tested that updating CRD won\u0027t break immediately but then patching will start to fail: \n\n stack@mdulko-devstackvm-0:~$ kubectl patch klb ipv4 --type\u003d\u0027json\u0027 -p\u003d\u0027[{\"op\": \"add\", \"path\": \"/metadata/labels/test\", \"value\": \"test\"}]\u0027\n The KuryrLoadBalancer \"ipv4\" is invalid: status.listeners.foo: Required value\n\n\nCouldn\u0027t we just assume it\u0027s 0 (meaning Octavia default) if not set?","commit_id":"ea25b315193c307a039aa2efcc10cba6c9f63ac4"}],"kuryr_kubernetes/config.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e1c7fd9212dcdbefb786ec2d5637ced980797851","unresolved":true,"context_lines":[{"line_number":262,"context_line":"    cfg.IntOpt(\u0027timeout_client_data\u0027,"},{"line_number":263,"context_line":"               help\u003d_(\"Frontend client inactivity timeout in milliseconds. \""},{"line_number":264,"context_line":"                      \"Default: 50000.\"),"},{"line_number":265,"context_line":"               default\u003d50000),"},{"line_number":266,"context_line":"    cfg.IntOpt(\u0027timeout_member_data\u0027,"},{"line_number":267,"context_line":"               help\u003d_(\"Backend member inactivity timeout in milliseconds. \""},{"line_number":268,"context_line":"                      \"Default: 50000.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"8794c4d5_c11bcb00","line":265,"range":{"start_line":265,"start_character":15,"end_line":265,"end_character":28},"updated":"2021-03-01 09:12:02.000000000","message":"I would perhaps not set any default to these, and in case it is not set, we simply use the default value (i.e., not passing any timeout information while creating the listeners), rather than modify the default to 50000","commit_id":"6e7dc1bcb582c040d7fca12acf07b5cdd486b0e2"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"ce72d2ecb3975f2ecb77271efb6d83a3e9e8e9ce","unresolved":true,"context_lines":[{"line_number":262,"context_line":"    cfg.IntOpt(\u0027timeout_client_data\u0027,"},{"line_number":263,"context_line":"               help\u003d_(\"Frontend client inactivity timeout in milliseconds. \""},{"line_number":264,"context_line":"                      \"Default: 50000.\"),"},{"line_number":265,"context_line":"               default\u003d50000),"},{"line_number":266,"context_line":"    cfg.IntOpt(\u0027timeout_member_data\u0027,"},{"line_number":267,"context_line":"               help\u003d_(\"Backend member inactivity timeout in milliseconds. \""},{"line_number":268,"context_line":"                      \"Default: 50000.\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"538ede60_d8ba43a6","line":265,"range":{"start_line":265,"start_character":15,"end_line":265,"end_character":28},"in_reply_to":"8794c4d5_c11bcb00","updated":"2021-03-03 19:46:49.000000000","message":"Thanks Luis, done. ;)","commit_id":"6e7dc1bcb582c040d7fca12acf07b5cdd486b0e2"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"8179284576240780409ae481ef1cae03c5bedc4d","unresolved":true,"context_lines":[{"line_number":261,"context_line":"               default\u003d\u0027ROUND_ROBIN\u0027),"},{"line_number":262,"context_line":"    cfg.IntOpt(\u0027timeout_client_data\u0027,"},{"line_number":263,"context_line":"               help\u003d_(\"Frontend client inactivity timeout in milliseconds. \""},{"line_number":264,"context_line":"                      \"Default: 50000.\"),"},{"line_number":265,"context_line":"               default\u003d0),"},{"line_number":266,"context_line":"    cfg.IntOpt(\u0027timeout_member_data\u0027,"},{"line_number":267,"context_line":"               help\u003d_(\"Backend member inactivity timeout in milliseconds. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"eb3d65a7_f34776fc","line":264,"range":{"start_line":264,"start_character":32,"end_line":264,"end_character":38},"updated":"2021-03-04 08:06:29.000000000","message":"default is whatever is defined by default on octavia side, it does not need to be 50000. Perhaps also worth to mention that setting it to \"0\" you use whatever is defined on Octavia as default","commit_id":"26aff0d9254ad1e68344a573b5683af576485bae"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"8179284576240780409ae481ef1cae03c5bedc4d","unresolved":true,"context_lines":[{"line_number":265,"context_line":"               default\u003d0),"},{"line_number":266,"context_line":"    cfg.IntOpt(\u0027timeout_member_data\u0027,"},{"line_number":267,"context_line":"               help\u003d_(\"Backend member inactivity timeout in milliseconds. \""},{"line_number":268,"context_line":"                      \"Default: 50000.\"),"},{"line_number":269,"context_line":"               default\u003d0),"},{"line_number":270,"context_line":"]"},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"d9a82165_4b9fec2f","line":268,"range":{"start_line":268,"start_character":23,"end_line":268,"end_character":38},"updated":"2021-03-04 08:06:29.000000000","message":"ditto","commit_id":"26aff0d9254ad1e68344a573b5683af576485bae"}],"kuryr_kubernetes/constants.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"b925049998354fce98c84d83f1183cf35cfd365b","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"OCTAVIA_L2_MEMBER_MODE \u003d \"L2\""},{"line_number":98,"context_line":"OCTAVIA_L3_MEMBER_MODE \u003d \"L3\""},{"line_number":99,"context_line":"OCTAVIA_DEFAULT_TIMEOUT \u003d 50000"},{"line_number":100,"context_line":"NEUTRON_LBAAS_HAPROXY_PROVIDER \u003d \u0027haproxy\u0027"},{"line_number":101,"context_line":"IPv4 \u003d \u0027IPv4\u0027"},{"line_number":102,"context_line":"IPv6 \u003d \u0027IPv6\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"d5e9a80b_0ba79544","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":31},"updated":"2021-03-15 08:22:05.000000000","message":"I still think we should not rely on this, as this number does not need to be the default timeout. That will depend on how Octavia is configured","commit_id":"f5c7fd28b41f775d6cdcb3de44819467468a100d"}],"kuryr_kubernetes/controller/drivers/lbaasv2.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"256b6755de76b31a26ece87668408f47a9b71c7b","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        if v \u003e\u003d _OCTAVIA_TAGGING_VERSION:"},{"line_number":82,"context_line":"            LOG.info(\u0027Octavia supports resource tags.\u0027)"},{"line_number":83,"context_line":"            self._octavia_tags \u003d True"},{"line_number":84,"context_line":"        if v \u003e\u003d _OCTAVIA_SCTP_VERSION:"},{"line_number":85,"context_line":"            LOG.info(\u0027Octavia API supports SCTP protocol.\u0027)"},{"line_number":86,"context_line":"            self._octavia_sctp \u003d True"},{"line_number":87,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"6cc1e7ff_74356ba6","side":"PARENT","line":84,"updated":"2021-02-25 08:12:05.000000000","message":"this change perhaps does not belong to this patch, but to a different (bug/typo) one, as we did not realize the if was in the wrong place when adding SCTP support. Anyway, as there has not been any release in between, perhaps it can be quickly done and merge in a different patch without a need for a launchpad bug (no strong opinion though)","commit_id":"10ea8698586bd172a3d4b0215f6774102348ac69"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"c8e010499692d874d9eb039d3dfb554a9481db2f","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        if v \u003e\u003d _OCTAVIA_TAGGING_VERSION:"},{"line_number":82,"context_line":"            LOG.info(\u0027Octavia supports resource tags.\u0027)"},{"line_number":83,"context_line":"            self._octavia_tags \u003d True"},{"line_number":84,"context_line":"        if v \u003e\u003d _OCTAVIA_SCTP_VERSION:"},{"line_number":85,"context_line":"            LOG.info(\u0027Octavia API supports SCTP protocol.\u0027)"},{"line_number":86,"context_line":"            self._octavia_sctp \u003d True"},{"line_number":87,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"2b03cdd1_67fa1c31","side":"PARENT","line":84,"in_reply_to":"6cc1e7ff_74356ba6","updated":"2021-02-25 08:42:53.000000000","message":"Alright, that works. I will, thanks.","commit_id":"10ea8698586bd172a3d4b0215f6774102348ac69"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"4741f8f0cb43e140b3e3baa22b59af80355ef758","unresolved":true,"context_lines":[{"line_number":357,"context_line":"                \u0027network-policy\u0027 not in rule.get(\u0027description\u0027))"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def ensure_listener(self, loadbalancer, protocol, port,"},{"line_number":360,"context_line":"                        service_type\u003d\u0027ClusterIP\u0027, timeout_client_data\u003d50000,"},{"line_number":361,"context_line":"                        timeout_member_data\u003d50000):"},{"line_number":362,"context_line":"        name \u003d \"%s:%s:%s\" % (loadbalancer[\u0027name\u0027], protocol, port)"},{"line_number":363,"context_line":"        listener \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"0afb4fe6_3fd742fc","line":360,"updated":"2021-02-24 15:29:48.000000000","message":"these values should either come from config option or we can not specify them on the Octavia api call (if no annotation is present), so that octavia creates it with the regular defaults values.","commit_id":"49fa777b28e1372948755fbf0ee5d2ae8fac0974"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"256b6755de76b31a26ece87668408f47a9b71c7b","unresolved":true,"context_lines":[{"line_number":357,"context_line":"                \u0027network-policy\u0027 not in rule.get(\u0027description\u0027))"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def ensure_listener(self, loadbalancer, protocol, port,"},{"line_number":360,"context_line":"                        service_type\u003d\u0027ClusterIP\u0027, timeout_client_data\u003d50000,"},{"line_number":361,"context_line":"                        timeout_member_data\u003d50000):"},{"line_number":362,"context_line":"        name \u003d \"%s:%s:%s\" % (loadbalancer[\u0027name\u0027], protocol, port)"},{"line_number":363,"context_line":"        listener \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"68e65cac_9d1698ac","line":360,"in_reply_to":"0afb4fe6_3fd742fc","updated":"2021-02-25 08:12:05.000000000","message":"yeah, +1. Some customer may modified the defaults and we don\u0027t want to change them here unless otherwise stated on the kuryr config","commit_id":"49fa777b28e1372948755fbf0ee5d2ae8fac0974"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"c8e010499692d874d9eb039d3dfb554a9481db2f","unresolved":true,"context_lines":[{"line_number":357,"context_line":"                \u0027network-policy\u0027 not in rule.get(\u0027description\u0027))"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def ensure_listener(self, loadbalancer, protocol, port,"},{"line_number":360,"context_line":"                        service_type\u003d\u0027ClusterIP\u0027, timeout_client_data\u003d50000,"},{"line_number":361,"context_line":"                        timeout_member_data\u003d50000):"},{"line_number":362,"context_line":"        name \u003d \"%s:%s:%s\" % (loadbalancer[\u0027name\u0027], protocol, port)"},{"line_number":363,"context_line":"        listener \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"b3891404_4c39fa14","line":360,"in_reply_to":"68e65cac_9d1698ac","updated":"2021-02-25 08:42:53.000000000","message":"Oh okay, thank you.","commit_id":"49fa777b28e1372948755fbf0ee5d2ae8fac0974"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"8179284576240780409ae481ef1cae03c5bedc4d","unresolved":true,"context_lines":[{"line_number":557,"context_line":"            \u0027protocol\u0027: listener[\u0027protocol\u0027],"},{"line_number":558,"context_line":"            \u0027protocol_port\u0027: listener[\u0027port\u0027],"},{"line_number":559,"context_line":"        }"},{"line_number":560,"context_line":"        timeout_cli \u003d listener[\u0027timeout_client_data\u0027] \\"},{"line_number":561,"context_line":"            if listener.get(\u0027timeout_client_data\u0027) \\"},{"line_number":562,"context_line":"            else CONF.octavia_defaults.timeout_client_data"},{"line_number":563,"context_line":"        timeout_mem \u003d listener[\u0027timeout_member_data\u0027] \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"85180542_5dd29444","line":560,"range":{"start_line":560,"start_character":54,"end_line":560,"end_character":55},"updated":"2021-03-04 08:06:29.000000000","message":"I think the preferred way to split lines is with (), instead of \\","commit_id":"26aff0d9254ad1e68344a573b5683af576485bae"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"07a346790eeeb882d34594fe913c8e90c012a923","unresolved":true,"context_lines":[{"line_number":559,"context_line":"        }"},{"line_number":560,"context_line":"        default_timeout_cli \u003d CONF.octavia_defaults.timeout_client_data"},{"line_number":561,"context_line":"        default_timeout_mem \u003d CONF.octavia_defaults.timeout_member_data"},{"line_number":562,"context_line":"        timeout_cli \u003d listener[\u0027timeout_client_data\u0027] if listener.get("},{"line_number":563,"context_line":"            \u0027timeout_client_data\u0027) else default_timeout_cli"},{"line_number":564,"context_line":"        timeout_mem \u003d listener[\u0027timeout_member_data\u0027] if listener.get("},{"line_number":565,"context_line":"            \u0027timeout_member_data\u0027) else default_timeout_mem"}],"source_content_type":"text/x-python","patch_set":7,"id":"dc17b98f_3cf761c7","line":562,"updated":"2021-03-07 15:12:19.000000000","message":"We could move this logic of defining which config value to be used to when the Custom Resource is being filled at the \u0027_get_data_timeout_annotation\u0027 method, if there is no annotation we can add what is on the config, this way we can better split where the spec is defined and where the configured values are enforced.","commit_id":"a15617cdf3938114ef07a11c7d562ecf77716e3e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e7786f1129dc2702de81f63c8f2295012cc67963","unresolved":true,"context_lines":[{"line_number":600,"context_line":"            LOG.error(\u0027Error when updating listener %s\u0027 % listener_id)"},{"line_number":601,"context_line":"            raise k_exc.ResourceNotReady(listener_id)"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    def _find_listener(self, listener, loadbalancer):"},{"line_number":604,"context_line":"        lbaas \u003d clients.get_loadbalancer_client()"},{"line_number":605,"context_line":"        response \u003d lbaas.listeners("},{"line_number":606,"context_line":"            name\u003dlistener[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"14dafcfd_004f3a85","line":603,"updated":"2021-03-10 01:57:08.000000000","message":"Note that the timeouts are not used here when looking for listener consequently the outdated listener is returned. It might be good to check if the timeouts are different from the listener found and the listener requested and perform a listener update.\n\nJust a side note, to double check that it works aside from checking the kuryrloadbalancer is also good to check the listeners with \u0027openstack loadbalancer list\u0027 and then \u0027openstack loadbalancer listener show \u003cid\u003e\u0027 to see the timeouts enforced.","commit_id":"672f48efdd97ac4b19ab91f714d6cc16ff3a89b4"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"f6b13d211a7d9ff01a2bc2c2a961fe3ccd83ada8","unresolved":true,"context_lines":[{"line_number":612,"context_line":"            protocol_port\u003dlistener[\u0027port\u0027])"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"        request \u003d {}"},{"line_number":615,"context_line":"        if timeout_cli:"},{"line_number":616,"context_line":"            request[\u0027timeout_client_data\u0027] \u003d timeout_cli"},{"line_number":617,"context_line":"        if timeout_mb:"},{"line_number":618,"context_line":"            request[\u0027timeout_member_data\u0027] \u003d timeout_mb"}],"source_content_type":"text/x-python","patch_set":11,"id":"6668120a_6f224c34","line":615,"updated":"2021-03-12 01:30:47.000000000","message":"if the timeouts are re-configured as 0 on the crd I believe the listener should be updated with the default value.","commit_id":"56e71adb84633ae56c14a640c23c9831c4e22a24"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"75352b1c23ee0edfc65bbb72cee65901bcf90f6b","unresolved":true,"context_lines":[{"line_number":612,"context_line":"            protocol_port\u003dlistener[\u0027port\u0027])"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"        request \u003d {}"},{"line_number":615,"context_line":"        if timeout_cli:"},{"line_number":616,"context_line":"            request[\u0027timeout_client_data\u0027] \u003d timeout_cli"},{"line_number":617,"context_line":"        if timeout_mb:"},{"line_number":618,"context_line":"            request[\u0027timeout_member_data\u0027] \u003d timeout_mb"}],"source_content_type":"text/x-python","patch_set":11,"id":"e1dd6c3d_8f537f4d","line":615,"in_reply_to":"6668120a_6f224c34","updated":"2021-03-15 12:08:53.000000000","message":"\u003e if the timeouts are re-configured as 0 on the crd I believe the listener should be updated with the default value.\n\nLuis, I think this is the only case where knowing the default is actually necessary.","commit_id":"56e71adb84633ae56c14a640c23c9831c4e22a24"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"3ac419d794dae0a735c610fcb686539816782767","unresolved":true,"context_lines":[{"line_number":639,"context_line":"                    os_listener.timeout_client_data !\u003d default_time)) or ("},{"line_number":640,"context_line":"                        not timeout_mb and ("},{"line_number":641,"context_line":"                            os_listener.timeout_member_data !\u003d default_time)):"},{"line_number":642,"context_line":"                upd_listener \u003d lbaas.update_listener(os_listener.id, **request)"},{"line_number":643,"context_line":"            if upd_listener:"},{"line_number":644,"context_line":"                listener[\u0027timeout_client_data\u0027] \u003d default_time if ("},{"line_number":645,"context_line":"                    not timeout_cli) else timeout_cli"}],"source_content_type":"text/x-python","patch_set":13,"id":"68140b59_9d9f43b3","line":642,"updated":"2021-03-15 18:21:09.000000000","message":"The default value was needed here.","commit_id":"8cb25450de85dc2b44d704a6a245e7f9fc827764"}],"kuryr_kubernetes/controller/handlers/lbaas.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"07a346790eeeb882d34594fe913c8e90c012a923","unresolved":true,"context_lines":[{"line_number":69,"context_line":"                            service[\u0027metadata\u0027][\u0027namespace\u0027],"},{"line_number":70,"context_line":"                            service[\u0027metadata\u0027][\u0027name\u0027])"},{"line_number":71,"context_line":"                return"},{"line_number":72,"context_line":"        elif self._has_lbaas_spec_changes(service, loadbalancer_crd):"},{"line_number":73,"context_line":"            self._update_crd_spec(loadbalancer_crd, service)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _is_supported_type(self, service):"}],"source_content_type":"text/x-python","patch_set":7,"id":"c8983831_dee7d5fa","line":72,"updated":"2021-03-07 15:12:19.000000000","message":"The annotations needs to be taken into account here otherwise if the value on the timeouts annotations are updated the CR is not updated on the spec and the new listener timeout is not enforced.","commit_id":"a15617cdf3938114ef07a11c7d562ecf77716e3e"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9984a12e19290bc26e0f13253e594c2a5e2559aa","unresolved":true,"context_lines":[{"line_number":158,"context_line":"            kubernetes.post(\u0027{}/{}/kuryrloadbalancers\u0027.format("},{"line_number":159,"context_line":"                k_const.K8S_API_CRD_NAMESPACES, svc_namespace),"},{"line_number":160,"context_line":"                loadbalancer_crd)"},{"line_number":161,"context_line":"            LOG.debug(\"loadbalancer_crd: {}\".format(loadbalancer_crd))"},{"line_number":162,"context_line":"        except k_exc.K8sConflict:"},{"line_number":163,"context_line":"            raise k_exc.ResourceNotReady(svc_name)"},{"line_number":164,"context_line":"        except k_exc.K8sNamespaceTerminating:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1401e856_ffc7ee14","line":161,"range":{"start_line":161,"start_character":0,"end_line":161,"end_character":70},"updated":"2021-03-16 13:02:49.000000000","message":"I bet that\u0027s a leftover from debugging.","commit_id":"ea25b315193c307a039aa2efcc10cba6c9f63ac4"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9984a12e19290bc26e0f13253e594c2a5e2559aa","unresolved":true,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        if not loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_client_data\u0027):"},{"line_number":260,"context_line":"            if not cli_timeout:"},{"line_number":261,"context_line":"                return False"},{"line_number":262,"context_line":"            return True"},{"line_number":263,"context_line":"        elif loadbalancer_crd[\u0027spec\u0027].get("},{"line_number":264,"context_line":"                \u0027timeout_client_data\u0027) !\u003d cli_timeout:"}],"source_content_type":"text/x-python","patch_set":14,"id":"001032b0_3de49aca","line":261,"range":{"start_line":261,"start_character":16,"end_line":261,"end_character":28},"updated":"2021-03-16 13:02:49.000000000","message":"I don\u0027t think this should return early without checking the other timeout?","commit_id":"ea25b315193c307a039aa2efcc10cba6c9f63ac4"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9984a12e19290bc26e0f13253e594c2a5e2559aa","unresolved":true,"context_lines":[{"line_number":256,"context_line":"        link \u003d utils.get_res_link(service)"},{"line_number":257,"context_line":"        cli_timeout, mem_timeout \u003d self._get_data_timeout_annotation(service)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        if not loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_client_data\u0027):"},{"line_number":260,"context_line":"            if not cli_timeout:"},{"line_number":261,"context_line":"                return False"},{"line_number":262,"context_line":"            return True"},{"line_number":263,"context_line":"        elif loadbalancer_crd[\u0027spec\u0027].get("},{"line_number":264,"context_line":"                \u0027timeout_client_data\u0027) !\u003d cli_timeout:"},{"line_number":265,"context_line":"            LOG.debug(\"LBaaS spec timeout_client_data {} !\u003d {} for {}\".format("},{"line_number":266,"context_line":"                loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_client_data\u0027),"},{"line_number":267,"context_line":"                cli_timeout, link))"},{"line_number":268,"context_line":"            return True"},{"line_number":269,"context_line":"        if not loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_member_data\u0027):"},{"line_number":270,"context_line":"            if not mem_timeout:"},{"line_number":271,"context_line":"                return False"},{"line_number":272,"context_line":"            return True"},{"line_number":273,"context_line":"        elif loadbalancer_crd[\u0027spec\u0027].get("},{"line_number":274,"context_line":"                \u0027timeout_member_data\u0027) !\u003d mem_timeout:"},{"line_number":275,"context_line":"            LOG.debug(\"LBaaS spec timeout_member_data {} !\u003d {} for {}\".format("},{"line_number":276,"context_line":"                loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_member_data\u0027),"},{"line_number":277,"context_line":"                mem_timeout, link))"},{"line_number":278,"context_line":"            return True"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        return False"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"888e5756_7f813a14","line":278,"range":{"start_line":259,"start_character":0,"end_line":278,"end_character":23},"updated":"2021-03-16 13:02:49.000000000","message":"This is same code repeated twice, isn\u0027t it? Would be better to use loop like this:\n\n for spec_value, current_value in [(loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_client_data\u0027), cli_timeout), (loadbalancer_crd[\u0027spec\u0027].get(\u0027timeout_member_data\u0027), mem_timeout)]:","commit_id":"ea25b315193c307a039aa2efcc10cba6c9f63ac4"}],"kuryr_kubernetes/controller/handlers/loadbalancer.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"95a75c9326eaf1b0a39fc92be7ccd5dc1682672e","unresolved":true,"context_lines":[{"line_number":605,"context_line":"                LOG.warning(\"Skipping listener creation as provider does\""},{"line_number":606,"context_line":"                            \" not support %s protocol\", protocol)"},{"line_number":607,"context_line":"                continue"},{"line_number":608,"context_line":"            listener \u003d self._drv_lbaas.ensure_listener("},{"line_number":609,"context_line":"                loadbalancer\u003dloadbalancer_crd[\u0027status\u0027].get(\u0027loadbalancer\u0027),"},{"line_number":610,"context_line":"                protocol\u003dprotocol,"},{"line_number":611,"context_line":"                port\u003dport,"}],"source_content_type":"text/x-python","patch_set":9,"id":"c678abe9_d482ee03","line":608,"updated":"2021-03-09 00:13:50.000000000","message":"Seems the ensure_listener never gets a chance to run when updating the values on annotation, this is probably because if ports and protocol are the same this operation is skipped. See line 592. That probably needs to be adapted.\n\nbtw, to test if the edition of service annotation is enforced the following command can be ran:\nkubectl edit svc \u003cname\u003e - and change the annotations values\nthen check if the listener is updated.","commit_id":"2bf1e1b30f3ea7c6dd3c4da48a33984d483acfe9"},{"author":{"_account_id":32533,"name":"Tabitha Fasoyin","email":"fifedolapo02@gmail.com","username":"tabbie-fash"},"change_message_id":"5cb8e2b2f01b9602caa02f6d37a0960c1f8667f3","unresolved":true,"context_lines":[{"line_number":605,"context_line":"                LOG.warning(\"Skipping listener creation as provider does\""},{"line_number":606,"context_line":"                            \" not support %s protocol\", protocol)"},{"line_number":607,"context_line":"                continue"},{"line_number":608,"context_line":"            listener \u003d self._drv_lbaas.ensure_listener("},{"line_number":609,"context_line":"                loadbalancer\u003dloadbalancer_crd[\u0027status\u0027].get(\u0027loadbalancer\u0027),"},{"line_number":610,"context_line":"                protocol\u003dprotocol,"},{"line_number":611,"context_line":"                port\u003dport,"}],"source_content_type":"text/x-python","patch_set":9,"id":"994e6cbd_f0efd879","line":608,"in_reply_to":"c678abe9_d482ee03","updated":"2021-03-09 10:21:21.000000000","message":"Oh, right, thanks ;)","commit_id":"2bf1e1b30f3ea7c6dd3c4da48a33984d483acfe9"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"e7786f1129dc2702de81f63c8f2295012cc67963","unresolved":true,"context_lines":[{"line_number":591,"context_line":"                timeout_cli \u003d l.get(\u0027timeout_client_data\u0027)"},{"line_number":592,"context_line":"                timeout_mb \u003d l.get(\u0027timeout_member_data\u0027)"},{"line_number":593,"context_line":"                if l[\u0027port\u0027] \u003d\u003d port and l[\u0027protocol\u0027] \u003d\u003d protocol:"},{"line_number":594,"context_line":"                    if ((timeout_cli \u003d\u003d 50000 and t_cli \u003d\u003d 0) or ("},{"line_number":595,"context_line":"                            timeout_cli \u003d\u003d t_cli)) and (timeout_mb \u003d\u003d t_mb or ("},{"line_number":596,"context_line":"                                timeout_mb \u003d\u003d 50000 and t_mb \u003d\u003d 0)):"},{"line_number":597,"context_line":"                        listener.append(l)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0a0794cd_cbe2675e","line":594,"range":{"start_line":594,"start_character":40,"end_line":594,"end_character":45},"updated":"2021-03-10 01:57:08.000000000","message":"It might be good to define a constant in the begging of the file or in the constant file just so that someone not familiar with octavia defaults values get an idea what 50000 is about.","commit_id":"672f48efdd97ac4b19ab91f714d6cc16ff3a89b4"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"b925049998354fce98c84d83f1183cf35cfd365b","unresolved":true,"context_lines":[{"line_number":590,"context_line":"            for l in loadbalancer_crd[\u0027status\u0027].get(\u0027listeners\u0027, []):"},{"line_number":591,"context_line":"                timeout_cli \u003d l.get(\u0027timeout_client_data\u0027)"},{"line_number":592,"context_line":"                timeout_mb \u003d l.get(\u0027timeout_member_data\u0027)"},{"line_number":593,"context_line":"                default_timeout \u003d k_const.OCTAVIA_DEFAULT_TIMEOUT"},{"line_number":594,"context_line":"                if l[\u0027port\u0027] \u003d\u003d port and l[\u0027protocol\u0027] \u003d\u003d protocol:"},{"line_number":595,"context_line":"                    if ((timeout_cli \u003d\u003d default_timeout and t_cli \u003d\u003d 0) or ("},{"line_number":596,"context_line":"                            timeout_cli \u003d\u003d t_cli)) and (timeout_mb \u003d\u003d t_mb or ("}],"source_content_type":"text/x-python","patch_set":12,"id":"33d8947a_ee520858","line":593,"updated":"2021-03-15 08:22:05.000000000","message":"Not convinced about this one... What would happen if we have OCTAVIA_DEFAULT_TIMEOUT set to 50000, but the OpenStack Octavia default value is set to a different value? we cannot rely on the Octavia default values as those can change depending on the OpenStack cluster Kuryr is running on","commit_id":"f5c7fd28b41f775d6cdcb3de44819467468a100d"}],"releasenotes/notes/make-listener-timeouts-configurable-f563d85eg6c6fe6d.yaml":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9984a12e19290bc26e0f13253e594c2a5e2559aa","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    can be configured to use values other than the Octavia defaults when"},{"line_number":7,"context_line":"    creating or modifying loadbalancers handled by Kuryr. In order to use this"},{"line_number":8,"context_line":"    functionality, the new timeout values can be annotated to the Service or"},{"line_number":9,"context_line":"    set in the config-map. New options ``[octavia_defaults]timeout_client_data``"},{"line_number":10,"context_line":"    and ``[octavia_defaults]timeout_member_data`` were added."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"70e70432_ba60e12c","line":9,"range":{"start_line":9,"start_character":15,"end_line":9,"end_character":25},"updated":"2021-03-16 13:02:49.000000000","message":"I\u0027d rather say kuryr.conf - it\u0027s not always a ConfigMap.","commit_id":"ea25b315193c307a039aa2efcc10cba6c9f63ac4"}]}
