Skip to content

Commit

Permalink
schema: Drop pointers and nulls
Browse files Browse the repository at this point in the history
Maintainers feel (and I agree) that there's no point in explicitly
allowing a null value when callers can simply leave the property unset
[1].  This commit removes all references to "pointer" and "null" from
the JSON Schema to support that decision.  While optional properties
may sometimes be represented as pointer types in Go [2], optional
properties should be represented in JSON Schema by not including the
properties in the 'required' array.

[1]: #555 (comment)
[2]: style.md "Optional settings should not have pointer Go types"

Signed-off-by: W. Trevor King <wking@tremily.us>
  • Loading branch information
wking committed Jan 23, 2017
1 parent 8df6024 commit 0927437
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 144 deletions.
35 changes: 14 additions & 21 deletions schema/config-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@
"properties": {
"blkioWeight": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/blkioWeight",
"$ref": "defs-linux.json#/definitions/blkioWeightPointer"
"$ref": "defs-linux.json#/definitions/blkioWeight"
},
"blkioLeafWeight": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/blkioLeafWeight",
"$ref": "defs-linux.json#/definitions/blkioWeightPointer"
"$ref": "defs-linux.json#/definitions/blkioWeight"
},
"blkioThrottleReadBpsDevice": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/blockIO/blkioThrottleReadBpsDevice",
Expand Down Expand Up @@ -129,23 +129,23 @@
},
"period": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/cpu/period",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"quota": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/cpu/quota",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"realtimePeriod": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/cpu/realtimePeriod",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"realtimeRuntime": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/cpu/realtimeRuntime",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"shares": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/cpu/shares",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
}
}
},
Expand Down Expand Up @@ -178,27 +178,27 @@
"properties": {
"kernel": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/kernel",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"kernelTCP": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/kernelTCP",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"limit": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/limit",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"reservation": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/reservation",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"swap": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/swap",
"$ref": "defs.json#/definitions/int64Pointer"
"$ref": "defs.json#/definitions/int64"
},
"swappiness": {
"id": "https://opencontainers.org/schema/bundle/linux/resources/memory/swappiness",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
}
}
},
Expand Down Expand Up @@ -255,14 +255,7 @@
},
"sysctl": {
"id": "https://opencontainers.org/schema/bundle/linux/sysctl",
"oneOf": [
{
"$ref": "defs.json#/definitions/mapStringString"
},
{
"type": "null"
}
]
"$ref": "defs.json#/definitions/mapStringString"
},
"maskedPaths": {
"id": "https://opencontainers.org/schema/bundle/linux/maskedPaths",
Expand Down
18 changes: 9 additions & 9 deletions schema/config-windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
"properties": {
"limit": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/memory/limit",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"reservation": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/memory/reservation",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
}
}
},
Expand All @@ -28,15 +28,15 @@
"properties": {
"count": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/cpu/count",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"shares": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/cpu/shares",
"$ref": "defs-windows.json#/definitions/cpuSharesPointer"
"$ref": "defs-windows.json#/definitions/cpuShares"
},
"percent": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/cpu/percent",
"$ref": "defs.json#/definitions/percentPointer"
"$ref": "defs.json#/definitions/percent"
}
}
},
Expand All @@ -46,15 +46,15 @@
"properties": {
"iops": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/storage/iops",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"bps": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/storage/bps",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
},
"sandboxSize": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/storage/sandboxSize",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
}
}
},
Expand All @@ -64,7 +64,7 @@
"properties": {
"egressBandwidth": {
"id": "https://opencontainers.org/schema/bundle/windows/resources/network/egressBandwidth",
"$ref": "defs.json#/definitions/uint64Pointer"
"$ref": "defs.json#/definitions/uint64"
}
}
}
Expand Down
50 changes: 6 additions & 44 deletions schema/defs-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,24 +126,10 @@
"$ref": "#/definitions/Minor"
},
"uid": {
"oneOf": [
{
"$ref": "defs.json#/definitions/UID"
},
{
"type": "null"
}
]
"$ref": "defs.json#/definitions/UID"
},
"gid": {
"oneOf": [
{
"$ref": "defs.json#/definitions/GID"
},
{
"type": "null"
}
]
"$ref": "defs.json#/definitions/GID"
}
}
},
Expand All @@ -152,16 +138,6 @@
"minimum": 10,
"maximum": 1000
},
"blkioWeightPointer": {
"oneOf": [
{
"$ref": "#/definitions/blkioWeight"
},
{
"type": "null"
}
]
},
"blockIODevice": {
"type": "object",
"properties": {
Expand All @@ -187,10 +163,10 @@
"type": "object",
"properties": {
"weight": {
"$ref": "#/definitions/blkioWeightPointer"
"$ref": "#/definitions/blkioWeight"
},
"leafWeight": {
"$ref": "#/definitions/blkioWeightPointer"
"$ref": "#/definitions/blkioWeight"
}
}
}
Expand Down Expand Up @@ -221,24 +197,10 @@
"$ref": "string"
},
"major": {
"oneOf": [
{
"$ref": "#/definitions/Major"
},
{
"type": "null"
}
]
"$ref": "#/definitions/Major"
},
"minor": {
"oneOf": [
{
"$ref": "#/definitions/Minor"
},
{
"type": "null"
}
]
"$ref": "#/definitions/Minor"
},
"access": {
"$ref": "string"
Expand Down
10 changes: 0 additions & 10 deletions schema/defs-windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,6 @@
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"cpuSharesPointer": {
"oneOf": [
{
"$ref": "#/definitions/cpuShares"
},
{
"type": "null"
}
]
}
}
}
67 changes: 7 additions & 60 deletions schema/defs.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,56 +46,6 @@
"minimum": 0,
"maximum": 100
},
"intPointer": {
"oneOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"int64Pointer": {
"oneOf": [
{
"$ref": "#/definitions/int64"
},
{
"type": "null"
}
]
},
"uint16Pointer": {
"oneOf": [
{
"$ref": "#/definitions/uint16"
},
{
"type": "null"
}
]
},
"uint64Pointer": {
"oneOf": [
{
"$ref": "#/definitions/uint64"
},
{
"type": "null"
}
]
},
"percentPointer": {
"oneOf": [
{
"$ref": "#/definitions/percent"
},
{
"type": "null"
}
]
},
"mapStringString": {
"type": "object",
"patternProperties": {
Expand Down Expand Up @@ -141,9 +91,13 @@
"$ref": "#/definitions/Env"
},
"timeout": {
"$ref": "#/definitions/intPointer"
"$ref": "#/definitions/int"
}
}
},
"required": [
"args",
"path"
]
},
"ArrayOfHooks": {
"type": "array",
Expand Down Expand Up @@ -197,14 +151,7 @@
"type": "string"
},
"annotations": {
"oneOf": [
{
"$ref": "#/definitions/mapStringString"
},
{
"type": "null"
}
]
"$ref": "#/definitions/mapStringString"
}
}
}

0 comments on commit 0927437

Please sign in to comment.