Diff of the two buildlogs: -- --- b1/build.log 2025-03-28 12:12:57.793069629 +0000 +++ b2/build.log 2025-03-28 12:16:24.055795880 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Apr 30 06:34:22 -12 2026 -I: pbuilder-time-stamp: 1777574062 +I: Current time: Sat Mar 29 02:13:01 +14 2025 +I: pbuilder-time-stamp: 1743163981 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking python-ironic-lib_7.0.0-2.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/293553/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Mar 28 12:13 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='5f7011f252e2436b8cf3a640ff7eb30f' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='293553' - PS1='# ' - PS2='> ' + INVOCATION_ID=9815289cfead47f58a1e121dfb6821f0 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1844693 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.7SmV7IIK/pbuilderrc_iUEb --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.7SmV7IIK/b1 --logfile b1/build.log python-ironic-lib_7.0.0-2.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.7SmV7IIK/pbuilderrc_WnUf --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.7SmV7IIK/b2 --logfile b2/build.log python-ironic-lib_7.0.0-2.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.1.0-32-cloud-arm64 #1 SMP Debian 6.1.129-1 (2025-03-06) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-32-cloud-arm64 #1 SMP Debian 6.1.129-1 (2025-03-06) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/293553/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -373,7 +405,7 @@ Get: 230 http://deb.debian.org/debian unstable/main arm64 python3-oslotest all 1:5.0.0-4 [17.2 kB] Get: 231 http://deb.debian.org/debian unstable/main arm64 python3-pygments all 2.18.0+dfsg-2 [836 kB] Get: 232 http://deb.debian.org/debian unstable/main arm64 python3-zeroconf all 0.146.1-1 [81.0 kB] -Fetched 53.6 MB in 0s (176 MB/s) +Fetched 53.6 MB in 1s (74.3 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19919 files and directories currently installed.) @@ -1116,8 +1148,8 @@ Setting up tzdata (2025b-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Apr 30 18:34:51 UTC 2026. -Universal Time is now: Thu Apr 30 18:34:51 UTC 2026. +Local time is now: Fri Mar 28 12:14:22 UTC 2025. +Universal Time is now: Fri Mar 28 12:14:22 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpgm-5.3-0t64:arm64 (5.3.128~dfsg-2.1+b1) ... @@ -1346,7 +1378,11 @@ fakeroot is already the newest version (1.37.1.1-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/python-ironic-lib-7.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-ironic-lib_7.0.0-2_source.changes +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/python-ironic-lib-7.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../python-ironic-lib_7.0.0-2_source.changes dpkg-buildpackage: info: source package python-ironic-lib dpkg-buildpackage: info: source version 7.0.0-2 dpkg-buildpackage: info: source distribution unstable @@ -1438,21 +1474,26 @@ py3versions: no X-Python3-Version in control file, using supported versions pkgos-dh_auto_install --no-py2 --in-tmp + PKGOS_IN_TMP=no -+ echo WARNING: --no-py2 is deprecated and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated and always on.' WARNING: --no-py2 is deprecated and always on. + shift ++ for i in $@ ++ case "${1}" in + PKGOS_IN_TMP=yes + shift -+ dpkg-parsechangelog -SSource +++ dpkg-parsechangelog -SSource + SRC_PKG_NAME=python-ironic-lib -+ echo python-ironic-lib -+ sed s/python-// +++ sed s/python-// +++ echo python-ironic-lib + PY_MODULE_NAME=ironic-lib -+ py3versions -vr +++ py3versions -vr + PYTHON3S=3.13 -+ [ yes = yes ] ++ '[' yes = yes ']' + TARGET_DIR=tmp -+ pwd ++ for pyvers in ${PYTHON3S} +++ pwd + python3.13 setup.py install --install-layout=deb --root /build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! @@ -1626,10 +1667,10 @@ Copying ironic_lib.egg-info to /build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages/ironic_lib-7.0.0.egg-info Skipping SOURCES.txt running install_scripts -+ pwd -+ rm -rf /build/reproducible-path/python-ironic-lib-7.0.0/debian/python*/usr/lib/python*/dist-packages/*.pth -+ pwd -+ rm -rf /build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python*/dist-packages/*.pth +++ pwd ++ rm -rf '/build/reproducible-path/python-ironic-lib-7.0.0/debian/python*/usr/lib/python*/dist-packages/*.pth' +++ pwd ++ rm -rf '/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python*/dist-packages/*.pth' pkgos-dh_auto_test --no-py2 'ironic_lib\.tests\.(?!(.*test_json_rpc\.TestService\.test_authenticated.*))' + PKGOS_TEST_PARALLEL=yes + PKGOS_TEST_SERIAL=no @@ -1637,86 +1678,284 @@ + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= -+ echo WARNING: --no-py2 is deprecated, and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated, and always on.' WARNING: --no-py2 is deprecated, and always on. + shift -+ py3versions -vr ++ for i in $@ ++ case "${1}" in +++ py3versions -vr + PYTHON3S=3.13 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.13 = disabled ] -+ echo+ 3.13 -cut -d. -f1 ++ '[' yes = no ']' ++ '[' no = yes ']' ++ for pyvers in ${PYTHON3S} ++ '[' 3.13 = disabled ']' +++ echo 3.13 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z ] -+ pwd -+ echo Implicitly adding PYTHONPATH=/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages +++ pwd ++ '[' -d /build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z '' ']' +++ pwd ++ echo 'Implicitly adding PYTHONPATH=/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages' Implicitly adding PYTHONPATH=/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages -+ pwd +++ pwd + export PYTHONPATH=/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] ++ PYTHONPATH=/build/reproducible-path/python-ironic-lib-7.0.0/debian/tmp/usr/lib/python3/dist-packages ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr -+ PYTHON=python3.13 stestr run --parallel --subunit ironic_lib\.tests\.(?!(.*test_json_rpc\.TestService\.test_authenticated.*)) + subunit2pyunit - ERROR [ironic_lib.json_rpc.client] Unexpected error from RPC: {'code': 500, 'message': 'AttributeError', 'data': {'class': 'AttributeError'}} ++ PYTHON=python3.13 ++ stestr run --parallel --subunit 'ironic_lib\.tests\.(?!(.*test_json_rpc\.TestService\.test_authenticated.*))' +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_counter +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_counter ... ok +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_gauge +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_gauge ... ok +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_send +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_send ... ok +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_timer +ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_timer ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators ... ok +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators +ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators ... ok +ironic_lib.tests.test_base.BlockExecuteTestCase.test_can_mock_execute +ironic_lib.tests.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok +ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute +ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok +ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked +ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok +ironic_lib.tests.test_utils.IsHttpUrlTestCase.test_is_http_url +ironic_lib.tests.test_utils.IsHttpUrlTestCase.test_is_http_url ... ok +ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg +ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg ... ok + WARNING [ironic_lib.utils] Unable to unmount temporary location /mnt/fake: Unexpected error while running command. +Command: None +Exit code: - +Stdout: None +Stderr: None +ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_mount +ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_mount ... ok +ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg_reraise +ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ... ok +ironic_lib.tests.test_exception.TestIronicException.test___init___json_serializable +ironic_lib.tests.test_exception.TestIronicException.test___init___json_serializable ... ok +ironic_lib.tests.test_exception.TestIronicException.test___init___string_serializable +ironic_lib.tests.test_exception.TestIronicException.test___init___string_serializable ... ok +ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_unmount +ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_unmount ... ok +ironic_lib.tests.test_utils.MountedTestCase.test_temporary +ironic_lib.tests.test_utils.MountedTestCase.test_temporary ... ok +ironic_lib.tests.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute +ironic_lib.tests.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_failure ironic_lib.tests.test_json_rpc.TestClient.test_call_failure ... ok +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_counter +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_counter ... ok +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_gauge +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_gauge ... ok +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_init +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_init ... ok +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_open_socket +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_open_socket ... ok +ironic_lib.tests.test_utils.MountedTestCase.test_with_dest +ironic_lib.tests.test_utils.MountedTestCase.test_with_dest ... ok + ERROR [ironic_lib.json_rpc.client] Unexpected error from RPC: {'code': 500, 'message': 'AttributeError', 'data': {'class': 'AttributeError'}} +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_send +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_send ... ok +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_timer +ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_timer ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_failure_with_foreign_class ironic_lib.tests.test_json_rpc.TestClient.test_call_failure_with_foreign_class ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_command_not_found -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_command_not_found ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_failure_with_version_and_cap ironic_lib.tests.test_json_rpc.TestClient.test_call_failure_with_version_and_cap ... ok -ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv4_success -ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv4_success ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok -ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success -ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success ... ok +ironic_lib.tests.test_utils.MountedTestCase.test_with_opts +ironic_lib.tests.test_utils.MountedTestCase.test_with_opts ... ok +ironic_lib.tests.test_utils.MountedTestCase.test_with_type +ironic_lib.tests.test_utils.MountedTestCase.test_with_type ... ok + WARNING [ironic_lib.utils] Failed to unlink /fake/path, error: 2 ERROR [ironic_lib.keystone] Failed to load auth plugin from group test_group - ERROR [ironic_lib.json_rpc.client] Unexpected error from RPC: {'code': 500, 'message': 'AttributeError'} -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default ... ok +ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink +ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink ... ok ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_adapter_from_config ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_adapter_from_config ... ok ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth ... ok -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth_fail -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data ... ok +ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv4_success +ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv4_success ... ok +ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success +ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success ... ok +ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink_ENOENT +ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink_ENOENT ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 ironic_lib.tests.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 ... ok +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth_fail +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_success ironic_lib.tests.test_json_rpc.TestClient.test_call_success ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_success_with_version ironic_lib.tests.test_json_rpc.TestClient.test_call_success_with_version ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_success_with_version_and_cap ironic_lib.tests.test_json_rpc.TestClient.test_call_success_with_version_and_cap ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_all +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_all ... ok + ERROR [ironic_lib.json_rpc.client] Unexpected error from RPC: {'code': 500, 'message': 'AttributeError'} ironic_lib.tests.test_json_rpc.TestClient.test_call_unexpected_failure ironic_lib.tests.test_json_rpc.TestClient.test_call_unexpected_failure ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_name +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_name ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_none +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_none ... ok ironic_lib.tests.test_json_rpc.TestClient.test_call_with_ssl ironic_lib.tests.test_json_rpc.TestClient.test_call_with_ssl ... ok ironic_lib.tests.test_json_rpc.TestClient.test_can_send_version ironic_lib.tests.test_json_rpc.TestClient.test_can_send_version ... ok +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_service_auth +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_service_auth ... ok +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_session +ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_session ... ok +ironic_lib.tests.test_json_rpc.TestService.test_expected_failure +ironic_lib.tests.test_json_rpc.TestService.test_expected_failure ... ok ironic_lib.tests.test_json_rpc.TestClient.test_cast_failure ironic_lib.tests.test_json_rpc.TestClient.test_cast_failure ... ok ironic_lib.tests.test_json_rpc.TestClient.test_cast_success ironic_lib.tests.test_json_rpc.TestClient.test_cast_success ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute ... ok +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror ... ok +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 ... ok +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 ... ok +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal ... ok +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed +ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints ... ok ironic_lib.tests.test_json_rpc.TestClient.test_cast_success_with_version ironic_lib.tests.test_json_rpc.TestClient.test_cast_success_with_version ... ok +ironic_lib.tests.test_json_rpc.TestService.test_expected_failure_oslo +ironic_lib.tests.test_json_rpc.TestService.test_expected_failure_oslo ... ok + WARNING [ironic_lib.utils] The attribute "rotational" (with value "None") of device "/dev/sda" is not a valid Boolean. Skipping device. +ironic_lib.tests.test_json_rpc.TestClient.test_mask_secrets +ironic_lib.tests.test_json_rpc.TestClient.test_mask_secrets ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 ... ok + WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': '>=50', 'model': 's==foo'} +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_resolve +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_resolve ... ok +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple ... ok +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple_https +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple_https ... ok +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_with_path_and_port +ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_with_path_and_port ... ok + WARNING [ironic_lib.utils] The attribute "rotational" (with value "None") of device "/dev/sda" is not a valid Boolean. Skipping device. +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter ... ok +ironic_lib.tests.test_json_rpc.TestService.test_http_basic +ironic_lib.tests.test_json_rpc.TestService.test_http_basic ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_command_not_found +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_command_not_found ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter_sample_rate +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter_sample_rate ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational ... ok +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool +ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_timer +ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_timer ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter_sample_rate +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter_sample_rate ... ok ERROR [ironic_lib.utils] Failed to create a file system in /my/block/dev. Error: Unexpected error while running command. Command: None Exit code: - @@ -1740,6 +1979,16 @@ Exit code: - Stdout: None Stderr: 'fake' +ironic_lib.tests.test_json_rpc.TestService.test_http_basic_not_authenticated +ironic_lib.tests.test_json_rpc.TestService.test_http_basic_not_authenticated ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs ... ok +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_label +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_label ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_gauge +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_gauge ... ok ERROR [ironic_lib.utils] Failed to make file system. File system foo is not supported. Traceback (most recent call last): File "/build/reproducible-path/python-ironic-lib-7.0.0/ironic_lib/utils.py", line 156, in mkfs @@ -1759,176 +2008,66 @@ Exit code: - Stdout: None Stderr: 'No such file or directory' -ironic_lib.tests.test_json_rpc.TestClient.test_mask_secrets -ironic_lib.tests.test_json_rpc.TestClient.test_mask_secrets ... ok -ironic_lib.tests.test_utils.IsHttpUrlTestCase.test_is_http_url -ironic_lib.tests.test_utils.IsHttpUrlTestCase.test_is_http_url ... ok -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs ... ok -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_label -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_label ... ok -ironic_lib.tests.test_json_rpc.TestSession.test_http_basic -ironic_lib.tests.test_json_rpc.TestSession.test_http_basic ... ok -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true -ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true ... ok -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror ... ok -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 ... ok -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 ... ok -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal ... ok -ironic_lib.tests.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute -ironic_lib.tests.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed -ironic_lib.tests.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed ... ok ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error ... ok -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs -ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_counter -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_counter ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_gauge -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_gauge ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_init -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_init ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_open_socket -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_open_socket ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_send -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_send ... ok -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_timer -ironic_lib.tests.test_metrics_statsd.TestStatsdMetricLogger.test_timer ... ok + ERROR [ironic_lib.json_rpc.server] JSON RPC request {'method': 'no_result', 'id': 'abcd', 'params': {'context': {'user_name': 'admin'}}} is invalid +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_timer +ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_timer ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_get_metric_name +ironic_lib.tests.test_metrics.TestMetricLogger.test_get_metric_name ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_init +ironic_lib.tests.test_metrics.TestMetricLogger.test_init ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_counter +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_counter ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_gauge +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_gauge ... ok +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_timer +ironic_lib.tests.test_metrics.TestMetricLogger.test_send_timer ... ok ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_empty ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_empty ... ok -ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_parse -ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_parse ... ok -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_resolve -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_resolve ... ok -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple ... ok -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple_https -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_simple_https ... ok -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_with_path_and_port -ironic_lib.tests.test_mdns.ParseEndpointTestCase.test_with_path_and_port ... ok -ironic_lib.tests.test_json_rpc.TestSession.test_http_basic_deprecated -ironic_lib.tests.test_json_rpc.TestSession.test_http_basic_deprecated ... ok - WARNING [ironic_lib.mdns] None of addresses ['::2', '::3'] seem routable, using ::2 -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_service_auth -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_service_auth ... ok -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_session -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_session ... ok -ironic_lib.tests.test_json_rpc.TestSession.test_keystone -ironic_lib.tests.test_json_rpc.TestSession.test_keystone ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_mount -ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_mount ... ok - WARNING [ironic_lib.utils] Unable to unmount temporary location /mnt/fake: Unexpected error while running command. -Command: None -Exit code: - -Stdout: None -Stderr: None -ironic_lib.tests.test_json_rpc.TestSession.test_noauth -ironic_lib.tests.test_json_rpc.TestSession.test_noauth ... ok -ironic_lib.tests.test_json_rpc.TestService.test_expected_failure -ironic_lib.tests.test_json_rpc.TestService.test_expected_failure ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_unmount -ironic_lib.tests.test_utils.MountedTestCase.test_failed_to_unmount ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_all -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_all ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_temporary -ironic_lib.tests.test_utils.MountedTestCase.test_temporary ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_name -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_name ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_none -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_find_devices_none ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_with_dest -ironic_lib.tests.test_utils.MountedTestCase.test_with_dest ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_with_opts -ironic_lib.tests.test_utils.MountedTestCase.test_with_opts ... ok -ironic_lib.tests.test_json_rpc.TestService.test_expected_failure_oslo -ironic_lib.tests.test_json_rpc.TestService.test_expected_failure_oslo ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints ... ok -ironic_lib.tests.test_utils.MountedTestCase.test_with_type -ironic_lib.tests.test_utils.MountedTestCase.test_with_type ... ok - WARNING [ironic_lib.utils] The attribute "rotational" (with value "None") of device "/dev/sda" is not a valid Boolean. Skipping device. - WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': '>=50', 'model': 's==foo'} -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 ... ok - WARNING [ironic_lib.utils] The attribute "rotational" (with value "None") of device "/dev/sda" is not a valid Boolean. Skipping device. -ironic_lib.tests.test_json_rpc.TestService.test_http_basic -ironic_lib.tests.test_json_rpc.TestService.test_http_basic ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational ... ok -ironic_lib.tests.test_json_rpc.TestService.test_http_basic_not_authenticated -ironic_lib.tests.test_json_rpc.TestService.test_http_basic_not_authenticated ... ok -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool -ironic_lib.tests.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool ... ok - ERROR [ironic_lib.json_rpc.server] JSON RPC request {'method': 'no_result', 'id': 'abcd', 'params': {'context': {'user_name': 'admin'}}} is invalid +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs +ironic_lib.tests.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs ... ok ERROR [ironic_lib.json_rpc.server] JSON RPC request {'jsonrpc': '2.0', 'id': 'abcd', 'params': {'context': {'user_name': 'admin'}}} is invalid ERROR [ironic_lib.json_rpc.server] JSON RPC request {'method': 'no_result', 'params': {'context': {'user_name': 'admin'}}} is invalid ERROR [ironic_lib.json_rpc.server] JSON RPC request {'jsonrpc': '2.0', 'params': {'context': {'user_name': 'admin'}}} is invalid ERROR [ironic_lib.json_rpc.server] JSON RPC request 42 is not an object (batched requests are not supported) ERROR [ironic_lib.json_rpc.server] JSON RPC request [] is not an object (batched requests are not supported) ERROR [ironic_lib.json_rpc.server] JSON RPC request [{'jsonrpc': '2.0', 'method': 'no_result', 'params': {'context': {'user_name': 'admin'}}}] is not an object (batched requests are not supported) -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https ... ok +ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_parse +ironic_lib.tests.test_utils.ParseDeviceTagsTestCase.test_parse ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default ... ok ironic_lib.tests.test_json_rpc.TestService.test_invalid_requests ironic_lib.tests.test_json_rpc.TestService.test_invalid_requests ... ok ironic_lib.tests.test_json_rpc.TestService.test_malformed_context ironic_lib.tests.test_json_rpc.TestService.test_malformed_context ... ok -ironic_lib.tests.test_base.BlockExecuteTestCase.test_can_mock_execute -ironic_lib.tests.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok -ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute -ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok -ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked -ironic_lib.tests.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok ironic_lib.tests.test_json_rpc.TestService.test_mask_secrets ironic_lib.tests.test_json_rpc.TestService.test_mask_secrets ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter_sample_rate -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_counter_sample_rate ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_timer -ironic_lib.tests.test_metrics.TestMetricLogger.test_context_mgr_timer ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter_sample_rate -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_counter_sample_rate ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_gauge -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_gauge ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false ... ok + WARNING [ironic_lib.mdns] None of addresses ['::2', '::3'] seem routable, using ::2 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback ... ok ironic_lib.tests.test_json_rpc.TestService.test_method_not_found ironic_lib.tests.test_json_rpc.TestService.test_method_not_found ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_invalid_key -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_invalid_key ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_timer -ironic_lib.tests.test_metrics.TestMetricLogger.test_decorator_timer ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_get_metric_name -ironic_lib.tests.test_metrics.TestMetricLogger.test_get_metric_name ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_init -ironic_lib.tests.test_metrics.TestMetricLogger.test_init ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_counter -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_counter ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_gauge -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_gauge ... ok -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_timer -ironic_lib.tests.test_metrics.TestMetricLogger.test_send_timer ... ok ironic_lib.tests.test_json_rpc.TestService.test_method_not_post ironic_lib.tests.test_json_rpc.TestService.test_method_not_post ... ok +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_failure +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_failure ... ok +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true +ironic_lib.tests.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true ... ok ironic_lib.tests.test_json_rpc.TestService.test_missing_argument ironic_lib.tests.test_json_rpc.TestService.test_missing_argument ... ok +ironic_lib.tests.test_keystone.AuthConfTestCase.test_add_auth_opts +ironic_lib.tests.test_keystone.AuthConfTestCase.test_add_auth_opts ... ok +ironic_lib.tests.test_keystone.AuthConfTestCase.test_os_service_types_alias +ironic_lib.tests.test_keystone.AuthConfTestCase.test_os_service_types_alias ... ok +ironic_lib.tests.test_metrics.TestMetricReflection.test_counter_reflection +ironic_lib.tests.test_metrics.TestMetricReflection.test_counter_reflection ... ok +ironic_lib.tests.test_metrics.TestMetricReflection.test_gauge_reflection +ironic_lib.tests.test_metrics.TestMetricReflection.test_gauge_reflection ... ok +ironic_lib.tests.test_metrics.TestMetricReflection.test_timer_reflection +ironic_lib.tests.test_metrics.TestMetricReflection.test_timer_reflection ... ok ironic_lib.tests.test_json_rpc.TestService.test_no_context ironic_lib.tests.test_json_rpc.TestService.test_no_context ... ok ironic_lib.tests.test_json_rpc.TestService.test_no_deny_methods @@ -1936,38 +2075,37 @@ ERROR [ironic_lib.json_rpc.server] Cannot parse JSON RPC request as JSON ERROR [ironic_lib.json_rpc.server] Cannot parse JSON RPC request as JSON ERROR [ironic_lib.json_rpc.server] Cannot parse JSON RPC request as JSON -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only ... ok ironic_lib.tests.test_json_rpc.TestService.test_non_json_body ironic_lib.tests.test_json_rpc.TestService.test_non_json_body ... ok -ironic_lib.tests.test_json_rpc.TestService.test_notification -ironic_lib.tests.test_json_rpc.TestService.test_notification ... ok -ironic_lib.tests.test_json_rpc.TestService.test_success -ironic_lib.tests.test_json_rpc.TestService.test_success ... ok -ironic_lib.tests.test_json_rpc.TestService.test_success_no_result -ironic_lib.tests.test_json_rpc.TestService.test_success_no_result ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_not_found -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_not_found ... ok -ironic_lib.tests.test_json_rpc.TestService.test_unexpected_failure -ironic_lib.tests.test_json_rpc.TestService.test_unexpected_failure ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_simple -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_simple ... ok -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_failure -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_failure ... ok -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_counter -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_counter ... ok -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_gauge -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_gauge ... ok -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_send -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_send ... ok -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_timer -ironic_lib.tests.test_metrics_collector.TestDictCollectionMetricLogger.test_timer ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry ... ok + ERROR [ironic_lib.auth_basic] Problem reading auth user file: [Errno 2] No such file or directory: '/tmp/tmpegxpgi_d/tmpg1evt7ef.missing' +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_ok +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_ok ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_authenticate +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_authenticate ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_authenticate +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_authenticate ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_unauthenticated +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_unauthenticated ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_header +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_header ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_token +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_token ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_unauthorized +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_unauthorized ... ok +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_validate_auth_file +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_validate_auth_file ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_default_backend ironic_lib.tests.test_metrics_utils.TestGetLogger.test_default_backend ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_default_prefix ironic_lib.tests.test_metrics_utils.TestGetLogger.test_default_prefix ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_nonexisting_backend ironic_lib.tests.test_metrics_utils.TestGetLogger.test_nonexisting_backend ... ok +ironic_lib.tests.test_json_rpc.TestService.test_notification +ironic_lib.tests.test_json_rpc.TestService.test_notification ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_numeric_list_prefix ironic_lib.tests.test_metrics_utils.TestGetLogger.test_numeric_list_prefix ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_numeric_prefix @@ -1982,154 +2120,64 @@ ironic_lib.tests.test_metrics_utils.TestGetLogger.test_prepend_other_delim ... ok ironic_lib.tests.test_metrics_utils.TestGetLogger.test_statsd_backend ironic_lib.tests.test_metrics_utils.TestGetLogger.test_statsd_backend ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_skip_invalid -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_skip_invalid ... ok -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_ok -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_ok ... ok -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_v6 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_v6 ... ok +ironic_lib.tests.test_json_rpc.TestService.test_success +ironic_lib.tests.test_json_rpc.TestService.test_success ... ok +ironic_lib.tests.test_json_rpc.TestService.test_success_no_result +ironic_lib.tests.test_json_rpc.TestService.test_success_no_result ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_invalid_key +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_invalid_key ... ok +ironic_lib.tests.test_json_rpc.TestService.test_unexpected_failure +ironic_lib.tests.test_json_rpc.TestService.test_unexpected_failure ... ok +ironic_lib.tests.test_json_rpc.TestSession.test_http_basic +ironic_lib.tests.test_json_rpc.TestSession.test_http_basic ... ok ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_interfaces ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_interfaces ... ok -ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg -ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg ... ok -ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg_reraise -ironic_lib.tests.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ... ok -ironic_lib.tests.test_exception.TestIronicException.test___init___json_serializable -ironic_lib.tests.test_exception.TestIronicException.test___init___json_serializable ... ok -ironic_lib.tests.test_exception.TestIronicException.test___init___string_serializable -ironic_lib.tests.test_exception.TestIronicException.test___init___string_serializable ... ok -ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink -ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink ... ok - WARNING [ironic_lib.utils] Failed to unlink /fake/path, error: 2 -ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink_ENOENT -ironic_lib.tests.test_utils.BareMetalUtilsTestCase.test_unlink_ENOENT ... ok +ironic_lib.tests.test_json_rpc.TestSession.test_http_basic_deprecated +ironic_lib.tests.test_json_rpc.TestSession.test_http_basic_deprecated ... ok +ironic_lib.tests.test_json_rpc.TestSession.test_keystone +ironic_lib.tests.test_json_rpc.TestSession.test_keystone ... ok +ironic_lib.tests.test_json_rpc.TestSession.test_noauth +ironic_lib.tests.test_json_rpc.TestSession.test_noauth ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only ... ok ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_params ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_params ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_not_found +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_not_found ... ok +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_simple +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_simple ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_skip_invalid +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_skip_invalid ... ok +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_v6 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_v6 ... ok ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_custom_port_and_path ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_custom_port_and_path ... ok ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_custom_port_path_and_protocol ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_custom_port_path_and_protocol ... ok -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race ... ok ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_params ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_params ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry ... ok - ERROR [ironic_lib.auth_basic] Problem reading auth user file: [Errno 2] No such file or directory: '/tmp/tmp40j0cb4w/tmpvbde53v2.missing' -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_authenticate -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_authenticate ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_authenticate -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_authenticate ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_unauthenticated -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_middleware_unauthenticated ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_header -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_header ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_token -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_parse_token ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_unauthorized -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_unauthorized ... ok -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_validate_auth_file -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_validate_auth_file ... ok ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_server ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_server ... ok -ironic_lib.tests.test_metrics.TestMetricReflection.test_counter_reflection -ironic_lib.tests.test_metrics.TestMetricReflection.test_counter_reflection ... ok -ironic_lib.tests.test_metrics.TestMetricReflection.test_gauge_reflection -ironic_lib.tests.test_metrics.TestMetricReflection.test_gauge_reflection ... ok -ironic_lib.tests.test_metrics.TestMetricReflection.test_timer_reflection -ironic_lib.tests.test_metrics.TestMetricReflection.test_timer_reflection ... ok -ironic_lib.tests.test_keystone.AuthConfTestCase.test_add_auth_opts -ironic_lib.tests.test_keystone.AuthConfTestCase.test_add_auth_opts ... ok -ironic_lib.tests.test_keystone.AuthConfTestCase.test_os_service_types_alias -ironic_lib.tests.test_keystone.AuthConfTestCase.test_os_service_types_alias ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators ... ok -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators -ironic_lib.tests.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators ... ok ---------------------------------------------------------------------- -Ran 191 tests in 3.010s +Ran 191 tests in 9.589s OK + stestr slowest -Test id Runtime (s) ---------------------------------------------------------------------- ----------- -ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry 0.291 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_params 0.130 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data 0.062 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback 0.059 -ironic_lib.tests.test_keystone.KeystoneTestCase.test_get_service_auth 0.055 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https 0.054 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only 0.053 -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race 0.051 -ironic_lib.tests.test_mdns.GetEndpointTestCase.test_skip_invalid 0.050 -ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_ok 0.050 +Test id Runtime (s) +----------------------------------------------------------------------- ----------- +ironic_lib.tests.test_basic_auth.TestAuthBasic.test_auth_entry 1.218 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_with_params 0.448 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_binary_data 0.251 +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_failure 0.235 +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_race 0.226 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_localhost_only 0.226 +ironic_lib.tests.test_mdns.RegisterServiceTestCase.test_with_interfaces 0.224 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_https 0.221 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_fallback 0.210 +ironic_lib.tests.test_mdns.GetEndpointTestCase.test_not_found 0.209 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-ironic-lib-7.0.0' debian/rules override_dh_install @@ -2163,14 +2211,14 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/*.init.in +++ ls -1 'debian/*.init.in' ls: cannot access 'debian/*.init.in': No such file or directory # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done -+ ls -1 debian/*.service.in +++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ @@ -2179,7 +2227,7 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/*.init.in +++ ls 'debian/*.init.in' ls: cannot access 'debian/*.init.in': No such file or directory dh_installinit --error-handler=true make[1]: Leaving directory '/build/reproducible-path/python-ironic-lib-7.0.0' @@ -2212,12 +2260,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1844693/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/293553 and its subdirectories -I: Current time: Thu Apr 30 06:35:56 -12 2026 -I: pbuilder-time-stamp: 1777574156 +I: removing directory /srv/workspace/pbuilder/1844693 and its subdirectories +I: Current time: Sat Mar 29 02:16:22 +14 2025 +I: pbuilder-time-stamp: 1743164183