)]}'
{"kuryr_kubernetes/controller/drivers/nested_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                         \u0027ip_address\u003d%s\u0027 % str(node_fixed_ip)]"},{"line_number":42,"context_line":"            ports \u003d os_net.ports(fixed_ips\u003dfixed_ips)"},{"line_number":43,"context_line":"        except os_exc.SDKException:"},{"line_number":44,"context_line":"            LOG.error(\"Parent vm port with fixed ips %s not found!\","},{"line_number":45,"context_line":"                      fixed_ips)"},{"line_number":46,"context_line":"            raise"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_5f0e6132","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":32},"updated":"2019-11-20 15:54:07.000000000","message":"Will it raise instead of just returning empty list?","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                         \u0027ip_address\u003d%s\u0027 % str(node_fixed_ip)]"},{"line_number":42,"context_line":"            ports \u003d os_net.ports(fixed_ips\u003dfixed_ips)"},{"line_number":43,"context_line":"        except os_exc.SDKException:"},{"line_number":44,"context_line":"            LOG.error(\"Parent vm port with fixed ips %s not found!\","},{"line_number":45,"context_line":"                      fixed_ips)"},{"line_number":46,"context_line":"            raise"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_de9d2559","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":32},"in_reply_to":"3fa7e38b_5f0e6132","updated":"2019-11-26 15:13:01.000000000","message":"Yup, the same as in original implementation during NeutronClientException.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"class NestedPodVIFDriver(neutron_vif.NeutronPodVIFDriver):"},{"line_number":31,"context_line":"    \"\"\"Skeletal handler driver for VIFs for Nested Pods.\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _get_parent_port_by_host_ip(self, os_net, node_fixed_ip):"},{"line_number":34,"context_line":"        node_subnet_id \u003d oslo_cfg.CONF.pod_vif_nested.worker_nodes_subnet"},{"line_number":35,"context_line":"        if not node_subnet_id:"},{"line_number":36,"context_line":"            raise oslo_cfg.RequiredOptError("},{"line_number":37,"context_line":"                \u0027worker_nodes_subnet\u0027, oslo_cfg.OptGroup(\u0027pod_vif_nested\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            fixed_ips \u003d [\u0027subnet_id\u003d%s\u0027 % str(node_subnet_id),"},{"line_number":41,"context_line":"                         \u0027ip_address\u003d%s\u0027 % str(node_fixed_ip)]"},{"line_number":42,"context_line":"            ports \u003d os_net.ports(fixed_ips\u003dfixed_ips)"},{"line_number":43,"context_line":"        except os_exc.SDKException:"},{"line_number":44,"context_line":"            LOG.error(\"Parent vm port with fixed ips %s not found!\","},{"line_number":45,"context_line":"                      fixed_ips)"},{"line_number":46,"context_line":"            raise"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        try:"},{"line_number":49,"context_line":"            return next(ports)"},{"line_number":50,"context_line":"        except StopIteration:"},{"line_number":51,"context_line":"            LOG.error(\"os_net port for vm port with fixed ips %s\""},{"line_number":52,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":53,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_parent_port(self, os_net, pod):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            # REVISIT(vikasc): Assumption is being made that hostIP is the IP"},{"line_number":58,"context_line":"            #              of trunk interface on the node(vm)."},{"line_number":59,"context_line":"            node_fixed_ip \u003d pod[\u0027status\u0027][\u0027hostIP\u0027]"},{"line_number":60,"context_line":"        except KeyError:"},{"line_number":61,"context_line":"            if pod[\u0027status\u0027][\u0027conditions\u0027][0][\u0027type\u0027] !\u003d \"Initialized\":"},{"line_number":62,"context_line":"                LOG.debug(\"Pod condition type is not \u0027Initialized\u0027\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"            LOG.error(\"Failed to get parent vm port ip\")"},{"line_number":65,"context_line":"            raise"},{"line_number":66,"context_line":"        return self._get_parent_port_by_host_ip(os_net, node_fixed_ip)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_bffd1509","line":66,"range":{"start_line":33,"start_character":0,"end_line":66,"end_character":70},"updated":"2019-11-20 15:54:07.000000000","message":"Passing client that\u0027s a singleton doesn\u0027t make much sense to me. Let\u0027s make the methods create it on their own.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"class NestedPodVIFDriver(neutron_vif.NeutronPodVIFDriver):"},{"line_number":31,"context_line":"    \"\"\"Skeletal handler driver for VIFs for Nested Pods.\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _get_parent_port_by_host_ip(self, os_net, node_fixed_ip):"},{"line_number":34,"context_line":"        node_subnet_id \u003d oslo_cfg.CONF.pod_vif_nested.worker_nodes_subnet"},{"line_number":35,"context_line":"        if not node_subnet_id:"},{"line_number":36,"context_line":"            raise oslo_cfg.RequiredOptError("},{"line_number":37,"context_line":"                \u0027worker_nodes_subnet\u0027, oslo_cfg.OptGroup(\u0027pod_vif_nested\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            fixed_ips \u003d [\u0027subnet_id\u003d%s\u0027 % str(node_subnet_id),"},{"line_number":41,"context_line":"                         \u0027ip_address\u003d%s\u0027 % str(node_fixed_ip)]"},{"line_number":42,"context_line":"            ports \u003d os_net.ports(fixed_ips\u003dfixed_ips)"},{"line_number":43,"context_line":"        except os_exc.SDKException:"},{"line_number":44,"context_line":"            LOG.error(\"Parent vm port with fixed ips %s not found!\","},{"line_number":45,"context_line":"                      fixed_ips)"},{"line_number":46,"context_line":"            raise"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        try:"},{"line_number":49,"context_line":"            return next(ports)"},{"line_number":50,"context_line":"        except StopIteration:"},{"line_number":51,"context_line":"            LOG.error(\"os_net port for vm port with fixed ips %s\""},{"line_number":52,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":53,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_parent_port(self, os_net, pod):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            # REVISIT(vikasc): Assumption is being made that hostIP is the IP"},{"line_number":58,"context_line":"            #              of trunk interface on the node(vm)."},{"line_number":59,"context_line":"            node_fixed_ip \u003d pod[\u0027status\u0027][\u0027hostIP\u0027]"},{"line_number":60,"context_line":"        except KeyError:"},{"line_number":61,"context_line":"            if pod[\u0027status\u0027][\u0027conditions\u0027][0][\u0027type\u0027] !\u003d \"Initialized\":"},{"line_number":62,"context_line":"                LOG.debug(\"Pod condition type is not \u0027Initialized\u0027\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"            LOG.error(\"Failed to get parent vm port ip\")"},{"line_number":65,"context_line":"            raise"},{"line_number":66,"context_line":"        return self._get_parent_port_by_host_ip(os_net, node_fixed_ip)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_5eb375ed","line":66,"range":{"start_line":33,"start_character":0,"end_line":66,"end_character":70},"in_reply_to":"3fa7e38b_bffd1509","updated":"2019-11-26 15:13:01.000000000","message":"Agree. But that is not a subject for this change :)","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"6ffe8dd4feb94088decbef832656921d2b201afe","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":53,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_parent_port(self, os_net, pod):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            # REVISIT(vikasc): Assumption is being made that hostIP is the IP"},{"line_number":58,"context_line":"            #              of trunk interface on the node(vm)."},{"line_number":59,"context_line":"            node_fixed_ip \u003d pod[\u0027status\u0027][\u0027hostIP\u0027]"},{"line_number":60,"context_line":"        except KeyError:"},{"line_number":61,"context_line":"            if pod[\u0027status\u0027][\u0027conditions\u0027][0][\u0027type\u0027] !\u003d \"Initialized\":"},{"line_number":62,"context_line":"                LOG.debug(\"Pod condition type is not \u0027Initialized\u0027\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"            LOG.error(\"Failed to get parent vm port ip\")"},{"line_number":65,"context_line":"            raise"},{"line_number":66,"context_line":"        return self._get_parent_port_by_host_ip(os_net, node_fixed_ip)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3fa7e38b_b50a911b","line":66,"range":{"start_line":55,"start_character":0,"end_line":66,"end_character":70},"updated":"2019-12-18 15:59:09.000000000","message":"This will break if it won\u0027t be merged with the patch above. We should either squash those two patches (not a big deal, both are small) or just make this get os_net on its own.","commit_id":"e0b713261b24a9b12090a15b56392cd422d80aea"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"c0ef806150a12b282cbeb8b214383702078b6965","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":53,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _get_parent_port(self, os_net, pod):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            # REVISIT(vikasc): Assumption is being made that hostIP is the IP"},{"line_number":58,"context_line":"            #              of trunk interface on the node(vm)."},{"line_number":59,"context_line":"            node_fixed_ip \u003d pod[\u0027status\u0027][\u0027hostIP\u0027]"},{"line_number":60,"context_line":"        except KeyError:"},{"line_number":61,"context_line":"            if pod[\u0027status\u0027][\u0027conditions\u0027][0][\u0027type\u0027] !\u003d \"Initialized\":"},{"line_number":62,"context_line":"                LOG.debug(\"Pod condition type is not \u0027Initialized\u0027\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"            LOG.error(\"Failed to get parent vm port ip\")"},{"line_number":65,"context_line":"            raise"},{"line_number":66,"context_line":"        return self._get_parent_port_by_host_ip(os_net, node_fixed_ip)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3fa7e38b_01bc7605","line":66,"range":{"start_line":55,"start_character":0,"end_line":66,"end_character":70},"in_reply_to":"3fa7e38b_b50a911b","updated":"2019-12-22 12:52:04.000000000","message":"Done","commit_id":"e0b713261b24a9b12090a15b56392cd422d80aea"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"805be331478c03439d17bc0951dffe4a30df0d5c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            return next(ports)"},{"line_number":52,"context_line":"        except StopIteration:"},{"line_number":53,"context_line":"            LOG.error(\"os_net port for vm port with fixed ips %s\""},{"line_number":54,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":55,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3fa7e38b_e7d39f01","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":29},"updated":"2020-01-14 13:54:12.000000000","message":"I\u0027d keep this Neutron in user-facing message.","commit_id":"0bd60db0e881a12079fb16bcdd0db820ed295587"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"3eb44d4ad518a3875115a81445ecd1fdee6d8dd3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            return next(ports)"},{"line_number":52,"context_line":"        except StopIteration:"},{"line_number":53,"context_line":"            LOG.error(\"os_net port for vm port with fixed ips %s\""},{"line_number":54,"context_line":"                      \" not found!\", fixed_ips)"},{"line_number":55,"context_line":"            raise kl_exc.NoResourceException"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3fa7e38b_2721b7fe","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":29},"in_reply_to":"3fa7e38b_e7d39f01","updated":"2020-01-14 13:57:25.000000000","message":"Dang. I could swear I already fix that up…","commit_id":"0bd60db0e881a12079fb16bcdd0db820ed295587"}],"kuryr_kubernetes/controller/drivers/nested_vlan_vif.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"776bc2a8a998bdd2a61a75c93635f826f1aab1ab","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        trunk_id \u003d self._get_trunk_id(parent_port)"},{"line_number":118,"context_line":"        self._remove_subport(os_net, trunk_id, vif.id)"},{"line_number":119,"context_line":"        self._release_vlan_id(vif.vlan_id)"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            os_net.delete_port(vif.id)"},{"line_number":122,"context_line":"        except os_exc.SDKException:"},{"line_number":123,"context_line":"            LOG.debug(\u0027Unable to release port %s as it no longer exists.\u0027,"},{"line_number":124,"context_line":"                      vif.id)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _get_port_request(self, pod, project_id, subnets, security_groups,"},{"line_number":127,"context_line":"                          unbound\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_0e58412f","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":29},"updated":"2019-11-29 09:58:23.000000000","message":"there is no error when the port is not found, right? we should just skip the exception here or if catch it, then update the message","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"544d073ef166d8f67cad808cd3834d01de1b07a2","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        trunk_id \u003d self._get_trunk_id(parent_port)"},{"line_number":118,"context_line":"        self._remove_subport(os_net, trunk_id, vif.id)"},{"line_number":119,"context_line":"        self._release_vlan_id(vif.vlan_id)"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            os_net.delete_port(vif.id)"},{"line_number":122,"context_line":"        except os_exc.SDKException:"},{"line_number":123,"context_line":"            LOG.debug(\u0027Unable to release port %s as it no longer exists.\u0027,"},{"line_number":124,"context_line":"                      vif.id)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _get_port_request(self, pod, project_id, subnets, security_groups,"},{"line_number":127,"context_line":"                          unbound\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_af46c721","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":29},"in_reply_to":"3fa7e38b_0e58412f","updated":"2019-11-29 14:54:53.000000000","message":"Yeah, there is no PortNotFound or anything. I\u0027ll remove the try:except, and we will see, if there is a need to handle SDKException, or not.","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"776bc2a8a998bdd2a61a75c93635f826f1aab1ab","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    def _get_trunk_id(self, port):"},{"line_number":169,"context_line":"        try:"},{"line_number":170,"context_line":"            return port[\u0027trunk_details\u0027][\u0027trunk_id\u0027]"},{"line_number":171,"context_line":"        except (KeyError, TypeError):"},{"line_number":172,"context_line":"            LOG.error(\"os_net port is missing trunk details. \""},{"line_number":173,"context_line":"                      \"Please ensure that k8s node port is associated \""},{"line_number":174,"context_line":"                      \"with a os_net vlan trunk\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_6e469553","line":171,"range":{"start_line":171,"start_character":26,"end_line":171,"end_character":36},"updated":"2019-11-29 09:58:23.000000000","message":"why type too?","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"544d073ef166d8f67cad808cd3834d01de1b07a2","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    def _get_trunk_id(self, port):"},{"line_number":169,"context_line":"        try:"},{"line_number":170,"context_line":"            return port[\u0027trunk_details\u0027][\u0027trunk_id\u0027]"},{"line_number":171,"context_line":"        except (KeyError, TypeError):"},{"line_number":172,"context_line":"            LOG.error(\"os_net port is missing trunk details. \""},{"line_number":173,"context_line":"                      \"Please ensure that k8s node port is associated \""},{"line_number":174,"context_line":"                      \"with a os_net vlan trunk\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_4f0633d0","line":171,"range":{"start_line":171,"start_character":26,"end_line":171,"end_character":36},"in_reply_to":"3fa7e38b_6e469553","updated":"2019-11-29 14:54:53.000000000","message":"If we get port via openstasdk, than it always would have attribute/key trunk_details. But it usually happen than port have no trunk_details, so that value for this attribute/key will be None.","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"}],"kuryr_kubernetes/controller/drivers/neutron_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return {\u0027port\u0027: port_req_body}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def _get_vif_plugin(self, port):"},{"line_number":143,"context_line":"        return port.get(\u0027binding:vif_type\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_ff4e2d37","side":"PARENT","line":143,"range":{"start_line":142,"start_character":0,"end_line":143,"end_character":43},"updated":"2019-11-20 15:54:07.000000000","message":"Haven\u0027t you deleted too much? Though I see you\u0027re inlining this later on?","commit_id":"f58e5003d2d003791aa9cb28825bef57e3330bbc"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return {\u0027port\u0027: port_req_body}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def _get_vif_plugin(self, port):"},{"line_number":143,"context_line":"        return port.get(\u0027binding:vif_type\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_7e2bd1e9","side":"PARENT","line":143,"range":{"start_line":142,"start_character":0,"end_line":143,"end_character":43},"in_reply_to":"3fa7e38b_ff4e2d37","updated":"2019-11-26 15:13:01.000000000","message":"A method just to get single attribute from class? IMHO that is an overkill :)","commit_id":"f58e5003d2d003791aa9cb28825bef57e3330bbc"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        rq \u003d self._get_port_request(pod, project_id, subnets, security_groups)"},{"line_number":39,"context_line":"        if \u0027network_id\u0027 not in rq:"},{"line_number":40,"context_line":"            LOG.debug(\u0027no required network_id was returned in %s. \u0027"},{"line_number":41,"context_line":"                      \u0027_get_port_request was called with \u0027"},{"line_number":42,"context_line":"                      \u0027parameters: %s\u0027, str(rq),"},{"line_number":43,"context_line":"                      str((pod, project_id, subnets, security_groups)))"},{"line_number":44,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":45,"context_line":"        utils.tag_neutron_resources(\u0027ports\u0027, [port[\u0027id\u0027]])"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_bf82f550","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":71},"updated":"2019-11-20 15:54:07.000000000","message":"I assume we need to figure out why _get_port_request returns wrong data.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        rq \u003d self._get_port_request(pod, project_id, subnets, security_groups)"},{"line_number":39,"context_line":"        if \u0027network_id\u0027 not in rq:"},{"line_number":40,"context_line":"            LOG.debug(\u0027no required network_id was returned in %s. \u0027"},{"line_number":41,"context_line":"                      \u0027_get_port_request was called with \u0027"},{"line_number":42,"context_line":"                      \u0027parameters: %s\u0027, str(rq),"},{"line_number":43,"context_line":"                      str((pod, project_id, subnets, security_groups)))"},{"line_number":44,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":45,"context_line":"        utils.tag_neutron_resources(\u0027ports\u0027, [port[\u0027id\u0027]])"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_fec8214e","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":71},"in_reply_to":"3fa7e38b_bf82f550","updated":"2019-11-26 15:13:01.000000000","message":"I just made this debug for… debugging purposes, since I cannot reproduce this by simply using unittests. Will be removed once we figure out what is wrong with the request.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            clients.get_network_client().delete_port(vif.id)"},{"line_number":84,"context_line":"        except os_exc.SDKException:"},{"line_number":85,"context_line":"            # TODO(gryf): the reason in log is not true."},{"line_number":86,"context_line":"            LOG.debug(\u0027Unable to release port %s as it no longer exists.\u0027,"},{"line_number":87,"context_line":"                      vif.id)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def activate_vif(self, pod, vif):"},{"line_number":90,"context_line":"        if vif.active:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_bfe75546","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":29},"updated":"2019-11-20 15:54:07.000000000","message":"We should just log the exception here.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        try:"},{"line_number":95,"context_line":"            port \u003d os_net.get_port(vif.id)"},{"line_number":96,"context_line":"        except os_exc.SDKException:"},{"line_number":97,"context_line":"            # TODO(gryf): check for failing connection. I\u0027m not sure, if"},{"line_number":98,"context_line":"            # exception is thrown during connection failure. Shouldn\u0027t it be"},{"line_number":99,"context_line":"            # just ResourceNotFound exception? Keystone based exceptions can"},{"line_number":100,"context_line":"            # be: ConflictException, NotFoundException, BadRequestException"},{"line_number":101,"context_line":"            # or HttpException"},{"line_number":102,"context_line":"            LOG.debug(\"Unable to obtain port information, retrying.\")"},{"line_number":103,"context_line":"            raise k_exc.ResourceNotReady(vif)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_7f3b1d9a","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":30},"updated":"2019-11-20 15:54:07.000000000","message":"I think in [1] Luis just prevented brief OpenStack connectivity failures from exploding down to kuryr-kubernetes core. If that happened we were getting a Kuryr restart.\n\nSo approach with SDKException seems okay.\n\n[1] https://review.opendev.org/#/c/689421/2","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        try:"},{"line_number":95,"context_line":"            port \u003d os_net.get_port(vif.id)"},{"line_number":96,"context_line":"        except os_exc.SDKException:"},{"line_number":97,"context_line":"            # TODO(gryf): check for failing connection. I\u0027m not sure, if"},{"line_number":98,"context_line":"            # exception is thrown during connection failure. Shouldn\u0027t it be"},{"line_number":99,"context_line":"            # just ResourceNotFound exception? Keystone based exceptions can"},{"line_number":100,"context_line":"            # be: ConflictException, NotFoundException, BadRequestException"},{"line_number":101,"context_line":"            # or HttpException"},{"line_number":102,"context_line":"            LOG.debug(\"Unable to obtain port information, retrying.\")"},{"line_number":103,"context_line":"            raise k_exc.ResourceNotReady(vif)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_def4458b","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":30},"in_reply_to":"3fa7e38b_7f3b1d9a","updated":"2019-11-26 15:13:01.000000000","message":"Thanks for pointing it out!","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"776bc2a8a998bdd2a61a75c93635f826f1aab1ab","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            clients.get_network_client().delete_port(vif.id)"},{"line_number":79,"context_line":"        except os_exc.SDKException:"},{"line_number":80,"context_line":"            # TODO(gryf): the reason in log is not true."},{"line_number":81,"context_line":"            LOG.debug(\u0027Unable to release port %s as it no longer exists.\u0027,"},{"line_number":82,"context_line":"                      vif.id)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def activate_vif(self, pod, vif):"},{"line_number":85,"context_line":"        if vif.active:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_ee792582","line":82,"range":{"start_line":79,"start_character":0,"end_line":82,"end_character":29},"updated":"2019-11-29 09:58:23.000000000","message":"should not we skip this exception? or update the error message and raise a ResoureNotReady so that the action is retried","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"544d073ef166d8f67cad808cd3834d01de1b07a2","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            clients.get_network_client().delete_port(vif.id)"},{"line_number":79,"context_line":"        except os_exc.SDKException:"},{"line_number":80,"context_line":"            # TODO(gryf): the reason in log is not true."},{"line_number":81,"context_line":"            LOG.debug(\u0027Unable to release port %s as it no longer exists.\u0027,"},{"line_number":82,"context_line":"                      vif.id)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def activate_vif(self, pod, vif):"},{"line_number":85,"context_line":"        if vif.active:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_effb5f78","line":82,"range":{"start_line":79,"start_character":0,"end_line":82,"end_character":29},"in_reply_to":"3fa7e38b_ee792582","updated":"2019-11-29 14:54:53.000000000","message":"I\u0027ll remove it.","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"776bc2a8a998bdd2a61a75c93635f826f1aab1ab","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            port \u003d os_net.get_port(vif.id)"},{"line_number":91,"context_line":"        except os_exc.SDKException:"},{"line_number":92,"context_line":"            LOG.debug(\"Unable to obtain port information, retrying.\")"},{"line_number":93,"context_line":"            raise k_exc.ResourceNotReady(vif)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_ce90e999","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":35},"updated":"2019-11-29 09:58:23.000000000","message":"umm... this is changing the logic I think... We just want to retry here if the problems was contacting neutron/keystone... though probably, given the type of call... it is more or less the same","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"544d073ef166d8f67cad808cd3834d01de1b07a2","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":89,"context_line":"        try:"},{"line_number":90,"context_line":"            port \u003d os_net.get_port(vif.id)"},{"line_number":91,"context_line":"        except os_exc.SDKException:"},{"line_number":92,"context_line":"            LOG.debug(\"Unable to obtain port information, retrying.\")"},{"line_number":93,"context_line":"            raise k_exc.ResourceNotReady(vif)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_8fd3cb01","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":35},"in_reply_to":"3fa7e38b_ce90e999","updated":"2019-11-29 14:54:53.000000000","message":"As for keystone (and possibly other OpenStack services), OpenStackSDK is raising exceptions from the response message (using from connection). Depending on the HTTP code it vary from ConflictException, through NotFoundException, BadRequestException and HTTPException.","commit_id":"37bf924b05b12e9c5289b9858659e822401bfb80"}],"kuryr_kubernetes/controller/drivers/utils.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2839cd0fb5957c7417ae999ddbe48e986acd81aa","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":412,"context_line":"        for res_id in res_ids:"},{"line_number":413,"context_line":"            try:"},{"line_number":414,"context_line":"                os_net.replace_tag(resource, res_id, body\u003d{\"tags\": tags})"},{"line_number":415,"context_line":"            except os_exc.SDKException:"},{"line_number":416,"context_line":"                LOG.warning(\"Failed to tag %s %s with %s. Ignoring, but this \""},{"line_number":417,"context_line":"                            \"is still unexpected.\", resource, res_id, tags,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_272050b0","line":414,"range":{"start_line":414,"start_character":0,"end_line":414,"end_character":73},"updated":"2019-11-19 16:00:31.000000000","message":"I don\u0027t see replace_tag anywhere in openstacksdk. I bet it is named differently (seems like there\u0027s add_tag on resource?).","commit_id":"596f2f6845cd64ea1ef8959bae5a4ad76cab1523"}],"kuryr_kubernetes/os_vif_util.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"1708780c80440afdd7c305debaab1f178a2db3e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3fa7e38b_5f6501e0","updated":"2019-11-20 15:54:07.000000000","message":"I think at this point all the methods here should get updated to use object notation.","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f3d5d55393b85262b8423a0576de27060cc8c80d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3fa7e38b_3e355946","in_reply_to":"3fa7e38b_5f6501e0","updated":"2019-11-26 15:13:01.000000000","message":"It has been started with previous, stacked review (1/2)","commit_id":"3d39b90ba578aeb1983def9d7062da5c11b3fa6b"}]}
