)]}'
{"neutron/plugins/ml2/driver_context.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b14385ae1a37f358d096759e794e43c1ec181563","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        # TODO(rkukura) Verify binding allowed, segment in network"},{"line_number":297,"context_line":"        self._new_bound_segment \u003d segment_id"},{"line_number":298,"context_line":"        self._binding.vif_type \u003d vif_type"},{"line_number":299,"context_line":"        self._binding.vif_details \u003d vif_details"},{"line_number":300,"context_line":"        self._new_port_status \u003d status"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def continue_binding(self, segment_id, next_segments_to_bind):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_b0d1a132","line":299,"range":{"start_line":299,"start_character":36,"end_line":299,"end_character":47},"updated":"2017-07-20 11:14:47.000000000","message":"I was wrong.\n\nself._binding is not an OVO, is a SQLA object. In this case, vif_details is actually a string. The previous code was correct.\n\nself._binding.vif_details \u003d jsonutils.dumps(vif_details)\n\n oslo_db.exception.DBError: (sqlite3.InterfaceError) Error binding parameter 1 - probably unsupported type. [SQL: u\u0027UPDATE ml2_distributed_port_bindings SET vif_type\u003d?, vif_details\u003d? WHERE ml2_distributed_port_bindings.port_id \u003d ? AND ml2_distributed_port_bindings.host \u003d ?\u0027] [parameters: (\u0027ovs\u0027, {\u0027port_filter\u0027: False}, u\u0027b7996825-a3c4-4ed0-a9e9-9fbf0afa356f\u0027, u\u0027host-ovs-no_filter\u0027)]\n\nIn this case \"{\u0027port_filter\u0027: False}\" must be a JSON string.\n\nSorry for this mistake.","commit_id":"d18d603a4daf86a033b1297caf9b0f75e9ff6022"},{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"028ad7751d5e815ffbafc656c13bfff911b9861a","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        # TODO(rkukura) Verify binding allowed, segment in network"},{"line_number":297,"context_line":"        self._new_bound_segment \u003d segment_id"},{"line_number":298,"context_line":"        self._binding.vif_type \u003d vif_type"},{"line_number":299,"context_line":"        self._binding.vif_details \u003d vif_details"},{"line_number":300,"context_line":"        self._new_port_status \u003d status"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def continue_binding(self, segment_id, next_segments_to_bind):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_2b3d242c","line":299,"range":{"start_line":299,"start_character":36,"end_line":299,"end_character":47},"in_reply_to":"1f1a1f67_b0d1a132","updated":"2017-07-20 11:50:14.000000000","message":"Ah, right. I will abandon this patch then.","commit_id":"d18d603a4daf86a033b1297caf9b0f75e9ff6022"}]}
