)]}'
{"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"QOS_INGRESS_QUEUE \u003d 0"},{"line_number":58,"context_line":"QOS_EGRESS_QUEUE \u003d 1"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def _ofport_result_pending(result):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_25ab5a8b","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":16},"updated":"2016-08-15 08:45:19.000000000","message":"This variable is not used and I don\u0027t know if other QoS rule implementations will use it.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"QOS_INGRESS_QUEUE \u003d 0"},{"line_number":58,"context_line":"QOS_EGRESS_QUEUE \u003d 1"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"def _ofport_result_pending(result):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_61ed51ef","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":16},"in_reply_to":"3ac371cc_25ab5a8b","updated":"2016-08-18 22:02:24.000000000","message":"You\u0027re right. It\u0027s not used (at least for now). I removed it :)","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                                 queue_uuid, queue_type):"},{"line_number":602,"context_line":"        queues \u003d {queue_type: queue_uuid}"},{"line_number":603,"context_line":"        if qos_uuid:"},{"line_number":604,"context_line":"            self.set_db_attribute("},{"line_number":605,"context_line":"                \u0027QoS\u0027, qos_uuid,"},{"line_number":606,"context_line":"                \u0027queues\u0027, queues, check_error\u003dTrue)"},{"line_number":607,"context_line":"        else:"},{"line_number":608,"context_line":"            queues \u003d {queue_type: queue_uuid}"},{"line_number":609,"context_line":"            external_ids \u003d {\u0027id\u0027: port_name}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_655ef246","line":606,"range":{"start_line":604,"start_character":11,"end_line":606,"end_character":51},"updated":"2016-08-15 08:45:19.000000000","message":"Here you are overwriting \"queues\". Now only your feature is using this variable, but in a future, multiple QoS rules will use. Please, read it first, update the value and then write the value.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                                 queue_uuid, queue_type):"},{"line_number":602,"context_line":"        queues \u003d {queue_type: queue_uuid}"},{"line_number":603,"context_line":"        if qos_uuid:"},{"line_number":604,"context_line":"            self.set_db_attribute("},{"line_number":605,"context_line":"                \u0027QoS\u0027, qos_uuid,"},{"line_number":606,"context_line":"                \u0027queues\u0027, queues, check_error\u003dTrue)"},{"line_number":607,"context_line":"        else:"},{"line_number":608,"context_line":"            queues \u003d {queue_type: queue_uuid}"},{"line_number":609,"context_line":"            external_ids \u003d {\u0027id\u0027: port_name}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_c19365ff","line":606,"range":{"start_line":604,"start_character":11,"end_line":606,"end_character":51},"in_reply_to":"3ac371cc_655ef246","updated":"2016-08-18 22:02:24.000000000","message":"Done","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            \u0027burst\u0027: max_burst_in_bits,"},{"line_number":648,"context_line":"        }"},{"line_number":649,"context_line":"        queue_uuid \u003d self._update_bw_limit_queue("},{"line_number":650,"context_line":"            port_name, queue_uuid, QOS_INGRESS_QUEUE, queue_other_config"},{"line_number":651,"context_line":"        )"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        qos_uuid \u003d self._update_bw_limit_profile("}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_a5062a1e","line":650,"range":{"start_line":650,"start_character":54,"end_line":650,"end_character":72},"updated":"2016-08-15 08:45:19.000000000","message":"\"queue_other_config\" has also \"burst\" paramater, which is not a valid one for OvS QoS:other_config.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5644572eca85a19e78b4eb812b50980719e0b7d0","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            \u0027burst\u0027: max_burst_in_bits,"},{"line_number":648,"context_line":"        }"},{"line_number":649,"context_line":"        queue_uuid \u003d self._update_bw_limit_queue("},{"line_number":650,"context_line":"            port_name, queue_uuid, QOS_INGRESS_QUEUE, queue_other_config"},{"line_number":651,"context_line":"        )"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        qos_uuid \u003d self._update_bw_limit_profile("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_5fe89ce2","line":650,"range":{"start_line":650,"start_character":54,"end_line":650,"end_character":72},"in_reply_to":"1ac06dbe_10948935","updated":"2016-08-22 09:19:26.000000000","message":"Sorry, my bad. Big mistake... I was thinking in QoS table!\n\nThat\u0027s correct.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80c43f39b0856175ded8a28a8a23d36f2ac2dbf2","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            \u0027burst\u0027: max_burst_in_bits,"},{"line_number":648,"context_line":"        }"},{"line_number":649,"context_line":"        queue_uuid \u003d self._update_bw_limit_queue("},{"line_number":650,"context_line":"            port_name, queue_uuid, QOS_INGRESS_QUEUE, queue_other_config"},{"line_number":651,"context_line":"        )"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        qos_uuid \u003d self._update_bw_limit_profile("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_10948935","line":650,"range":{"start_line":650,"start_character":54,"end_line":650,"end_character":72},"in_reply_to":"1ac06dbe_65171dee","updated":"2016-08-19 20:53:28.000000000","message":"I read there that it is used for \"linux-htb\" (see on page 39 in this doc which You gave me).\nI would left it here as it is now but if other reviewers also want to remove it, I can :)","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b878c0bcb015f12f2150420b96e0c97d996dfc07","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            \u0027burst\u0027: max_burst_in_bits,"},{"line_number":648,"context_line":"        }"},{"line_number":649,"context_line":"        queue_uuid \u003d self._update_bw_limit_queue("},{"line_number":650,"context_line":"            port_name, queue_uuid, QOS_INGRESS_QUEUE, queue_other_config"},{"line_number":651,"context_line":"        )"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        qos_uuid \u003d self._update_bw_limit_profile("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_65171dee","line":650,"range":{"start_line":650,"start_character":54,"end_line":650,"end_character":72},"in_reply_to":"3ac371cc_a4a477b9","updated":"2016-08-19 13:06:11.000000000","message":"Burst value could be accepted, but not used: http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":647,"context_line":"            \u0027burst\u0027: max_burst_in_bits,"},{"line_number":648,"context_line":"        }"},{"line_number":649,"context_line":"        queue_uuid \u003d self._update_bw_limit_queue("},{"line_number":650,"context_line":"            port_name, queue_uuid, QOS_INGRESS_QUEUE, queue_other_config"},{"line_number":651,"context_line":"        )"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        qos_uuid \u003d self._update_bw_limit_profile("}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_a4a477b9","line":650,"range":{"start_line":650,"start_character":54,"end_line":650,"end_character":72},"in_reply_to":"3ac371cc_a5062a1e","updated":"2016-08-18 22:02:24.000000000","message":"Are You sure? As I checked ovs accepts burst value in QoS:other_config","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                              check_error\u003dTrue)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    def get_ingress_bw_limit_for_port(self, port_name):"},{"line_number":661,"context_line":"        res \u003d self.ovsdb.db_find("},{"line_number":662,"context_line":"            \u0027Queue\u0027,"},{"line_number":663,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":664,"context_line":"            columns\u003d[\u0027other_config\u0027]).execute(check_error\u003dTrue)"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        if res is None or len(res) \u003d\u003d 0:"},{"line_number":667,"context_line":"            return None, None"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_b055c6c7","line":664,"range":{"start_line":661,"start_character":8,"end_line":664,"end_character":63},"updated":"2016-08-15 08:45:19.000000000","message":"Why are you searching a queue only using the \"port_name\" (\"id\" key in other_config), instead of using also the \"queue_type\"?\n\nI\u0027m talking about using the same criteria as in _update_bw_limit_queue().","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                              check_error\u003dTrue)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    def get_ingress_bw_limit_for_port(self, port_name):"},{"line_number":661,"context_line":"        res \u003d self.ovsdb.db_find("},{"line_number":662,"context_line":"            \u0027Queue\u0027,"},{"line_number":663,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":664,"context_line":"            columns\u003d[\u0027other_config\u0027]).execute(check_error\u003dTrue)"},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"        if res is None or len(res) \u003d\u003d 0:"},{"line_number":667,"context_line":"            return None, None"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_04346b48","line":664,"range":{"start_line":661,"start_character":8,"end_line":664,"end_character":63},"in_reply_to":"3ac371cc_b055c6c7","updated":"2016-08-18 22:02:24.000000000","message":"Done","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":674,"context_line":"    def delete_ingress_bw_limit_for_port(self, port_name):"},{"line_number":675,"context_line":"        qos_row \u003d None"},{"line_number":676,"context_line":"        queue_row \u003d None"},{"line_number":677,"context_line":"        qos \u003d self.ovsdb.db_find("},{"line_number":678,"context_line":"            \u0027QoS\u0027,"},{"line_number":679,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":680,"context_line":"            columns\u003d[\u0027_uuid\u0027]).execute(check_error\u003dTrue)"},{"line_number":681,"context_line":"        if len(qos):"},{"line_number":682,"context_line":"            qos_row \u003d qos[0][\u0027_uuid\u0027]"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        queue \u003d self.ovsdb.db_find("},{"line_number":685,"context_line":"            \u0027Queue\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_30dd5643","line":682,"range":{"start_line":677,"start_character":0,"end_line":682,"end_character":37},"updated":"2016-08-15 08:45:19.000000000","message":"Why not to use _find_qos?","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":674,"context_line":"    def delete_ingress_bw_limit_for_port(self, port_name):"},{"line_number":675,"context_line":"        qos_row \u003d None"},{"line_number":676,"context_line":"        queue_row \u003d None"},{"line_number":677,"context_line":"        qos \u003d self.ovsdb.db_find("},{"line_number":678,"context_line":"            \u0027QoS\u0027,"},{"line_number":679,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":680,"context_line":"            columns\u003d[\u0027_uuid\u0027]).execute(check_error\u003dTrue)"},{"line_number":681,"context_line":"        if len(qos):"},{"line_number":682,"context_line":"            qos_row \u003d qos[0][\u0027_uuid\u0027]"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        queue \u003d self.ovsdb.db_find("},{"line_number":685,"context_line":"            \u0027Queue\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_ff2398a5","line":682,"range":{"start_line":677,"start_character":0,"end_line":682,"end_character":37},"in_reply_to":"3ac371cc_30dd5643","updated":"2016-08-18 22:02:24.000000000","message":"changed","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        if len(qos):"},{"line_number":682,"context_line":"            qos_row \u003d qos[0][\u0027_uuid\u0027]"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        queue \u003d self.ovsdb.db_find("},{"line_number":685,"context_line":"            \u0027Queue\u0027,"},{"line_number":686,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":687,"context_line":"            columns\u003d[\u0027_uuid\u0027]).execute(check_error\u003dTrue)"},{"line_number":688,"context_line":"        if len(queue):"},{"line_number":689,"context_line":"            queue_row \u003d queue[0][\u0027_uuid\u0027]"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        with self.ovsdb.transaction(check_error\u003dTrue) as txn:"},{"line_number":692,"context_line":"            txn.add(self.ovsdb.db_set(\u0027Port\u0027, port_name, (\u0027qos\u0027, [])))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_f0a0dea7","line":689,"range":{"start_line":684,"start_character":0,"end_line":689,"end_character":41},"updated":"2016-08-15 08:45:19.000000000","message":"Why not to use _find_queue?","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        if len(qos):"},{"line_number":682,"context_line":"            qos_row \u003d qos[0][\u0027_uuid\u0027]"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        queue \u003d self.ovsdb.db_find("},{"line_number":685,"context_line":"            \u0027Queue\u0027,"},{"line_number":686,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"},{"line_number":687,"context_line":"            columns\u003d[\u0027_uuid\u0027]).execute(check_error\u003dTrue)"},{"line_number":688,"context_line":"        if len(queue):"},{"line_number":689,"context_line":"            queue_row \u003d queue[0][\u0027_uuid\u0027]"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        with self.ovsdb.transaction(check_error\u003dTrue) as txn:"},{"line_number":692,"context_line":"            txn.add(self.ovsdb.db_set(\u0027Port\u0027, port_name, (\u0027qos\u0027, [])))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_7f196879","line":689,"range":{"start_line":684,"start_character":0,"end_line":689,"end_character":41},"in_reply_to":"3ac371cc_f0a0dea7","updated":"2016-08-18 22:02:24.000000000","message":"changed","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        with self.ovsdb.transaction(check_error\u003dTrue) as txn:"},{"line_number":692,"context_line":"            txn.add(self.ovsdb.db_set(\u0027Port\u0027, port_name, (\u0027qos\u0027, [])))"},{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_3041d60c","line":694,"range":{"start_line":694,"start_character":53,"end_line":694,"end_character":60},"updated":"2016-08-15 08:45:19.000000000","message":"If qos_row in None (qos is not present in the OvS database) you will have an error.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        with self.ovsdb.transaction(check_error\u003dTrue) as txn:"},{"line_number":692,"context_line":"            txn.add(self.ovsdb.db_set(\u0027Port\u0027, port_name, (\u0027qos\u0027, [])))"},{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_3fab70d8","line":694,"range":{"start_line":694,"start_character":53,"end_line":694,"end_character":60},"in_reply_to":"3ac371cc_3041d60c","updated":"2016-08-18 22:02:24.000000000","message":"But if it is None then this destroy operation will not be executed so what error will be? In tests I didn\u0027t get any error here.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b878c0bcb015f12f2150420b96e0c97d996dfc07","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        with self.ovsdb.transaction(check_error\u003dTrue) as txn:"},{"line_number":692,"context_line":"            txn.add(self.ovsdb.db_set(\u0027Port\u0027, port_name, (\u0027qos\u0027, [])))"},{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_e0fe5b04","line":694,"range":{"start_line":694,"start_character":53,"end_line":694,"end_character":60},"in_reply_to":"3ac371cc_3fab70d8","updated":"2016-08-19 13:06:11.000000000","message":"You are right","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    def __enter__(self):"},{"line_number":699,"context_line":"        self.create()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_5048d22d","line":696,"range":{"start_line":696,"start_character":55,"end_line":696,"end_character":64},"updated":"2016-08-15 08:45:19.000000000","message":"If queue in None (queue is not present in the OvS database) you will have an error.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    def __enter__(self):"},{"line_number":699,"context_line":"        self.create()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_bf85a05a","line":696,"range":{"start_line":696,"start_character":55,"end_line":696,"end_character":64},"in_reply_to":"3ac371cc_5048d22d","updated":"2016-08-18 22:02:24.000000000","message":"same as in my comment above","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b878c0bcb015f12f2150420b96e0c97d996dfc07","unresolved":false,"context_lines":[{"line_number":693,"context_line":"            if qos_row:"},{"line_number":694,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027QoS\u0027, qos_row))"},{"line_number":695,"context_line":"            if queue_row:"},{"line_number":696,"context_line":"                txn.add(self.ovsdb.db_destroy(\u0027Queue\u0027, queue_row))"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    def __enter__(self):"},{"line_number":699,"context_line":"        self.create()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_2509a532","line":696,"range":{"start_line":696,"start_character":55,"end_line":696,"end_character":64},"in_reply_to":"3ac371cc_bf85a05a","updated":"2016-08-19 13:06:11.000000000","message":"You are right","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a0580747c07fa11f9a1c2fcdf95bac05666f1121","unresolved":false,"context_lines":[{"line_number":615,"context_line":"            qos_uuid \u003d self._find_qos(port_name)"},{"line_number":616,"context_line":"        return qos_uuid"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def _find_qos(self, port_name):"},{"line_number":619,"context_line":"        qos \u003d self.ovsdb.db_find("},{"line_number":620,"context_line":"            \u0027QoS\u0027,"},{"line_number":621,"context_line":"            (\u0027external_ids\u0027, \u0027\u003d\u0027, {\u0027id\u0027: port_name}),"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_81ecb2c8","line":618,"updated":"2016-08-19 20:14:56.000000000","message":"I noticed that you are having to jump through hoops and call a second transaction to get the uuid of a newly inserted row. This is a bug in the OVSDB vsctl and native implementations. They should have both been returning this uuid. I went ahead and fixed this bug here: https://review.openstack.org/358101. If you rebase your patch off of that fix, you should be able to significantly simplify this code.","commit_id":"259954644db987791b899eb51a29c4e78066b9b3"}],"neutron/plugins/ml2/drivers/openvswitch/agent/extension_drivers/qos_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def _delete_ingress_bandwidth_limit(self, vif_port):"},{"line_number":104,"context_line":"        port_name \u003d vif_port.port_name"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        current_max_kbps, current_max_burst_kbps \u003d ("},{"line_number":107,"context_line":"            self.br_int.get_ingress_bw_limit_for_port(port_name))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if current_max_kbps is not None or current_max_burst_kbps is not None:"},{"line_number":110,"context_line":"            self.br_int.delete_ingress_bw_limit_for_port(port_name)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def create_dscp_marking(self, port, rule):"},{"line_number":113,"context_line":"        self.update_dscp_marking(port, rule)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_abdb9b1a","line":110,"range":{"start_line":106,"start_character":0,"end_line":110,"end_character":67},"updated":"2016-08-15 08:45:19.000000000","message":"Funtion \"get_ingress_bw_limit_for_port\" is only searchinf for queues. But ingress max bandwidth can be limited in the QoS policy and you should search for it, check and unset if needed.","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80c43f39b0856175ded8a28a8a23d36f2ac2dbf2","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def _delete_ingress_bandwidth_limit(self, vif_port):"},{"line_number":104,"context_line":"        port_name \u003d vif_port.port_name"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        current_max_kbps, current_max_burst_kbps \u003d ("},{"line_number":107,"context_line":"            self.br_int.get_ingress_bw_limit_for_port(port_name))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if current_max_kbps is not None or current_max_burst_kbps is not None:"},{"line_number":110,"context_line":"            self.br_int.delete_ingress_bw_limit_for_port(port_name)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def create_dscp_marking(self, port, rule):"},{"line_number":113,"context_line":"        self.update_dscp_marking(port, rule)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_30b6e5dc","line":110,"range":{"start_line":106,"start_character":0,"end_line":110,"end_character":67},"in_reply_to":"1ac06dbe_005d77e9","updated":"2016-08-19 20:53:28.000000000","message":"I already added it so I will left it as it is now :)","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def _delete_ingress_bandwidth_limit(self, vif_port):"},{"line_number":104,"context_line":"        port_name \u003d vif_port.port_name"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        current_max_kbps, current_max_burst_kbps \u003d ("},{"line_number":107,"context_line":"            self.br_int.get_ingress_bw_limit_for_port(port_name))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if current_max_kbps is not None or current_max_burst_kbps is not None:"},{"line_number":110,"context_line":"            self.br_int.delete_ingress_bw_limit_for_port(port_name)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def create_dscp_marking(self, port, rule):"},{"line_number":113,"context_line":"        self.update_dscp_marking(port, rule)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_df933cff","line":110,"range":{"start_line":106,"start_character":0,"end_line":110,"end_character":67},"in_reply_to":"3ac371cc_abdb9b1a","updated":"2016-08-18 22:02:24.000000000","message":"I changed it but I\u0027m not sure if it is neccessary. \n\novs_lib will set this ingress bw limit in queue always so how it can be configured in QoS directly? I\u0027m not sure if it is necessary to search it in both","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b878c0bcb015f12f2150420b96e0c97d996dfc07","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def _delete_ingress_bandwidth_limit(self, vif_port):"},{"line_number":104,"context_line":"        port_name \u003d vif_port.port_name"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        current_max_kbps, current_max_burst_kbps \u003d ("},{"line_number":107,"context_line":"            self.br_int.get_ingress_bw_limit_for_port(port_name))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if current_max_kbps is not None or current_max_burst_kbps is not None:"},{"line_number":110,"context_line":"            self.br_int.delete_ingress_bw_limit_for_port(port_name)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def create_dscp_marking(self, port, rule):"},{"line_number":113,"context_line":"        self.update_dscp_marking(port, rule)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_005d77e9","line":110,"range":{"start_line":106,"start_character":0,"end_line":110,"end_character":67},"in_reply_to":"3ac371cc_df933cff","updated":"2016-08-19 13:06:11.000000000","message":"That\u0027s OK if max-rate is set only in the queue, and not in the qos policy","commit_id":"3dbd82126baa6740e980932519927605d964ede8"}],"neutron/tests/common/agents/l2_extensions.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b47100f8bb5f86ee35ec8fbd54b58d64eb078634","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    common_utils.wait_until_true(_bandwidth_limit_rule_applied)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def wait_until_ingress_bandwidth_limit_rule_applied(bridge, port_vif, rule):"},{"line_number":43,"context_line":"    def _bandwidth_limit_rule_applied():"},{"line_number":44,"context_line":"        bw_rule \u003d bridge.get_ingress_bw_limit_for_port(port_vif)"},{"line_number":45,"context_line":"        expected \u003d None, None"},{"line_number":46,"context_line":"        if rule:"},{"line_number":47,"context_line":"            expected \u003d rule.max_kbps, rule.max_burst_kbps"},{"line_number":48,"context_line":"        return bw_rule \u003d\u003d expected"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    common_utils.wait_until_true(_bandwidth_limit_rule_applied)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def wait_until_dscp_marking_rule_applied(bridge, port_vif, rule):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_8b905fee","line":50,"range":{"start_line":42,"start_character":0,"end_line":50,"end_character":63},"updated":"2016-08-15 08:45:19.000000000","message":"The code is very similat to the previous function. Can you combine both?","commit_id":"3dbd82126baa6740e980932519927605d964ede8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3c9dbddbe71ce9c30b56da5b0f423cc62b74ad46","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    common_utils.wait_until_true(_bandwidth_limit_rule_applied)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def wait_until_ingress_bandwidth_limit_rule_applied(bridge, port_vif, rule):"},{"line_number":43,"context_line":"    def _bandwidth_limit_rule_applied():"},{"line_number":44,"context_line":"        bw_rule \u003d bridge.get_ingress_bw_limit_for_port(port_vif)"},{"line_number":45,"context_line":"        expected \u003d None, None"},{"line_number":46,"context_line":"        if rule:"},{"line_number":47,"context_line":"            expected \u003d rule.max_kbps, rule.max_burst_kbps"},{"line_number":48,"context_line":"        return bw_rule \u003d\u003d expected"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    common_utils.wait_until_true(_bandwidth_limit_rule_applied)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def wait_until_dscp_marking_rule_applied(bridge, port_vif, rule):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_5a711a77","line":50,"range":{"start_line":42,"start_character":0,"end_line":50,"end_character":63},"in_reply_to":"3ac371cc_8b905fee","updated":"2016-08-18 22:02:24.000000000","message":"I changed it little bit but I don\u0027t know if it is what You wanted :)","commit_id":"3dbd82126baa6740e980932519927605d964ede8"}]}
