<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-cloud-init.git/tests/unittests/test_handler/test_schema.py, branch rolling</title>
<subtitle> (mirror of https://github.com/vyos/vyos-cloud-init.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-cloud-init.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-cloud-init.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/'/>
<updated>2021-12-03T20:11:46+00:00</updated>
<entry>
<title>Reorganize unit test locations under tests/unittests (#1126)</title>
<updated>2021-12-03T20:11:46+00:00</updated>
<author>
<name>Brett Holman</name>
<email>bholman.devel@gmail.com</email>
</author>
<published>2021-12-03T20:11:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=039c40f9b3d88ee8158604bb18ca4bf2fb5d5e51'/>
<id>urn:sha1:039c40f9b3d88ee8158604bb18ca4bf2fb5d5e51</id>
<content type='text'>
This attempts to standardize unit test file location under test/unittests/
such that any source file located at cloudinit/path/to/file.py may have a
corresponding unit test file at test/unittests/path/to/test_file.py.

Noteworthy Comments:
====================
Four different duplicate test files existed:
test_{gpg,util,cc_mounts,cc_resolv_conf}.py
Each of these duplicate file pairs has been merged together. This is a
break in git history for these files.

The test suite appears to have a dependency on test order. Changing test
order causes some tests to fail. This should be rectified, but for now
some tests have been modified in
tests/unittests/config/test_set_passwords.py.

A helper class name starts with "Test" which causes pytest to try
executing it as a test case, which then throws warnings "due to Class
having __init__()".  Silence by changing the name of the class.

# helpers.py is imported in many test files, import paths change
cloudinit/tests/helpers.py -&gt; tests/unittests/helpers.py

# Move directories:
cloudinit/distros/tests -&gt; tests/unittests/distros
cloudinit/cmd/devel/tests -&gt; tests/unittests/cmd/devel
cloudinit/cmd/tests -&gt; tests/unittests/cmd/
cloudinit/sources/helpers/tests -&gt; tests/unittests/sources/helpers
cloudinit/sources/tests -&gt; tests/unittests/sources
cloudinit/net/tests -&gt; tests/unittests/net
cloudinit/config/tests -&gt; tests/unittests/config
cloudinit/analyze/tests/ -&gt; tests/unittests/analyze/

# Standardize tests already in tests/unittests/
test_datasource -&gt; sources
test_distros -&gt; distros
test_vmware -&gt; sources/vmware
test_handler -&gt; config        # this contains cloudconfig module tests
test_runs -&gt; runs</content>
</entry>
<entry>
<title>Add "install hotplug" module (SC-476) (#1069)</title>
<updated>2021-10-27T14:43:34+00:00</updated>
<author>
<name>James Falcon</name>
<email>james.falcon@canonical.com</email>
</author>
<published>2021-10-27T14:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=1d01da5d9916d97ef463ba61a36b3f98f8911419'/>
<id>urn:sha1:1d01da5d9916d97ef463ba61a36b3f98f8911419</id>
<content type='text'>
This commit removes automatically installing udev rules for hotplug
and adds a module to install them instead.

Automatically including the udev rules and checking if hotplug was
enabled consumed too many resources in certain circumstances. Moving the
rules to a module ensures we don't spend extra extra cycles on hotplug
if hotplug functionality isn't desired.

LP: #1946003</content>
</entry>
<entry>
<title>Add module 'write-files-deferred' executed in stage 'final' (#916)</title>
<updated>2021-10-25T19:31:07+00:00</updated>
<author>
<name>Lucendio</name>
<email>github+dev@lucendio.com</email>
</author>
<published>2021-10-25T19:31:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=a4236c375ddf78258a8f9252c1d79c665aa4f88b'/>
<id>urn:sha1:a4236c375ddf78258a8f9252c1d79c665aa4f88b</id>
<content type='text'>
The main idea is to introduce a second module that takes care of
writing files, but in the 'final' stage.

While the introduction of a second module would allow for choosing
the appropriate place withing the order of modules (and stages),
there is no addition top-level directive being added to the cloud
configuration schema. Instead, 'write-files' schema is being extended
to include a 'defer' attribute used only by the 'write-deffered-files'
modules.

The new module 'write-deferred-files' reuses as much as
possible of the 'write-files' functionality.</content>
</entry>
<entry>
<title>Remove pin in dependencies for jsonschema (#1078)</title>
<updated>2021-10-23T03:06:51+00:00</updated>
<author>
<name>James Falcon</name>
<email>james.falcon@canonical.com</email>
</author>
<published>2021-10-23T03:06:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=2db713346d656c3486228678ad020b56440c1e34'/>
<id>urn:sha1:2db713346d656c3486228678ad020b56440c1e34</id>
<content type='text'>
In jsonschema 4, hostname validation was changed to have an optional
dependency on the fqdn package. Since we don't have this dependency
in cloud-init, attempting this validation will no longer fail for
a string that isn't a valid hostname.</content>
</entry>
<entry>
<title>testing: remove cloud_tests (#1020)</title>
<updated>2021-09-29T23:32:53+00:00</updated>
<author>
<name>James Falcon</name>
<email>james.falcon@canonical.com</email>
</author>
<published>2021-09-29T23:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=ba083245537abd5bf5942fbe851e21eb8f245000'/>
<id>urn:sha1:ba083245537abd5bf5942fbe851e21eb8f245000</id>
<content type='text'>
Cloud tests have been replaced with integration tests</content>
</entry>
<entry>
<title>cli: add --system param to allow validating system user-data on a machine (#575)</title>
<updated>2020-11-18T14:23:44+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2020-11-18T14:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=f680114446a5a20ce88f3d10d966811a774c8e8f'/>
<id>urn:sha1:f680114446a5a20ce88f3d10d966811a774c8e8f</id>
<content type='text'>
Allow root user to validate the userdata provided to the launched
machine using `cloud-init devel schema --system`</content>
</entry>
<entry>
<title>Add Alpine Linux support. (#535)</title>
<updated>2020-08-19T23:18:25+00:00</updated>
<author>
<name>dermotbradley</name>
<email>dermot_bradley@yahoo.com</email>
</author>
<published>2020-08-19T23:18:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=79a8ce7e714ae1686c10bff77612eab0f6eccc95'/>
<id>urn:sha1:79a8ce7e714ae1686c10bff77612eab0f6eccc95</id>
<content type='text'>
Add new module cc_apk_configure for creating Alpine /etc/apk/repositories file.
Modify cc_ca_certs, cc_ntp, cc_power_state_change, and cc_resolv_conf for Alpine.
Add Alpine template files for Chrony and Busybox NTP support.
Add Alpine template file for /etc/hosts.

</content>
</entry>
<entry>
<title>Add schema for cc_chef module (#375)</title>
<updated>2020-06-29T16:21:04+00:00</updated>
<author>
<name>lucasmoura</name>
<email>lucas.moura@canonical.com</email>
</author>
<published>2020-06-29T16:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=b0eba6a4c3a25a13259c01ac4c9a35720fecfdd2'/>
<id>urn:sha1:b0eba6a4c3a25a13259c01ac4c9a35720fecfdd2</id>
<content type='text'>
Create a schema object for the chef module and validate this schema in the handle function of the module.

Some of the config keys description, so I tried looking at the code and chef documentation to provide an information to the user. However, I don't know if I have the best description for all fields. For example, for the key show_time I could not find an accurate description of what it did, so I used what was in our code base to infer what it should do.

LP: #1858888</content>
</entry>
<entry>
<title>Add schema to apt configure config (#357)</title>
<updated>2020-05-13T20:45:01+00:00</updated>
<author>
<name>lucasmoura</name>
<email>lucas.moura@canonical.com</email>
</author>
<published>2020-05-13T20:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=2e32c40a607250bc9e713c0daf360dc6617f4420'/>
<id>urn:sha1:2e32c40a607250bc9e713c0daf360dc6617f4420</id>
<content type='text'>
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</content>
</entry>
<entry>
<title>Add test to ensure docs examples are valid cloud-init configs (#355)</title>
<updated>2020-05-08T21:38:51+00:00</updated>
<author>
<name>James Falcon</name>
<email>TheRealFalcon@users.noreply.github.com</email>
</author>
<published>2020-05-08T21:38:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=34b868020254106af8c79ffb85e04e294b19e44f'/>
<id>urn:sha1:34b868020254106af8c79ffb85e04e294b19e44f</id>
<content type='text'>
Also update all examples to include the cloud-config header if they don't have it

LP: #1876414</content>
</entry>
</feed>
