add default veilid config to the api

This commit is contained in:
Christien Rioux 2024-03-02 11:32:08 -05:00
parent 31bb8018f6
commit 8818e63dc0
17 changed files with 242 additions and 126 deletions

View file

@ -1,6 +1,8 @@
# Basic veilid tests
import socket
import json
import dataclasses
import pytest
import veilid
@ -40,3 +42,19 @@ async def test_version(api_connection: veilid.VeilidAPI):
vstr = await api_connection.veilid_version_string()
print(f"veilid_version_string: {vstr}")
@pytest.mark.asyncio
async def test_config(api_connection: veilid.VeilidAPI):
cfgstr = await api_connection.default_veilid_config()
print(f"default_veilid_config:\n{cfgstr}")
cfgjson = json.loads(cfgstr)
veilidConfigInstance = veilid.VeilidConfig(**cfgjson)
cfgstr2 = json.dumps(dataclasses.asdict(veilidConfigInstance))
cfgjson2 = json.loads(cfgstr2)
veilidConfigInstance2 = veilid.VeilidConfig(**cfgjson2)
assert veilidConfigInstance == veilidConfigInstance2

View file

@ -396,3 +396,7 @@ class VeilidAPI(ABC):
@abstractmethod
async def veilid_version(self) -> types.VeilidVersion:
pass
@abstractmethod
async def default_veilid_config(self) -> str:
pass

View file

@ -432,6 +432,9 @@ class _JsonVeilidAPI(VeilidAPI):
v = await self.send_ndjson_request(Operation.VEILID_VERSION)
return VeilidVersion(v["major"], v["minor"], v["patch"])
async def default_veilid_config(self) -> str:
return raise_api_result(await self.send_ndjson_request(Operation.DEFAULT_VEILID_CONFIG))
######################################################

View file

@ -28,6 +28,7 @@ class Operation(StrEnum):
DEBUG = "Debug"
VEILID_VERSION_STRING = "VeilidVersionString"
VEILID_VERSION = "VeilidVersion"
DEFAULT_VEILID_CONFIG = "DefaultVeilidConfig"
class RoutingContextOperation(StrEnum):

View file

@ -2349,6 +2349,24 @@
"minimum": 0.0
}
}
},
{
"type": "object",
"required": [
"op",
"value"
],
"properties": {
"op": {
"type": "string",
"enum": [
"DefaultVeilidConfig"
]
},
"value": {
"type": "string"
}
}
}
],
"required": [

View file

@ -1499,6 +1499,20 @@
]
}
}
},
{
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"type": "string",
"enum": [
"DefaultVeilidConfig"
]
}
}
}
],
"properties": {