summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_snap.py
diff options
context:
space:
mode:
authorDaniel Watkins <oddbloke@ubuntu.com>2020-05-21 11:16:35 -0400
committerGitHub <noreply@github.com>2020-05-21 11:16:35 -0400
commit98a6d9a0da82a764943c9495d7f21f3acc5ccd05 (patch)
treee3c08b390637f8a7b86d9ff9ad05bf0201af79b0 /cloudinit/config/cc_snap.py
parentde9c02a4c09d603bdfe5d23478e6c050223d79b6 (diff)
downloadvyos-cloud-init-98a6d9a0da82a764943c9495d7f21f3acc5ccd05.tar.gz
vyos-cloud-init-98a6d9a0da82a764943c9495d7f21f3acc5ccd05.zip
cc_snap: validate that assertions property values are strings (#370)
And add an example of providing a list of assertions.
Diffstat (limited to 'cloudinit/config/cc_snap.py')
-rw-r--r--cloudinit/config/cc_snap.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/cloudinit/config/cc_snap.py b/cloudinit/config/cc_snap.py
index 3bf2e250..8178562e 100644
--- a/cloudinit/config/cc_snap.py
+++ b/cloudinit/config/cc_snap.py
@@ -93,6 +93,13 @@ schema = {
- ['snap', 'install', 'vlc']
- snap install vlc
- 'snap install vlc'
+ """), dedent("""\
+ # You can use a list of assertions
+ snap:
+ assertions:
+ - signed_assertion_blob_here
+ - |
+ signed_assertion_blob_here
""")],
'frequency': PER_INSTANCE,
'type': 'object',
@@ -106,7 +113,8 @@ schema = {
'additionalItems': False, # Reject items non-string
'minItems': 1,
'minProperties': 1,
- 'uniqueItems': True
+ 'uniqueItems': True,
+ 'additionalProperties': {'type': 'string'},
},
'commands': {
'type': ['object', 'array'], # Array of strings or dict
@@ -136,10 +144,6 @@ schema = {
}
}
-# TODO schema for 'assertions' and 'commands' are too permissive at the moment.
-# Once python-jsonschema supports schema draft 6 add support for arbitrary
-# object keys with 'patternProperties' constraint to validate string values.
-
__doc__ = get_schema_doc(schema) # Supplement python help()
SNAP_CMD = "snap"