[ovs-dev] [PATCH v1 10/18] python: add a json encoder to flow fields
Adrian Moreno
amorenoz at redhat.com
Mon Nov 22 11:22:48 UTC 2021
The json encoder can be used to convert Flows to json
Signed-off-by: Adrian Moreno <amorenoz at redhat.com>
---
python/ovs/flows/decoders.py | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/python/ovs/flows/decoders.py b/python/ovs/flows/decoders.py
index 3def9f279..96bb56c06 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
@@ -451,3 +452,17 @@ 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.31.1
More information about the dev
mailing list