)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"452656221cc647cdb323e83b1359e79a87ca84c4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"is vendor agnostic so they can later be moved to a more common place"},{"line_number":29,"context_line":"if desired."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"[1] https://github.com/openstack/networking-mlnx"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I74d9f449fb24f64548b0f6db4d5562f7447efb25"},{"line_number":34,"context_line":"Closes-Bug: #1834176"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7faddb67_c627f3c6","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":48},"updated":"2019-08-01 14:45:18.000000000","message":"Hi Adrian. I know is a bit late but can you provide a working link? At least to have it here in the review.","commit_id":"0e80d2251e6b1cf8521418a703cff7cb149cb8e1"}],"neutron/agent/common/utils.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2ce7ebb97398d2644a5810d1c89800baf0f44826","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    :param conf: driver configuration object"},{"line_number":51,"context_line":"    :param kwargs: additional keyword parameters to be passed to"},{"line_number":52,"context_line":"                   the interface driver"},{"line_number":53,"context_line":"    :raises SystemExit of 1 if driver cannot be loaded"},{"line_number":54,"context_line":"    \"\"\""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_c81c2415","line":52,"updated":"2019-07-29 09:08:30.000000000","message":"It is better to define the argument explicitly rather than using kwargs. If we use kwargs, developers need to check the code of caller.","commit_id":"5f444e84820fd849db6274b5802a91654660668e"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"c561e82590e476397ca97e44d2a11ae297701c70","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    :param conf: driver configuration object"},{"line_number":51,"context_line":"    :param kwargs: additional keyword parameters to be passed to"},{"line_number":52,"context_line":"                   the interface driver"},{"line_number":53,"context_line":"    :raises SystemExit of 1 if driver cannot be loaded"},{"line_number":54,"context_line":"    \"\"\""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_800ee738","line":52,"in_reply_to":"7faddb67_2ca7faa9","updated":"2019-07-30 17:42:42.000000000","message":"Done","commit_id":"5f444e84820fd849db6274b5802a91654660668e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"29e1d0aeefc1a3264a1fe516cf79473069c50a86","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    :param conf: driver configuration object"},{"line_number":51,"context_line":"    :param kwargs: additional keyword parameters to be passed to"},{"line_number":52,"context_line":"                   the interface driver"},{"line_number":53,"context_line":"    :raises SystemExit of 1 if driver cannot be loaded"},{"line_number":54,"context_line":"    \"\"\""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_7efca3b4","line":52,"in_reply_to":"7faddb67_2ca7faa9","updated":"2019-07-31 09:04:23.000000000","message":"While the downside is understandable, I believe we need to document all arguments. For such cases, IMO it is better to avoid kwargs :)","commit_id":"5f444e84820fd849db6274b5802a91654660668e"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"e3bd6b9674c367277896078fe9609347097e3276","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    :param conf: driver configuration object"},{"line_number":51,"context_line":"    :param kwargs: additional keyword parameters to be passed to"},{"line_number":52,"context_line":"                   the interface driver"},{"line_number":53,"context_line":"    :raises SystemExit of 1 if driver cannot be loaded"},{"line_number":54,"context_line":"    \"\"\""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_2ca7faa9","line":52,"in_reply_to":"7faddb67_c81c2415","updated":"2019-07-30 09:16:04.000000000","message":"Will modify to explicitly state the kwargs.\n\ndownside is that in the future if additional kwargs are added, they will need to be added here as well.\n\nbut i guess this can serve as the one place that documents all possible kwargs (ATM there is only one.)","commit_id":"5f444e84820fd849db6274b5802a91654660668e"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2ce7ebb97398d2644a5810d1c89800baf0f44826","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        self.plugin_rpc \u003d L3PluginApi(topics.L3PLUGIN, host)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        self.driver \u003d common_utils.load_interface_driver("},{"line_number":301,"context_line":"            self.conf, get_networks_cb\u003dfunctools.partial("},{"line_number":302,"context_line":"                self.plugin_rpc.get_networks, self.context))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.fullsync \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_88c4ec60","line":301,"range":{"start_line":301,"start_character":36,"end_line":301,"end_character":38},"updated":"2019-07-29 09:08:30.000000000","message":"\"callback\" is clearer.\n\nIn addition, could you wrap a line before \"get_networks_cb\"?\nIt is easier to read.","commit_id":"5f444e84820fd849db6274b5802a91654660668e"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"65fcb7d114ff399ba2770812d41a319c5dacb3c6","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        self.plugin_rpc \u003d L3PluginApi(topics.L3PLUGIN, host)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        self.driver \u003d common_utils.load_interface_driver("},{"line_number":301,"context_line":"            self.conf, get_networks_cb\u003dfunctools.partial("},{"line_number":302,"context_line":"                self.plugin_rpc.get_networks, self.context))"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.fullsync \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_3feddbb6","line":301,"range":{"start_line":301,"start_character":36,"end_line":301,"end_character":38},"in_reply_to":"7faddb67_88c4ec60","updated":"2019-07-30 17:42:30.000000000","message":"Done","commit_id":"5f444e84820fd849db6274b5802a91654660668e"}],"neutron/agent/linux/interface.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"d2eca1ee97a557bc8d5524ffc9674791ba111896","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    DEV_NAME_LEN \u003d constants.LINUX_DEV_LEN"},{"line_number":42,"context_line":"    DEV_NAME_PREFIX \u003d constants.TAP_DEVICE_PREFIX"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, conf, **kwargs):"},{"line_number":45,"context_line":"        self.conf \u003d conf"},{"line_number":46,"context_line":"        self._mtu_update_warn_logged \u003d False"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_b9309957","line":44,"range":{"start_line":44,"start_character":29,"end_line":44,"end_character":37},"updated":"2019-07-19 14:32:01.000000000","message":"Alternative:\n\ndefine a new InterfaceDriverExtraArgs object (versioned?) that contains extra attributes passed to the interface driver so the kind of attributes passed are well defined.\n\nthen extend the API of __init__ as: __init__(self,conf, exra)","commit_id":"33731c9f5d7f082f2f9bfb3029f9b64bd5c77d0c"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"88ac4379e8327a47dd61411046b9a73e9a280550","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    DEV_NAME_LEN \u003d constants.LINUX_DEV_LEN"},{"line_number":42,"context_line":"    DEV_NAME_PREFIX \u003d constants.TAP_DEVICE_PREFIX"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, conf, **kwargs):"},{"line_number":45,"context_line":"        self.conf \u003d conf"},{"line_number":46,"context_line":"        self._mtu_update_warn_logged \u003d False"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_0f8e14d0","line":44,"range":{"start_line":44,"start_character":29,"end_line":44,"end_character":37},"in_reply_to":"7faddb67_b9309957","updated":"2019-07-23 12:25:12.000000000","message":"Or just pass the new kwarg explicitly","commit_id":"33731c9f5d7f082f2f9bfb3029f9b64bd5c77d0c"}]}
