<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-cloud-init.git/tests/data, branch current</title>
<subtitle> (mirror of https://github.com/marekm72/vyos-cloud-init.git)
</subtitle>
<id>https://git.amelek.net/marekm72/vyos-cloud-init.git/atom?h=current</id>
<link rel='self' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/atom?h=current'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/'/>
<updated>2022-01-27T01:40:06+00:00</updated>
<entry>
<title>Add json parsing of ip addr show (SC-723) (#1210)</title>
<updated>2022-01-27T01:40:06+00:00</updated>
<author>
<name>James Falcon</name>
<email>james.falcon@canonical.com</email>
</author>
<published>2022-01-27T01:40:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=223b23e2c428aff6c1e61f49d8e2edde77801a12'/>
<id>urn:sha1:223b23e2c428aff6c1e61f49d8e2edde77801a12</id>
<content type='text'>
When obtaining information from "ip addr", default to using
"ip --json addr" rather than using regex to parse "ip addr show"
as json is machine readable as less prone to error.

Deprecate but leave fallback to use "ip addr" for older iproute2
tooling which does not support --json param. 

Fix regex parsing of "ip addr" to support peer addresses and
metrics.</content>
</entry>
<entry>
<title>Fix unpickle for source paths missing run_dir (#863)</title>
<updated>2021-04-12T16:22:22+00:00</updated>
<author>
<name>lucasmoura</name>
<email>lucas.moura@canonical.com</email>
</author>
<published>2021-04-12T16:22:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=83f6bbfbe5b924be61a3c098f4202377d69c8947'/>
<id>urn:sha1:83f6bbfbe5b924be61a3c098f4202377d69c8947</id>
<content type='text'>
On the datasource class, we require the use of paths.run_dir to
perform some operations. On older cloud-init version, the
Paths class does not have the run_dir attribute. To fix that,
we are now manually adding that attribute in the Paths
object if doesn't exist in the unpickle operation.

LP: #1899299</content>
</entry>
<entry>
<title>introduce an upgrade framework and related testing (#659)</title>
<updated>2020-11-17T21:37:29+00:00</updated>
<author>
<name>Daniel Watkins</name>
<email>oddbloke@ubuntu.com</email>
</author>
<published>2020-11-17T21:37:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=4f2da1cc1d24cbc47025cc8613c0d3ec287a20f9'/>
<id>urn:sha1:4f2da1cc1d24cbc47025cc8613c0d3ec287a20f9</id>
<content type='text'>
This commit does the following:

* introduces the `cloudinit.persistence` module, containing
  `CloudInitPickleMixin` which provides lightweight versioning of
  objects' pickled representations (and associated testing)
* introduces a basic upgrade testing framework (in
  `cloudinit.tests.test_upgrade`) which unpickles pickles from previous
  versions of cloud-init (stored in `tests/data/old_pickles`) and tests
  invariants that the current cloud-init codebase expects
* uses the versioning framework to address an upgrade issue where
  `Distro.networking` could get into an unexpected state, and uses the
  upgrade testing framework to confirm that the issue is addressed</content>
</entry>
<entry>
<title>Correct documentation and testcase data for some user-data YAML (#618)</title>
<updated>2020-10-30T20:12:38+00:00</updated>
<author>
<name>dermotbradley</name>
<email>dermot_bradley@yahoo.com</email>
</author>
<published>2020-10-30T20:12:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=f8c84aeead77b7e508644d94889ee701f20e8d31'/>
<id>urn:sha1:f8c84aeead77b7e508644d94889ee701f20e8d31</id>
<content type='text'>
For cc_users_groups the user setting "expiredate" must be quoted in
order for the relevant flag and value to be then passed to the useradd
command. It its vaiue is not quoted then it is treated as Python type
datetime.date and in `cloudinit/distros/__init__.py` the below "is it a
string" condition fails and so no "--expiredate" parameter is passed to
useradd and therefore it has no effect:

```
if key in useradd_opts and val and isinstance(val, str):
    useradd_cmd.extend([useradd_opts[key], val])
```

For cc_users_groups, the user setting "inactive" does not actually
disable accounts, the useradd "--inactive" option actually defines the
number of days after password expiry that users can still login. So I
have changed the docs to show it taking a quoted value of days (which
works with the current code) rather than a boolean value.  The quotes
are necessary, like expiredate above, so that the value is also passed
to the useradd command.

For cc_power_state_change.py the "delay" setting value needs to have
quotes around it as otherwise its leading plus sign will be stripped
off.</content>
</entry>
<entry>
<title>freebsd: introduce the freebsd renderer (#61)</title>
<updated>2019-12-20T18:45:17+00:00</updated>
<author>
<name>Gonéri Le Bouder</name>
<email>goneri@lebouder.net</email>
</author>
<published>2019-12-20T18:45:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=9bfb2ba7268e2c3c932023fc3d3020cdc6d6cc18'/>
<id>urn:sha1:9bfb2ba7268e2c3c932023fc3d3020cdc6d6cc18</id>
<content type='text'>
* freebsd: introduce the freebsd renderer

Refactoring of the FreeBSD code base to provide a real network renderer
for FreeBSD.
Use the generic update_sysconfig_file() from rhel_util to handle the
access to /etc/rc.conf.
Interfaces are not automatically renamed by FreeBSD using
the following configuration in /etc/rc.conf:

```
ifconfig_fxp0_name="eth0"
```

* freesd: use regex named groups

Reduce the complexity of `get_interfaces_by_mac_on_freebsd()` with
named groups.

* freebsd: breaks up _write_network() in tree small functions

- `_write_ifconfig_entries()`
- `_write_route_entries()`
- `_write_resolve_conf()`

* extend find_fallback_nic() to support FreeBSD

this uses `route -n show default` to find the default interface

* freebsd: use dns keys from NetworkState class

The NetworkState class (settings instance) exposes the DNS configuration
in two keys:

- `dns_nameservers`
- `dns_searchdomains`

On OpenStack, these keys are set when a global DNS server is set. The
alternative is the `dns_nameservers` and `dns_search` keys from each
subdomain. We continue to read those.

* freebsd: properly target the /etc/resolv.conf file

* freebsd: ignore 'service routing restart' ret code

On FreeBSD 10, the restart of routing and dhclient is likely to fail because
- routing: it cannot remove the loopback route, but it will still set up
  the default route as expected.
- dhclient: it cannot stop the dhclient started by the netif service.
In both case, the situation is ok, and we can proceed.

* freebsd: handle case when metadata MAC local locally

Handle the case where the metadata configuration comes with a MAC that
does not exist locally.

See:
- https://github.com/canonical/cloud-init/pull/61/files/635ce14b3153934ba1041be48b7245062f21e960#r359600604
- https://github.com/canonical/cloud-init/pull/61/files/635ce14b3153934ba1041be48b7245062f21e960#r359600966

* freebsd: show up a warning if several subnet found

The FreeBSD provider currently only allow one subnet per interface.

* freebsd: honor the target parameter in _write_network

* freebsd: log when a bad route is found

* freebsd: pass _postcmds to start_services()

* freebsd: updatercconf() is depercated

Replace `updatercconf()` by `rhel_util.update_sysconfig_file()`.

* freebsd: ensure gateway is ipv4 before using it

With the legacy ENI format, an IPv6 gateway may be pushed. This instead
of the expected IPv4.

* freebsd: find_fallback_nic, support FB10

On FreeBSD &lt;= 10, `ifconfig -l` ignores the down interfaces.

* freebsd: use util.target_path() to load resolv.conf

Ensure we access `/etc/resolv.conf`, not `etc/resolv.conf`.

* freebsd: skip subnet without netmask

Those are likely to be either invalid of in IPv6 format. IPv6 support
will be addressed later in a new patchset.

* freebsd: get_devicelist returns netif list

Ensure `get_devicelist()` returns the list of known netif on FreeBSD.

* replace rhel_util.update_sysconfig_file wrapper call, with a wrapper function

* reverse if condition to remove an indent

Co-authored-by: Igor Galić &lt;me+github@igalic.co&gt;
</content>
</entry>
<entry>
<title>Azure: Ensure platform random_seed is always serializable as JSON.</title>
<updated>2019-03-26T18:53:50+00:00</updated>
<author>
<name>Jason Zions (MSFT)</name>
<email>jasonzio@microsoft.com</email>
</author>
<published>2019-03-26T18:53:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=0dc3a77f41f4544e4cb5a41637af7693410d4cdf'/>
<id>urn:sha1:0dc3a77f41f4544e4cb5a41637af7693410d4cdf</id>
<content type='text'>
The Azure platform surfaces random bytes into /sys via Hyper-V.
Python 2.7 json.dump() raises an exception if asked to convert
a str with non-character content, and python 3.0 json.dump()
won't serialize a "bytes" value. As a result, c-i instance
data is often not written by Azure, making reboots slower (c-i
has to repeat work).

The random data is base64-encoded and then decoded into a string
(str or unicode depending on the version of Python in use). The
base64 string has just as many bits of entropy, so we're not
throwing away useful "information", but we can be certain
json.dump() will correctly serialize the bits.
</content>
</entry>
<entry>
<title>azure: Filter list of ssh keys pulled from fabric</title>
<updated>2019-02-22T13:26:31+00:00</updated>
<author>
<name>Jason Zions (MSFT)</name>
<email>jasonzio@microsoft.com</email>
</author>
<published>2019-02-22T13:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=34f54360fcc1e0f805002a0b639d0a84eb2cb8ee'/>
<id>urn:sha1:34f54360fcc1e0f805002a0b639d0a84eb2cb8ee</id>
<content type='text'>
The Azure data source is expected to expose a list of
ssh keys for the user-to-be-provisioned in the crawled
metadata. When configured to use the __builtin__ agent
this list is built by the WALinuxAgentShim. The shim
retrieves the full set of certificates and public keys
exposed to the VM from the wireserver, extracts any
ssh keys it can, and returns that list.

This fix reduces that list of ssh keys to just the
ones whose fingerprints appear in the "administrative
user" section of the ovf-env.xml file. The Azure
control plane exposes other ssh keys to the VM for
other reasons, but those should not be added to the
authorized_keys file for the provisioned user.
</content>
</entry>
<entry>
<title>netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries</title>
<updated>2019-02-08T22:08:47+00:00</updated>
<author>
<name>Ryan Harper</name>
<email>ryan.harper@canonical.com</email>
</author>
<published>2019-02-08T22:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=fff37e7dc6849fd16db504b0d338fae20a7beb39'/>
<id>urn:sha1:fff37e7dc6849fd16db504b0d338fae20a7beb39</id>
<content type='text'>
FreeBSD ifconfig output for ipv6 addrs doesn't find scopeid values
when present in the output and the pformat rendering assumes that
an ipv6 address will have a 'scope6' entry in the netdev info
dictionary.  This patch finds the scopeid value, which is not
always inside &lt;&gt;, and in some cases v6 addrs don't have a scopeid
value in the output, so when rendering the table, allow scope6 value
to be replaced with the empty value.

LP: #1779672
</content>
</entry>
<entry>
<title>netinfo: fix netdev_pformat when a nic does not have an address assigned.</title>
<updated>2018-05-01T20:18:18+00:00</updated>
<author>
<name>Scott Moser</name>
<email>smoser@ubuntu.com</email>
</author>
<published>2018-05-01T20:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=14cb4924a6cf191107f9c04698ace2753eb44d2b'/>
<id>urn:sha1:14cb4924a6cf191107f9c04698ace2753eb44d2b</id>
<content type='text'>
The last set of changes to netdev_pformat ended up dropping the output
of devices that were not up.  This adds back the 'down' interfaces to the
rendered output.

LP: #1766302
</content>
</entry>
<entry>
<title>net: Depend on iproute2's ip instead of net-tools ifconfig or route</title>
<updated>2018-04-18T21:22:42+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2018-04-18T21:22:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/marekm72/vyos-cloud-init.git/commit/?id=6d48d265a0548a2dc23e587f2a335d4e38e8db90'/>
<id>urn:sha1:6d48d265a0548a2dc23e587f2a335d4e38e8db90</id>
<content type='text'>
The net-tools package is deprecated and will eventually be dropped.  Use
"ip route", "link" or "address" instead of "ifconfig" or "route" calls.
Cloud-init can now run in an environment that no longer has net-tools.
This affects the network and route printing emitted to
cloud-config-output.log as well as the cc_disable_ec2_metadata module.

Additional changes:
 - separate readResource and resourceLocation into standalone test
   functions
 - Fix ipv4 address rows to report scopes represented by ip addr show
 - Formatted route/address ouput now handles multiple ipv4 and ipv6
   addresses on a single interface

Co-authored-by: James Hogarth &lt;james.hogarth@gmail.com&gt;
Co-authored-by: Robert Schweikert &lt;rjschwei@suse.com&gt;
</content>
</entry>
</feed>
