kytos-ng / flow_manager

Kytos NApp that manages OpenFlow 1.3 entries
https://kytos-ng.github.io/api/flow_manager.html
MIT License
0 stars 7 forks source link

feat: updated v2/stored_flows cookie_range to accept an even list of ranges #166

Closed viniarck closed 1 year ago

viniarck commented 1 year ago

Closes #165

Summary

See updated changelog file

Local Tests

Query latency reasonable as expected on APM:

20230808_163250

Also, sent a few requests exploring the parameters, worked as expected:

❯ http 'http://0.0.0.0:8181/api/kytos/flow_manager/v2/stored_flows?cookie_range=1&cookie_range=2&cookie_range=10&cookie_range=13'
HTTP/1.1 200 OK
content-length: 2489
content-type: application/json
date: Tue, 08 Aug 2023 19:25:46 GMT
server: uvicorn

{
    "00:00:00:00:00:00:00:01": [
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 13,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 13,
                    "in_port": 1
                },
                "priority": 13,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "5b0cf6c243d8f318051d758a9acfd4db",
            "id": "f5de0eb1c875b49837ecd58b687c72c9",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        },
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 12,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 12,
                    "in_port": 1
                },
                "priority": 12,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "fc605f52cf93d656a6c9c23854b82c69",
            "id": "07531808aae42b73cd2cbd7fb616038e",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        },
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 11,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 11,
                    "in_port": 1
                },
                "priority": 11,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "1c0d0d75c622942bc9bcca335bf885e8",
            "id": "fe8e967ef16708cc2beebd18182a5a36",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        },
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 10,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 10,
                    "in_port": 1
                },
                "priority": 10,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "b49ff1fb9d3ce1a31982741358bf5461",
            "id": "4d8734bc8cf5b9153be761f471d63451",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        },
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 2,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 2,
                    "in_port": 1
                },
                "priority": 2,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "268dc268be7e02ed144e18b91e12a274",
            "id": "7a21877fcd5da593936a41de44b9e330",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        },
        {
            "flow": {
                "actions": [
                    {
                        "action_type": "output",
                        "port": 2
                    }
                ],
                "cookie": 1,
                "hard_timeout": 0,
                "idle_timeout": 0,
                "match": {
                    "dl_vlan": 1,
                    "in_port": 1
                },
                "priority": 1,
                "table_group": "base",
                "table_id": 0
            },
            "flow_id": "0869ef60ff80f1004a50d9f9ac0e3907",
            "id": "fd1509d23c9a43fb9e7151094a0b97f4",
            "inserted_at": "2023-08-08T19:23:35.052000",
            "state": "installed",
            "switch": "00:00:00:00:00:00:00:01",
            "updated_at": "2023-08-08T19:23:35.313000"
        }
    ]
}

End-to-End Tests

I'll dispatch an execution, I don't expect surprises though

viniarck commented 1 year ago

I'll go ahead and merge this, it's needed for telemetry_int