summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_write_files.py
diff options
context:
space:
mode:
authorlucasmoura <lucas.moura@canonical.com>2020-05-13 17:45:01 -0300
committerGitHub <noreply@github.com>2020-05-13 14:45:01 -0600
commit2e32c40a607250bc9e713c0daf360dc6617f4420 (patch)
treed1109d88a2fd02a1fbdfe01ed19448539444ddb7 /cloudinit/config/cc_write_files.py
parentc8f20b31cd57443b1bef17579dfceca432420c94 (diff)
downloadvyos-cloud-init-2e32c40a607250bc9e713c0daf360dc6617f4420.tar.gz
vyos-cloud-init-2e32c40a607250bc9e713c0daf360dc6617f4420.zip
Add schema to apt configure config (#357)
Create a schema object for the `apt_configure` module and validate this schema in the `handle` function of the module. There are some considerations regarding this PR: * The `primary` and `security` keys have the exact same properties. I tried to eliminate this redundancy by moving their properties to a common place and then just referencing it for both security and primary. Similar to what is documented here: https://json-schema.org/understanding-json-schema/structuring.html under the `Reuse` paragraph. However, this approach does not work, because the `#` pointer goes to the beginning of the file, which is a python module instead of a json file, not allowing the pointer to find the correct definition. What I did was to create a separate dict for the mirror config and reuse it for primary and security, but maybe there are better approaches to do that. * There was no documentation for the config `debconf_selections`. I tried to infer what it supposed to do by looking at the code and the `debconf-set-selections` manpage, but my description may not be accurate or complete. * Add a _parse_description function to schema.py to render multi-line preformatted content instead of squashing all whitespace LP: #1858884
Diffstat (limited to 'cloudinit/config/cc_write_files.py')
-rw-r--r--cloudinit/config/cc_write_files.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/cloudinit/config/cc_write_files.py b/cloudinit/config/cc_write_files.py
index 204cbfd6..8601e707 100644
--- a/cloudinit/config/cc_write_files.py
+++ b/cloudinit/config/cc_write_files.py
@@ -103,7 +103,7 @@ schema = {
'type': 'string',
'description': dedent("""\
Path of the file to which ``content`` is decoded
- and written
+ and written
"""),
},
'content': {
@@ -111,9 +111,9 @@ schema = {
'default': '',
'description': dedent("""\
Optional content to write to the provided ``path``.
- When content is present and encoding is not '%s',
- decode the content prior to writing. Default:
- **''**
+ When content is present and encoding is not '%s',
+ decode the content prior to writing. Default:
+ **''**
""" % UNKNOWN_ENC),
},
'owner': {
@@ -121,7 +121,7 @@ schema = {
'default': DEFAULT_OWNER,
'description': dedent("""\
Optional owner:group to chown on the file. Default:
- **{owner}**
+ **{owner}**
""".format(owner=DEFAULT_OWNER)),
},
'permissions': {
@@ -129,8 +129,8 @@ schema = {
'default': oct(DEFAULT_PERMS).replace('o', ''),
'description': dedent("""\
Optional file permissions to set on ``path``
- represented as an octal string '0###'. Default:
- **'{perms}'**
+ represented as an octal string '0###'. Default:
+ **'{perms}'**
""".format(perms=oct(DEFAULT_PERMS).replace('o', ''))),
},
'encoding': {
@@ -139,16 +139,16 @@ schema = {
'enum': supported_encoding_types,
'description': dedent("""\
Optional encoding type of the content. Default is
- **text/plain** and no content decoding is
- performed. Supported encoding types are:
- %s.""" % ", ".join(supported_encoding_types)),
+ **text/plain** and no content decoding is
+ performed. Supported encoding types are:
+ %s.""" % ", ".join(supported_encoding_types)),
},
'append': {
'type': 'boolean',
'default': False,
'description': dedent("""\
Whether to append ``content`` to existing file if
- ``path`` exists. Default: **false**.
+ ``path`` exists. Default: **false**.
"""),
},
},