)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a7b84c664d43569733f31234dddadd57a11bd9e3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SR-IOV: update pci lib to support rate limit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3095f0e8249941f24cbf478cba142135272ebfd3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_4ed99882","line":9,"updated":"2015-07-27 15:33:43.000000000","message":"Partially-Implements: quantum-qos-api","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"a56c0e033809563c3901b75b6c88403cbc193451","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SR-IOV: update pci lib to support rate limit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3095f0e8249941f24cbf478cba142135272ebfd3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a50d1a3_4b7ef5e4","line":9,"in_reply_to":"3a50d1a3_4ed99882","updated":"2015-07-29 14:54:55.000000000","message":"Done","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"}],"neutron/agent/linux/ip_link_support.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a7b84c664d43569733f31234dddadd57a11bd9e3","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    CAPABILITY_REGEX \u003d r\"\\[ %s (.*)\""},{"line_number":56,"context_line":"    SUB_CAPABILITY_REGEX \u003d r\"\\[ %(cap)s (.*) \\[ %(subcap)s (.*)\""},{"line_number":57,"context_line":"    VERSION_REGEX \u003d r\".*iproute2-ss(?P\u003csnapshot\u003e\\d+)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_iproute2_snapshot(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_445890fa","line":57,"updated":"2015-07-27 15:33:43.000000000","message":"NAK. We must not add new version-based sanity checks. Instead, you should validate the actual feature.","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"77bb8f6b7623b4a6939c2ae035d730cfdbf2ee45","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    CAPABILITY_REGEX \u003d r\"\\[ %s (.*)\""},{"line_number":56,"context_line":"    SUB_CAPABILITY_REGEX \u003d r\"\\[ %(cap)s (.*) \\[ %(subcap)s (.*)\""},{"line_number":57,"context_line":"    VERSION_REGEX \u003d r\".*iproute2-ss(?P\u003csnapshot\u003e\\d+)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_iproute2_snapshot(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_711ac57e","line":57,"in_reply_to":"3a50d1a3_0f5d9c14","updated":"2015-07-29 11:25:39.000000000","message":"detection based on help is a lot better: there is a reasonable way for distributions to backport a patch needed for detection and get it working.\n\nIn your case, you don\u0027t validate that the tool behaves in any specific way that would show it has the feature. And it\u0027s wrong.\n\nI\u0027ve checked the help output on my Fedora 22 and I don\u0027t see the max rate argument mentioned there. Should it be fixed in upstream so that we can rely on it?","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"6f6fb54f4a6f2ce7f7272c658455b0537261d44f","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    CAPABILITY_REGEX \u003d r\"\\[ %s (.*)\""},{"line_number":56,"context_line":"    SUB_CAPABILITY_REGEX \u003d r\"\\[ %(cap)s (.*) \\[ %(subcap)s (.*)\""},{"line_number":57,"context_line":"    VERSION_REGEX \u003d r\".*iproute2-ss(?P\u003csnapshot\u003e\\d+)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_iproute2_snapshot(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_4ccb72a4","line":57,"in_reply_to":"3a50d1a3_445890fa","updated":"2015-07-29 11:46:02.000000000","message":"+1, we have tried version-based sanity checks ... it\u0027s not working for OS backporting features (Red Hat for example)","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"0b152aec1d502f8bbffe60c79ea2ed30cd8e90ee","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    CAPABILITY_REGEX \u003d r\"\\[ %s (.*)\""},{"line_number":56,"context_line":"    SUB_CAPABILITY_REGEX \u003d r\"\\[ %(cap)s (.*) \\[ %(subcap)s (.*)\""},{"line_number":57,"context_line":"    VERSION_REGEX \u003d r\".*iproute2-ss(?P\u003csnapshot\u003e\\d+)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_iproute2_snapshot(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_0f5d9c14","line":57,"in_reply_to":"3a50d1a3_445890fa","updated":"2015-07-28 10:14:43.000000000","message":"There is know way (as I know ) to do the validation if you don\u0027t know the device and the VF.\nalso If you look on the check the Detect if iproute2 support SR-IOV  https://review.openstack.org/#/c/114968/ \nyou will see that the detection is via the ip link help.\nwhich I agree it bad and error prone, but currently I don\u0027t see a way around it.","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"a56c0e033809563c3901b75b6c88403cbc193451","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    CAPABILITY_REGEX \u003d r\"\\[ %s (.*)\""},{"line_number":56,"context_line":"    SUB_CAPABILITY_REGEX \u003d r\"\\[ %(cap)s (.*) \\[ %(subcap)s (.*)\""},{"line_number":57,"context_line":"    VERSION_REGEX \u003d r\".*iproute2-ss(?P\u003csnapshot\u003e\\d+)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_iproute2_snapshot(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_0b5b0d87","line":57,"in_reply_to":"3a50d1a3_4ccb72a4","updated":"2015-07-29 14:54:55.000000000","message":"as discussed in the irc we will just support \"rate\" parameter for now","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"}],"neutron/cmd/sanity/checks.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f16cda4ef8b8f4dcbe983dfa4f2103ee6f14fe76","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"                return False"},{"line_number":141,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":142,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_dcc72943","line":139,"updated":"2015-07-29 13:47:50.000000000","message":"can we report logs for both caps before returning?","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"4325fc4395931742729c591e9a7eeba5db3af4a0","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"                return False"},{"line_number":141,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":142,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_72ff1902","line":139,"in_reply_to":"3a50d1a3_dcc72943","updated":"2015-07-29 16:03:50.000000000","message":"Done","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ae72d6efe0872a2358e522e4cb45a8a02e3ee93e","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":141,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""},{"line_number":142,"context_line":"                          \"ip link command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_8e1dd910","line":139,"updated":"2015-07-29 18:16:27.000000000","message":"Hm, doesn\u0027t it mean that now we\u0027ll always return True from here even if caps are not satisfied?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"dae9de3d519d7e6635829393fe2ac5ebf67b0755","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":141,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""},{"line_number":142,"context_line":"                          \"ip link command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_245a7d2b","line":139,"in_reply_to":"3a50d1a3_1f1b2775","updated":"2015-07-30 12:40:31.000000000","message":"Done","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"3ab158b329205d99d65de4cfc79099d558d33e0c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":141,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""},{"line_number":142,"context_line":"                          \"ip link command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_a6feb167","line":139,"in_reply_to":"3a50d1a3_8e1dd910","updated":"2015-07-29 22:23:14.000000000","message":"It seems like double logic, is it going to return False or is it going to throw an exception?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"e6a9bf525dbc138e71750449f64e0be260277fff","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if not ip_link_support.IpLinkSupport.vf_mgmt_capability_supported("},{"line_number":137,"context_line":"                   vf_section, cap):"},{"line_number":138,"context_line":"                LOG.debug(\"ip link command does not support \""},{"line_number":139,"context_line":"                          \"vf capability \u0027%(cap)s\u0027\", cap)"},{"line_number":140,"context_line":"    except ip_link_support.UnsupportedIpLinkCommand:"},{"line_number":141,"context_line":"        LOG.exception(_LE(\"Unexpected exception while checking supported \""},{"line_number":142,"context_line":"                          \"ip link command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_1f1b2775","line":139,"in_reply_to":"3a50d1a3_a6feb167","updated":"2015-07-29 23:17:36.000000000","message":"sorry, I will fix it","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"}],"neutron/plugins/ml2/drivers/mech_sriov/agent/pci_lib.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"77bb8f6b7623b4a6939c2ae035d730cfdbf2ee45","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # f89a2a05ffa94ac5bec9f50751f761215356092b the iproute2 was updated"},{"line_number":55,"context_line":"        # to support SR-IOV VF minimum and maximum Tx rate through."},{"line_number":56,"context_line":"        # This patch updated the command line interface"},{"line_number":57,"context_line":"        # to user max_tx_rate instead of rate (rate was deprecated)"},{"line_number":58,"context_line":"        # Here we just check the ip link version to determine the ip link"},{"line_number":59,"context_line":"        # command to use."},{"line_number":60,"context_line":"        if self.snapshot \u003e\u003d self.MIN_SNAPSHOT_MAX_MIN_RATE:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_11526167","line":57,"updated":"2015-07-29 11:25:39.000000000","message":"to use","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a7b84c664d43569733f31234dddadd57a11bd9e3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # to user max_tx_rate instead of rate (rate was deprecated)"},{"line_number":58,"context_line":"        # Here we just check the ip link version to determine the ip link"},{"line_number":59,"context_line":"        # command to use."},{"line_number":60,"context_line":"        if self.snapshot \u003e\u003d self.MIN_SNAPSHOT_MAX_MIN_RATE:"},{"line_number":61,"context_line":"            self.MAX_RATE_CMD \u003d \u0027max_tx_rate\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get_assigned_macs(self, vf_list):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_c4f100cf","line":60,"updated":"2015-07-27 15:33:43.000000000","message":"NAK: you must not rely on version numbers. Instead, you should validate the feature is present. Consider backports that can be present in distros that add the feature. You validation will fail for them, even though they may support the features you need.","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"6f6fb54f4a6f2ce7f7272c658455b0537261d44f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        try:"},{"line_number":130,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":131,"context_line":"                                       str(vf_index), self.MAX_RATE_CMD,"},{"line_number":132,"context_line":"                                       max_tx_rate))"},{"line_number":133,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_ecd35e02","line":130,"updated":"2015-07-29 11:46:02.000000000","message":"iiuc,\n\n  self._execute(\u0027\u0027, \u0027link\u0027, ...)\n\nexecute the command:\n\n  ip - link ...\n\nnot:\n\n  ip link ...\n\nit seems it should be:\n\n  self._execute([], \u0027link\u0027, ...)","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"595a484e360e3265f3dd70d1604e090027b7ba9c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        try:"},{"line_number":130,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":131,"context_line":"                                       str(vf_index), self.MAX_RATE_CMD,"},{"line_number":132,"context_line":"                                       max_tx_rate))"},{"line_number":133,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_082ea842","line":130,"in_reply_to":"3a50d1a3_0bd22dd1","updated":"2015-07-29 15:33:56.000000000","message":"you can use: _as_root([], ...) as it\u0027s done in ip_lib classes","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"a56c0e033809563c3901b75b6c88403cbc193451","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        try:"},{"line_number":130,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":131,"context_line":"                                       str(vf_index), self.MAX_RATE_CMD,"},{"line_number":132,"context_line":"                                       max_tx_rate))"},{"line_number":133,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_0bd22dd1","line":130,"in_reply_to":"3a50d1a3_ecd35e02","updated":"2015-07-29 14:54:55.000000000","message":"ok, I see\nbecause I copy paste the command this is  a bug in Kilo and master. \nI just test it with the QA and the ip link command is not execute.\n\nthere are 2 issues here:\n1. self._execute([], \u0027link\u0027, ...)\n2. it need to run as root.\nI will fix it here for Qos only and send a patch to master for the other command. hopefully I can back-port it to Kilo","commit_id":"b3ba5afdbc7ade4642778c0677365372bcb268b1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f16cda4ef8b8f4dcbe983dfa4f2103ee6f14fe76","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":117,"context_line":"                                       str(vf_index), \"rate\","},{"line_number":118,"context_line":"                                       str(max_tx_rate)))"},{"line_number":119,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_bc6fbd29","line":116,"updated":"2015-07-29 13:47:50.000000000","message":"Have you seen Cedric\u0027s comment in the prev patchset here?","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"4325fc4395931742729c591e9a7eeba5db3af4a0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":117,"context_line":"                                       str(vf_index), \"rate\","},{"line_number":118,"context_line":"                                       str(max_tx_rate)))"},{"line_number":119,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_7e5b6222","line":116,"in_reply_to":"3a50d1a3_2894c434","updated":"2015-07-29 16:03:50.000000000","message":"I update it to be _as_root, hopefully that what you meant :)","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1174b8d9d8f0f40fd53b90c7ee04e643f0ecf043","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        @param max_tx_rate: vf max tx rate"},{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":117,"context_line":"                                       str(vf_index), \"rate\","},{"line_number":118,"context_line":"                                       str(max_tx_rate)))"},{"line_number":119,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_2894c434","line":116,"in_reply_to":"3a50d1a3_bc6fbd29","updated":"2015-07-29 15:35:55.000000000","message":"imo, you should define a parent change replacing _execute(\u0027\u0027, ...) by _as_root([], ...)","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ae72d6efe0872a2358e522e4cb45a8a02e3ee93e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        @param vf_list: list of vf indexes"},{"line_number":53,"context_line":"        @return: list of assigned mac addresses"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":57,"context_line":"        except Exception as e:"},{"line_number":58,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_cedd2142","line":55,"updated":"2015-07-29 18:16:27.000000000","message":"here?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"e6a9bf525dbc138e71750449f64e0be260277fff","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        @param vf_list: list of vf indexes"},{"line_number":53,"context_line":"        @return: list of assigned mac addresses"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":57,"context_line":"        except Exception as e:"},{"line_number":58,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_3fbf03ac","line":55,"in_reply_to":"3a50d1a3_06f0c58f","updated":"2015-07-29 23:17:36.000000000","message":"@ajo: he mean the replace self._execute(\u0027\u0027 with self._as_root([]\n@Ihar : these are bugs in master no related to this patch.\nI will send different  patch to master to fix them and when we rebase to qos branch we will have them. are you ok with that?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"233ff9b970e03a981b88941a4d174a7299d6544d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        @param vf_list: list of vf indexes"},{"line_number":53,"context_line":"        @return: list of assigned mac addresses"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":57,"context_line":"        except Exception as e:"},{"line_number":58,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_572e64fb","line":55,"in_reply_to":"3a50d1a3_08fd2408","updated":"2015-07-30 09:29:07.000000000","message":"fix in master \nhttps://review.openstack.org/#/c/207358/","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"045212604295f946919deb3462344a4c4f99bffa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        @param vf_list: list of vf indexes"},{"line_number":53,"context_line":"        @return: list of assigned mac addresses"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":57,"context_line":"        except Exception as e:"},{"line_number":58,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_08fd2408","line":55,"in_reply_to":"3a50d1a3_3fbf03ac","updated":"2015-07-30 08:06:20.000000000","message":"OK.","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"3ab158b329205d99d65de4cfc79099d558d33e0c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        @param vf_list: list of vf indexes"},{"line_number":53,"context_line":"        @return: list of assigned mac addresses"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":57,"context_line":"        except Exception as e:"},{"line_number":58,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_06f0c58f","line":55,"in_reply_to":"3a50d1a3_cedd2142","updated":"2015-07-29 22:23:14.000000000","message":"what here?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ae72d6efe0872a2358e522e4cb45a8a02e3ee93e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        @param vf_index: vf index"},{"line_number":74,"context_line":"        @todo: Handle \"auto\" state"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        try:"},{"line_number":77,"context_line":"            out \u003d self._execute(\u0027\u0027, \"link\", (\"show\", self.dev_name))"},{"line_number":78,"context_line":"        except Exception as e:"},{"line_number":79,"context_line":"            LOG.exception(_LE(\"Failed executing ip command\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_6ee96de5","line":76,"updated":"2015-07-29 18:16:27.000000000","message":"here?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ae72d6efe0872a2358e522e4cb45a8a02e3ee93e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        status_str \u003d self.LinkState.ENABLE if state else \\"},{"line_number":99,"context_line":"            self.LinkState.DISABLE"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            self._execute(\u0027\u0027, \"link\", (\"set\", self.dev_name, \"vf\","},{"line_number":103,"context_line":"                                       str(vf_index), \"state\", status_str))"},{"line_number":104,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_eed49d20","line":101,"updated":"2015-07-29 18:16:27.000000000","message":"here too?","commit_id":"09f0038e1c62fd87e1152b7a00382c2d70a429e3"}],"neutron/tests/unit/plugins/ml2/drivers/mech_sriov/agent/test_pci_lib.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f16cda4ef8b8f4dcbe983dfa4f2103ee6f14fe76","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        2: \"fa:16:3e:68:4e:79\","},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def setUp(self, *args):"},{"line_number":48,"context_line":"        super(TestPciLib, self).setUp()"},{"line_number":49,"context_line":"        self.pci_wrapper \u003d pci_lib.PciDeviceIPWrapper(self.DEV_NAME)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_9cebe1a3","line":47,"updated":"2015-07-29 13:47:50.000000000","message":"why the change?","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"4325fc4395931742729c591e9a7eeba5db3af4a0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        2: \"fa:16:3e:68:4e:79\","},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def setUp(self, *args):"},{"line_number":48,"context_line":"        super(TestPciLib, self).setUp()"},{"line_number":49,"context_line":"        self.pci_wrapper \u003d pci_lib.PciDeviceIPWrapper(self.DEV_NAME)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_e5f36507","line":47,"in_reply_to":"3a50d1a3_9cebe1a3","updated":"2015-07-29 16:03:50.000000000","message":"Done","commit_id":"3d030886775617dc48453f3b2c6c8895496bc3ee"}]}
