)]}'
{"kuryr_kubernetes/cni/binding/base.py":[{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"69e444e6a03ec9242deef2398d87aac7b3259d14","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _need_configure_l3(vif):"},{"line_number":104,"context_line":"    LOG.info(\"_need_configure_l3\")"},{"line_number":105,"context_line":"    if not hasattr(vif, \u0027physnet\u0027):"},{"line_number":106,"context_line":"        LOG.info(\"not hasattr\")"},{"line_number":107,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfbec78f_06404b35","line":104,"updated":"2019-05-03 06:27:01.000000000","message":"We don\u0027t need to have about the function that is executing. In general also I see a lot LOG.info which might not necessary needed.","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"2914d86cf2d0a06865e1f3c8c0f8893c0d3fd522","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _need_configure_l3(vif):"},{"line_number":104,"context_line":"    LOG.info(\"_need_configure_l3\")"},{"line_number":105,"context_line":"    if not hasattr(vif, \u0027physnet\u0027):"},{"line_number":106,"context_line":"        LOG.info(\"not hasattr\")"},{"line_number":107,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_3e21bdfc","line":104,"in_reply_to":"dfbec78f_06404b35","updated":"2019-05-20 11:01:14.000000000","message":"Done","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3bdc42a33a32a58aebf5025df33b9af27a67d527","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from kuryr_kubernetes import config"},{"line_number":24,"context_line":"from kuryr_kubernetes import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_BINDING_NAMESPACE \u003d \u0027kuryr_kubernetes.cni.binding\u0027"},{"line_number":29,"context_line":"DRIVER_TYPE_MAPPING \u003d {\u0027vfio\u0027: [\u0027vfio-pci\u0027],"}],"source_content_type":"text/x-python","patch_set":28,"id":"bfb3d3c7_e8be3dac","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":35},"updated":"2019-05-31 14:36:16.000000000","message":"This should go to import group above kuryr_kubernetes [1].\n\n[1] https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"a23863b474c4e3b60679136637f0485beb92d554"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"8be34c655023c707cc2b3bf5c036289b0ee057c7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from kuryr_kubernetes import config"},{"line_number":24,"context_line":"from kuryr_kubernetes import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_BINDING_NAMESPACE \u003d \u0027kuryr_kubernetes.cni.binding\u0027"},{"line_number":29,"context_line":"DRIVER_TYPE_MAPPING \u003d {\u0027vfio\u0027: [\u0027vfio-pci\u0027],"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fb8cfa7_1cdad7e8","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":35},"in_reply_to":"bfb3d3c7_e8be3dac","updated":"2019-06-03 08:44:09.000000000","message":"Done","commit_id":"a23863b474c4e3b60679136637f0485beb92d554"}],"kuryr_kubernetes/cni/binding/sriov.py":[{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        pod_resources_list \u003d pr_client.list()"},{"line_number":59,"context_line":"        resources \u003d pod_resources_list.pod_resources"},{"line_number":60,"context_line":"        for pod_resource in resources:"},{"line_number":61,"context_line":"            LOG.info(\"pod_resource \u003d %s\", pod_resource)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        physnet \u003d vif.physnet"},{"line_number":64,"context_line":"        pci_info \u003d self._compute(vif, resources, physnet, ifname, netns)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fce034c_d0f94a80","line":61,"updated":"2019-04-18 11:36:48.000000000","message":"you can trace by debug and whole resources:\nLOG.debug(\"%s\", resources)","commit_id":"25c20c95a441c67311d2e7986c81d04e83fc2ac2"},{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            LOG.info(\"pod_resource \u003d %s\", pod_resource)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        physnet \u003d vif.physnet"},{"line_number":64,"context_line":"        pci_info \u003d self._compute(vif, resources, physnet, ifname, netns)"},{"line_number":65,"context_line":"        LOG.info(\"pci_info \u003d %s\", pci_info)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self._save_pci_info(vif.id, pci_info)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_6d8dead1","line":64,"updated":"2019-04-18 11:36:48.000000000","message":"you don\u0027t need to separate physnet, just pass it as vif\u0027s field","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"2914d86cf2d0a06865e1f3c8c0f8893c0d3fd522","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            LOG.info(\"pod_resource \u003d %s\", pod_resource)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        physnet \u003d vif.physnet"},{"line_number":64,"context_line":"        pci_info \u003d self._compute(vif, resources, physnet, ifname, netns)"},{"line_number":65,"context_line":"        LOG.info(\"pci_info \u003d %s\", pci_info)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self._save_pci_info(vif.id, pci_info)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffb9cba7_9b36d1b4","line":64,"in_reply_to":"3fce034c_6d8dead1","updated":"2019-05-20 11:01:14.000000000","message":"done","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self._remove_pci_info(vif.id)"},{"line_number":75,"context_line":"        pass"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _compute(self, vif, resources, physnet, ifname, netns):"},{"line_number":78,"context_line":"        LOG.info(\"_compute\")"},{"line_number":79,"context_line":"        pod_name \u003d vif.pod_name"},{"line_number":80,"context_line":"        pod_link \u003d vif.pod_link"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_8dfb7677","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":16},"updated":"2019-04-18 11:36:48.000000000","message":"need to think about more solid name, just compute too jeneral","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        pod_link \u003d vif.pod_link"},{"line_number":81,"context_line":"        resource_name \u003d self._get_resource_by_physnet(physnet)"},{"line_number":82,"context_line":"        LOG.info(\"resource_name \u003d %s\", resource_name)"},{"line_number":83,"context_line":"        driver \u003d self._get_driver_by_res(resource_name)"},{"line_number":84,"context_line":"        LOG.info(\"driver \u003d %s\", driver)"},{"line_number":85,"context_line":"        resource \u003d self._make_resource(resource_name)"},{"line_number":86,"context_line":"        LOG.info(\"resource \u003d %s\", resource)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_6845d842","line":83,"updated":"2019-04-18 11:36:48.000000000","message":"too many branches and variables: driver, driver_type\nwe\u0027ve 2 types of behaviour for dpdk and for linux kernel NIC driver.\nI would like to replace conditions by entities.\nclass with e.g. name VIFSriovNICDriver and one method attach (with the same signature as _action). And 2 derived classes VIFSriovKernelDriver \u0026 VIFSriovUserDriver with appropriate implementation.","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        for container in pod_resource.containers:"},{"line_number":100,"context_line":"            LOG.info(\"container \u003d %s\", container)"},{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                container_devices \u003d container.devices"},{"line_number":103,"context_line":"            except Exception:"},{"line_number":104,"context_line":"                LOG.warning(\"No devices in container %s\","},{"line_number":105,"context_line":"                            container.name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_6d02ca0d","line":102,"range":{"start_line":102,"start_character":16,"end_line":102,"end_character":33},"updated":"2019-04-18 11:36:48.000000000","message":"it\u0027s better to exit if there is no devices in container, and save tab\u0027s here bellow.","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":28396,"name":"Alexey Perevalov","email":"alexey.perevalov@huawei.com","username":"a.perevalov"},"change_message_id":"42c9dbcf5e565692af92bbe1b70e163a726f5079","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            raise"},{"line_number":131,"context_line":"        return resource_name"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def _make_resource(self, res_name):"},{"line_number":134,"context_line":"        res_prefix \u003d config.CONF.sriov.device_plugin_resource_prefix"},{"line_number":135,"context_line":"        return res_prefix + \u0027/\u0027 + res_name"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fce034c_2d328260","line":133,"updated":"2019-04-18 11:36:48.000000000","message":"I had the same function in controller/drivers/sriov.py (sriov_make_resource)","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"69e444e6a03ec9242deef2398d87aac7b3259d14","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        LOG.exception(\"No driver type for driver %s\", driver_name)"},{"line_number":153,"context_line":"        raise"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _action(self, pci, driver, pod_link, vif, ifname, netns):"},{"line_number":156,"context_line":"        LOG.info(\"_action\")"},{"line_number":157,"context_line":"        port_id \u003d vif.id"},{"line_number":158,"context_line":"        driver_type \u003d self._get_driver_type(driver)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfbec78f_a67a9f85","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":15},"updated":"2019-05-03 06:27:01.000000000","message":"As Alexey pointed out above as well, this might a very generic name too.","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"2914d86cf2d0a06865e1f3c8c0f8893c0d3fd522","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        LOG.exception(\"No driver type for driver %s\", driver_name)"},{"line_number":153,"context_line":"        raise"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _action(self, pci, driver, pod_link, vif, ifname, netns):"},{"line_number":156,"context_line":"        LOG.info(\"_action\")"},{"line_number":157,"context_line":"        port_id \u003d vif.id"},{"line_number":158,"context_line":"        driver_type \u003d self._get_driver_type(driver)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_5e1ef1ba","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":15},"in_reply_to":"dfbec78f_a67a9f85","updated":"2019-05-20 11:01:14.000000000","message":"Done","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":29615,"name":"Nayan Deshmukh","email":"n.deshmukh@samsung.com","username":"n.deshmukh"},"change_message_id":"69e444e6a03ec9242deef2398d87aac7b3259d14","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    def _annotate_device(self, pod_link, pci, old_driver, new_driver, port_id):"},{"line_number":278,"context_line":"        LOG.info(\"_annotate_device\")"},{"line_number":279,"context_line":"        LOG.info(\"port_id \u003d %s\", port_id)"},{"line_number":280,"context_line":"        annot_name \u003d \u0027pci_devices\u0027"},{"line_number":281,"context_line":"        old_driver_title \u003d \u0027old_driver\u0027"},{"line_number":282,"context_line":"        current_driver_title \u003d \u0027current_driver\u0027"},{"line_number":283,"context_line":"        neutron_port_title \u003d \u0027neutron_id\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfbec78f_c66233d9","line":280,"updated":"2019-05-03 06:27:01.000000000","message":"It might be better to encode in this strings in constants.py as we have been doing for other annotation strings or atleast have it at a common place.","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"2914d86cf2d0a06865e1f3c8c0f8893c0d3fd522","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    def _annotate_device(self, pod_link, pci, old_driver, new_driver, port_id):"},{"line_number":278,"context_line":"        LOG.info(\"_annotate_device\")"},{"line_number":279,"context_line":"        LOG.info(\"port_id \u003d %s\", port_id)"},{"line_number":280,"context_line":"        annot_name \u003d \u0027pci_devices\u0027"},{"line_number":281,"context_line":"        old_driver_title \u003d \u0027old_driver\u0027"},{"line_number":282,"context_line":"        current_driver_title \u003d \u0027current_driver\u0027"},{"line_number":283,"context_line":"        neutron_port_title \u003d \u0027neutron_id\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_fe7805f9","line":280,"in_reply_to":"dfbec78f_c66233d9","updated":"2019-05-20 11:01:14.000000000","message":"Done","commit_id":"02c6d2a4e528f407137c20af81f9085bf28474f1"}],"kuryr_kubernetes/controller/drivers/sriov.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3bdc42a33a32a58aebf5025df33b9af27a67d527","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":"DRIVER_TYPE_MAPPING \u003d {\u0027vfio\u0027: [\u0027vfio-pci\u0027],"},{"line_number":26,"context_line":"                       \u0027uio\u0027: [\u0027uio\u0027,"},{"line_number":27,"context_line":"                               \u0027uio_pci_generic\u0027,"},{"line_number":28,"context_line":"                               \u0027igb_uio\u0027],"},{"line_number":29,"context_line":"                       \u0027netdevice\u0027: [\u0027igbvf\u0027]}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def sriov_make_resource(prefix, res_name):"}],"source_content_type":"text/x-python","patch_set":28,"id":"bfb3d3c7_4833c962","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":46},"updated":"2019-05-31 14:36:16.000000000","message":"Haven\u0027t I saw it somewhere else? Should this just go to constants?","commit_id":"a23863b474c4e3b60679136637f0485beb92d554"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9ad4a86cd873968c9310ac75a906bcf991f9567d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":"DRIVER_TYPE_MAPPING \u003d {\u0027vfio\u0027: [\u0027vfio-pci\u0027],"},{"line_number":26,"context_line":"                       \u0027uio\u0027: [\u0027uio\u0027,"},{"line_number":27,"context_line":"                               \u0027uio_pci_generic\u0027,"},{"line_number":28,"context_line":"                               \u0027igb_uio\u0027],"},{"line_number":29,"context_line":"                       \u0027netdevice\u0027: [\u0027igbvf\u0027]}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def sriov_make_resource(prefix, res_name):"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fb8cfa7_822662b7","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":46},"in_reply_to":"9fb8cfa7_fc7ca3b6","updated":"2019-06-03 09:53:26.000000000","message":"Yup, definitely this shouldn\u0027t be defined twice (first one is in base.py).","commit_id":"a23863b474c4e3b60679136637f0485beb92d554"},{"author":{"_account_id":24604,"name":"Danil Golov","email":"d.golov@samsung.com","username":"d.golov"},"change_message_id":"8be34c655023c707cc2b3bf5c036289b0ee057c7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from kuryr_kubernetes import os_vif_util as ovu"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":"DRIVER_TYPE_MAPPING \u003d {\u0027vfio\u0027: [\u0027vfio-pci\u0027],"},{"line_number":26,"context_line":"                       \u0027uio\u0027: [\u0027uio\u0027,"},{"line_number":27,"context_line":"                               \u0027uio_pci_generic\u0027,"},{"line_number":28,"context_line":"                               \u0027igb_uio\u0027],"},{"line_number":29,"context_line":"                       \u0027netdevice\u0027: [\u0027igbvf\u0027]}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def sriov_make_resource(prefix, res_name):"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fb8cfa7_fc7ca3b6","line":29,"range":{"start_line":25,"start_character":0,"end_line":29,"end_character":46},"in_reply_to":"bfb3d3c7_4833c962","updated":"2019-06-03 08:44:09.000000000","message":"This mapping is used by kuyr-k8s controller here and by CNI as well.\nDo you suggest to move this mapping to kuryr_kubernetes/constants.py ?","commit_id":"a23863b474c4e3b60679136637f0485beb92d554"}]}
