)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"c53c23a1586fbd59ce33a5289f4238ea66f5ce9e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"in network, if the port doesn\u0027t have an explicit qos."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[1] https://review.openstack.org/#/q/topic:bp/qos-app"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I76e3b93d55aea70a764cefb23707cf320ad17606"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9a30ddce_aa725847","line":14,"updated":"2017-03-08 14:31:45.000000000","message":"nit: Please link to the bp if there is one","commit_id":"1769cd7504b104e30a1809b6d4c3074d6c1b802f"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"dc9c3164faf21bf0b33140adf9680d4c86302123","unresolved":false,"context_lines":[{"line_number":11,"context_line":"in network, if the port doesn\u0027t have an explicit qos."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[1] https://review.openstack.org/#/q/topic:bp/qos-app"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I76e3b93d55aea70a764cefb23707cf320ad17606"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"df3967d1_d2a087a8","line":14,"updated":"2017-07-31 06:09:25.000000000","message":"related bug?","commit_id":"48c9d6b8f4939f5e5077dd0309de5ae7d6d26ca9"}],"dragonflow/controller/apps/portqos.py":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"a0ea8059ff8cd027e378b86627597e3d498f0afd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            index\u003dl2.LogicalPort.get_index(\u0027qos_policy_id\u0027),"},{"line_number":99,"context_line":"        ):"},{"line_number":100,"context_line":"            self._update_local_port(lport.id, policy)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @df_base_app.register_event(qos.QosPolicy, model_constants.EVENT_DELETED)"},{"line_number":103,"context_line":"    def delete_qos_policy(self, policy):"},{"line_number":104,"context_line":"        for lport in self.db_store.get_all("},{"line_number":105,"context_line":"            l2.LogicalPort(qos_policy\u003dpolicy.id),"},{"line_number":106,"context_line":"            index\u003dl2.LogicalPort.get_index(\u0027qos_policy_id\u0027),"},{"line_number":107,"context_line":"        ):"},{"line_number":108,"context_line":"            # FIXME (dimak) can this really happen?"},{"line_number":109,"context_line":"            self.vswitch_api.clear_port_qos(lport.id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @df_base_app.register_event(l2.LogicalSwitch,"},{"line_number":112,"context_line":"                                model_constants.EVENT_UPDATED)"}],"source_content_type":"text/x-python","patch_set":18,"id":"df3967d1_172e01a5","line":109,"range":{"start_line":101,"start_character":0,"end_line":109,"end_character":53},"updated":"2017-07-31 05:45:32.000000000","message":"Probably not needed","commit_id":"32f37fae0960db62bb1ee2fa554e608acd3fcdb2"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"5a6687fe356ad723bcd8236a6e91766fee67de84","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @df_base_app.register_event(l2.LogicalSwitch,"},{"line_number":103,"context_line":"                                model_constants.EVENT_UPDATED)"},{"line_number":104,"context_line":"    def _update_lswitch(self, lswitch, orig_lswitch):"},{"line_number":105,"context_line":"        if lswitch.qos_policy \u003d\u003d orig_lswitch.qos_policy:"},{"line_number":106,"context_line":"            # QoS policy did not change, nothing to do here"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"df3967d1_fe2e8da3","line":105,"updated":"2017-08-01 09:29:19.000000000","message":"why you change it to compere to object it\u0027self and not the object id?","commit_id":"2f96e31953f148ed2e1eb0a099e0c3d90528b80a"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"f9c8dffc1c2139020183ce8f46f215103aada359","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @df_base_app.register_event(l2.LogicalSwitch,"},{"line_number":103,"context_line":"                                model_constants.EVENT_UPDATED)"},{"line_number":104,"context_line":"    def _update_lswitch(self, lswitch, orig_lswitch):"},{"line_number":105,"context_line":"        if lswitch.qos_policy \u003d\u003d orig_lswitch.qos_policy:"},{"line_number":106,"context_line":"            # QoS policy did not change, nothing to do here"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"df3967d1_927095a7","line":105,"in_reply_to":"df3967d1_fe2e8da3","updated":"2017-08-01 09:33:23.000000000","message":"Because those are references, if there\u0027s no policy set, they will be None and an AttributeError will get thrown.","commit_id":"2f96e31953f148ed2e1eb0a099e0c3d90528b80a"}],"dragonflow/controller/portqos_app.py":[{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"7bc9b1c7d30fdda6bfac3a4d2d3455195a7a6c79","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        local_ports \u003d self.db_store.get_local_ports(lswitch.get_topic())"},{"line_number":88,"context_line":"        for port in local_ports:"},{"line_number":89,"context_line":"            if (port.get_lswitch_id() \u003d\u003d lswitch.get_id()"},{"line_number":90,"context_line":"                    and not port.get_qos_policy_id()):"},{"line_number":91,"context_line":"                self._update_ovs_port_qos(lswitch.get_qos_policy_id(),"},{"line_number":92,"context_line":"                                          port.get_id())"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_0c5d74ec","line":90,"range":{"start_line":90,"start_character":19,"end_line":90,"end_character":54},"updated":"2016-11-30 02:13:20.000000000","message":"if a port uses the original_lswitch \u0027s qos , the port\u0027s qos also need to be updated.","commit_id":"0795850920bfdc24e25e68a6b6b2a602ed4c2bb6"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"ee0a2cc741a55ac5189d7c26aa3358a129d7d5ab","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        local_ports \u003d self.db_store.get_local_ports(lswitch.get_topic())"},{"line_number":88,"context_line":"        for port in local_ports:"},{"line_number":89,"context_line":"            if (port.get_lswitch_id() \u003d\u003d lswitch.get_id()"},{"line_number":90,"context_line":"                    and not port.get_qos_policy_id()):"},{"line_number":91,"context_line":"                self._update_ovs_port_qos(lswitch.get_qos_policy_id(),"},{"line_number":92,"context_line":"                                          port.get_id())"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_4f575eca","line":90,"range":{"start_line":90,"start_character":19,"end_line":90,"end_character":54},"in_reply_to":"5a74a57a_0c5d74ec","updated":"2016-11-30 03:59:10.000000000","message":"If a port uses qos from lswitch, then it must not have qos_policy_id in it. And this code makes sure that such lport will get updated. So, I think the code is OK, can you elaborate it?","commit_id":"0795850920bfdc24e25e68a6b6b2a602ed4c2bb6"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"3659d2be8eba4fa94173a844907bbeac7b8e80cd","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        local_ports \u003d self.db_store.get_local_ports(lswitch.get_topic())"},{"line_number":88,"context_line":"        for port in local_ports:"},{"line_number":89,"context_line":"            if (port.get_lswitch_id() \u003d\u003d lswitch.get_id()"},{"line_number":90,"context_line":"                    and not port.get_qos_policy_id()):"},{"line_number":91,"context_line":"                self._update_ovs_port_qos(lswitch.get_qos_policy_id(),"},{"line_number":92,"context_line":"                                          port.get_id())"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_9bfe1837","line":90,"range":{"start_line":90,"start_character":19,"end_line":90,"end_character":54},"in_reply_to":"5a74a57a_4f575eca","updated":"2016-11-30 06:23:29.000000000","message":"if the port\u0027s qos_policy_id only be userd for port qos ,the code is ok,but the qos_policy_id of some port which are not vm port is not used.","commit_id":"0795850920bfdc24e25e68a6b6b2a602ed4c2bb6"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"410e662310939c2ab1256207d00f142f0171caab","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        local_ports \u003d self.db_store.get_local_ports(lswitch.get_topic())"},{"line_number":88,"context_line":"        for port in local_ports:"},{"line_number":89,"context_line":"            if (port.get_lswitch_id() \u003d\u003d lswitch.get_id()"},{"line_number":90,"context_line":"                    and not port.get_qos_policy_id()):"},{"line_number":91,"context_line":"                self._update_ovs_port_qos(lswitch.get_qos_policy_id(),"},{"line_number":92,"context_line":"                                          port.get_id())"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_112ae97e","line":90,"range":{"start_line":90,"start_character":19,"end_line":90,"end_character":54},"in_reply_to":"5a74a57a_9bfe1837","updated":"2016-11-30 07:04:07.000000000","message":"Done","commit_id":"0795850920bfdc24e25e68a6b6b2a602ed4c2bb6"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"2b0b6df6c3e7fcb6b94f82c03ea8698b53e8ff1b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            if port.get_qos_policy_id() \u003d\u003d qos.get_id():"},{"line_number":81,"context_line":"                self.vswitch_api.update_port_qos(port.get_id(), qos)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def update_logical_switch(self, lswitch, original_lswitch):"},{"line_number":84,"context_line":"        if (original_lswitch and"},{"line_number":85,"context_line":"                lswitch.get_qos_policy_id()"},{"line_number":86,"context_line":"                \u003d\u003d original_lswitch.get_qos_policy_id()):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_e2e3d803","line":83,"range":{"start_line":83,"start_character":45,"end_line":83,"end_character":61},"updated":"2016-11-30 08:47:43.000000000","message":"Other app not use original_lswitch. why not use db_store.get_lswitch() to get original_lswitch here so that keep the update_logical_switch parameter unchanged","commit_id":"d594beda954879d3a0aadf990e7a5e1ac93db74f"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"7a1f04f5c529f56759c00147e6508cbcdeef5378","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            if port.get_qos_policy_id() \u003d\u003d qos.get_id():"},{"line_number":81,"context_line":"                self.vswitch_api.update_port_qos(port.get_id(), qos)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def update_logical_switch(self, lswitch, original_lswitch):"},{"line_number":84,"context_line":"        if (original_lswitch and"},{"line_number":85,"context_line":"                lswitch.get_qos_policy_id()"},{"line_number":86,"context_line":"                \u003d\u003d original_lswitch.get_qos_policy_id()):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_88aa4384","line":83,"range":{"start_line":83,"start_character":45,"end_line":83,"end_character":61},"in_reply_to":"5a74a57a_e2e3d803","updated":"2016-11-30 09:20:20.000000000","message":"Because when app gets the notification, the db_store has already been updated with new data, I can\u0027t get the original_lswitch here.\n\nPlus, I think it is fair to add original_lswitch as parameter, as it is an *update* method.","commit_id":"d594beda954879d3a0aadf990e7a5e1ac93db74f"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"4f3da24950c7730f558a01e254eb15d56f89e9c0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            return port_lswitch.get_qos_policy_id()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _check_update_local_port_qos(self, lport_id, qos_id):"},{"line_number":52,"context_line":"        if not qos_id:"},{"line_number":53,"context_line":"            # If the there is no qos associated with lport in nb db,"},{"line_number":54,"context_line":"            # the qos in ovs db should also be checked and cleared."},{"line_number":55,"context_line":"            # This is because the ovs db might not be consistent with"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_c8ee8321","line":52,"range":{"start_line":52,"start_character":15,"end_line":52,"end_character":21},"updated":"2016-12-12 01:57:02.000000000","message":"it can return immediatelly if the port is not vm_port","commit_id":"5d846ca19f4dbb4d0cc1f22de3c65423f3a426e1"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"28894b520a262d5fca70eda3ddfdad935b8c5bbb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            return port_lswitch.get_qos_policy_id()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _check_update_local_port_qos(self, lport_id, qos_id):"},{"line_number":52,"context_line":"        if not qos_id:"},{"line_number":53,"context_line":"            # If the there is no qos associated with lport in nb db,"},{"line_number":54,"context_line":"            # the qos in ovs db should also be checked and cleared."},{"line_number":55,"context_line":"            # This is because the ovs db might not be consistent with"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_28e8d7e1","line":52,"range":{"start_line":52,"start_character":15,"end_line":52,"end_character":21},"in_reply_to":"3a71b18c_c8ee8321","updated":"2016-12-12 02:05:45.000000000","message":"Done","commit_id":"5d846ca19f4dbb4d0cc1f22de3c65423f3a426e1"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"18fe5f15cac5013fb7854c6c73bc42e55adaa92e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1a6eadb0_6257e826","updated":"2016-12-18 08:30:53.000000000","message":"I think we should rename the file","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"bf85a0a579d683bc71d1c929bdbc351a4081ae4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"da36d5c6_a048fecd","in_reply_to":"1a6eadb0_6257e826","updated":"2017-02-27 21:14:46.000000000","message":"I would keep the name as it is still port based qos.","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"159a26bb8904f979d9f6e95a0ee67202a5dc14ec","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if not self._is_vm_port(lport):"},{"line_number":29,"context_line":"            return"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        port_qos_id \u003d self._get_lport_qos_policy_id(lport)"},{"line_number":32,"context_line":"        self._check_update_local_port_qos(lport.get_id(), port_qos_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def update_local_port(self, lport, original_lport):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_21c47b8f","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":19},"updated":"2016-12-15 08:14:32.000000000","message":"it can return if port_qos_id is none, else it will call the method \"vswitch_api.clear_port_qos()\"","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"6e54351201c72dad1d62f971e8d513aab6dd5f86","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if not self._is_vm_port(lport):"},{"line_number":29,"context_line":"            return"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        port_qos_id \u003d self._get_lport_qos_policy_id(lport)"},{"line_number":32,"context_line":"        self._check_update_local_port_qos(lport.get_id(), port_qos_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def update_local_port(self, lport, original_lport):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_61c0332b","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":19},"in_reply_to":"1a6eadb0_21c47b8f","updated":"2016-12-15 08:27:29.000000000","message":"That is an expected behavior. Assume the df local controller is offline, qos is disassociated with lport from neutron side. Whe the local controller restarts, we expect \"vswitch_api.clear_port_qos()\" to clean the qos of lport in current host.","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"b139da8bb144a7734809a1827853679a8684e453","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if not self._is_vm_port(lport):"},{"line_number":29,"context_line":"            return"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        port_qos_id \u003d self._get_lport_qos_policy_id(lport)"},{"line_number":32,"context_line":"        self._check_update_local_port_qos(lport.get_id(), port_qos_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def update_local_port(self, lport, original_lport):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_97382df1","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":19},"in_reply_to":"1a6eadb0_61c0332b","updated":"2016-12-15 09:37:07.000000000","message":"ok","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"14ceb1ac24c6662db248f35492901ee1be2a3b44","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self._update_local_port_qos(lport_id, qos)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _update_local_port_qos(self, port_id, qos):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        def _is_qos_set():"},{"line_number":77,"context_line":"            return qos.get_max_kbps() and qos.get_max_burst_kbps()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da36d5c6_dad5ff42","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":30},"updated":"2017-02-27 06:44:22.000000000","message":"this method is very similar to previous one? Can we merge them into one?","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"bf85a0a579d683bc71d1c929bdbc351a4081ae4a","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self._update_local_port_qos(lport_id, qos)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _update_local_port_qos(self, port_id, qos):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        def _is_qos_set():"},{"line_number":77,"context_line":"            return qos.get_max_kbps() and qos.get_max_burst_kbps()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da36d5c6_e02f56a5","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":30},"in_reply_to":"da36d5c6_dad5ff42","updated":"2017-02-27 21:14:46.000000000","message":"_check_update_local_port_qos will do some check before _update_local_port_qos. They will be applied to different cases, so I don\u0027t see they can merge.","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"18fe5f15cac5013fb7854c6c73bc42e55adaa92e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                self._check_update_local_port_qos(port.get_id(),"},{"line_number":124,"context_line":"                                                  lswitch.get_qos_policy_id())"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _is_vm_port(self, lport):"},{"line_number":127,"context_line":"        owner \u003d lport.get_device_owner()"},{"line_number":128,"context_line":"        if not owner or \"compute\" in owner:"},{"line_number":129,"context_line":"            return True"},{"line_number":130,"context_line":"        return False"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _get_qos_policy(self, qos_id):"},{"line_number":133,"context_line":"        qos \u003d self.db_store.get_qos_policy(qos_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_425aec51","line":130,"range":{"start_line":126,"start_character":0,"end_line":130,"end_character":20},"updated":"2016-12-18 08:30:53.000000000","message":"nit: could it be a common util?","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"bf85a0a579d683bc71d1c929bdbc351a4081ae4a","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                self._check_update_local_port_qos(port.get_id(),"},{"line_number":124,"context_line":"                                                  lswitch.get_qos_policy_id())"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _is_vm_port(self, lport):"},{"line_number":127,"context_line":"        owner \u003d lport.get_device_owner()"},{"line_number":128,"context_line":"        if not owner or \"compute\" in owner:"},{"line_number":129,"context_line":"            return True"},{"line_number":130,"context_line":"        return False"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def _get_qos_policy(self, qos_id):"},{"line_number":133,"context_line":"        qos \u003d self.db_store.get_qos_policy(qos_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da36d5c6_0008ea90","line":130,"range":{"start_line":126,"start_character":0,"end_line":130,"end_character":20},"in_reply_to":"1a6eadb0_425aec51","updated":"2017-02-27 21:14:46.000000000","message":"it could be. In fact there are several places in code using this check, we can remove them all together. I will add to todo here. And try to use the utils in https://review.openstack.org/#/c/431422/","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5d0287843cb8a8840f9d6439429ce41f97fdab09","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _get_lport_qos_policy_id(self, lport):"},{"line_number":48,"context_line":"        \"\"\"Get the qos policy id from lport or lport\u0027s lswitch\"\"\""},{"line_number":49,"context_line":"        if lport.get_qos_policy_id():"},{"line_number":50,"context_line":"            return lport.get_qos_policy_id()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        port_lswitch \u003d self.db_store.get_lswitch(lport.get_lswitch_id())"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a30ddce_bf2c9dac","line":49,"range":{"start_line":49,"start_character":11,"end_line":49,"end_character":35},"updated":"2017-03-07 08:46:54.000000000","message":"nit: This value can be reused","commit_id":"1769cd7504b104e30a1809b6d4c3074d6c1b802f"}],"dragonflow/tests/fullstack/test_portqos.py":[{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"18fe5f15cac5013fb7854c6c73bc42e55adaa92e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1a6eadb0_822b2494","updated":"2016-12-18 08:30:53.000000000","message":"rename it.","commit_id":"5c6a64119522b154ea7ff82fdbb342691b36f5d1"}]}
