2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

python: ovs: flow: Add sample to nested actions.

Add the sample action to those that can be called in nested actions
(such as clone).

Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
[simon: resolved conflict]
Signed-off-by: Simon Horman <horms@ovn.org>
This commit is contained in:
Adrian Moreno
2024-01-17 12:18:52 +01:00
committed by Simon Horman
parent 53a346e623
commit 7e46b2fb10
2 changed files with 29 additions and 14 deletions

View File

@@ -336,6 +336,21 @@ class ODPFlow(Flow):
**ODPFlow._tnl_action_decoder_args(),
}
_decoders["sample"] = nested_kv_decoder(
KVDecoders(
{
"sample": (lambda x: float(x.strip("%"))),
"actions": nested_kv_decoder(
KVDecoders(
decoders=_decoders,
default_free=decode_free_output,
),
is_list=True,
),
}
)
)
_decoders["clone"] = nested_kv_decoder(
KVDecoders(decoders=_decoders, default_free=decode_free_output),
is_list=True,
@@ -343,20 +358,6 @@ class ODPFlow(Flow):
return {
**_decoders,
"sample": nested_kv_decoder(
KVDecoders(
{
"sample": (lambda x: float(x.strip("%"))),
"actions": nested_kv_decoder(
KVDecoders(
decoders=_decoders,
default_free=decode_free_output,
),
is_list=True,
),
}
)
),
"check_pkt_len": nested_kv_decoder(
KVDecoders(
{

View File

@@ -550,6 +550,20 @@ def do_test_section(input_string, section, expected):
),
],
),
(
"actions=LOCAL,clone(sample(probability=123))",
[
KeyValue("output", {"port": "LOCAL"}),
KeyValue(
"clone",
[
{"sample": {
"probability": 123,
}},
]
),
],
),
(
"actions=doesnotexist(1234)",
ParseError,