You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Debian build environments lack network connectivity. When building in such an environment, the TestUpgrade.test_all_ds_init_vs_unpickle_attributes[mode1] test fails with the following output:
__________ TestUpgrade.test_all_ds_init_vs_unpickle_attributes[mode1] __________
self = <tests.unittests.test_upgrade.TestUpgrade object at 0x7fb3444264b0>
mode = ['FILESYSTEM', 'NETWORK']
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fb2c673e180>
paths = <cloudinit.helpers.Paths object at 0x7fb2c673c890>
tmpdir = local('/tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1')
@pytest.mark.parametrize(
"mode",
(
[sources.DEP_FILESYSTEM],
[sources.DEP_FILESYSTEM, sources.DEP_NETWORK],
),
)
@mock.patch.object(
importer,
"match_case_insensitive_module_name",
lambda name: f"DataSource{name}",
)
def test_all_ds_init_vs_unpickle_attributes(
self, mode, mocker, paths, tmpdir
):
"""Unpickle resets any instance attributes created in __init__
This test asserts that deserialization of a datasource cache
does proper initialization of any 'new' instance attributes
created as a side-effect of the __init__ method.
Without proper _unpickle coverage for newly introduced attributes,
the new deserialized instance will hit AttributeErrors at runtime.
"""
# Load all cloud-init init-local time-frame DataSource classes
for ds_class in sources.list_sources(
settings.CFG_BUILTIN["datasource_list"],
mode,
[type_utils.obj_name(sources)],
):
# Expected common instance attrs from __init__ that are typically
# handled via existing _unpickling and setup in _get_data
common_instance_attrs = {
"paths",
"vendordata2",
"sys_cfg",
"ud_proc",
"vendordata",
"vendordata2_raw",
"ds_cfg",
"distro",
"userdata",
"userdata_raw",
"metadata",
"vendordata_raw",
}
# Grab initial specific-class attributes from magic method
class_attrs = set(ds_class.__dict__)
# Mock known subp calls from some datasource __init__ setup
mocker.patch("cloudinit.util.is_container", return_value=False)
mocker.patch("cloudinit.dmi.read_dmi_data", return_value="")
mocker.patch("cloudinit.subp.subp", return_value=("", ""))
# Initialize the class to grab the instance attributes from
# instance.__dict__ magic method.
> ds = ds_class(sys_cfg={}, distro=MockDistro(), paths=paths)
tests/unittests/test_upgrade.py:233:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <cloudinit.sources.DataSourceCloudStack.DataSourceCloudStack object at 0x7fb2c6aeeae0>
sys_cfg = {}
distro = <tests.unittests.util.MockDistro object at 0x7fb2c682f860>
paths = <cloudinit.helpers.Paths object at 0x7fb2c673c890>
def __init__(self, sys_cfg, distro, paths):
sources.DataSource.__init__(self, sys_cfg, distro, paths)
self.seed_dir = os.path.join(paths.seed_dir, "cs")
# Cloudstack has its metadata/userdata URLs located at
# http://<virtual-router-ip>/latest/
self.api_ver = "latest"
self.distro = distro
self.vr_addr = get_vr_address(self.distro)
if not self.vr_addr:
> raise RuntimeError("No virtual router found!")
E RuntimeError: No virtual router found!
cloudinit/sources/DataSourceCloudStack.py:95: RuntimeError
----------------------------- Captured stderr call -----------------------------
FALLBACK: 2024-04-25 01:15:02,681 - sources[DEBUG]: Looking for data source in: ['NoCloud', 'ConfigDrive', 'LXD', 'OpenNebula', 'DigitalOcean', 'Azure', 'AltCloud', 'OVF', 'MAAS', 'GCE', 'OpenStack', 'AliYun', 'Vultr', 'Ec2', 'CloudSigma', 'CloudStack', 'SmartOS', 'Bigstep', 'Scaleway', 'Hetzner', 'IBMCloud', 'Oracle', 'Exoscale', 'RbxCloud', 'UpCloud', 'VMware', 'NWCS', 'Akamai', 'WSL', 'None'], via packages ['cloudinit.sources'] that matches dependencies ['FILESYSTEM', 'NETWORK']
FALLBACK: 2024-04-25 01:15:02,682 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl - wb: [400] 2268 bytes
FALLBACK: 2024-04-25 01:15:02,683 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,683 - util.py[DEBUG]: Read 2268 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl
FALLBACK: 2024-04-25 01:15:02,683 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl - wb: [400] 2061 bytes
FALLBACK: 2024-04-25 01:15:02,684 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,684 - util.py[DEBUG]: Read 2061 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl
FALLBACK: 2024-04-25 01:15:02,685 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl - wb: [400] 2193 bytes
FALLBACK: 2024-04-25 01:15:02,686 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,686 - util.py[DEBUG]: Read 2193 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl
FALLBACK: 2024-04-25 01:15:02,687 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl - wb: [400] 2184 bytes
FALLBACK: 2024-04-25 01:15:02,687 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,687 - util.py[DEBUG]: Read 2184 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl
FALLBACK: 2024-04-25 01:15:02,688 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl - wb: [400] 2110 bytes
FALLBACK: 2024-04-25 01:15:02,689 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,689 - util.py[DEBUG]: Read 2110 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl
FALLBACK: 2024-04-25 01:15:02,691 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl - wb: [400] 2101 bytes
FALLBACK: 2024-04-25 01:15:02,691 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,691 - util.py[DEBUG]: Read 2101 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl
FALLBACK: 2024-04-25 01:15:02,692 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl - wb: [400] 2176 bytes
FALLBACK: 2024-04-25 01:15:02,693 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,693 - util.py[DEBUG]: Read 2176 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl
FALLBACK: 2024-04-25 01:15:02,694 - util.py[DEBUG]: Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl - wb: [400] 2023 bytes
FALLBACK: 2024-04-25 01:15:02,694 - util.py[DEBUG]: Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl (quiet=False)
FALLBACK: 2024-04-25 01:15:02,694 - util.py[DEBUG]: Read 2023 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl
FALLBACK: 2024-04-25 01:15:03,002 - DataSourceCloudStack.py[DEBUG]: DNS Entry data-server not found
FALLBACK: 2024-04-25 01:15:03,002 - util.py[DEBUG]: Reading from /run/dhclient.lease (quiet=False)
FALLBACK: 2024-04-25 01:15:03,003 - DataSourceCloudStack.py[DEBUG]: No DHCP found, using default gateway
FALLBACK: 2024-04-25 01:15:03,003 - util.py[DEBUG]: Reading from /proc/net/route (quiet=False)
FALLBACK: 2024-04-25 01:15:03,003 - util.py[DEBUG]: Read 128 bytes from /proc/net/route
------------------------------ Captured log call -------------------------------
2024-04-25 01:15:02 DEBUG cloudinit.sources:sources:1049 Looking for data source in: ['NoCloud', 'ConfigDrive', 'LXD', 'OpenNebula', 'DigitalOcean', 'Azure', 'AltCloud', 'OVF', 'MAAS', 'GCE', 'OpenStack', 'AliYun', 'Vultr', 'Ec2', 'CloudSigma', 'CloudStack', 'SmartOS', 'Bigstep', 'Scaleway', 'Hetzner', 'IBMCloud', 'Oracle', 'Exoscale', 'RbxCloud', 'UpCloud', 'VMware', 'NWCS', 'Akamai', 'WSL', 'None'], via packages ['cloudinit.sources'] that matches dependencies ['FILESYSTEM', 'NETWORK']
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl - wb: [400] 2268 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2268 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/NoCloud.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl - wb: [400] 2061 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2061 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AltCloud.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl - wb: [400] 2193 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2193 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OVF.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl - wb: [400] 2184 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2184 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/MAAS.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl - wb: [400] 2110 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2110 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/GCE.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl - wb: [400] 2101 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2101 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/OpenStack.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl - wb: [400] 2176 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2176 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/AliYun.obj.pkl
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:2299 Writing to /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl - wb: [400] 2023 bytes
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1599 Reading from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl (quiet=False)
2024-04-25 01:15:02 DEBUG cloudinit.util:util.py:1608 Read 2023 bytes from /tmp/pytest-of-buildd/pytest-0/test_all_ds_init_vs_unpickle_a1/Ec2.obj.pkl
2024-04-25 01:15:03 DEBUG cloudinit.sources.DataSourceCloudStack:DataSourceCloudStack.py:264 DNS Entry data-server not found
2024-04-25 01:15:03 DEBUG cloudinit.util:util.py:1599 Reading from /run/dhclient.lease (quiet=False)
2024-04-25 01:15:03 DEBUG cloudinit.sources.DataSourceCloudStack:DataSourceCloudStack.py:327 No DHCP found, using default gateway
2024-04-25 01:15:03 DEBUG cloudinit.util:util.py:1599 Reading from /proc/net/route (quiet=False)
2024-04-25 01:15:03 DEBUG cloudinit.util:util.py:1608 Read 128 bytes from /proc/net/route
I'm able to reproduce this with a local containerized build with networking disabled, e.g. docker with --net=none, and running pytest. For example:
With networking (test passes)
builder@44b02a74ddb3:/src/cloud-init$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
builder@44b02a74ddb3:/src/cloud-init$ python3 --version
Python 3.11.9
builder@44b02a74ddb3:/src/cloud-init$ pytest --log-level=ERROR -q -q 'tests/unittests/test_upgrade.py::TestUpgrade::test_all_ds_init_vs_unpickle_attributes[mode1]'
. [100%]
================================================== warnings summary ==================================================
tests/unittests/helpers.py:555
/src/cloud-init/tests/unittests/helpers.py:555: DeprecationWarning: Accessing jsonschema.__version__ is deprecated and will be removed in a future release. Use importlib.metadata directly to query for jsonschema's version.
int(part) for part in jsonschema.__version__.split(".") # type: ignore
cloudinit/sources/DataSourceAzure.py:52
/src/cloud-init/cloudinit/sources/DataSourceAzure.py:52: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13
import crypt
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
Without networking (test fails)
builder@3e3839ab502b:/src/cloud-init$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
builder@3e3839ab502b:/src/cloud-init$ python3 --version
Python 3.11.9
builder@3e3839ab502b:/src/cloud-init$ pytest --log-level=ERROR -q -q 'tests/unittests/test_upgrade.py::TestUpgrade::test_all_ds_init_vs_unpickle_attributes[mode1]'
F [100%]
====================================================== FAILURES ======================================================
_____________________________ TestUpgrade.test_all_ds_init_vs_unpickle_attributes[mode1] _____________________________
self = <tests.unittests.test_upgrade.TestUpgrade object at 0x7f31cf3b0e50>, mode = ['FILESYSTEM', 'NETWORK']
mocker = <pytest_mock.plugin.MockerFixture object at 0x7f31cf3576d0>
paths = <cloudinit.helpers.Paths object at 0x7f31cf3b06d0>
tmpdir = local('/tmp/pytest-of-builder/pytest-0/test_all_ds_init_vs_unpickle_a0')
@pytest.mark.parametrize(
"mode",
(
[sources.DEP_FILESYSTEM],
[sources.DEP_FILESYSTEM, sources.DEP_NETWORK],
),
)
@mock.patch.object(
importer,
"match_case_insensitive_module_name",
lambda name: f"DataSource{name}",
)
def test_all_ds_init_vs_unpickle_attributes(
self, mode, mocker, paths, tmpdir
):
"""Unpickle resets any instance attributes created in __init__
This test asserts that deserialization of a datasource cache
does proper initialization of any 'new' instance attributes
created as a side-effect of the __init__ method.
Without proper _unpickle coverage for newly introduced attributes,
the new deserialized instance will hit AttributeErrors at runtime.
"""
# Load all cloud-init init-local time-frame DataSource classes
for ds_class in sources.list_sources(
settings.CFG_BUILTIN["datasource_list"],
mode,
[type_utils.obj_name(sources)],
):
# Expected common instance attrs from __init__ that are typically
# handled via existing _unpickling and setup in _get_data
common_instance_attrs = {
"paths",
"vendordata2",
"sys_cfg",
"ud_proc",
"vendordata",
"vendordata2_raw",
"ds_cfg",
"distro",
"userdata",
"userdata_raw",
"metadata",
"vendordata_raw",
}
# Grab initial specific-class attributes from magic method
class_attrs = set(ds_class.__dict__)
# Mock known subp calls from some datasource __init__ setup
mocker.patch("cloudinit.util.is_container", return_value=False)
mocker.patch("cloudinit.dmi.read_dmi_data", return_value="")
mocker.patch("cloudinit.subp.subp", return_value=("", ""))
# Initialize the class to grab the instance attributes from
# instance.__dict__ magic method.
> ds = ds_class(sys_cfg={}, distro=MockDistro(), paths=paths)
tests/unittests/test_upgrade.py:233:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <cloudinit.sources.DataSourceCloudStack.DataSourceCloudStack object at 0x7f31cf101850>, sys_cfg = {}
distro = <tests.unittests.util.MockDistro object at 0x7f31cf0b8510>
paths = <cloudinit.helpers.Paths object at 0x7f31cf3b06d0>
def __init__(self, sys_cfg, distro, paths):
sources.DataSource.__init__(self, sys_cfg, distro, paths)
self.seed_dir = os.path.join(paths.seed_dir, "cs")
# Cloudstack has its metadata/userdata URLs located at
# http://<virtual-router-ip>/latest/
self.api_ver = "latest"
self.distro = distro
self.vr_addr = get_vr_address(self.distro)
if not self.vr_addr:
> raise RuntimeError("No virtual router found!")
E RuntimeError: No virtual router found!
cloudinit/sources/DataSourceCloudStack.py:95: RuntimeError
================================================== warnings summary ==================================================
tests/unittests/helpers.py:555
/src/cloud-init/tests/unittests/helpers.py:555: DeprecationWarning: Accessing jsonschema.__version__ is deprecated and will be removed in a future release. Use importlib.metadata directly to query for jsonschema's version.
int(part) for part in jsonschema.__version__.split(".") # type: ignore
cloudinit/sources/DataSourceAzure.py:52
/src/cloud-init/cloudinit/sources/DataSourceAzure.py:52: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13
import crypt
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================================== short test summary info ===============================================
FAILED tests/unittests/test_upgrade.py::TestUpgrade::test_all_ds_init_vs_unpickle_attributes[mode1] - RuntimeError: No virtual router found!
Environment details
Cloud-init version: 24.1.3, 24.1.4
Operating System Distribution: Debian sid/unstable
Cloud provider, platform or installer type: n/a
The text was updated successfully, but these errors were encountered:
Bug report
Debian build environments lack network connectivity. When building in such an environment, the
TestUpgrade.test_all_ds_init_vs_unpickle_attributes[mode1]
test fails with the following output:A complete build log is available at https://buildd.debian.org/status/fetch.php?pkg=cloud-init&arch=all&ver=24.1.4-1&stamp=1714007718&file=log
Steps to reproduce the problem
I'm able to reproduce this with a local containerized build with networking disabled, e.g. docker with
--net=none
, and running pytest. For example:With networking (test passes)
Without networking (test fails)
Environment details
The text was updated successfully, but these errors were encountered: