The json encoder can be used to convert Flows to json.

Acked-by: Eelco Chaudron <echau...@redhat.com>
Signed-off-by: Adrian Moreno <amore...@redhat.com>
---
 python/ovs/flows/decoders.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/python/ovs/flows/decoders.py b/python/ovs/flows/decoders.py
index 1462b0b9d..4ef29905b 100644
--- a/python/ovs/flows/decoders.py
+++ b/python/ovs/flows/decoders.py
@@ -5,6 +5,7 @@ A decoder is generally a callable that accepts a string and 
returns the value
 object.
 """
 
+import json
 import netaddr
 import re
 
@@ -522,3 +523,16 @@ def decode_nat(value):
             result[flag] = True
 
     return result
+
+
+class FlowEncoder(json.JSONEncoder):
+    """FlowEncoder is a json.JSONEncoder instance that can be used to
+    serialize flow fields."""
+
+    def default(self, obj):
+        if isinstance(obj, Decoder):
+            return obj.to_json()
+        elif isinstance(obj, netaddr.IPAddress):
+            return str(obj)
+
+        return json.JSONEncoder.default(self, obj)
-- 
2.34.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to