)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     waleed mousa \u003cwaleedm@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-03-16 12:07:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Follow Up] OVS DPDK port representors support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_7f9a98c5","line":7,"updated":"2020-03-17 13:23:01.000000000","message":"Do we need to update docs  doc/source/user/plugins/ovs.rst ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Follow Up] OVS DPDK port representors support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_dfe06c29","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":3},"updated":"2020-03-17 13:23:01.000000000","message":"Set/Clean ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Follow Up] OVS DPDK port representors support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_7f3618b7","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":55},"updated":"2020-03-17 13:23:01.000000000","message":"in case of netdev VIFHostDevice with DPDK datapath ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Follow Up] OVS DPDK port representors support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_7d5e0e13","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":55},"in_reply_to":"1fa4df85_7f3618b7","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Follow Up] OVS DPDK port representors support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_bd6486e6","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":3},"in_reply_to":"1fa4df85_dfe06c29","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"},{"line_number":13,"context_line":"responsible for setting its MAC."},{"line_number":14,"context_line":"Moreover, when not using dpdk, libvirt does the mac cleanup,"},{"line_number":15,"context_line":"since the VF is managed by libvirt, but when using DPDK,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_3f274067","line":12,"range":{"start_line":12,"start_character":31,"end_line":12,"end_character":35},"updated":"2020-03-17 13:23:01.000000000","message":"nit: set/program ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Set VF MAC using appctl in case of netdev VIFHostDevice."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In case of DPDK representor port, Nova will pass through the VF PCI"},{"line_number":12,"context_line":"as a hostdev and os-vif should pass the MAC to ovs as it would be"},{"line_number":13,"context_line":"responsible for setting its MAC."},{"line_number":14,"context_line":"Moreover, when not using dpdk, libvirt does the mac cleanup,"},{"line_number":15,"context_line":"since the VF is managed by libvirt, but when using DPDK,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1fa4df85_1d9b5ac9","line":12,"range":{"start_line":12,"start_character":31,"end_line":12,"end_character":35},"in_reply_to":"1fa4df85_3f274067","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"}],"vif_plug_ovs/ovs.py":[{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"bb815494075cd23a74c9b129c84e2bb2af9a20ec","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    supported_port_profiles\u003d[pp_ovs, pp_ovs_representor]),"},{"line_number":147,"context_line":"            ])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def set_mac(self, representor, mac):"},{"line_number":150,"context_line":"        client \u003d ovs_client.OvsClient(\"openvswitch/ovs-vswitchd\")"},{"line_number":151,"context_line":"        client.set_mac(representor, mac)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_5440fa07","line":149,"range":{"start_line":149,"start_character":8,"end_line":149,"end_character":15},"updated":"2020-03-16 08:40:30.000000000","message":"s/set_mac//_set_mac - it should be internal method","commit_id":"46c5ef7162602d0c7887b5f67be114650b7754a1"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"c0413eb40f19ff3bfb9a04cc0b261c46ae8d1117","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    supported_port_profiles\u003d[pp_ovs, pp_ovs_representor]),"},{"line_number":147,"context_line":"            ])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def set_mac(self, representor, mac):"},{"line_number":150,"context_line":"        client \u003d ovs_client.OvsClient(\"openvswitch/ovs-vswitchd\")"},{"line_number":151,"context_line":"        client.set_mac(representor, mac)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_54e6baea","line":149,"range":{"start_line":149,"start_character":8,"end_line":149,"end_character":15},"in_reply_to":"1fa4df85_5440fa07","updated":"2020-03-16 09:26:59.000000000","message":"Done","commit_id":"46c5ef7162602d0c7887b5f67be114650b7754a1"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"bb815494075cd23a74c9b129c84e2bb2af9a20ec","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                      \u0027pf_pci\u0027: pf_pci,"},{"line_number":289,"context_line":"                      \u0027vf_num\u0027: vf_num}"},{"line_number":290,"context_line":"        self._create_vif_port(*args, **kwargs)"},{"line_number":291,"context_line":"        if (datapath !\u003d constants.OVS_DATAPATH_SYSTEM and pf_pci and vf_num):"},{"line_number":292,"context_line":"            self.set_mac(representor, vif.address)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def plug(self, vif, instance_info):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_34f3fee9","line":291,"range":{"start_line":291,"start_character":54,"end_line":291,"end_character":75},"updated":"2020-03-16 08:40:30.000000000","message":"you don\u0027t need to check this as the get_pf_pci_from_vf and get_vf_num_by_pci_address will raise exception","commit_id":"46c5ef7162602d0c7887b5f67be114650b7754a1"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"c0413eb40f19ff3bfb9a04cc0b261c46ae8d1117","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                      \u0027pf_pci\u0027: pf_pci,"},{"line_number":289,"context_line":"                      \u0027vf_num\u0027: vf_num}"},{"line_number":290,"context_line":"        self._create_vif_port(*args, **kwargs)"},{"line_number":291,"context_line":"        if (datapath !\u003d constants.OVS_DATAPATH_SYSTEM and pf_pci and vf_num):"},{"line_number":292,"context_line":"            self.set_mac(representor, vif.address)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def plug(self, vif, instance_info):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_34c69e4b","line":291,"range":{"start_line":291,"start_character":54,"end_line":291,"end_character":75},"in_reply_to":"1fa4df85_34f3fee9","updated":"2020-03-16 09:26:59.000000000","message":"Done","commit_id":"46c5ef7162602d0c7887b5f67be114650b7754a1"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    help\u003d\u0027Controls if VIF should be isolated when plugged \u0027"},{"line_number":86,"context_line":"                    \u0027to the ovs bridge. This should only be set to True \u0027"},{"line_number":87,"context_line":"                    \u0027when using the neutron ovs ml2 agent.\u0027),"},{"line_number":88,"context_line":"        cfg.StrOpt(\u0027cleanup_base_mac\u0027,"},{"line_number":89,"context_line":"                   default\u003d\u0027aa:16:3f:00:00:00\u0027,"},{"line_number":90,"context_line":"                   help\u003d\u0027The cleanup base MAC address to be used for removed \u0027"},{"line_number":91,"context_line":"                   \u0027DPDK representor ports. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_9c868265","line":88,"updated":"2020-03-17 13:23:01.000000000","message":"Can you add a note describing shortly why this is needed ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                    help\u003d\u0027Controls if VIF should be isolated when plugged \u0027"},{"line_number":86,"context_line":"                    \u0027to the ovs bridge. This should only be set to True \u0027"},{"line_number":87,"context_line":"                    \u0027when using the neutron ovs ml2 agent.\u0027),"},{"line_number":88,"context_line":"        cfg.StrOpt(\u0027cleanup_base_mac\u0027,"},{"line_number":89,"context_line":"                   default\u003d\u0027aa:16:3f:00:00:00\u0027,"},{"line_number":90,"context_line":"                   help\u003d\u0027The cleanup base MAC address to be used for removed \u0027"},{"line_number":91,"context_line":"                   \u0027DPDK representor ports. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_025d3be8","line":88,"in_reply_to":"1fa4df85_9c868265","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    supported_port_profiles\u003d[pp_ovs, pp_ovs_representor]),"},{"line_number":147,"context_line":"            ])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def _set_mac(self, representor, mac):"},{"line_number":150,"context_line":"        client \u003d ovs_client.OvsClient(\"openvswitch/ovs-vswitchd\")"},{"line_number":151,"context_line":"        client.set_mac(representor, mac)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_dcbf1aa8","line":149,"updated":"2020-03-17 13:23:01.000000000","message":"nit: as it works only in dpdk case: maybe name this _set_mac_dpdk ?","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    supported_port_profiles\u003d[pp_ovs, pp_ovs_representor]),"},{"line_number":147,"context_line":"            ])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def _set_mac(self, representor, mac):"},{"line_number":150,"context_line":"        client \u003d ovs_client.OvsClient(\"openvswitch/ovs-vswitchd\")"},{"line_number":151,"context_line":"        client.set_mac(representor, mac)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_42ec9328","line":149,"in_reply_to":"1fa4df85_dcbf1aa8","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"bd8f6dcd682580e1b434c85ddfaa8269d7461a77"}],"vif_plug_ovs/ovsclient/client.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"af323bac17e8e79bed3538c4b39039644ea79308","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vif_plug_ovs import privsep"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":21,"context_line":"def _run_appctl(target, command, argv):"},{"line_number":22,"context_line":"    socket_name \u003d ovs.unixctl.socket_name_from_target(target)"},{"line_number":23,"context_line":"    client \u003d ovs.unixctl.client.UnixctlClient.create(socket_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_c5d5161d","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":28},"updated":"2020-03-16 11:51:06.000000000","message":"i assume this need CAP_NET_ADMIN to connect to the unix socket? have your tried making this unprivaldged.\nthe actual network configuration will be done by the ovs process so it wont require os-vif to make privaldged calls provided we can connect to the unix socket.","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"9d1859002d672d544c79891592ee12fcccf7da59","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vif_plug_ovs import privsep"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":21,"context_line":"def _run_appctl(target, command, argv):"},{"line_number":22,"context_line":"    socket_name \u003d ovs.unixctl.socket_name_from_target(target)"},{"line_number":23,"context_line":"    client \u003d ovs.unixctl.client.UnixctlClient.create(socket_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_c5a3d6b0","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":28},"in_reply_to":"1fa4df85_c5d5161d","updated":"2020-03-16 11:57:31.000000000","message":"we tried and it failed","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"9d1859002d672d544c79891592ee12fcccf7da59","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def _run_appctl(target, command, argv):"},{"line_number":22,"context_line":"    socket_name \u003d ovs.unixctl.socket_name_from_target(target)"},{"line_number":23,"context_line":"    client \u003d ovs.unixctl.client.UnixctlClient.create(socket_name)"},{"line_number":24,"context_line":"    client.transact(command, list(argv))"},{"line_number":25,"context_line":"    client.close()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_a5b7bad8","line":24,"updated":"2020-03-16 11:57:31.000000000","message":"@Waleed add a comment that we need to convert argv from tuple to list due to issue with ovs.\nThis patch [1] fix it https://mail.openvswitch.org/pipermail/ovs-dev/2020-March/368695.html","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def _run_appctl(target, command, argv):"},{"line_number":22,"context_line":"    socket_name \u003d ovs.unixctl.socket_name_from_target(target)"},{"line_number":23,"context_line":"    client \u003d ovs.unixctl.client.UnixctlClient.create(socket_name)"},{"line_number":24,"context_line":"    client.transact(command, list(argv))"},{"line_number":25,"context_line":"    client.close()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_429ed3b8","line":24,"in_reply_to":"1fa4df85_a5b7bad8","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    client.close()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class OvsClient(object):"},{"line_number":29,"context_line":"    def __init__(self, target):"},{"line_number":30,"context_line":"        self.target \u003d target"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_9c2a027c","line":28,"updated":"2020-03-17 13:23:01.000000000","message":"can you add some docstring to the class and public methods explaining a bit on each ?","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    client.close()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class OvsClient(object):"},{"line_number":29,"context_line":"    def __init__(self, target):"},{"line_number":30,"context_line":"        self.target \u003d target"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_0273fbb2","line":28,"in_reply_to":"1fa4df85_9c2a027c","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def run_appctl(self, command, argv):"},{"line_number":33,"context_line":"        _run_appctl(self.target, command, argv)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_mac(self, dev, mac):"},{"line_number":36,"context_line":"        command \u003d \"netdev-dpdk/set-mac\""},{"line_number":37,"context_line":"        args \u003d [dev, mac]"},{"line_number":38,"context_line":"        self.run_appctl(command, args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_dc163a4a","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":15},"updated":"2020-03-17 13:23:01.000000000","message":"nit: set_mac_dpdk ?","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def run_appctl(self, command, argv):"},{"line_number":33,"context_line":"        _run_appctl(self.target, command, argv)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_mac(self, dev, mac):"},{"line_number":36,"context_line":"        command \u003d \"netdev-dpdk/set-mac\""},{"line_number":37,"context_line":"        args \u003d [dev, mac]"},{"line_number":38,"context_line":"        self.run_appctl(command, args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_4279f390","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":15},"in_reply_to":"1fa4df85_dc163a4a","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"1f45abdb878b6c0fb482cb19d98465b8575143ec","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        _run_appctl(self.target, command, argv)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_mac(self, dev, mac):"},{"line_number":36,"context_line":"        command \u003d \"netdev-dpdk/set-mac\""},{"line_number":37,"context_line":"        args \u003d [dev, mac]"},{"line_number":38,"context_line":"        self.run_appctl(command, args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_1c0db234","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":39},"updated":"2020-03-17 13:23:01.000000000","message":"can we have the command as class attribute defined under constants.py ?","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":25241,"name":"waleed mousa","email":"waleedm@nvidia.com","username":"waleedm"},"change_message_id":"b0738bb2718a6f9588bbaad28d4a90e6b47f2286","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        _run_appctl(self.target, command, argv)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_mac(self, dev, mac):"},{"line_number":36,"context_line":"        command \u003d \"netdev-dpdk/set-mac\""},{"line_number":37,"context_line":"        args \u003d [dev, mac]"},{"line_number":38,"context_line":"        self.run_appctl(command, args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_8245ab45","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":39},"in_reply_to":"1fa4df85_1c0db234","updated":"2020-03-18 14:00:55.000000000","message":"Done","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"af323bac17e8e79bed3538c4b39039644ea79308","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vif_plug_ovs import privsep"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":21,"context_line":"def _run_appctl(target, command, argv):"},{"line_number":22,"context_line":"    socket_name \u003d ovs.unixctl.socket_name_from_target(target)"},{"line_number":23,"context_line":"    client \u003d ovs.unixctl.client.UnixctlClient.create(socket_name)"},{"line_number":24,"context_line":"    client.transact(command, list(argv))"},{"line_number":25,"context_line":"    client.close()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class OvsClient(object):"},{"line_number":29,"context_line":"    def __init__(self, target):"},{"line_number":30,"context_line":"        self.target \u003d target"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def run_appctl(self, command, argv):"},{"line_number":33,"context_line":"        _run_appctl(self.target, command, argv)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def set_mac(self, dev, mac):"},{"line_number":36,"context_line":"        command \u003d \"netdev-dpdk/set-mac\""},{"line_number":37,"context_line":"        args \u003d [dev, mac]"},{"line_number":38,"context_line":"        self.run_appctl(command, args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_c562f6ad","line":38,"range":{"start_line":20,"start_character":0,"end_line":38,"end_character":38},"updated":"2020-03-16 11:51:06.000000000","message":"ok so this is not actually using appctl its connecting to the unix contol socket and sending the command directly.\n\nthat does remove the need for an additional dependency.\n\ni wish they had going with the ovsdb but if we are forced to use appctl then this is probably the betterway to do this.","commit_id":"33b631a117148d624c2cb9700d61beba5122406d"}]}
