)]}'
{"kuryr_kubernetes/controller/drivers/nested_vlan_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5330e9651a005559703ab822b1efaa8c83413842","unresolved":false,"context_lines":[{"line_number":41,"context_line":"class NestedVlanPodVIFDriver(nested_vif.NestedPodVIFDriver):"},{"line_number":42,"context_line":"    \"\"\"Manages ports for nested-containers using VLANs to provide VIFs.\"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_extension(self):"},{"line_number":45,"context_line":"        extension \u003d proxy_.Proxy.find_extension("},{"line_number":46,"context_line":"                name_or_id\u003d\u0027tag_ports_during_bulk_creation\u0027)"},{"line_number":47,"context_line":"        _neutron_tags \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_52b9a812","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":21},"updated":"2020-11-13 17:07:23.000000000","message":"The name should say that we\u0027re looking for a specific extension, so maybe \"check_tag_on_creation\"?","commit_id":"8e46faf6284eaafa90c21c0f08e6a64bffb9167b"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"3d99d34a89a76d0a5aa2c1acb09e69b54ab83ddb","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_extension(self):"},{"line_number":45,"context_line":"        extension \u003d proxy_.Proxy.find_extension("},{"line_number":46,"context_line":"                name_or_id\u003d\u0027tag_ports_during_bulk_creation\u0027)"},{"line_number":47,"context_line":"        _neutron_tags \u003d False"},{"line_number":48,"context_line":"        if extension:"},{"line_number":49,"context_line":"            _neutron_tags \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_717f86aa","line":46,"range":{"start_line":46,"start_character":28,"end_line":46,"end_character":58},"updated":"2020-11-13 14:24:45.000000000","message":"According to [1], seems the name for the extension might be wrong.\n\n[1] https://review.opendev.org/#/c/700755/13/neutron/tests/contrib/hooks/api_all_extensions","commit_id":"8e46faf6284eaafa90c21c0f08e6a64bffb9167b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5330e9651a005559703ab822b1efaa8c83413842","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \"\"\"Manages ports for nested-containers using VLANs to provide VIFs.\"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def get_extension(self):"},{"line_number":45,"context_line":"        extension \u003d proxy_.Proxy.find_extension("},{"line_number":46,"context_line":"                name_or_id\u003d\u0027tag_ports_during_bulk_creation\u0027)"},{"line_number":47,"context_line":"        _neutron_tags \u003d False"},{"line_number":48,"context_line":"        if extension:"},{"line_number":49,"context_line":"            _neutron_tags \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d27f7863","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":60},"updated":"2020-11-13 17:07:23.000000000","message":"Ah right, that won\u0027t work, you\u0027re trying to call a method without the object. So our network proxy object from openstacksdk can be retrieved like in line 58 of this file:\n\n  os_net \u003d clients.get_network_client()\n\nIt should have the find_extension() method. Also no need to specify argument name, `name_or_id\u003d` is redundant.","commit_id":"8e46faf6284eaafa90c21c0f08e6a64bffb9167b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5330e9651a005559703ab822b1efaa8c83413842","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        rq \u003d self._get_port_request(pod, project_id, subnets, security_groups)"},{"line_number":63,"context_line":"        port \u003d os_net.create_port(**rq)"},{"line_number":64,"context_line":"        self._check_port_binding([port])"},{"line_number":65,"context_line":"        if not self.get_extension():"},{"line_number":66,"context_line":"            utils.tag_neutron_resources([port])"},{"line_number":67,"context_line":"        vlan_id \u003d self._add_subport(trunk_id, port.id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_b2d47c49","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":36},"updated":"2020-11-13 17:07:23.000000000","message":"OpenStack Neutron API calls are super expensive, so we need to make sure to minimize the number of them. We can assume that underlying OpenStack cloud is more or less stable and we don\u0027t need to ask if it has the extension each time. \n\nIt\u0027s best to only call this in NestedVlanPodVIFDriver\u0027s __init__() (you need to add it in this patch), save it into a class member (like `self.tag_on_creation`) and use that.","commit_id":"8e46faf6284eaafa90c21c0f08e6a64bffb9167b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"d459cf6c1b124303a39c5007ed61459098c597fa","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        if security_groups:"},{"line_number":156,"context_line":"            port_req_body[\u0027security_groups\u0027] \u003d security_groups"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if self._tag_on_creation:"},{"line_number":159,"context_line":"            tags \u003d CONF.neutron_defaults.resource_tags"},{"line_number":160,"context_line":"            if tags:"},{"line_number":161,"context_line":"                port_req_body[\u0027tags\u0027] \u003d tags"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_b6f6108e","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":33},"updated":"2020-11-17 12:22:04.000000000","message":"Please, look at comment on neutron_vif driver.","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"44ec52fa0932b889f19f0f07cbcb393174fc6b0b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def __init__(self):"},{"line_number":44,"context_line":"        super(NestedVlanPodVIFDriver, self).__init__()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self._tag_on_creation \u003d utils.check_tag_on_creation()"},{"line_number":47,"context_line":"        if self._tag_on_creation:"},{"line_number":48,"context_line":"            LOG.info(\u0027Neutron supports tagging during bulk port creation.\u0027)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            LOG.warning(\u0027Neutron does not support tagging during bulk \u0027"},{"line_number":51,"context_line":"                        \u0027port creation. Kuryr will tag resources after \u0027"},{"line_number":52,"context_line":"                        \u0027port creation.\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def request_vif(self, pod, project_id, subnets, security_groups):"},{"line_number":55,"context_line":"        os_net \u003d clients.get_network_client()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_4d5efde9","line":52,"range":{"start_line":46,"start_character":0,"end_line":52,"end_character":41},"updated":"2020-11-18 08:07:18.000000000","message":"do we need this here? or as this is extending the neutron_vif class it will already have it?","commit_id":"1224970578433f801f9cd75cd751759a8068fa06"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"6ac020bf16f89b93cbf29c672ba342e49f966fa9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def __init__(self):"},{"line_number":44,"context_line":"        super(NestedVlanPodVIFDriver, self).__init__()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self._tag_on_creation \u003d utils.check_tag_on_creation()"},{"line_number":47,"context_line":"        if self._tag_on_creation:"},{"line_number":48,"context_line":"            LOG.info(\u0027Neutron supports tagging during bulk port creation.\u0027)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            LOG.warning(\u0027Neutron does not support tagging during bulk \u0027"},{"line_number":51,"context_line":"                        \u0027port creation. Kuryr will tag resources after \u0027"},{"line_number":52,"context_line":"                        \u0027port creation.\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def request_vif(self, pod, project_id, subnets, security_groups):"},{"line_number":55,"context_line":"        os_net \u003d clients.get_network_client()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_c81f9b07","line":52,"range":{"start_line":46,"start_character":0,"end_line":52,"end_character":41},"in_reply_to":"1f621f24_4d2c3d4a","updated":"2020-11-18 09:52:25.000000000","message":"+1.","commit_id":"1224970578433f801f9cd75cd751759a8068fa06"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6e234c5f299b52ab88817a02815a025de68c7cc0","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def __init__(self):"},{"line_number":44,"context_line":"        super(NestedVlanPodVIFDriver, self).__init__()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self._tag_on_creation \u003d utils.check_tag_on_creation()"},{"line_number":47,"context_line":"        if self._tag_on_creation:"},{"line_number":48,"context_line":"            LOG.info(\u0027Neutron supports tagging during bulk port creation.\u0027)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            LOG.warning(\u0027Neutron does not support tagging during bulk \u0027"},{"line_number":51,"context_line":"                        \u0027port creation. Kuryr will tag resources after \u0027"},{"line_number":52,"context_line":"                        \u0027port creation.\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def request_vif(self, pod, project_id, subnets, security_groups):"},{"line_number":55,"context_line":"        os_net \u003d clients.get_network_client()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_4d2c3d4a","line":52,"range":{"start_line":46,"start_character":0,"end_line":52,"end_character":41},"in_reply_to":"1f621f24_4d5efde9","updated":"2020-11-18 08:12:25.000000000","message":"Oh, nice catch, definitely, it\u0027s not needed here.","commit_id":"1224970578433f801f9cd75cd751759a8068fa06"}],"kuryr_kubernetes/controller/drivers/neutron_vif.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5330e9651a005559703ab822b1efaa8c83413842","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class NeutronPodVIFDriver(base.PodVIFDriver):"},{"line_number":37,"context_line":"    \"\"\"Manages normal Neutron ports to provide VIFs for Kubernetes Pods.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_extension(self):"},{"line_number":40,"context_line":"        extension \u003d proxy_.Proxy.find_extension("},{"line_number":41,"context_line":"                name_or_id\u003d\u0027tag_ports_during_bulk_creation\u0027)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        _neutron_tags \u003d False"},{"line_number":44,"context_line":"        if extension:"},{"line_number":45,"context_line":"            _neutron_tags \u003d True"},{"line_number":46,"context_line":"            LOG.info(\u0027Neutron supports tagging during bulk port creation.\u0027)"},{"line_number":47,"context_line":"        else:"},{"line_number":48,"context_line":"            LOG.warning(\u0027Neutron does not support tagging during bulk \u0027"},{"line_number":49,"context_line":"                        \u0027port creation. Kuryr will tag resources after \u0027"},{"line_number":50,"context_line":"                        \u0027port creation.\u0027)"},{"line_number":51,"context_line":"        return _neutron_tags()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def request_vif(self, pod, project_id, subnets, security_groups):"},{"line_number":54,"context_line":"        os_net \u003d clients.get_network_client()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d242d80e","line":51,"range":{"start_line":39,"start_character":0,"end_line":51,"end_character":30},"updated":"2020-11-13 17:07:23.000000000","message":"This is exactly the same as function in previous file, it\u0027s probably best to either put it into controller.driver.utils module or add it directly to kuryr_kubernetes.controller.drivers.base.PodVIFDriver.","commit_id":"8e46faf6284eaafa90c21c0f08e6a64bffb9167b"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"d459cf6c1b124303a39c5007ed61459098c597fa","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if security_groups:"},{"line_number":142,"context_line":"            port_req_body[\u0027security_groups\u0027] \u003d security_groups"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if self._tag_on_creation:"},{"line_number":145,"context_line":"            tags \u003d CONF.neutron_defaults.resource_tags"},{"line_number":146,"context_line":"            if tags:"},{"line_number":147,"context_line":"                port_req_body[\u0027tags\u0027] \u003d tags"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_36bde0b6","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":33},"updated":"2020-11-17 12:22:04.000000000","message":"You don\u0027t need to check that in order to add tags. If neutron doesn\u0027t have ability to bulk add tags on port creation (or even in single port creation), OpenStackSDK will simply discard the surplus fields, before it send request.","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"91a6862b88e3e5c24c1e739e28e2e59762478591","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if security_groups:"},{"line_number":142,"context_line":"            port_req_body[\u0027security_groups\u0027] \u003d security_groups"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if self._tag_on_creation:"},{"line_number":145,"context_line":"            tags \u003d CONF.neutron_defaults.resource_tags"},{"line_number":146,"context_line":"            if tags:"},{"line_number":147,"context_line":"                port_req_body[\u0027tags\u0027] \u003d tags"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_f61a48c3","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":33},"in_reply_to":"1f621f24_36bde0b6","updated":"2020-11-17 12:24:49.000000000","message":"Why do you think openstacksdk will drop the field? I don\u0027t think there\u0027s a check added there. There is one in openstackclient [1], but not openstacksdk.\n\nNow I\u0027m not sure if Neutron will return 400 if there are non-supported fields or just ignore it.\n\n[1] https://review.opendev.org/#/c/723280/5/openstackclient/network/v2/port.py","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"2d31e69145d729659f43e1c1502a81d0757faea5","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if security_groups:"},{"line_number":142,"context_line":"            port_req_body[\u0027security_groups\u0027] \u003d security_groups"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if self._tag_on_creation:"},{"line_number":145,"context_line":"            tags \u003d CONF.neutron_defaults.resource_tags"},{"line_number":146,"context_line":"            if tags:"},{"line_number":147,"context_line":"                port_req_body[\u0027tags\u0027] \u003d tags"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_2a67344f","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":33},"in_reply_to":"1f621f24_f61a48c3","updated":"2020-11-17 13:26:41.000000000","message":"I just checked - without extension neutron-tag-ports-during-bulk-creation OpenStackSDK will pass it to the Neutron, although Neutron will do nothing about that, and return port with empty list for tags. Perhaps the reason is, that even if port objects do have fields like tags, there was no implementation for filling them up during port creation.\n\nAs for other fields, OpenStackSDK will truncate them.","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"6e325f110bf4ec67ee0fed7f39266fa335c4da5b","unresolved":true,"context_lines":[{"line_number":141,"context_line":"        if security_groups:"},{"line_number":142,"context_line":"            port_req_body[\u0027security_groups\u0027] \u003d security_groups"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if self._tag_on_creation:"},{"line_number":145,"context_line":"            tags \u003d CONF.neutron_defaults.resource_tags"},{"line_number":146,"context_line":"            if tags:"},{"line_number":147,"context_line":"                port_req_body[\u0027tags\u0027] \u003d tags"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return port_req_body"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"d2df6b42_c3c429a9","line":147,"range":{"start_line":144,"start_character":0,"end_line":147,"end_character":44},"updated":"2020-11-24 14:04:15.000000000","message":"We could extract all of those snippets into a method on NeutronPodVIFDriver, but it\u0027s not a big deal for me.","commit_id":"7e4517087ec0fea67aa9c080c47d71754efd805a"}],"kuryr_kubernetes/controller/drivers/utils.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9cc2e01e5a718ba774b67d2ab076b36c5478df0e","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        raise"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"def check_tag_on_creation():"},{"line_number":212,"context_line":"    \"\"\"Checks if Neutron supports tagging during bulk port creation."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    :param os_net: Network proxy object from Openstacksdk."},{"line_number":215,"context_line":"    :return: Boolean"},{"line_number":216,"context_line":"    \"\"\""},{"line_number":217,"context_line":"    os_net \u003d clients.get_network_client()"},{"line_number":218,"context_line":"    extension \u003d os_net.find_extension("},{"line_number":219,"context_line":"            name_or_id\u003d\u0027tag-ports-during-bulk-creation\u0027)"},{"line_number":220,"context_line":"    tag_on_creation \u003d False"},{"line_number":221,"context_line":"    if extension:"},{"line_number":222,"context_line":"        tag_on_creation \u003d True"},{"line_number":223,"context_line":"    return tag_on_creation"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"def delete_security_group_rule(security_group_rule_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_8e014a6d","line":223,"range":{"start_line":211,"start_character":0,"end_line":223,"end_character":26},"updated":"2020-11-16 17:17:49.000000000","message":"Hm, looking at gate logs seems like the extension is disabled by default, to test this we\u0027ll need to make sure to enable it in our gates, probably like in Neutron [1].\n\n[1] https://opendev.org/openstack/neutron-tempest-plugin/commit/87fc61a6aba524a261312c3bf068c58ad121efbf","commit_id":"5aa1dd12b9de27f1e1a64641336b90526763a1a5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"d459cf6c1b124303a39c5007ed61459098c597fa","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    os_net \u003d clients.get_network_client()"},{"line_number":218,"context_line":"    extension \u003d os_net.find_extension("},{"line_number":219,"context_line":"            name_or_id\u003d\u0027tag-ports-during-bulk-creation\u0027)"},{"line_number":220,"context_line":"    tag_on_creation \u003d False"},{"line_number":221,"context_line":"    if extension:"},{"line_number":222,"context_line":"        tag_on_creation \u003d True"},{"line_number":223,"context_line":"    return tag_on_creation"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"def delete_security_group_rule(security_group_rule_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_f54882b3","line":223,"range":{"start_line":220,"start_character":0,"end_line":223,"end_character":26},"updated":"2020-11-17 12:22:04.000000000","message":"just:\n\n  return bool(extension)","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"}],"kuryr_kubernetes/tests/unit/controller/drivers/test_neutron_vif.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"44ec52fa0932b889f19f0f07cbcb393174fc6b0b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        self.assertRaises(k_exc.ResourceNotReady, cls.activate_vif,"},{"line_number":228,"context_line":"                          m_driver, vif)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def _test_get_port_request(self, m_to_fips, security_groups,"},{"line_number":231,"context_line":"                               m_get_device_id, m_get_port_name, m_get_host_id,"},{"line_number":232,"context_line":"                               m_get_network_id, unbound\u003dFalse):"},{"line_number":233,"context_line":"        cls \u003d neutron_vif.NeutronPodVIFDriver"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f621f24_ed68a988","line":230,"range":{"start_line":230,"start_character":8,"end_line":230,"end_character":30},"updated":"2020-11-18 08:07:18.000000000","message":"perhaps worth to add coverage to check if tags are set up or not on the request based on the tag_on_creation","commit_id":"1224970578433f801f9cd75cd751759a8068fa06"}],"kuryr_kubernetes/tests/unit/controller/handlers/test_kuryrport.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d85c42c118a802f39a0e499b59dfbb087178738d","unresolved":false,"context_lines":[{"line_number":731,"context_line":"                \u0027get_enabled_drivers\u0027)"},{"line_number":732,"context_line":"    def test_update_services(self, ged, k8s, smap):"},{"line_number":733,"context_line":"        ged.return_value \u003d [self._driver]"},{"line_number":734,"context_line":"        self.useFixture(k_fix.MockNetworkClient())"},{"line_number":735,"context_line":"        kp \u003d kuryrport.KuryrPortHandler()"},{"line_number":736,"context_line":"        kp._drv_lbaas \u003d mock.MagicMock()"},{"line_number":737,"context_line":"        kp._drv_svc_sg \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_968154c6","line":734,"range":{"start_line":734,"start_character":0,"end_line":734,"end_character":50},"updated":"2020-11-17 12:25:38.000000000","message":"Hm, seems like you could just add this to setUp()?","commit_id":"8116a39f1f785b4d34e630acdcb94548d516ca39"}]}
