mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
Merge pull request #1013 from jrdnbradford/fix-cpu-schema
Fix `cpu` and `memory` config validation in JSON schema
This commit is contained in:
@@ -227,7 +227,7 @@ it after an argument like `remove-item` gives information about this specific co
|
|||||||
```bash
|
```bash
|
||||||
sudo tljh-config --help
|
sudo tljh-config --help
|
||||||
|
|
||||||
usage: tljh-config [-h] [--config-path CONFIG_PATH] {show,unset,set,add-item,remove-item,reload} ...
|
usage: tljh-config [-h] [--config-path CONFIG_PATH] [--validate] [--no-validate] {show,unset,set,add-item,remove-item,reload} ...
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
{show,unset,set,add-item,remove-item,reload}
|
{show,unset,set,add-item,remove-item,reload}
|
||||||
@@ -238,10 +238,12 @@ positional arguments:
|
|||||||
remove-item Remove a value from a list for a configuration property
|
remove-item Remove a value from a list for a configuration property
|
||||||
reload Reload a component to apply configuration change
|
reload Reload a component to apply configuration change
|
||||||
|
|
||||||
optional arguments:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config-path CONFIG_PATH
|
--config-path CONFIG_PATH
|
||||||
Path to TLJH config.yaml file
|
Path to TLJH config.yaml file
|
||||||
|
--validate Validate the TLJH config
|
||||||
|
--no-validate Do not validate the TLJH config
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -220,7 +220,8 @@ def test_cli_remove_int(tljh_dir):
|
|||||||
("x", "x"),
|
("x", "x"),
|
||||||
("1x", "1x"),
|
("1x", "1x"),
|
||||||
("1.2x", "1.2x"),
|
("1.2x", "1.2x"),
|
||||||
(None, None),
|
("None", None),
|
||||||
|
("none", None),
|
||||||
("", ""),
|
("", ""),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -317,8 +317,8 @@ def reload_component(component):
|
|||||||
|
|
||||||
def parse_value(value_str):
|
def parse_value(value_str):
|
||||||
"""Parse a value string"""
|
"""Parse a value string"""
|
||||||
if value_str is None:
|
if value_str.lower() == "none":
|
||||||
return value_str
|
return None
|
||||||
if re.match(r"^\d+$", value_str):
|
if re.match(r"^\d+$", value_str):
|
||||||
return int(value_str)
|
return int(value_str)
|
||||||
elif re.match(r"^\d+\.\d*$", value_str):
|
elif re.match(r"^\d+\.\d*$", value_str):
|
||||||
|
|||||||
@@ -79,7 +79,20 @@ config_schema = {
|
|||||||
"description": "User CPU and memory limits.",
|
"description": "User CPU and memory limits.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"properties": {"memory": {"type": "string"}, "cpu": {"type": "integer"}},
|
"properties": {
|
||||||
|
"memory": {
|
||||||
|
"anyOf": [
|
||||||
|
{"type": "string"},
|
||||||
|
{"type": "null"},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"anyOf": [
|
||||||
|
{"type": "number", "minimum": 0},
|
||||||
|
{"type": "null"},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"UserEnvironment": {
|
"UserEnvironment": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
|||||||
Reference in New Issue
Block a user