Skip to content

Commit

Permalink
Merge pull request #222 from kysrpex/schema-defaults
Browse files Browse the repository at this point in the history
Define the `required` key for most keys from schema.yaml and default the key `docker` to False
  • Loading branch information
kysrpex authored Aug 28, 2023
2 parents b63532e + a7fe8fa commit 030c65b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
8 changes: 8 additions & 0 deletions schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ mapping:
# Global configuration of computing nodes.
"images":
type: map
required: true
mapping:
"default":
type: str
Expand Down Expand Up @@ -38,6 +39,7 @@ mapping:
# Resource group definitions.
"deployment":
type: map
required: true
mapping:
"=":
type: map
Expand Down Expand Up @@ -74,17 +76,21 @@ mapping:
- m1.xxlarge
"start":
type: date
required: false
format: "%Y-%m-%d"
"end":
type: date
required: false
format: "%Y-%m-%d"
"group":
type: str
required: true
"image":
type: str
required: false
"volume":
type: map
required: false
'mapping':
"size":
type: int
Expand All @@ -99,6 +105,7 @@ mapping:
type: bool
"cgroups":
type: map
required: false
'mapping':
"mem_limit_policy":
type: str
Expand All @@ -112,3 +119,4 @@ mapping:
min: 1024
"docker":
type: bool
required: false
26 changes: 16 additions & 10 deletions synchronize.py
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,18 @@ def template_userdata(
rendering the template.
"""
vars_files = frozenset(vars_files)

environment = Environment(
loader=FileSystemLoader(user_data_file.parent),
undefined=StrictUndefined,
)
template = environment.get_template(
user_data_file.name,
)

group_defaults = {
"docker": False,
}
vars_from_files = (
reduce(
lambda x, y: x.update(y),
Expand All @@ -601,19 +613,13 @@ def template_userdata(
else {}
)

environment = Environment(
loader=FileSystemLoader(user_data_file.parent),
undefined=StrictUndefined,
)
template = environment.get_template(
user_data_file.name,
)
variables = {}
for vars_group in (group_defaults, config, group_config, vars_from_files):
variables.update(vars_group)

return template.render(
name=name,
**config,
**group_config,
**vars_from_files,
**variables,
)


Expand Down
2 changes: 2 additions & 0 deletions tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1440,6 +1440,7 @@ def test_template_userdata() -> None:
owner: root:root
path: /etc/configuration_file
permissions: "0644"
docker: {{ docker }}
"""
)[1:]

Expand Down Expand Up @@ -1481,6 +1482,7 @@ def test_template_userdata() -> None:
owner: root:root
path: /etc/configuration_file
permissions: "0644"
docker: False
"""
)[1:-1]
assert templated == expected
Expand Down

0 comments on commit 030c65b

Please sign in to comment.