Allow external code to obtain information about an error injection point, including whether it is enabled, and importantly, what its parameters are. Together with the `set_parameter()` added in the previous patch, this allows tests to read out the values of internal parameters, via a set_parameter() injection point.
213 lines
6.5 KiB
JSON
213 lines
6.5 KiB
JSON
{
|
|
"apiVersion":"0.0.1",
|
|
"swaggerVersion":"1.2",
|
|
"basePath":"{{Protocol}}://{{Host}}",
|
|
"resourcePath":"/error_injection",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"apis":[
|
|
{
|
|
"path":"/v2/error_injection/injection/{injection}",
|
|
"operations":[
|
|
{
|
|
"method":"POST",
|
|
"summary":"Activate an injection that triggers an error in code",
|
|
"type":"void",
|
|
"nickname":"enable_injection",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[
|
|
{
|
|
"name":"injection",
|
|
"description":"injection name, should correspond to an injection added in code",
|
|
"required":true,
|
|
"allowMultiple":false,
|
|
"type":"string",
|
|
"paramType":"path"
|
|
},
|
|
{
|
|
"name":"one_shot",
|
|
"description":"boolean flag indicating whether the injection should be enabled to trigger only once",
|
|
"required":false,
|
|
"allowMultiple":false,
|
|
"type":"boolean",
|
|
"paramType":"query"
|
|
},
|
|
{
|
|
"name":"parameters",
|
|
"description":"dict of parameters to pass to the injection (json format)",
|
|
"required":false,
|
|
"allowMultiple":false,
|
|
"type":"dict",
|
|
"paramType":"body"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"method":"DELETE",
|
|
"summary":"Deactivate an injection previously activated by the API",
|
|
"type":"void",
|
|
"nickname":"disable_injection",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[
|
|
{
|
|
"name":"injection",
|
|
"description":"injection name",
|
|
"required":true,
|
|
"allowMultiple":false,
|
|
"type":"string",
|
|
"paramType":"path"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"method":"GET",
|
|
"summary":"Read the state of an injection from all shards",
|
|
"type":"array",
|
|
"items":{
|
|
"type":"error_injection_info"
|
|
},
|
|
"nickname":"read_injection",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[
|
|
{
|
|
"name":"injection",
|
|
"description":"injection name",
|
|
"required":true,
|
|
"allowMultiple":false,
|
|
"type":"string",
|
|
"paramType":"path"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path":"/v2/error_injection/injection/{injection}/message",
|
|
"operations":[
|
|
{
|
|
"method":"POST",
|
|
"summary":"Send message to trigger an event in injection's code",
|
|
"type":"void",
|
|
"nickname":"message_injection",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[
|
|
{
|
|
"name":"injection",
|
|
"description":"injection name, should correspond to an injection added in code",
|
|
"required":true,
|
|
"allowMultiple":false,
|
|
"type":"string",
|
|
"paramType":"path"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path":"/v2/error_injection/disconnect/{ip}",
|
|
"operations":[
|
|
{
|
|
"method":"POST",
|
|
"summary":"Drop connection to a given IP",
|
|
"type":"void",
|
|
"nickname":"inject_disconnect",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[
|
|
{
|
|
"name":"ip",
|
|
"description":"IP address to disconnect from",
|
|
"required":true,
|
|
"allowMultiple":false,
|
|
"type":"string",
|
|
"paramType":"path"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path":"/v2/error_injection/injection",
|
|
"operations":[
|
|
{
|
|
"method":"GET",
|
|
"summary":"List all enabled injections on all shards, i.e. injections that will trigger an error in the code",
|
|
"type":"array",
|
|
"items":{
|
|
"type":"string"
|
|
},
|
|
"nickname":"get_enabled_injections_on_all",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[]
|
|
},
|
|
{
|
|
"method":"DELETE",
|
|
"summary":"Deactivate all injections previously activated on all shards by the API",
|
|
"type":"void",
|
|
"nickname":"disable_on_all",
|
|
"produces":[
|
|
"application/json"
|
|
],
|
|
"parameters":[]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"components":{
|
|
"schemas": {
|
|
"dict": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"models":{
|
|
"mapper":{
|
|
"id":"mapper",
|
|
"description":"A key value mapping",
|
|
"properties":{
|
|
"key":{
|
|
"type":"string",
|
|
"description":"The key"
|
|
},
|
|
"value":{
|
|
"type":"string",
|
|
"description":"The value"
|
|
}
|
|
}
|
|
},
|
|
"error_injection_info":{
|
|
"id":"error_injection_info",
|
|
"description":"Information about an error injection",
|
|
"properties":{
|
|
"enabled":{
|
|
"type":"boolean",
|
|
"description":"Is the error injection enabled"
|
|
},
|
|
"parameters":{
|
|
"type":"array",
|
|
"items":{
|
|
"type":"mapper"
|
|
},
|
|
"description":"The parameter values"
|
|
}
|
|
},
|
|
"required":["enabled"]
|
|
}
|
|
}
|
|
}
|