Files
rustfs/protocol/agent/v1/fixtures/version/negotiation-vectors.json
T

133 lines
3.2 KiB
JSON

{
"protocolVersion": "v1",
"fixtureSet": "version",
"fixture": "negotiation-vectors",
"description": "Protocol version decisions. A rejected version fails closed: nothing in the payload is processed, stored, or echoed.",
"vectors": [
{
"name": "supported major version",
"request": {
"protocolVersion": "v1",
"agentVersion": "1.4.0",
"capabilities": ["heartbeat", "inventory"]
},
"expected": {
"decision": "ACCEPT",
"negotiatedProtocolVersion": "v1",
"reason": null,
"httpStatus": null
}
},
{
"name": "supported major version reported by an agent that sends nothing else",
"request": {
"protocolVersion": "v1"
},
"expected": {
"decision": "ACCEPT",
"negotiatedProtocolVersion": "v1",
"reason": null,
"httpStatus": null
}
},
{
"name": "next major version from a future agent",
"request": {
"protocolVersion": "v2",
"agentVersion": "2.0.0",
"capabilities": ["heartbeat"]
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "far future major version",
"request": {
"protocolVersion": "v9999"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "missing protocol version",
"request": {
"agentVersion": "1.4.0"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "version without its prefix",
"request": {
"protocolVersion": "1"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "uppercase prefix",
"request": {
"protocolVersion": "V1"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "dotted version",
"request": {
"protocolVersion": "v1.2"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "zero major version",
"request": {
"protocolVersion": "v0"
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
},
{
"name": "empty protocol version",
"request": {
"protocolVersion": ""
},
"expected": {
"decision": "REJECT",
"negotiatedProtocolVersion": null,
"reason": "UNSUPPORTED_PROTOCOL",
"httpStatus": 400
}
}
]
}