Skip to content
Snippets Groups Projects
Commit af2d330d authored by Erik Reid's avatar Erik Reid
Browse files

updated config schema

parent 45172d3e
Branches
Tags
No related merge requests found
......@@ -54,7 +54,12 @@ must be formatted according to the following json schema:
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"database_credentials": {
"timeout": {
"type": "number",
"maximum": 10, # sanity
"exclusiveMinimum": 0
},
"database-credentials": {
"type": "object",
"properties": {
"hostname": {"type": "string"},
......@@ -64,16 +69,8 @@ must be formatted according to the following json schema:
},
"required": ["hostname", "dbname", "username", "password"],
"additionalProperties": False
}
},
"type": "object",
"properties": {
"alarms-db": {"$ref": "#/definitions/database_credentials"},
"ops-db": {"$ref": "#/definitions/database_credentials"},
"oid_list.conf": {"type": "string"},
"ssh": {
},
"ssh-credentials": {
"type": "object",
"properties": {
"username": {"type": "string"},
......@@ -83,54 +80,76 @@ must be formatted according to the following json schema:
"required": ["private-key", "known-hosts"],
"additionalProperties": False
},
"redis": {
"redis-credentials": {
"type": "object",
"properties": {
"hostname": {"type": "string"},
"port": {"type": "integer"}
"port": {"type": "integer"},
"socket_timeout": {"$ref": "#/definitions/timeout"}
},
"required": ["hostname", "port"],
"additionalProperties": False
},
"junosspace": {
"api": {"type": "string"},
"username": {"type": "string"},
"password": {"type": "string"}
"redis-sentinel-config": {
"type": "object",
"properties": {
"hostname": {"type": "string"},
"port": {"type": "integer"},
"name": {"type": "string"},
"redis_socket_timeout": {"$ref": "#/definitions/timeout"},
"sentinel_socket_timeout": {"$ref": "#/definitions/timeout"}
},
"required": ["hostname", "port", "name"],
"additionalProperties": False
},
"infinera-dna": {
"interface-address": {
"type": "object",
"properties": {
"address": {"type": "string"},
"network": {"type": "string"},
"interface": {"type": "string"},
"router": {"type": "string"}
},
"required": ["address", "network", "interface", "router"],
"additionalProperties": False
}
},
"type": "object",
"properties": {
"ops-db": {"$ref": "#/definitions/database-credentials"},
"ssh": {"$ref": "#/definitions/ssh-credentials"},
"redis": {"$ref": "#/definitions/redis-credentials"},
"sentinel": {"$ref": "#/definitions/redis-sentinel-config"},
"redis-databases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"address": {"type": "string"}
},
"required": ["name", "address"],
"additionalProperties": False
}
"minItems": 1,
"items": {"type": "integer"}
},
"coriant-tnms": {
"managed-routers": {"type": "string"},
"unmanaged-interfaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"address": {"type": "string"}
},
"required": ["name", "address"],
"additionalProperties": False
}
"items": {"$ref": "#/definitions/interface-address"}
}
},
"required": [
"alarms-db",
"ops-db",
"oid_list.conf",
"ssh",
"redis",
"junosspace",
"infinera-dna",
"coriant-tnms"],
"oneOf": [
{
"required": [
"ops-db",
"ssh",
"redis",
"redis-databases",
"managed-routers"]
},
{
"required": [
"ops-db",
"ssh",
"sentinel",
"redis-databases",
"managed-routers"]
}
],
"additionalProperties": False
}
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment