)]}'
{"kuryr_kubernetes/config.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e486aae44084a3121406f154f26dd4605b2feb05","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                       \"them when Kubernetes cluster Kuryr was serving is no \""},{"line_number":213,"context_line":"                       \"longer needed.\"),"},{"line_number":214,"context_line":"                default\u003d[]),"},{"line_number":215,"context_line":"    cfg.IntOpt(\u0027rev_update_attempts\u0027,"},{"line_number":216,"context_line":"               help\u003d_(\"How many time to try to re-update the neutron resource \""},{"line_number":217,"context_line":"                      \"when revision has been changed by other thread\"),"},{"line_number":218,"context_line":"               default\u003d3)"},{"line_number":219,"context_line":"]"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"octavia_defaults \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_66b8bc10","line":218,"range":{"start_line":215,"start_character":0,"end_line":218,"end_character":25},"updated":"2019-08-29 07:47:10.000000000","message":"not sure if it is worth to expose this here or simply have a constant on the nested_macvlan driver","commit_id":"eba6e65cfa047d1de9475577d2e11964c7d388fb"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"324adcd5bfebd1fc4698ca09a1e893d1461287c5","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                       \"them when Kubernetes cluster Kuryr was serving is no \""},{"line_number":213,"context_line":"                       \"longer needed.\"),"},{"line_number":214,"context_line":"                default\u003d[]),"},{"line_number":215,"context_line":"    cfg.IntOpt(\u0027rev_update_attempts\u0027,"},{"line_number":216,"context_line":"               help\u003d_(\"How many time to try to re-update the neutron resource \""},{"line_number":217,"context_line":"                      \"when revision has been changed by other thread\"),"},{"line_number":218,"context_line":"               default\u003d3)"},{"line_number":219,"context_line":"]"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"octavia_defaults \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_fb7737d3","line":218,"range":{"start_line":215,"start_character":0,"end_line":218,"end_character":25},"in_reply_to":"7faddb67_66b8bc10","updated":"2019-09-25 09:59:01.000000000","message":"Not really, but it seems this should go to nested_vif_driver_opts.","commit_id":"eba6e65cfa047d1de9475577d2e11964c7d388fb"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"a4b5fcf6aea56743d1514f45eea32a99dd0a9843","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                       \"This can be used to identify and garbage-collect \""},{"line_number":225,"context_line":"                       \"them when Kubernetes cluster Kuryr was serving is no \""},{"line_number":226,"context_line":"                       \"longer needed.\"),"},{"line_number":227,"context_line":"                default\u003d[]),"},{"line_number":228,"context_line":"]"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"octavia_defaults \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_7e2fb53e","line":227,"range":{"start_line":227,"start_character":27,"end_line":227,"end_character":28},"updated":"2019-09-25 10:13:41.000000000","message":"leftover?","commit_id":"34cc778750141393bd9a7a2312d3fa3b68ab3fba"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2e3eb43f3219a5bb64cd0e5805c328bd3b6246e3","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                       \"This can be used to identify and garbage-collect \""},{"line_number":225,"context_line":"                       \"them when Kubernetes cluster Kuryr was serving is no \""},{"line_number":226,"context_line":"                       \"longer needed.\"),"},{"line_number":227,"context_line":"                default\u003d[]),"},{"line_number":228,"context_line":"]"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"octavia_defaults \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_3eda9d4a","line":227,"range":{"start_line":227,"start_character":27,"end_line":227,"end_character":28},"in_reply_to":"3fa7e38b_7e2fb53e","updated":"2019-09-25 10:18:23.000000000","message":"Yeah, but according to OpenStack Style Guidelines [1] we\u0027re supposed to put \",\" at the end of the list. And I forgot about it below.\n\n[1] https://docs.openstack.org/hacking/latest/user/hacking.html#dictionaries-lists","commit_id":"34cc778750141393bd9a7a2312d3fa3b68ab3fba"}],"kuryr_kubernetes/controller/drivers/nested_macvlan_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"12079a76b5a799c1dc9e8bade2a53333f5e4b2d1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                                     security_groups)"},{"line_number":40,"context_line":"        attempts \u003d kuryr_config.CONF.neutron_defaults.rev_update_attempts"},{"line_number":41,"context_line":"        while attempts \u003e 0:"},{"line_number":42,"context_line":"            vm_port \u003d None"},{"line_number":43,"context_line":"            vm_port \u003d self._get_parent_port(neutron, pod)"},{"line_number":44,"context_line":"            container_port \u003d neutron.create_port(req).get(\u0027port\u0027)"},{"line_number":45,"context_line":"            utils.tag_neutron_resources(\u0027ports\u0027, [container_port[\u0027id\u0027]])"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"            container_mac \u003d container_port[\u0027mac_address\u0027]"},{"line_number":48,"context_line":"            container_ips \u003d frozenset(entry[\u0027ip_address\u0027] for entry in"},{"line_number":49,"context_line":"                                      container_port[\u0027fixed_ips\u0027])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"            try:"},{"line_number":52,"context_line":"                with self.lock:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_76959932","line":49,"range":{"start_line":42,"start_character":0,"end_line":49,"end_character":66},"updated":"2019-04-30 16:05:38.000000000","message":"Why is port creation inside the loop? If I read this correctly in case of error we end up with orphaned ports, don\u0027t we? Shouldn\u0027t we just save port_id between tries?","commit_id":"2d4727f034ecd2570821eb895dd5b372c7a4304e"},{"author":{"_account_id":6541,"name":"Kamil Madac","email":"kamil.madac@gmail.com","username":"kamil-madac"},"change_message_id":"9a0391676ef870aa996cacf0e25cbfc566464d06","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                                     security_groups)"},{"line_number":40,"context_line":"        attempts \u003d kuryr_config.CONF.neutron_defaults.rev_update_attempts"},{"line_number":41,"context_line":"        while attempts \u003e 0:"},{"line_number":42,"context_line":"            vm_port \u003d None"},{"line_number":43,"context_line":"            vm_port \u003d self._get_parent_port(neutron, pod)"},{"line_number":44,"context_line":"            container_port \u003d neutron.create_port(req).get(\u0027port\u0027)"},{"line_number":45,"context_line":"            utils.tag_neutron_resources(\u0027ports\u0027, [container_port[\u0027id\u0027]])"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"            container_mac \u003d container_port[\u0027mac_address\u0027]"},{"line_number":48,"context_line":"            container_ips \u003d frozenset(entry[\u0027ip_address\u0027] for entry in"},{"line_number":49,"context_line":"                                      container_port[\u0027fixed_ips\u0027])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"            try:"},{"line_number":52,"context_line":"                with self.lock:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_665b472e","line":49,"range":{"start_line":42,"start_character":0,"end_line":49,"end_character":66},"in_reply_to":"ffb9cba7_76959932","updated":"2019-05-03 21:49:56.000000000","message":"Good point, I will fix this and call create_port only when container_port is None","commit_id":"2d4727f034ecd2570821eb895dd5b372c7a4304e"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"12079a76b5a799c1dc9e8bade2a53333f5e4b2d1","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        attempts \u003d kuryr_config.CONF.neutron_defaults.rev_update_attempts"},{"line_number":77,"context_line":"        while attempts \u003e 0:"},{"line_number":78,"context_line":"            container_port \u003d neutron.show_port(vif.id).get(\u0027port\u0027)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            container_mac \u003d container_port[\u0027mac_address\u0027]"},{"line_number":81,"context_line":"            container_ips \u003d frozenset(entry[\u0027ip_address\u0027] for entry in"},{"line_number":82,"context_line":"                                      container_port[\u0027fixed_ips\u0027])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                with self.lock:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_56b975c9","line":82,"range":{"start_line":78,"start_character":0,"end_line":82,"end_character":66},"updated":"2019-04-30 16:05:38.000000000","message":"Do we need to get port for each try? I think we only need to update the parent port?","commit_id":"2d4727f034ecd2570821eb895dd5b372c7a4304e"},{"author":{"_account_id":6541,"name":"Kamil Madac","email":"kamil.madac@gmail.com","username":"kamil-madac"},"change_message_id":"9a0391676ef870aa996cacf0e25cbfc566464d06","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        attempts \u003d kuryr_config.CONF.neutron_defaults.rev_update_attempts"},{"line_number":77,"context_line":"        while attempts \u003e 0:"},{"line_number":78,"context_line":"            container_port \u003d neutron.show_port(vif.id).get(\u0027port\u0027)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            container_mac \u003d container_port[\u0027mac_address\u0027]"},{"line_number":81,"context_line":"            container_ips \u003d frozenset(entry[\u0027ip_address\u0027] for entry in"},{"line_number":82,"context_line":"                                      container_port[\u0027fixed_ips\u0027])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                with self.lock:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_a69fffb2","line":82,"range":{"start_line":78,"start_character":0,"end_line":82,"end_character":66},"in_reply_to":"ffb9cba7_56b975c9","updated":"2019-05-03 21:49:56.000000000","message":"Yes you are correct, it is unnecessary to get container port in a loop","commit_id":"2d4727f034ecd2570821eb895dd5b372c7a4304e"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e486aae44084a3121406f154f26dd4605b2feb05","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        attempts \u003d kuryr_config.CONF.neutron_defaults.rev_update_attempts"},{"line_number":41,"context_line":"        container_port \u003d None"},{"line_number":42,"context_line":"        while attempts \u003e 0:"},{"line_number":43,"context_line":"            vm_port \u003d None"},{"line_number":44,"context_line":"            vm_port \u003d self._get_parent_port(neutron, pod)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"            if not container_port:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e6ccacbc","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":26},"updated":"2019-08-29 07:47:10.000000000","message":"why you need this?","commit_id":"eba6e65cfa047d1de9475577d2e11964c7d388fb"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e486aae44084a3121406f154f26dd4605b2feb05","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                      container_port[\u0027fixed_ips\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            attempts \u003d self._try_update_port("},{"line_number":55,"context_line":"                self,"},{"line_number":56,"context_line":"                self._add_to_allowed_address_pairs,"},{"line_number":57,"context_line":"                neutron, vm_port, container_ips,"},{"line_number":58,"context_line":"                container_mac)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_c6c970ac","line":55,"range":{"start_line":55,"start_character":16,"end_line":55,"end_character":20},"updated":"2019-08-29 07:47:10.000000000","message":"shouldn\u0027t this be attempts?","commit_id":"eba6e65cfa047d1de9475577d2e11964c7d388fb"}]}
