Mock Version: 2.2 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/epel-8-x86_64-1588636812.984959/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '2c14c80fdb2b4d018fb369d48f72ce20', '-D', '/var/lib/mock/epel-8-x86_64-1588636812.984959/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/epel-8-x86_64-1588636812.984959/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '12b95402c51948b3bac71ccc00c7f5ba', '-D', '/var/lib/mock/epel-8-x86_64-1588636812.984959/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05gs4_l7:/etc/resolv.conf', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.sBsKRS + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-13.0.3.dev5 + /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-13.0.3.dev5-0.20191217040142.3e39d7b.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-13.0.3.dev5 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #1 (0001-Correct-handling-of-ramdisk_params-in-i-PXE-boot.patch):' Patch #1 (0001-Correct-handling-of-ramdisk_params-in-i-PXE-boot.patch): + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/common/pxe_utils.py patching file ironic/drivers/modules/agent_config.template patching file ironic/drivers/modules/ipxe.py patching file ironic/drivers/modules/ipxe_config.template patching file ironic/drivers/modules/pxe.py patching file ironic/drivers/modules/pxe_config.template patching file ironic/drivers/modules/pxe_grub_config.template patching file ironic/tests/unit/common/test_pxe_utils.py patching file ironic/tests/unit/drivers/ipxe_config.template patching file ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template patching file ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template patching file ironic/tests/unit/drivers/ipxe_config_timeout.template patching file ironic/tests/unit/drivers/modules/test_ipxe.py patching file ironic/tests/unit/drivers/modules/test_pxe.py patching file ironic/tests/unit/drivers/pxe_config.template patching file ironic/tests/unit/drivers/pxe_grub_config.template Patch #2 (0002-Backward-compatibility-for-the-ramdisk_params-change.patch): + echo 'Patch #2 (0002-Backward-compatibility-for-the-ramdisk_params-change.patch):' + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/drivers/modules/ipxe.py patching file ironic/drivers/modules/pxe.py patching file releasenotes/notes/ramdisk-params-6083bfaa7ffa9dfe.yaml + echo 'Patch #3 (0003-Foundation-for-boot-network-management-for-in-band-i.patch):' Patch #3 (0003-Foundation-for-boot-network-management-for-in-band-i.patch): + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/common/utils.py patching file ironic/conf/inspector.py patching file ironic/drivers/base.py patching file ironic/drivers/modules/inspector.py patching file ironic/drivers/modules/network/noop.py patching file ironic/tests/unit/drivers/modules/test_inspector.py patching file releasenotes/notes/inspection-boot-network-59fd23ca62b09e81.yaml Patch #4 (0004-Wire-in-in-band-inspection-for-PXE-boot-and-neutron-.patch): + echo 'Patch #4 (0004-Wire-in-in-band-inspection-for-PXE-boot-and-neutron-.patch):' + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/common/neutron.py patching file ironic/conf/neutron.py patching file ironic/drivers/modules/ipxe.py patching file ironic/drivers/modules/network/common.py patching file ironic/drivers/modules/network/flat.py patching file ironic/drivers/modules/network/neutron.py patching file ironic/drivers/modules/pxe.py patching file ironic/tests/unit/drivers/modules/network/test_flat.py patching file ironic/tests/unit/drivers/modules/network/test_neutron.py patching file ironic/tests/unit/drivers/modules/network/test_noop.py patching file ironic/tests/unit/drivers/modules/test_ipxe.py patching file ironic/tests/unit/drivers/modules/test_pxe.py patching file releasenotes/notes/inspector-pxe-boot-9ab9fede5671097e.yaml Patch #5 (0005-redfish-vmedia-correctly-pass-ipa-debug.patch): + echo 'Patch #5 (0005-redfish-vmedia-correctly-pass-ipa-debug.patch):' + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/drivers/modules/redfish/boot.py patching file ironic/tests/unit/drivers/modules/redfish/test_boot.py Patch #6 (0006-Implement-managed-in-band-inspection-boot-for-redfis.patch): + echo 'Patch #6 (0006-Implement-managed-in-band-inspection-boot-for-redfis.patch):' + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file ironic/drivers/modules/redfish/boot.py patching file ironic/tests/unit/drivers/modules/redfish/test_boot.py patching file releasenotes/notes/redfish-managed-inspection-936341ffa8e1f22a.yaml + sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg + rm -rf driver-requirements.txt requirements.txt test-requirements.txt + sed -i /tempest/d setup.cfg + rm -rf ironic_tempest_plugin + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.gZPeyM + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev5 ++ '[' -f _current_flavor ']' ++ true + python_flavor= + '[' -z '' ']' + python_flavor=tmp + '[' tmp '!=' python3 ']' + '[' -d build ']' + '[' -d _build.python3 ']' + echo python3 + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/api creating build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware creating build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor copying ironic/conductor/allocations.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor creating build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish creating build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage creating build/lib/ironic/tests/unit/db creating build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible creating build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/__init__.py -> build/lib/ironic copying ironic/version.py -> build/lib/ironic creating build/lib/ironic/cmd copying ironic/cmd/__init__.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/cmd/conductor.py -> build/lib/ironic/cmd copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd copying ironic/cmd/status.py -> build/lib/ironic/cmd creating build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_allocations.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_deploy_templates.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/drivers/__init__.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_base.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_generic.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ibmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ilo.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_irmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_snmp.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_utils.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspector.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/power.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc creating build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi copying ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base_vendor.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects creating build/lib/ironic/common creating build/lib/ironic/common/glance_service copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service creating build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/ibmc.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/iscsi.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf creating build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi creating build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_status.py -> build/lib/ironic/tests/unit/cmd creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network creating build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_json_rpc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_nova.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common creating build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac creating build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects copying ironic/objects/allocation.py -> build/lib/ironic/objects copying ironic/objects/base.py -> build/lib/ironic/objects copying ironic/objects/bios.py -> build/lib/ironic/objects copying ironic/objects/chassis.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/deploy_template.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/notification.py -> build/lib/ironic/objects copying ironic/objects/port.py -> build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/trait.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects creating build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_expose.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common creating build/lib/ironic/api/controllers creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/event.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/state.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/types.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/__init__.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/expose.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/common.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/job.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac creating build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/__init__.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/client.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/server.py -> build/lib/ironic/common/json_rpc copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/ibmc.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf creating build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network creating build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor creating build/lib/ironic/db creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/boot.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/bios.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/db/__init__.py -> build/lib/ironic/db copying ironic/db/api.py -> build/lib/ironic/db copying ironic/db/migration.py -> build/lib/ironic/db copying ironic/tests/__init__.py -> build/lib/ironic/tests copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit running egg_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt deleting ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt [pbr] Reusing existing SOURCES.txt copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/drivers/modules/agent_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/master_grub_cfg.txt -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.GFM2vI + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 + cd ironic-13.0.3.dev5 ++ '[' -f _current_flavor ']' ++ cat _current_flavor + python_flavor=python3 + '[' -z python3 ']' + '[' python3 '!=' python3 ']' + echo python3 + /usr/bin/python3 setup.py install -O1 --skip-build --force --root /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 --prefix /usr running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running install_lib creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6 creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db copying build/lib/ironic/db/migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db copying build/lib/ironic/db/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db copying build/lib/ironic/db/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic.ini -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking copying build/lib/ironic/hacking/checks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking copying build/lib/ironic/hacking/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/trait.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/notification.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/indirection.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/fields.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects copying build/lib/ironic/objects/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/opts.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/metrics_statsd.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/metrics.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/json_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/iscsi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/glance.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/dhcp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/default.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/database.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/console.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/auth.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/audit.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/ansible.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/agent.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf copying build/lib/ironic/conf/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/isolinux_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/grub_conf.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc copying build/lib/ironic/common/wsgi_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/rpc_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/release_mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/profiler.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/policy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/network.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/keystone.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/indicator_states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/images.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/i18n.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/hash_ring.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/fsm.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/faults.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/exception.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/driver_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/context.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/config.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/components.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/boot_modes.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/boot_devices.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/pxe_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common copying build/lib/ironic/common/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/cmd/status.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/cmd/dbsync.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/cmd/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/cmd/api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/cmd/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd copying build/lib/ironic/version.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic copying build/lib/ironic/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/task_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/steps.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/rpcapi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/base_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/wsgi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/hooks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/expose.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/config.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/app.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api copying build/lib/ironic/api/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/version.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/types.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/state.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/event.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/driver.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_token.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/intel_ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/generic.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers copying build/lib/ironic/drivers/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/master_grub_cfg.txt -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/job.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/console.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipmitool.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/inspect_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/image_cache.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/fake.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/deploy_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/console_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests copying build/lib/ironic/tests/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests copying build/lib/ironic/tests/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/functional creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_nova.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_status.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_ports.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_portgroups.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_nodes.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_traits.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_tags.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_allocations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_xclarity.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ibmc.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_generic.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_drac.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_job.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipmitool.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_inspect_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_image_cache.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_deploy_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_console_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_inspector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_types.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_expose.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_hooks.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/__init__.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/migration.py to migration.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/api.py to api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py to fb3f10dd262e_add_fault_to_node_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py to f6fdb920c182_set_pxe_enabled_true.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py to f190f9d00a11_add_node_owner.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py to e918ff30eb42_resize_column_nodes_instance_info.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py to e294876e8028_add_node_network_interface.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py to dd67b91a1981_add_allocations_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py to dd34e1f1303b_add_resource_class_to_node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py to dbefd6bdaa2c_add_default_column_to_.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py to daa1ba02d98_add_volume_connectors_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py to d2b036ae9378_add_automated_clean_field.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py to c14cef6dfedf_populate_node_network_interface.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py to bcdd431ba0bf_add_fields_for_all_interfaces.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py to bb59b63f55a_add_node_driver_internal_info.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py to b9117ac17882_add_node_deploy_step.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py to b4130a7fc904_create_nodetraits_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py to 9cbeefa3763f_add_port_is_smartnic.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py to 93706939026c_add_node_protected_field.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py to 868cb606a74a_add_version_field_in_base_class.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py to 82c315d60161_add_bios_settings.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py to 789acc877671_add_raid_config.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py to 664f85c2f622_add_conductor_group_to_nodes_conductors.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py to 60cf717201bc_add_standalone_ports_supported.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py to 5ea1b0d310e_added_port_group_table_and_altered_ports.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py to 5674c57409b9_replace_nostate_with_available.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py to 516faf1bb9b1_resizing_column_nodes_driver.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py to 4f399b21ae71_add_node_clean_step.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py to 493d8f27f235_add_portgroup_configuration_fields.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py to 48d6c242bb9b_add_node_tags.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py to 487deb87cc9d_add_conductor_affinity_and_online.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py to 405cfe08f18d_add_rescue_interface_to_node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py to 3d86a077a3f2_add_port_physical_network.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py to 3cb628139ea4_nodes_add_console_enabled.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py to 3bea56f25597_add_unique_constraint_to_instance_uuid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py to 3ae36a5f5131_add_logical_name.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py to 31baaf680d2b_add_node_instance_info.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py to 2fb93ffd2af1_increase_node_name_length.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py to 2d13bc3d6bba_add_bios_config_and_interface.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py to 2aac7e0872f6_add_deploy_templates.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py to 28c44432c9c3_add_node_description.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py to 2581ebaf0cb2_initial_migration.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py to 242cc6a923b3_add_node_maintenance_reason.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py to 2353895ecfae_add_conductor_hardware_interfaces_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py to 21b331f883ef_add_provision_updated_at.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py to 1e1d5ace7dc6_add_inspection_started_at_and_.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py to 1e15e7122cc9_add_extra_column_to_deploy_templates.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py to 1d6951876d68_add_storage_interface_db_field_and_.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py to 1a59178ebdf6_add_volume_targets_table.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py to 10b163d4481e_add_port_portgroup_internal_info.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic/env.py to env.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/models.py to models.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/migration.py to migration.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/api.py to api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking/checks.py to checks.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/volume_target.py to volume_target.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/volume_connector.py to volume_connector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/trait.py to trait.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/portgroup.py to portgroup.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/port.py to port.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/notification.py to notification.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/node.py to node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/indirection.py to indirection.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/fields.py to fields.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/deploy_template.py to deploy_template.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/conductor.py to conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/chassis.py to chassis.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/allocation.py to allocation.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/xclarity.py to xclarity.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/swift.py to swift.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/snmp.py to snmp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/service_catalog.py to service_catalog.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/redfish.py to redfish.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/pxe.py to pxe.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/opts.py to opts.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/nova.py to nova.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/metrics_statsd.py to metrics_statsd.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/metrics.py to metrics.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/json_rpc.py to json_rpc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/iscsi.py to iscsi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/irmc.py to irmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/ipmi.py to ipmi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/ilo.py to ilo.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/ibmc.py to ibmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/healthcheck.py to healthcheck.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/glance.py to glance.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/drac.py to drac.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/dhcp.py to dhcp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/deploy.py to deploy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/default.py to default.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/database.py to database.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/console.py to console.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/conductor.py to conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/cinder.py to cinder.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/auth.py to auth.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/audit.py to audit.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/api.py to api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/ansible.py to ansible.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/agent.py to agent.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/inspector.py to inspector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf/neutron.py to neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc/server.py to server.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc/client.py to client.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/json_rpc/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/swift.py to swift.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/states.py to states.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/service.py to service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/rpc_service.py to rpc_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/rpc.py to rpc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/release_mappings.py to release_mappings.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/raid.py to raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/profiler.py to profiler.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/policy.py to policy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/nova.py to nova.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/network.py to network.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/keystone.py to keystone.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/indicator_states.py to indicator_states.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/images.py to images.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/image_service.py to image_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/i18n.py to i18n.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/hash_ring.py to hash_ring.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/fsm.py to fsm.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/faults.py to faults.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/exception.py to exception.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/driver_factory.py to driver_factory.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/context.py to context.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/config.py to config.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/components.py to components.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/cinder.py to cinder.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/boot_modes.py to boot_modes.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/boot_devices.py to boot_devices.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/neutron.py to neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service/image_service.py to image_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp/none.py to none.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp/neutron.py to neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd/status.py to status.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd/dbsync.py to dbsync.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd/conductor.py to conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd/api.py to api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/cmd/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/version.py to version.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/task_manager.py to task_manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/steps.py to steps.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/notification_utils.py to notification_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/manager.py to manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/base_manager.py to base_manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/allocations.py to allocations.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/wsgi.py to wsgi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/hooks.py to hooks.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/expose.py to expose.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/config.py to config.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/app.py to app.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/version.py to version.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/root.py to root.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/link.py to link.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/volume.py to volume.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/versions.py to versions.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/types.py to types.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/state.py to state.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/port.py to port.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/node.py to node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/event.py to event.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/driver.py to driver.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/conductor.py to conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/collection.py to collection.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/allocation.py to allocation.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware/auth_token.py to auth_token.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/xclarity.py to xclarity.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/snmp.py to snmp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/redfish.py to redfish.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/irmc.py to irmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/ipmi.py to ipmi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/intel_ipmi.py to intel_ipmi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/ilo.py to ilo.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/ibmc.py to ibmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/hardware_type.py to hardware_type.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/generic.py to generic.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/fake_hardware.py to fake_hardware.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/drac.py to drac.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/inspect.py to inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish/boot.py to boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network/noop.py to noop.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network/common.py to common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network/flat.py to flat.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/raid.py to raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/inspect.py to inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/common.py to common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/boot.py to boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/raid.py to raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/job.py to job.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/common.py to common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/raid.py to raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/console.py to console.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/common.py to common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/snmp.py to snmp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/pxe_base.py to pxe_base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/noop_mgmt.py to noop_mgmt.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/noop.py to noop.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/iscsi_deploy.py to iscsi_deploy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ipmitool.py to ipmitool.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/inspect_utils.py to inspect_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/image_cache.py to image_cache.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/fake.py to fake.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/deploy_utils.py to deploy_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/console_utils.py to console_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/boot_mode_utils.py to boot_mode_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/agent_client.py to agent_client.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/agent_base_vendor.py to agent_base_vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/agent.py to agent.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/inspector.py to inspector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ipxe.py to ipxe.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/pxe.py to pxe.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage/external.py to external.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/vendor.py to vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/mappings.py to mappings.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/functional/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/test_base.py to test_base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/stubs.py to stubs.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_nova.py to test_nova.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_json_rpc.py to test_json_rpc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd/test_status.py to test_status.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_trait.py to test_trait.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_port.py to test_port.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_objects.py to test_objects.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_notification.py to test_notification.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_node.py to test_node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_fields.py to test_fields.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_deploy_template.py to test_deploy_template.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/test_allocation.py to test_allocation.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_node_tags.py to test_node_tags.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_deploy_templates.py to test_deploy_templates.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_conductor.py to test_conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_chassis.py to test_chassis.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_bios_settings.py to test_bios_settings.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_api.py to test_api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/test_allocations.py to test_allocations.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py to third_party_driver_mocks.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/third_party_driver_mock_specs.py to third_party_driver_mock_specs.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_xclarity.py to test_xclarity.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_snmp.py to test_snmp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_ibmc.py to test_ibmc.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/test_base.py to test_base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py to test_vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ibmc/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py to test_raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_job.py to test_job.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py to test_bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/drac/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py to test_intel_ipmi.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_snmp.py to test_snmp.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py to test_noop_mgmt.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_noop.py to test_noop.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py to test_iscsi_deploy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_ipmitool.py to test_ipmitool.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_inspect_utils.py to test_inspect_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_image_cache.py to test_image_cache.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_deploy_utils.py to test_deploy_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_console_utils.py to test_console_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py to test_boot_mode_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_agent_client.py to test_agent_client.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py to test_agent_base_vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_inspector.py to test_inspector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_ipxe.py to test_ipxe.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/test_pxe.py to test_pxe.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py to test_vendor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_raid.py to test_raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_inspect.py to test_inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py to test_firmware_processor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_console.py to test_console.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_common.py to test_common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py to test_inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py to test_bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/redfish/test_boot.py to test_boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_power.py to test_power.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_management.py to test_management.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_boot.py to test_boot.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py to test_bios.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_event.py to test_event.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_deploy_template.py to test_deploy_template.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_conductor.py to test_conductor.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/test_allocation.py to test_allocation.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/utils.py to utils.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_proxy_middleware.py to test_proxy_middleware.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/base.py to base.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-36.pyc writing byte-compilation script '/tmp/tmpjp8eg3oi.py' /usr/bin/python3 /tmp/tmpjp8eg3oi.py removing /tmp/tmpjp8eg3oi.py running install_data creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic copying etc/ironic/rootwrap.conf -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-images.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-lib.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-utils.filters -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ running install_egg_info running egg_info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing top-level names to ironic.egg-info/top_level.txt [pbr] Reusing existing SOURCES.txt Copying ironic.egg-info to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic-13.0.3.dev5-py3.6.egg-info running install_scripts Installing ironic-api script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin Installing ironic-conductor script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin Installing ironic-dbsync script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin Installing ironic-rootwrap script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin Installing ironic-status script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin Installing ironic-api-wsgi script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/bin /usr/lib/python3.6/site-packages/pbr/packaging.py:435: EasyInstallDeprecationWarning: Use get_header header = easy_install.get_script_header("", executable, is_wininst) + install -p -D -m 644 /builddir/build/SOURCES/ironic.logrotate /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-api.service /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/systemd/system + install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-conductor.service /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/etc/sudoers.d + install -p -D -m 440 /builddir/build/SOURCES/ironic-rootwrap-sudoers /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=. + PYTHONPATH=. + oslo-config-generator-3 --config-file tools/config/ironic-config-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64//etc/ironic/ironic.conf + oslopolicy-sample-generator-3 --config-file tools/policy/ironic-policy-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64//etc/ironic/policy.json + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-images.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-lib.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/etc/ironic + install -p -D -m 640 /builddir/build/SOURCES/ironic-dist.conf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64//usr/share/ironic/ironic-dist.conf + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 13.0.3-0.20191217040142.3e39d7b.el8 --unique-debug-suffix -13.0.3-0.20191217040142.3e39d7b.el8.x86_64 --unique-debug-src-base openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/ironic-13.0.3.dev5 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile 1 Bytecompiling .py files below /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6 using /usr/libexec/platform-python + /usr/lib/rpm/brp-python-hardlink + PYTHON3=/usr/bin/python3 + /usr/lib/rpm/redhat/brp-mangle-shebangs Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.cmp1Ac + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev5 + PYTHON=python3 + stestr-3 run 2020-05-05 00:01:17.607 5006 INFO keyring.backend [-] Loading KWallet 2020-05-05 00:01:17.607 5007 INFO keyring.backend [-] Loading KWallet 2020-05-05 00:01:17.628 5006 INFO keyring.backend [-] Loading SecretService 2020-05-05 00:01:17.628 5007 INFO keyring.backend [-] Loading SecretService 2020-05-05 00:01:17.642 5006 INFO keyring.backend [-] Loading Windows 2020-05-05 00:01:17.641 5007 INFO keyring.backend [-] Loading Windows 2020-05-05 00:01:17.645 5007 INFO keyring.backend [-] Loading chainer 2020-05-05 00:01:17.647 5007 INFO keyring.backend [-] Loading macOS 2020-05-05 00:01:17.648 5006 INFO keyring.backend [-] Loading chainer 2020-05-05 00:01:17.651 5006 INFO keyring.backend [-] Loading macOS 2020-05-05 00:01:21.910 5007 INFO alembic.runtime.migration [req-58c69163-eed8-4f05-9714-a5a59940b532 - - - - -] Context impl SQLiteImpl. 2020-05-05 00:01:21.915 5007 INFO alembic.runtime.migration [req-58c69163-eed8-4f05-9714-a5a59940b532 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 2020-05-05 00:01:22.135 5006 INFO alembic.runtime.migration [req-826ab981-48d2-41e0-9c8b-e407e151984e - - - - -] Context impl SQLiteImpl. 2020-05-05 00:01:22.142 5006 INFO alembic.runtime.migration [req-826ab981-48d2-41e0-9c8b-e407e151984e - - - - -] Will assume non-transactional DDL. {1} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.505872s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.019604s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.018543s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.018771s] ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.019504s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.428707s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestAllocationObject.test_allocation_init [0.012137s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.018935s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.022081s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.018402s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.019921s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.019208s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.017437s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.018462s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.156036s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.071523s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.139583s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.082715s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.059791s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.041318s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.077869s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.073632s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.048520s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.040432s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.040209s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.047732s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.084004s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.077039s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.037626s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.080077s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.110544s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.239637s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.232077s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.076117s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.115744s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.088158s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.084677s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.072733s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.088905s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.070871s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.038314s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.056872s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.047279s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.072239s] ... ok GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/allocations/71a4c5fe-4d37-461b-9d8a-7961d6ecbefd GOT:Response: 204 No Content Openstack-Request-Id: req-4a92ed32-ac62-4b9f-ba1e-fe5067cb7e33 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/allocations/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-98db892d-e58b-4684-8936-57fb2940a69d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 204 No Content Openstack-Request-Id: req-94cce883-05fa-4a65-9de9-12e7525290ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/allocations/832c031b-ea92-4f0f-9d27-06a7ecc44d4f GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/allocations/204d5749-74b8-4c57-b2db-f83cebf23254 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1c156d39-286c-46c9-a4cf-da384adc9942 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/node/6912fc8d-8e8c-4fba-9746-57cf5003287b/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '8453d39f-4aec-437f-8948-3db13a907c1a', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/8453d39f-4aec-437f-8948-3db13a907c1a', 'rel': 'self'}, {'href': 'http://localhost/allocations/8453d39f-4aec-437f-8948-3db13a907c1a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.919796+00:00', 'updated_at': None}, {'uuid': 'a662e8f2-48e3-4b0c-ba03-0e8d2a89f6a5', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/a662e8f2-48e3-4b0c-ba03-0e8d2a89f6a5', 'rel': 'self'}, {'href': 'http://localhost/allocations/a662e8f2-48e3-4b0c-ba03-0e8d2a89f6a5', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.922467+00:00', 'updated_at': None}, {'uuid': '9cf4ba51-75ae-4cc1-a76d-2c6ddbf46441', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/9cf4ba51-75ae-4cc1-a76d-2c6ddbf46441', 'rel': 'self'}, {'href': 'http://localhost/allocations/9cf4ba51-75ae-4cc1-a76d-2c6ddbf46441', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.925106+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=9cf4ba51-75ae-4cc1-a76d-2c6ddbf46441'} GET: /v1/allocations?node=banana {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39c81f7b-5f3b-4e2e-99f5-655b67141d53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} GET: /v1/allocations?state=allocating {} GOT:{'allocations': [{'uuid': 'ac50d0b9-7af4-40ab-ba91-8b3505955ed5', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/ac50d0b9-7af4-40ab-ba91-8b3505955ed5', 'rel': 'self'}, {'href': 'http://localhost/allocations/ac50d0b9-7af4-40ab-ba91-8b3505955ed5', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.240664+00:00', 'updated_at': None}, {'uuid': '8b3e3e85-7870-45b1-8925-cdc126be68f9', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/8b3e3e85-7870-45b1-8925-cdc126be68f9', 'rel': 'self'}, {'href': 'http://localhost/allocations/8b3e3e85-7870-45b1-8925-cdc126be68f9', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.243336+00:00', 'updated_at': None}, {'uuid': '2f029580-7241-4675-a9fb-2fee31072e11', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/2f029580-7241-4675-a9fb-2fee31072e11', 'rel': 'self'}, {'href': 'http://localhost/allocations/2f029580-7241-4675-a9fb-2fee31072e11', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.246050+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} GOT:{'extra': {}, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/a8221d15-7592-4775-bed6-1fe1a2c9ec56', 'rel': 'self'}, {'href': 'http://localhost/allocations/a8221d15-7592-4775-bed6-1fe1a2c9ec56', 'rel': 'bookmark'}]} GET: /v1/allocations/b6f2ccd2-b3f6-4a6a-8564-f4bfb90c2266?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-179896ed-cfa0-4ce9-8d73-212782a7786b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/allocations/26a356ac-7dd2-4245-8ed9-a44276d9ffac?fields=resource_class,extra {} GOT:{'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/26a356ac-7dd2-4245-8ed9-a44276d9ffac', 'rel': 'self'}, {'href': 'http://localhost/allocations/26a356ac-7dd2-4245-8ed9-a44276d9ffac', 'rel': 'bookmark'}], 'resource_class': 'baremetal'} GET: /v1/allocations/06545c4e-4a6d-4389-8ea5-026644ca4a43 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/f6987709-01b1-4c38-8e4d-9625c67e33e7.json {} GOT:{'uuid': 'f6987709-01b1-4c38-8e4d-9625c67e33e7', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/f6987709-01b1-4c38-8e4d-9625c67e33e7', 'rel': 'self'}, {'href': 'http://localhost/allocations/f6987709-01b1-4c38-8e4d-9625c67e33e7', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.590059+00:00', 'updated_at': None} GET: /v1/allocations/6e37a329-bc02-48dc-9285-676eab890daf {} GOT:{'uuid': '6e37a329-bc02-48dc-9285-676eab890daf', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/allocations/6e37a329-bc02-48dc-9285-676eab890daf', 'rel': 'self'}, {'href': 'http://localhost/allocations/6e37a329-bc02-48dc-9285-676eab890daf', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.662403+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.081580s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.306432s] ... ok DELETE: /v1/allocations/alloc1 GOT:Response: 204 No Content Openstack-Request-Id: req-058d7236-622b-4b2e-9bd9-49d43c64469c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/allocations/alloc1.json GOT:Response: 204 No Content Openstack-Request-Id: req-8c9657b8-c2a2-45c2-8a4a-c663adc8b78e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/nodes/5e23bbbb-5130-4acc-a532-68474417503e/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-06744e1f-33e8-40c5-97a0-02ca301d6159 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 5e23bbbb-5130-4acc-a532-68474417503e was not found\", \"debuginfo\": null}"} DELETE: /v1/allocations/ba!na!na1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/nodes/bd9fade0-e520-4c13-8a9e-6c1527518845/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0f01e09-cd62-414e-96a0-cb290ab0efa9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node bd9fade0-e520-4c13-8a9e-6c1527518845 could not be found.\", \"debuginfo\": null}"} GET: /v1/allocations {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/node/fc8ec711-b5de-44e4-8747-321aa272adb9/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations/?limit=3 {} GOT:{'allocations': [{'uuid': 'ce3a3005-d7be-4c6f-aeeb-a4510f080651', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/ce3a3005-d7be-4c6f-aeeb-a4510f080651', 'rel': 'self'}, {'href': 'http://localhost/allocations/ce3a3005-d7be-4c6f-aeeb-a4510f080651', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.823552+00:00', 'updated_at': None}, {'uuid': '0736fee1-d73d-4fe9-a813-dd478c732ca1', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/0736fee1-d73d-4fe9-a813-dd478c732ca1', 'rel': 'self'}, {'href': 'http://localhost/allocations/0736fee1-d73d-4fe9-a813-dd478c732ca1', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.826244+00:00', 'updated_at': None}, {'uuid': '2ab71e8c-3f53-4d11-8767-41797aa43508', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/2ab71e8c-3f53-4d11-8767-41797aa43508', 'rel': 'self'}, {'href': 'http://localhost/allocations/2ab71e8c-3f53-4d11-8767-41797aa43508', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:22.828849+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=2ab71e8c-3f53-4d11-8767-41797aa43508'} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': '1b7a1b8f-18ad-40bb-b52c-0a65c52a6ac8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/1b7a1b8f-18ad-40bb-b52c-0a65c52a6ac8', 'rel': 'self'}, {'href': 'http://localhost/allocations/1b7a1b8f-18ad-40bb-b52c-0a65c52a6ac8', 'rel': 'bookmark'}]}, {'uuid': '223126dd-b98c-476d-a65f-c95a26b8caa5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/223126dd-b98c-476d-a65f-c95a26b8caa5', 'rel': 'self'}, {'href': 'http://localhost/allocations/223126dd-b98c-476d-a65f-c95a26b8caa5', 'rel': 'bookmark'}]}, {'uuid': 'f3a990f6-1b63-45ad-8beb-c6d060236c56', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/f3a990f6-1b63-45ad-8beb-c6d060236c56', 'rel': 'self'}, {'href': 'http://localhost/allocations/f3a990f6-1b63-45ad-8beb-c6d060236c56', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=f3a990f6-1b63-45ad-8beb-c6d060236c56'} GET: /v1/allocations {} GOT:{'allocations': []} GET: /v1/allocations?node=node-1 {} GOT:{'allocations': [{'uuid': '0fbf202a-d723-40c8-84b1-6f2abd3b7dd7', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/0fbf202a-d723-40c8-84b1-6f2abd3b7dd7', 'rel': 'self'}, {'href': 'http://localhost/allocations/0fbf202a-d723-40c8-84b1-6f2abd3b7dd7', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.249062+00:00', 'updated_at': None}, {'uuid': '14de49b1-ede5-486d-acf6-e1fd8ccaeb06', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/14de49b1-ede5-486d-acf6-e1fd8ccaeb06', 'rel': 'self'}, {'href': 'http://localhost/allocations/14de49b1-ede5-486d-acf6-e1fd8ccaeb06', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.251810+00:00', 'updated_at': None}, {'uuid': '1c2ee5bd-2d24-4932-9c0e-e8cdaf93dc6b', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/1c2ee5bd-2d24-4932-9c0e-e8cdaf93dc6b', 'rel': 'self'}, {'href': 'http://localhost/allocations/1c2ee5bd-2d24-4932-9c0e-e8cdaf93dc6b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.254364+00:00', 'updated_at': None}]} GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'allocations': [{'uuid': '5ee117bd-23c3-41a1-aca2-6f7c00774bdf', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5ee117bd-23c3-41a1-aca2-6f7c00774bdf', 'rel': 'self'}, {'href': 'http://localhost/allocations/5ee117bd-23c3-41a1-aca2-6f7c00774bdf', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.366301+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:{'uuid': '1e1f58ec-a05d-4d8f-9b88-6d8c6d8e315a', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/1e1f58ec-a05d-4d8f-9b88-6d8c6d8e315a', 'rel': 'self'}, {'href': 'http://localhost/allocations/1e1f58ec-a05d-4d8f-9b88-6d8c6d8e315a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.453320+00:00', 'updated_at': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/7ea7ed8a-cb14-46cf-940e-742308d45534 {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': 'd5099f44-5393-4546-8ecd-f74e2375576d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/d5099f44-5393-4546-8ecd-f74e2375576d', 'rel': 'self'}, {'href': 'http://localhost/allocations/d5099f44-5393-4546-8ecd-f74e2375576d', 'rel': 'bookmark'}]}, {'uuid': 'eaa10a56-5b14-46f4-801a-e5036df32a03', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/eaa10a56-5b14-46f4-801a-e5036df32a03', 'rel': 'self'}, {'href': 'http://localhost/allocations/eaa10a56-5b14-46f4-801a-e5036df32a03', 'rel': 'bookmark'}]}, {'uuid': 'a9cf2de9-bd10-4683-afc3-a5d3757d7239', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/a9cf2de9-bd10-4683-afc3-a5d3757d7239', 'rel': 'self'}, {'href': 'http://localhost/allocations/a9cf2de9-bd10-4683-afc3-a5d3757d7239', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.105476s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.176283s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.096450s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.042563s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.117550s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.174933s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.073375s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.129101s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.051329s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.104237s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.070969s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.151939s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.051747s] ... ok GET: /v1/allocations/c3442101-8417-4cc1-bd72-bf33e8070083 {} GOT:{'uuid': 'c3442101-8417-4cc1-bd72-bf33e8070083', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'self'}, {'href': 'http://localhost/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.762914+00:00', 'updated_at': None} GET: /v1/allocations/c3442101-8417-4cc1-bd72-bf33e8070083 {} GOT:{'uuid': 'c3442101-8417-4cc1-bd72-bf33e8070083', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'self'}, {'href': 'http://localhost/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.762914+00:00', 'updated_at': None} GET: /allocations/c3442101-8417-4cc1-bd72-bf33e8070083 {} GOT:{'uuid': 'c3442101-8417-4cc1-bd72-bf33e8070083', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'self'}, {'href': 'http://localhost/allocations/c3442101-8417-4cc1-bd72-bf33e8070083', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.762914+00:00', 'updated_at': None} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '2930ca7c-a37a-4648-aa4a-61240832ea67', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/2930ca7c-a37a-4648-aa4a-61240832ea67', 'rel': 'self'}, {'href': 'http://localhost/allocations/2930ca7c-a37a-4648-aa4a-61240832ea67', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.099571+00:00', 'updated_at': None}, {'uuid': 'b5428191-de52-4d43-92fe-a6f343c5d908', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/b5428191-de52-4d43-92fe-a6f343c5d908', 'rel': 'self'}, {'href': 'http://localhost/allocations/b5428191-de52-4d43-92fe-a6f343c5d908', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.103025+00:00', 'updated_at': None}, {'uuid': '04193111-2298-4240-877a-8173e6594526', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/04193111-2298-4240-877a-8173e6594526', 'rel': 'self'}, {'href': 'http://localhost/allocations/04193111-2298-4240-877a-8173e6594526', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.106543+00:00', 'updated_at': None}, {'uuid': '08e5a008-43ad-487a-9a1c-0e06f771a8b9', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/08e5a008-43ad-487a-9a1c-0e06f771a8b9', 'rel': 'self'}, {'href': 'http://localhost/allocations/08e5a008-43ad-487a-9a1c-0e06f771a8b9', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.109138+00:00', 'updated_at': None}, {'uuid': '1d5ed90c-df44-4cde-a908-dd99032be44a', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation4', 'links': [{'href': 'http://localhost/v1/allocations/1d5ed90c-df44-4cde-a908-dd99032be44a', 'rel': 'self'}, {'href': 'http://localhost/allocations/1d5ed90c-df44-4cde-a908-dd99032be44a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.112258+00:00', 'updated_at': None}]} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '7410f8a1-77bf-420a-8500-8b2ecc876ed9', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/7410f8a1-77bf-420a-8500-8b2ecc876ed9', 'rel': 'self'}, {'href': 'http://localhost/allocations/7410f8a1-77bf-420a-8500-8b2ecc876ed9', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.228216+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=uuid {} GOT:{'allocations': [{'uuid': '78c6cd23-7b3b-414d-935b-a45f5e4796e8', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/78c6cd23-7b3b-414d-935b-a45f5e4796e8', 'rel': 'self'}, {'href': 'http://localhost/allocations/78c6cd23-7b3b-414d-935b-a45f5e4796e8', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.302720+00:00', 'updated_at': None}, {'uuid': 'd4e794dd-06e3-4235-847e-631570229fa8', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/d4e794dd-06e3-4235-847e-631570229fa8', 'rel': 'self'}, {'href': 'http://localhost/allocations/d4e794dd-06e3-4235-847e-631570229fa8', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.305426+00:00', 'updated_at': None}, {'uuid': 'ee38d285-15eb-4d46-8268-f144d3446c95', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/ee38d285-15eb-4d46-8268-f144d3446c95', 'rel': 'self'}, {'href': 'http://localhost/allocations/ee38d285-15eb-4d46-8268-f144d3446c95', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.308072+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=name {} GOT:{'allocations': [{'uuid': '02ec7495-4fa6-4ced-a749-245f7a4d04be', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/02ec7495-4fa6-4ced-a749-245f7a4d04be', 'rel': 'self'}, {'href': 'http://localhost/allocations/02ec7495-4fa6-4ced-a749-245f7a4d04be', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.412338+00:00', 'updated_at': None}, {'uuid': '281d88d4-c5e9-45d4-94ac-e32d10d93774', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/281d88d4-c5e9-45d4-94ac-e32d10d93774', 'rel': 'self'}, {'href': 'http://localhost/allocations/281d88d4-c5e9-45d4-94ac-e32d10d93774', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.409721+00:00', 'updated_at': None}, {'uuid': '5cc740bc-a010-435a-971a-24e324a8fe8b', 'extra': {}, 'node_uuid': None, 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/5cc740bc-a010-435a-971a-24e324a8fe8b', 'rel': 'self'}, {'href': 'http://localhost/allocations/5cc740bc-a010-435a-971a-24e324a8fe8b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.406992+00:00', 'updated_at': None}]} PATCH: /v1/allocations/ee8d7d6c-a568-488c-aa59-2d5fe05a07a2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.115837s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.134409s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.060779s] ... ok GET: /v1/allocations?fields=node_uuid&limit=2 {} GOT:{'allocations': [{'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/707318ca-a1a1-4c48-a359-c53b4636b953', 'rel': 'self'}, {'href': 'http://localhost/allocations/707318ca-a1a1-4c48-a359-c53b4636b953', 'rel': 'bookmark'}]}, {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/884bdfb7-a67c-46a6-ae61-56dc346e4881', 'rel': 'self'}, {'href': 'http://localhost/allocations/884bdfb7-a67c-46a6-ae61-56dc346e4881', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=node_uuid&limit=2&marker=884bdfb7-a67c-46a6-ae61-56dc346e4881'} GET: /v1/allocations/3ccc3b89-e62f-4acd-b9e6-a8bd391b47b2 {} GOT:{'uuid': '3ccc3b89-e62f-4acd-b9e6-a8bd391b47b2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/3ccc3b89-e62f-4acd-b9e6-a8bd391b47b2', 'rel': 'self'}, {'href': 'http://localhost/allocations/3ccc3b89-e62f-4acd-b9e6-a8bd391b47b2', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:23.957251+00:00', 'updated_at': None} GET: /v1/allocations/ba!na!na! {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/17ba3528-96e1-4dfd-b850-8e5d28344833 {} GOT:{'uuid': '17ba3528-96e1-4dfd-b850-8e5d28344833', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/allocations/17ba3528-96e1-4dfd-b850-8e5d28344833', 'rel': 'self'}, {'href': 'http://localhost/allocations/17ba3528-96e1-4dfd-b850-8e5d28344833', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.120096+00:00', 'updated_at': None} GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c457d2f8-d225-4fea-88be-f43bdf68378d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f5439d7-ef41-41c0-9fd2-1cfa2649508d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dc963c0f-f5af-43c0-baf4-69d22d69c971 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-790ed42b-1697-4539-bc6a-7d3e586b6af2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/allocations/bb045467-4379-425f-b7d9-b7093318e843 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca148cd2-5a25-4c45-a459-3df4823b394a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update /foo in an allocation. Only 'name' and 'extra' are allowed to be updated.\", \"debuginfo\": null}"} PATCH: /v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7577083f-d32c-4a4c-b5d2-b43f354f1464 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "extra": {"foo1": "bar1", "foo3": "bar3"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "rel": "self"}, {"href": "http://localhost/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.371057+00:00", "updated_at": "2020-05-05T00:01:24.408880+00:00"} GET: /v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab {} GOT:{'uuid': 'ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'rel': 'self'}, {'href': 'http://localhost/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.371057+00:00', 'updated_at': '2020-05-05T00:01:24.408880+00:00'} PATCH: /v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4fd9e84-d581-48f7-abc9-5e1c5e3a1f7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "rel": "self"}, {"href": "http://localhost/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.371057+00:00", "updated_at": "2020-05-05T00:01:24.467001+00:00"} GET: /v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab {} GOT:{'uuid': 'ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'rel': 'self'}, {'href': 'http://localhost/allocations/ecc557b7-7561-40aa-8a5a-3d9a5f5f44ab', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.371057+00:00', 'updated_at': '2020-05-05T00:01:24.467001+00:00'} PATCH: /v1/allocations/90d1130d-0fa7-4a71-adc0-34f2304b9e7d [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f304a147-dae3-4f8d-9886-da3189fb5f2a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/allocations/5fa72d9d-9e09-4689-bd31-2800282af926 [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86613c65-385c-4f15-8801-8bb935e03c71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.055208s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.218774s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.129939s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.087385s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.062477s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.090090s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.051594s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.056716s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.055584s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.084127s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.119291s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.048588s] ... ok PATCH: /v1/allocations/7717a715-4371-4250-b095-06b72f63ee65 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-322745d7-b449-4b39-9a20-69abe040ef3b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7717a715-4371-4250-b095-06b72f63ee65", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/7717a715-4371-4250-b095-06b72f63ee65", "rel": "self"}, {"href": "http://localhost/allocations/7717a715-4371-4250-b095-06b72f63ee65", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.630416+00:00", "updated_at": "2020-05-05T00:01:24.739550+00:00"} GET: /v1/allocations/7717a715-4371-4250-b095-06b72f63ee65 {} GOT:{'uuid': '7717a715-4371-4250-b095-06b72f63ee65', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/7717a715-4371-4250-b095-06b72f63ee65', 'rel': 'self'}, {'href': 'http://localhost/allocations/7717a715-4371-4250-b095-06b72f63ee65', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.630416+00:00', 'updated_at': '2020-05-05T00:01:24.739550+00:00'} PATCH: /v1/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70 [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93897a1e-84cf-4c18-830b-0d0ba450bced X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "35f03248-ac7e-449b-b7d4-36afd46b5a70", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70", "rel": "self"}, {"href": "http://localhost/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.846622+00:00", "updated_at": null} GET: /v1/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70 {} GOT:{'uuid': '35f03248-ac7e-449b-b7d4-36afd46b5a70', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70', 'rel': 'self'}, {'href': 'http://localhost/allocations/35f03248-ac7e-449b-b7d4-36afd46b5a70', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.846622+00:00', 'updated_at': None} PATCH: /v1/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73 [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8431633b-f06a-4b36-a72c-db550bb764a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "239e2dda-2e65-42d1-a2f4-ab0f40900d73", "extra": {}, "node_uuid": null, "name": "test", "links": [{"href": "http://localhost/v1/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73", "rel": "self"}, {"href": "http://localhost/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.934329+00:00", "updated_at": "2000-01-01T00:00:00+00:00"} GET: /v1/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73 {} GOT:{'uuid': '239e2dda-2e65-42d1-a2f4-ab0f40900d73', 'extra': {}, 'node_uuid': None, 'name': 'test', 'links': [{'href': 'http://localhost/v1/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73', 'rel': 'self'}, {'href': 'http://localhost/allocations/239e2dda-2e65-42d1-a2f4-ab0f40900d73', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.934329+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cc0009f7-3d4d-4c7e-890b-b404df43b536', 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48692840-28b3-41ae-a56a-33809d9d8e48 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.57 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a6989da4-b6f8-4edd-acf4-7dc28ff65b94'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94 Openstack-Request-Id: req-79d6d590-5c8d-45a3-825e-770ecbd54d2d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a6989da4-b6f8-4edd-acf4-7dc28ff65b94", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94", "rel": "self"}, {"href": "http://localhost/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94 {} GOT:{'uuid': 'a6989da4-b6f8-4edd-acf4-7dc28ff65b94', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94', 'rel': 'self'}, {'href': 'http://localhost/allocations/a6989da4-b6f8-4edd-acf4-7dc28ff65b94', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '19745f1e-6e2b-4e97-8be6-e4bca68e6c5d'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c16e8bfa-8e2a-4637-b999-21966e62021c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e68bd39d-4580-4666-9b88-04e667ad2fea'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea Openstack-Request-Id: req-b5669776-a912-499d-9db0-6c424dda19b8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "e68bd39d-4580-4666-9b88-04e667ad2fea", "extra": {"foo": 123}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea", "rel": "self"}, {"href": "http://localhost/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.243146+00:00", "updated_at": null} GET: /v1/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea {} GOT:{'uuid': 'e68bd39d-4580-4666-9b88-04e667ad2fea', 'extra': {'foo': 123}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea', 'rel': 'self'}, {'href': 'http://localhost/allocations/e68bd39d-4580-4666-9b88-04e667ad2fea', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.243146+00:00', 'updated_at': None} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c290037-3b0b-4c14-bd3a-3430434a45f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "ee8d7d6c-a568-488c-aa59-2d5fe05a07a2", "extra": {"foo": "bar"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/ee8d7d6c-a568-488c-aa59-2d5fe05a07a2", "rel": "self"}, {"href": "http://localhost/allocations/ee8d7d6c-a568-488c-aa59-2d5fe05a07a2", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.471469+00:00", "updated_at": "2020-05-05T00:01:24.553693+00:00"} PATCH: /v1/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75e2009d-4e9c-484a-9c99-08a5c63642ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "fb34bda7-d443-44dd-8c3a-add7a4afcd69", "extra": {"foo1": "bar1", "foo2": "bar2"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69", "rel": "self"}, {"href": "http://localhost/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.623492+00:00", "updated_at": "2020-05-05T00:01:24.669358+00:00"} GET: /v1/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69 {} GOT:{'uuid': 'fb34bda7-d443-44dd-8c3a-add7a4afcd69', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69', 'rel': 'self'}, {'href': 'http://localhost/allocations/fb34bda7-d443-44dd-8c3a-add7a4afcd69', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.623492+00:00', 'updated_at': '2020-05-05T00:01:24.669358+00:00'} PATCH: /v1/allocations/b0e7c1d6-017b-46d6-a3c6-3d73a07ad097 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6f5dd92-1420-4990-922c-25c6e395d91e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e [{'path': '/extra/a', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d124f7b-d184-4d74-85ad-3649e9b5c7ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "5cd367d1-d237-42cb-a5c2-406dd5c13d8e", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e", "rel": "self"}, {"href": "http://localhost/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:24.820334+00:00", "updated_at": "2020-05-05T00:01:24.861509+00:00"} GET: /v1/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e {} GOT:{'uuid': '5cd367d1-d237-42cb-a5c2-406dd5c13d8e', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e', 'rel': 'self'}, {'href': 'http://localhost/allocations/5cd367d1-d237-42cb-a5c2-406dd5c13d8e', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:24.820334+00:00', 'updated_at': '2020-05-05T00:01:24.861509+00:00'} PATCH: /v1/allocations/429d23b3-388d-4d66-acbb-34aa6400325b [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-21e12fac-7683-4921-a231-54d6a4a005e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} PATCH: /v1/allocations/733b5327-7ffa-48da-bb00-d41d0e46fa3e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-dca68aa5-8e2b-427c-9ba1-0d591292dc11 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\", \"debuginfo\": null}"} PATCH: /v1/allocations/63165548-07cb-4f24-9f7d-6b42b46d343f [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fa9cac2f-86f6-45e0-9b97-18cc57b201ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 63165548-07cb-4f24-9f7d-6b42b46d343f could not be found.\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '48de2456-2565-4e2d-a58f-5de8af82ab48', 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48 Openstack-Request-Id: req-ea636de4-e3bd-42ad-9d78-ed03b81623c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "48de2456-2565-4e2d-a58f-5de8af82ab48", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48", "rel": "self"}, {"href": "http://localhost/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.133479+00:00", "updated_at": null} GET: /v1/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48 {} GOT:{'uuid': '48de2456-2565-4e2d-a58f-5de8af82ab48', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48', 'rel': 'self'}, {'href': 'http://localhost/allocations/48de2456-2565-4e2d-a58f-5de8af82ab48', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.133479+00:00', 'updated_at': None} POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/71dbe58b-1476-4332-8321-9155f571fbf7 Openstack-Request-Id: req-7da5bb02-148d-48d1-a469-874644c8a2ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "71dbe58b-1476-4332-8321-9155f571fbf7", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/71dbe58b-1476-4332-8321-9155f571fbf7", "rel": "self"}, {"href": "http://localhost/allocations/71dbe58b-1476-4332-8321-9155f571fbf7", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "bm-super", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.256637+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.186325s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.130908s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.080737s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.118387s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.058518s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.054394s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.093624s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.047468s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.152450s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.078800s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.114566s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.046906s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.050850s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.082799s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.050838s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.070526s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.107901s] ... ok POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': []} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029 Openstack-Request-Id: req-c9cfcbd8-745d-4184-8e8e-4e27ac2ecbdb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029", "rel": "self"}, {"href": "http://localhost/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.330649+00:00", "updated_at": null} GET: /v1/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029 {} GOT:{'uuid': '7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029', 'rel': 'self'}, {'href': 'http://localhost/allocations/7488b0e7-b5b0-48f0-a8a5-81c9c4fb5029', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.330649+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '97a3e501-80b2-4453-9064-a4c811297758'} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c08a59a3-71f5-46a1-95e4-3a7d19f046ba'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ebb3a092-e9d7-47f8-ab5d-15063a6dbea6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '768d7590-665e-417f-9bd7-99e029cf12f8'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7733950b-4599-4653-88a3-5bec9d229393 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '0fdf8209-a112-4017-95e9-57b406ccc7f0'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a912f9a0-4d49-4ce1-993c-8aeee2f66c22 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fbc06581-eae8-4fab-8741-5eb8064f6c8d'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d Openstack-Request-Id: req-a11548ac-e286-45d6-84f9-eecd9602c437 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "fbc06581-eae8-4fab-8741-5eb8064f6c8d", "extra": {}, "node_uuid": null, "name": "foo", "links": [{"href": "http://localhost/v1/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d", "rel": "self"}, {"href": "http://localhost/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.697703+00:00", "updated_at": null} GET: /v1/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d {} GOT:{'uuid': 'fbc06581-eae8-4fab-8741-5eb8064f6c8d', 'extra': {}, 'node_uuid': None, 'name': 'foo', 'links': [{'href': 'http://localhost/v1/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d', 'rel': 'self'}, {'href': 'http://localhost/allocations/fbc06581-eae8-4fab-8741-5eb8064f6c8d', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.697703+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '9eaf425f-d066-4e1e-8337-4093dd01515c'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae3a3beb-e869-42f5-b52c-7b44d55fd94c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874 Openstack-Request-Id: req-4eff540f-3bc4-4517-be6f-bed1b48092d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874", "rel": "self"}, {"href": "http://localhost/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.824640+00:00", "updated_at": null} GET: /v1/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874 {} GOT:{'uuid': 'f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874', 'rel': 'self'}, {'href': 'http://localhost/allocations/f7bffbf3-be9d-45c6-a9ae-fab8d2e7d874', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.824640+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '408cd375-85ed-4ed2-9992-c5aed14d1e96'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96 Openstack-Request-Id: req-b20aa88a-cdc6-4256-9aa8-692c76d47333 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "408cd375-85ed-4ed2-9992-c5aed14d1e96", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96", "rel": "self"}, {"href": "http://localhost/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "created_at": "2020-05-05T00:01:25.907943+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.079801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.077106s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.140490s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.054116s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.059416s] ... ok GET: /v1/allocations/71dbe58b-1476-4332-8321-9155f571fbf7 {} GOT:{'uuid': '71dbe58b-1476-4332-8321-9155f571fbf7', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/71dbe58b-1476-4332-8321-9155f571fbf7', 'rel': 'self'}, {'href': 'http://localhost/allocations/71dbe58b-1476-4332-8321-9155f571fbf7', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'bm-super', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.256637+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f7967bb6-dbd3-4e60-b7d4-a325bef7043d', 'node': '70d56e5a-dfe0-497f-88d8-3d4d626bb399'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8822c1f7-a64a-4460-b5d3-1290714942e0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 70d56e5a-dfe0-497f-88d8-3d4d626bb399 could not be found.\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2c2d5cba-67bd-495d-918f-07aca208c602', 'node': 'backfill-me'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2c2d5cba-67bd-495d-918f-07aca208c602 Openstack-Request-Id: req-6a22549d-aa62-4cda-ad8c-1660be5f3e5f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "2c2d5cba-67bd-495d-918f-07aca208c602", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/2c2d5cba-67bd-495d-918f-07aca208c602", "rel": "self"}, {"href": "http://localhost/allocations/2c2d5cba-67bd-495d-918f-07aca208c602", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.604532+00:00", "updated_at": null} GET: /v1/allocations/2c2d5cba-67bd-495d-918f-07aca208c602 {} GOT:{'uuid': '2c2d5cba-67bd-495d-918f-07aca208c602', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/2c2d5cba-67bd-495d-918f-07aca208c602', 'rel': 'self'}, {'href': 'http://localhost/allocations/2c2d5cba-67bd-495d-918f-07aca208c602', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.604532+00:00', 'updated_at': None} POST: /v1/allocations {'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf Openstack-Request-Id: req-02789274-b9f1-4bb4-9b75-1dd31e176975 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf", "rel": "self"}, {"href": "http://localhost/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "bm-super", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:25.724196+00:00", "updated_at": null} GET: /v1/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf {} GOT:{'uuid': '31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf', 'rel': 'self'}, {'href': 'http://localhost/allocations/31f4e3ac-9b2f-4d88-b6fa-86d614a42bcf', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'bm-super', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-05-05T00:01:25.724196+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'bef6d9de-21fb-425a-b8cb-36104bee0524'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cdd4df9b-e873-4186-9e49-162c3717fb39 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b931b318-d376-45d3-965d-bb52ace3b59f'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-35b56a25-5625-4998-9efb-c5df1047361d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': 'b8ebb36a-e697-4215-9b1d-30e956b0d256'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-983bd036-b359-4339-b994-7c33fd538a16 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': ['node-1', '7a0b5d6b-f700-47aa-aec6-39d63e4672a7'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3fdf6ca2-c634-4ed7-8827-994c90e9b4e0'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0 Openstack-Request-Id: req-e6739368-85a1-453c-ab2a-e610fe2430d9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "3fdf6ca2-c634-4ed7-8827-994c90e9b4e0", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0", "rel": "self"}, {"href": "http://localhost/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "7a0b5d6b-f700-47aa-aec6-39d63e4672a7"], "traits": [], "created_at": "2020-05-05T00:01:26.032839+00:00", "updated_at": null} GET: /v1/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0 {} GOT:{'uuid': '3fdf6ca2-c634-4ed7-8827-994c90e9b4e0', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0', 'rel': 'self'}, {'href': 'http://localhost/allocations/3fdf6ca2-c634-4ed7-8827-994c90e9b4e0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '7a0b5d6b-f700-47aa-aec6-39d63e4672a7'], 'traits': [], 'created_at': '2020-05-05T00:01:26.032839+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'aad970c2-afcb-494b-aa5d-7428f9efb0de'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/aad970c2-afcb-494b-aa5d-7428f9efb0de Openstack-Request-Id: req-615e618a-3505-4ba0-81e7-f5f54101883e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "aad970c2-afcb-494b-aa5d-7428f9efb0de", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/aad970c2-afcb-494b-aa5d-7428f9efb0de", "rel": "self"}, {"href": "http://localhost/allocations/aad970c2-afcb-494b-aa5d-7428f9efb0de", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-05-05T00:01:26.133921+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.081045s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.083844s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.105529s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init [0.020912s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample [0.026762s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.109027s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.097639s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.050843s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.057143s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.068308s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.063304s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.068131s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.052156s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.067678s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.057149s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.057122s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.059648s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.054897s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.051047s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.090872s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.070177s] ... ok GET: /v1/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96 {} GOT:{'uuid': '408cd375-85ed-4ed2-9992-c5aed14d1e96', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96', 'rel': 'self'}, {'href': 'http://localhost/allocations/408cd375-85ed-4ed2-9992-c5aed14d1e96', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'created_at': '2020-05-05T00:01:25.907943+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c806e20e-ba2e-42f0-a74c-bbf01cd1d61f', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd587724-7acd-4fd3-a118-4cf392c571ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'. Cannot set read only field.\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82251653-20c0-4bad-94ee-7673c446fddc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c69a0f14-fcca-451b-9865-4e9076615673 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/chassis/detail {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.238094+00:00'}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c215355d-3263-4051-a3c1-7de80a72bfaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=False {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=False&fields=description {} GOT:{'chassis': [{'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?fields=uuid,extra {} GOT:{'chassis': [{'uuid': '7a425c0c-511b-4ba7-9017-e1a0f359113d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7a425c0c-511b-4ba7-9017-e1a0f359113d', 'rel': 'self'}, {'href': 'http://localhost/chassis/7a425c0c-511b-4ba7-9017-e1a0f359113d', 'rel': 'bookmark'}]}, {'uuid': 'dcc87d53-c0db-4511-9db1-5e7ceed7368e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/dcc87d53-c0db-4511-9db1-5e7ceed7368e', 'rel': 'self'}, {'href': 'http://localhost/chassis/dcc87d53-c0db-4511-9db1-5e7ceed7368e', 'rel': 'bookmark'}]}, {'uuid': 'bacf7739-2308-4c6e-b122-28689a419ffe', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/bacf7739-2308-4c6e-b122-28689a419ffe', 'rel': 'self'}, {'href': 'http://localhost/chassis/bacf7739-2308-4c6e-b122-28689a419ffe', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c2d39a79-8774-4d9b-9887-79de419d8594 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.649775+00:00'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} GOT:{'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]} GET: /v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f {} GOT:{'uuid': '2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.766789+00:00'} GET: /v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f {} GOT:{'uuid': '2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.766789+00:00'} GET: /chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f {} GOT:{'uuid': '2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/2f72ee29-3f91-4dcc-89a9-a97638901a9f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.766789+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.108794s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.057147s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.069686s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.103960s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.078492s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.081801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.112325s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '474c37a8-fc3e-44b7-92b4-f3ce76d9da9a'} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-08bf19ff-9f7b-4af2-9d0c-4e49b4b34e96 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf5f27df-49e4-4194-9ce3-8063beedead2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/chassis/1b8638df-3a75-44e6-acd8-29728089a8d3 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4bc4a5b5-d3c9-4152-b8b5-cd983e195a99 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1b8638df-3a75-44e6-acd8-29728089a8d3 could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis/?limit=3 {} GOT:{'chassis': [{'uuid': '967fccc3-d510-4d61-9e15-9f1ab048c0d7', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/967fccc3-d510-4d61-9e15-9f1ab048c0d7', 'rel': 'self'}, {'href': 'http://localhost/chassis/967fccc3-d510-4d61-9e15-9f1ab048c0d7', 'rel': 'bookmark'}]}, {'uuid': '298dfd13-621b-4a67-9680-76262e0d167a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/298dfd13-621b-4a67-9680-76262e0d167a', 'rel': 'self'}, {'href': 'http://localhost/chassis/298dfd13-621b-4a67-9680-76262e0d167a', 'rel': 'bookmark'}]}, {'uuid': '25792687-564f-4608-81b6-7d40a993caa6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/25792687-564f-4608-81b6-7d40a993caa6', 'rel': 'self'}, {'href': 'http://localhost/chassis/25792687-564f-4608-81b6-7d40a993caa6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=25792687-564f-4608-81b6-7d40a993caa6'} GET: /v1/chassis?fields=extra,uuid {} GOT:{'chassis': [{'uuid': '250aca05-d20e-4718-94b3-3794fe5879d8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/250aca05-d20e-4718-94b3-3794fe5879d8', 'rel': 'self'}, {'href': 'http://localhost/chassis/250aca05-d20e-4718-94b3-3794fe5879d8', 'rel': 'bookmark'}]}, {'uuid': '3c696664-cded-43bc-8589-b5f9e8ae4b80', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/3c696664-cded-43bc-8589-b5f9e8ae4b80', 'rel': 'self'}, {'href': 'http://localhost/chassis/3c696664-cded-43bc-8589-b5f9e8ae4b80', 'rel': 'bookmark'}]}, {'uuid': '7899ab36-9b9f-4b9e-9f9f-cbebeb65c373', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7899ab36-9b9f-4b9e-9f9f-cbebeb65c373', 'rel': 'self'}, {'href': 'http://localhost/chassis/7899ab36-9b9f-4b9e-9f9f-cbebeb65c373', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=7899ab36-9b9f-4b9e-9f9f-cbebeb65c373'} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '3fa510cd-0448-4dbc-adff-025997484ea7', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/3fa510cd-0448-4dbc-adff-025997484ea7', 'rel': 'self'}, {'href': 'http://localhost/chassis/3fa510cd-0448-4dbc-adff-025997484ea7', 'rel': 'bookmark'}]}, {'uuid': '15acd72e-dc0a-463b-8b3f-127302b2f01d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/15acd72e-dc0a-463b-8b3f-127302b2f01d', 'rel': 'self'}, {'href': 'http://localhost/chassis/15acd72e-dc0a-463b-8b3f-127302b2f01d', 'rel': 'bookmark'}]}, {'uuid': '1fec4e81-4919-4797-9753-4cff28363a4b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1fec4e81-4919-4797-9753-4cff28363a4b', 'rel': 'self'}, {'href': 'http://localhost/chassis/1fec4e81-4919-4797-9753-4cff28363a4b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=1fec4e81-4919-4797-9753-4cff28363a4b'} GET: /v1/chassis?detail=True {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:26.690518+00:00'}]} GET: /v1/chassis?detail=True&fields=description {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8162df00-18c1-4bd2-867e-015b01f8a7ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf45c39f-979a-4174-84e3-28d8b4f0a74e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': []} GET: /v1/chassis?fields=extra&limit=2 {} GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/9569d7f5-0757-4f82-97b3-ffe7c4097066', 'rel': 'self'}, {'href': 'http://localhost/chassis/9569d7f5-0757-4f82-97b3-ffe7c4097066', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/84b5bf5a-8e35-4265-a96e-b4c98ea0cbeb', 'rel': 'self'}, {'href': 'http://localhost/chassis/84b5bf5a-8e35-4265-a96e-b4c98ea0cbeb', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=84b5bf5a-8e35-4265-a96e-b4c98ea0cbeb'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-067693a2-2b18-4804-a269-9a7f30d207d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4 {} GOT:{'uuid': 'dfff3360-1175-47c8-840c-d37094ca7ce4', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:27.081309+00:00'} GET: /v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4 {} GOT:{'uuid': 'dfff3360-1175-47c8-840c-d37094ca7ce4', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:27.081309+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.115658s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.071164s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.236750s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.069412s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.087877s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.055537s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.063951s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.087370s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.054091s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.056832s] ... ok GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '27e4b980-d1b1-427f-a96c-373d8ce34732', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/27e4b980-d1b1-427f-a96c-373d8ce34732', 'rel': 'self'}, {'href': 'http://localhost/chassis/27e4b980-d1b1-427f-a96c-373d8ce34732', 'rel': 'bookmark'}]}, {'uuid': 'b0ebfd5e-055b-4222-a585-328907b906d2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/b0ebfd5e-055b-4222-a585-328907b906d2', 'rel': 'self'}, {'href': 'http://localhost/chassis/b0ebfd5e-055b-4222-a585-328907b906d2', 'rel': 'bookmark'}]}, {'uuid': '6e37bb7a-061d-447c-a7eb-4fdbe3743c81', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6e37bb7a-061d-447c-a7eb-4fdbe3743c81', 'rel': 'self'}, {'href': 'http://localhost/chassis/6e37bb7a-061d-447c-a7eb-4fdbe3743c81', 'rel': 'bookmark'}]}, {'uuid': 'd99d1b7e-0fd7-4380-95b4-b8e267c1ff0c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d99d1b7e-0fd7-4380-95b4-b8e267c1ff0c', 'rel': 'self'}, {'href': 'http://localhost/chassis/d99d1b7e-0fd7-4380-95b4-b8e267c1ff0c', 'rel': 'bookmark'}]}, {'uuid': 'ddb0d0c5-3dc6-42dd-9925-883d0f5ae0c9', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ddb0d0c5-3dc6-42dd-9925-883d0f5ae0c9', 'rel': 'self'}, {'href': 'http://localhost/chassis/ddb0d0c5-3dc6-42dd-9925-883d0f5ae0c9', 'rel': 'bookmark'}]}]} GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-31debfb1-2911-4127-a609-73963fec984e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:27.073575+00:00'} GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c4af1df-60a8-4241-9e51-4e3584a8a54b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=uuid {} GOT:{'chassis': [{'uuid': '6a99b01b-abb0-4735-9fc3-2a2c4b57ecf2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6a99b01b-abb0-4735-9fc3-2a2c4b57ecf2', 'rel': 'self'}, {'href': 'http://localhost/chassis/6a99b01b-abb0-4735-9fc3-2a2c4b57ecf2', 'rel': 'bookmark'}]}, {'uuid': 'c3459ecc-fada-4163-b28d-e7c0e986fb3f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c3459ecc-fada-4163-b28d-e7c0e986fb3f', 'rel': 'self'}, {'href': 'http://localhost/chassis/c3459ecc-fada-4163-b28d-e7c0e986fb3f', 'rel': 'bookmark'}]}, {'uuid': 'c84e6295-2753-44c4-88aa-8f6366722182', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c84e6295-2753-44c4-88aa-8f6366722182', 'rel': 'self'}, {'href': 'http://localhost/chassis/c84e6295-2753-44c4-88aa-8f6366722182', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-83bb5b4e-b668-4428-8780-f8e0d05f28f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/chassis?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1178aff8-e51f-4057-bd38-178d6c0c1534 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31b7b531-bc8f-480f-9c3c-1b8fc4aa5d6e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b9f6d1d-2e65-4f3f-87b4-45dd706586d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e8cfc9df-48e4-4898-9642-b8cdd9e3eb65", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65", "rel": "self"}, {"href": "http://localhost/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:27.566138+00:00", "created_at": "2020-05-05T00:01:27.531923+00:00"} GET: /v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65 {} GOT:{'uuid': 'e8cfc9df-48e4-4898-9642-b8cdd9e3eb65', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65', 'rel': 'self'}, {'href': 'http://localhost/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e8cfc9df-48e4-4898-9642-b8cdd9e3eb65/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-05-05T00:01:27.566138+00:00', 'created_at': '2020-05-05T00:01:27.531923+00:00'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e5f6f023-b016-46d2-8414-e97dbc4dc64f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-f29d24e4-57a4-42e9-b654-757b97407744 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.084446s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.096479s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.078393s] ... ok GET: /chassis/dfff3360-1175-47c8-840c-d37094ca7ce4 {} GOT:{'uuid': 'dfff3360-1175-47c8-840c-d37094ca7ce4', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/dfff3360-1175-47c8-840c-d37094ca7ce4/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:27.081309+00:00'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{'nodes': [{'uuid': 'e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'rel': 'bookmark'}]}, {'uuid': '36ab3c0e-f506-40af-b887-649232b8f393', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/36ab3c0e-f506-40af-b887-649232b8f393', 'rel': 'self'}, {'href': 'http://localhost/nodes/36ab3c0e-f506-40af-b887-649232b8f393', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{'nodes': [{'uuid': 'e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=1&marker=e2093bb9-f6fa-4bb0-9d4d-ff13e9b47dd5'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a8c67a4-5847-4869-af3c-3ca1e270fcde X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:27.463206+00:00", "created_at": "2020-05-05T00:01:27.427126+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-05-05T00:01:27.463206+00:00', 'created_at': '2020-05-05T00:01:27.427126+00:00'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'test', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e602057-8eb7-4b79-95e3-ae01895b655b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:27.555019+00:00", "created_at": "2020-05-05T00:01:27.518173+00:00"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-62cb6eb0-b51a-443f-b32f-41b900845bad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8c39c1c-6faf-4340-9226-0768b01df46d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "rel": "self"}, {"href": "http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:27.673398+00:00", "created_at": "2020-05-05T00:01:27.638891+00:00"} GET: /v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb {} GOT:{'uuid': '779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-05-05T00:01:27.673398+00:00', 'created_at': '2020-05-05T00:01:27.638891+00:00'} PATCH: /v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f00f1dd-1572-402e-87ff-5190e92fdaca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "rel": "self"}, {"href": "http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:27.760323+00:00", "created_at": "2020-05-05T00:01:27.638891+00:00"} GET: /v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb {} GOT:{'uuid': '779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/779b0b9a-4859-4cff-bf3c-fdc8dfc6c6eb/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-05-05T00:01:27.760323+00:00', 'created_at': '2020-05-05T00:01:27.638891+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.226173s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.113166s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.112819s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.110751s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.077053s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.051847s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.051912s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.084736s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.062659s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.052618s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline [0.058732s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.046874s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.076802s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.046744s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2aea4983-4c18-4392-b199-28e2a4be525c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'. Value should have a maximum character requirement of 255\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-151004a8-be09-452b-9dc3-9a4b5c397ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:27.883375+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:27.883375+00:00'} GET: /v1/conductors/?limit=3 {} GOT:{'conductors': [{'hostname': 'bcbfd2d0-a856-4f97-aaed-ca0504f1f34b', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/bcbfd2d0-a856-4f97-aaed-ca0504f1f34b', 'rel': 'self'}, {'href': 'http://localhost/conductors/bcbfd2d0-a856-4f97-aaed-ca0504f1f34b', 'rel': 'bookmark'}]}, {'hostname': '886016d3-5b57-496e-9e35-218da5d18816', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/886016d3-5b57-496e-9e35-218da5d18816', 'rel': 'self'}, {'href': 'http://localhost/conductors/886016d3-5b57-496e-9e35-218da5d18816', 'rel': 'bookmark'}]}, {'hostname': '1ec813ed-0f7b-42fc-824f-a7e6e9ee1e99', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/1ec813ed-0f7b-42fc-824f-a7e6e9ee1e99', 'rel': 'self'}, {'href': 'http://localhost/conductors/1ec813ed-0f7b-42fc-824f-a7e6e9ee1e99', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=1ec813ed-0f7b-42fc-824f-a7e6e9ee1e99'} GET: /v1/conductors?fields=hostname,alive {} GOT:{'conductors': [{'hostname': '77731dae-85c4-43ee-8173-daabae5342f0', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/77731dae-85c4-43ee-8173-daabae5342f0', 'rel': 'self'}, {'href': 'http://localhost/conductors/77731dae-85c4-43ee-8173-daabae5342f0', 'rel': 'bookmark'}]}, {'hostname': '7489a896-2f33-48ec-a0ca-6fdcb9d608b3', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/7489a896-2f33-48ec-a0ca-6fdcb9d608b3', 'rel': 'self'}, {'href': 'http://localhost/conductors/7489a896-2f33-48ec-a0ca-6fdcb9d608b3', 'rel': 'bookmark'}]}, {'hostname': '9e120b87-7f82-42b2-92f3-73d04d2b070f', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/9e120b87-7f82-42b2-92f3-73d04d2b070f', 'rel': 'self'}, {'href': 'http://localhost/conductors/9e120b87-7f82-42b2-92f3-73d04d2b070f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=9e120b87-7f82-42b2-92f3-73d04d2b070f'} GET: /v1/conductors {} GOT:{'conductors': []} GET: /v1/conductors?fields=hostname,alive {} GOT:{'conductors': [{'hostname': 'rocky.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}]}, {'hostname': 'stein.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/stein.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/stein.rocks', 'rel': 'bookmark'}]}]} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': False, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} GET: /v1/conductors/rocky.rocks {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5a7b817-090e-4f0a-8504-10b03280e895 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.355362+00:00', 'updated_at': '2020-05-05T00:01:28.354889+00:00'} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.355362+00:00', 'updated_at': '2020-05-05T00:01:28.354889+00:00'} GET: /conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.355362+00:00', 'updated_at': '2020-05-05T00:01:28.354889+00:00'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1aa3ebff-c9e0-4b78-bcf1-807c0a8b5f62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71 [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbd7796b-56bb-4cc0-80df-8c766c5ccc42 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b6530bd6-b030-4899-9984-68eb99a31e71", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71", "rel": "self"}, {"href": "http://localhost/chassis/b6530bd6-b030-4899-9984-68eb99a31e71", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b6530bd6-b030-4899-9984-68eb99a31e71/nodes", "rel": "bookmark"}], "updated_at": "2020-05-05T00:01:28.037474+00:00", "created_at": "2020-05-05T00:01:28.004114+00:00"} GET: /v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71 {} GOT:{'uuid': 'b6530bd6-b030-4899-9984-68eb99a31e71', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71', 'rel': 'self'}, {'href': 'http://localhost/chassis/b6530bd6-b030-4899-9984-68eb99a31e71', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/b6530bd6-b030-4899-9984-68eb99a31e71/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/b6530bd6-b030-4899-9984-68eb99a31e71/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-05-05T00:01:28.037474+00:00', 'created_at': '2020-05-05T00:01:28.004114+00:00'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0931177f-1bf5-466e-9b52-e24f2c1a1c9b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-693251f9-a2a6-4005-b832-30aa960ccfa8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2000-01-01T00:00:00+00:00", "created_at": "2020-05-05T00:01:28.140679+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'chassis-new-description', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2000-01-01T00:00:00+00:00', 'created_at': '2020-05-05T00:01:28.140679+00:00'} PATCH: /v1/chassis/f1b2b0a1-f4c6-4293-b277-4e7f6be545cf [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f741a47f-97ce-4d71-8341-8c4ced66e4e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis f1b2b0a1-f4c6-4293-b277-4e7f6be545cf could not be found.\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-bd9472d7-c7c9-4fbd-9011-c69e5f4bcc03 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:28.305423+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo': 123}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:28.305423+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0f71077c-0e9f-4748-a8cf-d91b9da73a93 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773 Openstack-Request-Id: req-33504c56-dbd2-45ae-ab19-51d2c3bd3381 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "807477c9-5a24-48e0-9d3e-d2bb4c77c773", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773", "rel": "self"}, {"href": "http://localhost/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773/nodes", "rel": "self"}, {"href": "http://localhost/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:28.435191+00:00"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '807477c9-5a24-48e0-9d3e-d2bb4c77c773', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773', 'rel': 'self'}, {'href': 'http://localhost/chassis/807477c9-5a24-48e0-9d3e-d2bb4c77c773', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.082610s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.122689s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.047309s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.147580s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.125587s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.060054s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.177368s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.108859s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.076415s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.059808s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.068032s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.062389s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.058512s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.059905s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.062315s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.034887s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.112286s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.035545s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_init [0.011901s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.050183s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.084595s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.084482s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.068533s] ... ok POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbfc8570-b689-421b-9f90-e719480bcd66 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'амо'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-41e4354c-20cd-49d2-abad-216896ac2572 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:28.583896+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'амо', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:28.583896+00:00'} POST: /v1/chassis/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-502bcc4f-a4de-4ff8-9dd5-c5b547f833f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/conductors {} GOT:{'conductors': [{'hostname': '47bf9fc1-75d0-45f6-92f8-725f49ee69a9', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/47bf9fc1-75d0-45f6-92f8-725f49ee69a9', 'rel': 'self'}, {'href': 'http://localhost/conductors/47bf9fc1-75d0-45f6-92f8-725f49ee69a9', 'rel': 'bookmark'}]}, {'hostname': '59991a92-5da4-4dde-9714-0c8aa9d3b36c', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/59991a92-5da4-4dde-9714-0c8aa9d3b36c', 'rel': 'self'}, {'href': 'http://localhost/conductors/59991a92-5da4-4dde-9714-0c8aa9d3b36c', 'rel': 'bookmark'}]}, {'hostname': '9739f659-14b0-4bea-8f31-ab811ecdc338', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/9739f659-14b0-4bea-8f31-ab811ecdc338', 'rel': 'self'}, {'href': 'http://localhost/conductors/9739f659-14b0-4bea-8f31-ab811ecdc338', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=9739f659-14b0-4bea-8f31-ab811ecdc338'} GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cb5e462b-e682-4f3e-ab65-20090a990eec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.897318+00:00', 'updated_at': '2020-05-05T00:01:28.896838+00:00'} GET: /v1/conductors/rocky.rocks?fields=hostname,alive {} GOT:{'hostname': 'rocky.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}]} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:29.019792+00:00', 'updated_at': '2020-05-05T00:01:29.019286+00:00'} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:29.019792+00:00', 'updated_at': '2020-05-05T00:01:29.019286+00:00'} GET: /conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:29.019792+00:00', 'updated_at': '2020-05-05T00:01:29.019286+00:00'} GET: /v1/conductors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3d809e86-db30-4bd5-ab64-feb39e02f062 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/conductors?sort_key=hostname {} GOT:{'conductors': [{'hostname': '00531491-38de-48d4-8443-8fedf126c21b', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/00531491-38de-48d4-8443-8fedf126c21b', 'rel': 'self'}, {'href': 'http://localhost/conductors/00531491-38de-48d4-8443-8fedf126c21b', 'rel': 'bookmark'}]}, {'hostname': '37380b58-6319-4065-be9b-ac415f414440', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/37380b58-6319-4065-be9b-ac415f414440', 'rel': 'self'}, {'href': 'http://localhost/conductors/37380b58-6319-4065-be9b-ac415f414440', 'rel': 'bookmark'}]}, {'hostname': '540e42e6-39a5-4155-b8cb-e69bf5ac9b58', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/540e42e6-39a5-4155-b8cb-e69bf5ac9b58', 'rel': 'self'}, {'href': 'http://localhost/conductors/540e42e6-39a5-4155-b8cb-e69bf5ac9b58', 'rel': 'bookmark'}]}, {'hostname': '80bb0279-6ff1-4395-a8b3-54e0ba938935', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/80bb0279-6ff1-4395-a8b3-54e0ba938935', 'rel': 'self'}, {'href': 'http://localhost/conductors/80bb0279-6ff1-4395-a8b3-54e0ba938935', 'rel': 'bookmark'}]}, {'hostname': 'c57a55cc-149c-46ec-a2c3-ce31d0ab46a8', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/c57a55cc-149c-46ec-a2c3-ce31d0ab46a8', 'rel': 'self'}, {'href': 'http://localhost/conductors/c57a55cc-149c-46ec-a2c3-ce31d0ab46a8', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.091770s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.141864s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.077392s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_sample [0.012147s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.121186s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.054027s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.087275s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.035296s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.072896s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.116803s] ... ok GET: /v1/conductors {} GOT:{'conductors': [{'hostname': 'why care', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/why care', 'rel': 'self'}, {'href': 'http://localhost/conductors/why care', 'rel': 'bookmark'}]}, {'hostname': 'why not', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/why not', 'rel': 'self'}, {'href': 'http://localhost/conductors/why not', 'rel': 'bookmark'}]}]} GET: /v1/conductors?detail=true {} GOT:{'conductors': [{'hostname': 'why care', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why care', 'rel': 'self'}, {'href': 'http://localhost/conductors/why care', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.641524+00:00', 'updated_at': '2020-05-05T00:01:28.640823+00:00'}, {'hostname': 'why not', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why not', 'rel': 'self'}, {'href': 'http://localhost/conductors/why not', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:28.645465+00:00', 'updated_at': '2020-05-05T00:01:28.645074+00:00'}]} GET: /v1/conductors?sort_key=alive {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2a99e720-82af-4266-9090-cda8a3f227fa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/conductors?sort_key=drivers {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1a8ff99f-a8b4-4719-8595-c0a3de22f44a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 204 No Content Openstack-Request-Id: req-e5a4ace5-a700-456a-8763-1bcdc98d9093 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/deploy_templates/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b1f639d-b6e3-4df8-9b5b-4662130bfdd7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/deploy_templates/CUSTOM_DT1.json GOT:Response: 204 No Content Openstack-Request-Id: req-f0ab5570-35b1-45df-b213-8d1da403e9d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/deploy_templates/f8f3b064-1809-4043-ab2d-78ce7f35884b GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': '720d9306-340f-429a-a00c-ff01c34da93c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/720d9306-340f-429a-a00c-ff01c34da93c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/720d9306-340f-429a-a00c-ff01c34da93c', 'rel': 'bookmark'}]}, {'uuid': '949c05a9-7703-4ec7-8425-48004f4a1d59', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/949c05a9-7703-4ec7-8425-48004f4a1d59', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/949c05a9-7703-4ec7-8425-48004f4a1d59', 'rel': 'bookmark'}]}, {'uuid': 'b095dd29-2865-4c29-88ca-4191844c01c8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/b095dd29-2865-4c29-88ca-4191844c01c8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b095dd29-2865-4c29-88ca-4191844c01c8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,steps&limit=3&marker=b095dd29-2865-4c29-88ca-4191844c01c8'} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '3106e4c5-63c8-41d0-820f-52e58fa65b88', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/3106e4c5-63c8-41d0-820f-52e58fa65b88', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3106e4c5-63c8-41d0-820f-52e58fa65b88', 'rel': 'bookmark'}]}, {'uuid': '091d2404-7cad-4052-bf06-ad5be6b895ca', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/091d2404-7cad-4052-bf06-ad5be6b895ca', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/091d2404-7cad-4052-bf06-ad5be6b895ca', 'rel': 'bookmark'}]}, {'uuid': '6c7ed52a-519a-4836-997a-535bd27fc74d', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/6c7ed52a-519a-4836-997a-535bd27fc74d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6c7ed52a-519a-4836-997a-535bd27fc74d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=6c7ed52a-519a-4836-997a-535bd27fc74d'} GET: /v1/deploy_templates?detail=True {} GOT:{'deploy_templates': [{'uuid': 'a4cfc468-171d-417a-953f-d52ad4c9af9d', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/a4cfc468-171d-417a-953f-d52ad4c9af9d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a4cfc468-171d-417a-953f-d52ad4c9af9d', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.328880+00:00', 'updated_at': None}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '34408400-1ecc-4f1f-a354-16e35bfd247b', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/34408400-1ecc-4f1f-a354-16e35bfd247b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/34408400-1ecc-4f1f-a354-16e35bfd247b', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=False {} GOT:{'deploy_templates': [{'uuid': '34408400-1ecc-4f1f-a354-16e35bfd247b', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/34408400-1ecc-4f1f-a354-16e35bfd247b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/34408400-1ecc-4f1f-a354-16e35bfd247b', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6203f8c9-ec64-4338-9b10-703e849db3c6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/deploy_templates {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': '62b690c4-06a5-4f87-82e6-e130b7b0a543', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/62b690c4-06a5-4f87-82e6-e130b7b0a543', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/62b690c4-06a5-4f87-82e6-e130b7b0a543', 'rel': 'bookmark'}]}, {'uuid': '4ea47b6a-7e80-44cb-9796-5b6451b24760', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/4ea47b6a-7e80-44cb-9796-5b6451b24760', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4ea47b6a-7e80-44cb-9796-5b6451b24760', 'rel': 'bookmark'}]}, {'uuid': 'c6c99131-00eb-4816-bf60-c5711b495d90', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c6c99131-00eb-4816-bf60-c5711b495d90', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c6c99131-00eb-4816-bf60-c5711b495d90', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.081026s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.062980s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.138848s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.110099s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.082937s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.074561s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.059233s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.061090s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.059678s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.074730s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.060458s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.094630s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.067018s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.080615s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.143481s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.092003s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.066355s] ... ok DELETE: /v1/deploy_templates/5cb164d6-bbde-42b5-9900-77d1569862b9 GOT:Response: 204 No Content Openstack-Request-Id: req-94abcc01-dfc0-4595-914f-b4f4d9a27097 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/deploy_templates/a61cb3f6-8e3c-409e-987b-13e0d9af2563.json GOT:Response: 204 No Content Openstack-Request-Id: req-e16158d9-0849-4159-86a7-80caa242bfad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 GET: /v1/deploy_templates/?limit=3 {} GOT:{'deploy_templates': [{'uuid': '10455151-f1cf-4a8e-a49f-cd7b9936bd4d', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/10455151-f1cf-4a8e-a49f-cd7b9936bd4d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/10455151-f1cf-4a8e-a49f-cd7b9936bd4d', 'rel': 'bookmark'}]}, {'uuid': '1e087a3b-8488-462c-9e85-9c310e90f9ab', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/1e087a3b-8488-462c-9e85-9c310e90f9ab', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1e087a3b-8488-462c-9e85-9c310e90f9ab', 'rel': 'bookmark'}]}, {'uuid': '14f01c15-6c2b-4670-85d2-50a91685b35a', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/14f01c15-6c2b-4670-85d2-50a91685b35a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/14f01c15-6c2b-4670-85d2-50a91685b35a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=14f01c15-6c2b-4670-85d2-50a91685b35a'} GET: /v1/deploy_templates?sort_key=name&detail=True {} GOT:{'deploy_templates': [{'uuid': 'd6254368-fe61-4e4f-b506-e9bd967535f7', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/d6254368-fe61-4e4f-b506-e9bd967535f7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d6254368-fe61-4e4f-b506-e9bd967535f7', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.605891+00:00', 'updated_at': None}, {'uuid': '763baa9f-5f86-46a8-9726-2a91a7c4c8bf', 'name': 'CUSTOM_DT2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/763baa9f-5f86-46a8-9726-2a91a7c4c8bf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/763baa9f-5f86-46a8-9726-2a91a7c4c8bf', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.602178+00:00', 'updated_at': None}, {'uuid': '9e8d9308-57c0-48cf-8f1e-413d8838a251', 'name': 'CUSTOM_DT3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/9e8d9308-57c0-48cf-8f1e-413d8838a251', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9e8d9308-57c0-48cf-8f1e-413d8838a251', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.598126+00:00', 'updated_at': None}]} GET: /v1/deploy_templates?detail=False&fields=steps {} GOT:{'deploy_templates': [{'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c4f16db6-a09b-496c-9f2a-117f4e985a54', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c4f16db6-a09b-496c-9f2a-117f4e985a54', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': []} GET: /v1/deploy_templates?fields=name&limit=2 {} GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/29932139-3c14-40d3-98b7-1083ae545dae', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/29932139-3c14-40d3-98b7-1083ae545dae', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/72abf474-03a6-4b69-9049-b77b1bc2ffb8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/72abf474-03a6-4b69-9049-b77b1bc2ffb8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=72abf474-03a6-4b69-9049-b77b1bc2ffb8'} GET: /v1/deploy_templates/7bac6ddd-2cf4-410a-a216-6633e5a3ba18?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-326b969c-91c1-42f0-9cf5-b93387ecf1d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/deploy_templates/040a1dfe-4da3-4a32-85f6-0c9a368b115d {} GOT:{'uuid': '040a1dfe-4da3-4a32-85f6-0c9a368b115d', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/040a1dfe-4da3-4a32-85f6-0c9a368b115d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/040a1dfe-4da3-4a32-85f6-0c9a368b115d', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:30.047367+00:00', 'updated_at': None} GET: /v1/deploy_templates/820316e1-1838-410a-bc54-2ca7a59a460b {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates/80eeaa2e-246b-43b1-8dba-81b3d0f39aa7.json {} GOT:{'uuid': '80eeaa2e-246b-43b1-8dba-81b3d0f39aa7', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/80eeaa2e-246b-43b1-8dba-81b3d0f39aa7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/80eeaa2e-246b-43b1-8dba-81b3d0f39aa7', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:30.177981+00:00', 'updated_at': None} GET: /v1/deploy_templates/6e4f7ab8-02e6-4034-bf78-f2233bf0b7ef {} GOT:{'uuid': '6e4f7ab8-02e6-4034-bf78-f2233bf0b7ef', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/6e4f7ab8-02e6-4034-bf78-f2233bf0b7ef', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6e4f7ab8-02e6-4034-bf78-f2233bf0b7ef', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:30.251031+00:00', 'updated_at': None} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '54f4b77e-af8f-4ed1-8422-5c2b43911dcf', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/54f4b77e-af8f-4ed1-8422-5c2b43911dcf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/54f4b77e-af8f-4ed1-8422-5c2b43911dcf', 'rel': 'bookmark'}]}]} PATCH: /v1/deploy_templates/d2b99a94-7ab4-4ce9-8bb9-30ffdd7bdf87 [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 10}, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d08a488a-3b6a-44a4-a464-a7f20a9007c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "d2b99a94-7ab4-4ce9-8bb9-30ffdd7bdf87", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/d2b99a94-7ab4-4ce9-8bb9-30ffdd7bdf87", "rel": "self"}, {"href": "http://localhost/deploy_templates/d2b99a94-7ab4-4ce9-8bb9-30ffdd7bdf87", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:30.414128+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.076630s] ... ok GET: /v1/deploy_templates/d0d72190-f90d-459f-9ea9-0aacfa390fe0?fields=name,steps {} GOT:{'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/d0d72190-f90d-459f-9ea9-0aacfa390fe0', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d0d72190-f90d-459f-9ea9-0aacfa390fe0', 'rel': 'bookmark'}]} GET: /v1/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370 {} GOT:{'uuid': '8a319587-4027-4f8a-8dd1-01cace7c4370', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.751197+00:00', 'updated_at': None} GET: /v1/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370 {} GOT:{'uuid': '8a319587-4027-4f8a-8dd1-01cace7c4370', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.751197+00:00', 'updated_at': None} GET: /deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370 {} GOT:{'uuid': '8a319587-4027-4f8a-8dd1-01cace7c4370', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8a319587-4027-4f8a-8dd1-01cace7c4370', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.751197+00:00', 'updated_at': None} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '7e998720-09c4-4aa7-903d-3623bbec6ba1', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/7e998720-09c4-4aa7-903d-3623bbec6ba1', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7e998720-09c4-4aa7-903d-3623bbec6ba1', 'rel': 'bookmark'}]}, {'uuid': 'bb1b88b3-1174-49b9-831d-e68ae1824676', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/bb1b88b3-1174-49b9-831d-e68ae1824676', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/bb1b88b3-1174-49b9-831d-e68ae1824676', 'rel': 'bookmark'}]}, {'uuid': '636dc9c3-bdad-4af6-8311-8e5515d158f8', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/636dc9c3-bdad-4af6-8311-8e5515d158f8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/636dc9c3-bdad-4af6-8311-8e5515d158f8', 'rel': 'bookmark'}]}, {'uuid': 'dafc0386-886a-4716-b33e-5adeb25bd1b7', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/dafc0386-886a-4716-b33e-5adeb25bd1b7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dafc0386-886a-4716-b33e-5adeb25bd1b7', 'rel': 'bookmark'}]}, {'uuid': 'ce1daa48-60c1-45ac-afdf-41f10991d507', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/ce1daa48-60c1-45ac-afdf-41f10991d507', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ce1daa48-60c1-45ac-afdf-41f10991d507', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates/c80a6509-7db7-4851-bc99-c9fcb93f3c63 {} GOT:{'uuid': 'c80a6509-7db7-4851-bc99-c9fcb93f3c63', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': [], 'password': '******'}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c80a6509-7db7-4851-bc99-c9fcb93f3c63', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c80a6509-7db7-4851-bc99-c9fcb93f3c63', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:29.974456+00:00', 'updated_at': None} GET: /v1/deploy_templates?sort_key=uuid {} GOT:{'deploy_templates': [{'uuid': '9707d395-b7ba-4977-b34d-e74f0778ff8e', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/9707d395-b7ba-4977-b34d-e74f0778ff8e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9707d395-b7ba-4977-b34d-e74f0778ff8e', 'rel': 'bookmark'}]}, {'uuid': 'b9a46092-acc7-4277-8b52-372b71923b7a', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/b9a46092-acc7-4277-8b52-372b71923b7a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b9a46092-acc7-4277-8b52-372b71923b7a', 'rel': 'bookmark'}]}, {'uuid': 'd03eb456-0f40-49a3-91fd-c309421e8e7c', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/d03eb456-0f40-49a3-91fd-c309421e8e7c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d03eb456-0f40-49a3-91fd-c309421e8e7c', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=name&detail=False {} GOT:{'deploy_templates': [{'uuid': '1aa15759-bb16-4e71-af00-b4af40c0ec61', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/1aa15759-bb16-4e71-af00-b4af40c0ec61', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1aa15759-bb16-4e71-af00-b4af40c0ec61', 'rel': 'bookmark'}]}, {'uuid': '0e41c4b6-122b-4a6d-8f11-b52539d9b76d', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/0e41c4b6-122b-4a6d-8f11-b52539d9b76d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0e41c4b6-122b-4a6d-8f11-b52539d9b76d', 'rel': 'bookmark'}]}, {'uuid': 'a3884361-0f8a-41a9-9559-0df63e953633', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/a3884361-0f8a-41a9-9559-0df63e953633', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a3884361-0f8a-41a9-9559-0df63e953633', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dfbcdd41-257c-4509-b922-2e18d908825f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/deploy_templates?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f35a4c53-a3ea-4392-8a17-c4a7f0786bba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/deploy_templates?sort_key=steps {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2cf64b20-a90e-441c-9d9f-e9993cd516ad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/3c817c54-0160-4e65-a265-bcbbc4b03d42 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-124baddd-f053-412f-ad65-ae8c2a87c8d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/ffd75d84-9055-421a-abc6-b94d08af9996 [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e946f2ed-f367-4df8-a572-60d433b1b20c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.059605s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.060618s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.121979s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.166340s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.091407s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.101970s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.062137s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.060113s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.054590s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.052425s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.060983s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.060035s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.061839s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.064654s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.063001s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.061182s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.061158s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.071512s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.063429s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.071317s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.036746s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.059830s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.064290s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.063391s] ... ok PATCH: /v1/deploy_templates/6e5f29f3-30ca-4514-a2f2-c98cb27379ac [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-621d33f1-f228-44e1-a05b-00bc3c073c7d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6e5f29f3-30ca-4514-a2f2-c98cb27379ac", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/6e5f29f3-30ca-4514-a2f2-c98cb27379ac", "rel": "self"}, {"href": "http://localhost/deploy_templates/6e5f29f3-30ca-4514-a2f2-c98cb27379ac", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:30.547690+00:00", "updated_at": null} PATCH: /v1/deploy_templates/68895cf0-60ef-4885-be19-b2831283caab [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d3db3d4-f787-4e2a-bc4f-e52bd220d107 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/name' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/727dcdb2-b324-455d-862d-c5c49250252c [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e62c3c17-5bb9-471e-af9b-7e69499ba030 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/ebf3508b-42a9-4914-b7cf-e652ae651fd0 [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d0f72208-c25c-4a56-bd8b-debefb236d45 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/steps' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/bbce970c-de30-457f-b68f-84c62d449c1c [{'path': '/steps', 'op': 'replace', 'value': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}]}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0466047f-04d7-42a4-bf6c-89f3e34b9d01 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/54b05adb-81e0-46a8-b31f-3063fbffc5dd [{'path': '/name', 'op': 'replace', 'value': None}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd9803db-c398-40a7-840e-c7ad7eb31c9f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/3183e30f-3bfc-4bb7-aac7-efde508e3901 [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d60a6b88-e59d-4d49-9f42-326cff9f9695 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/1f705e26-ea15-4001-860f-878e8e04ad10 [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 11}, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db6c0b51-d511-48b7-9a63-ce12d88121e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1f705e26-ea15-4001-860f-878e8e04ad10", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}], "links": [{"href": "http://localhost/v1/deploy_templates/1f705e26-ea15-4001-860f-878e8e04ad10", "rel": "self"}, {"href": "http://localhost/deploy_templates/1f705e26-ea15-4001-860f-878e8e04ad10", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.066552+00:00", "updated_at": null} PATCH: /v1/deploy_templates/569b46c8-4212-420c-854a-9d04bf4042f9 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-98387792-9eb6-4536-af76-e73b858eefc5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 569b46c8-4212-420c-854a-9d04bf4042f9 already exists.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/18cd152b-bba0-40e9-9bf2-39e18d05c729 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14d34da1-8823-47a0-a7ce-a868701c8eb2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: deploy, bios, raid, power, management\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/8be41142-1290-42c9-8bdb-9eb28893bfe9 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7db8ab3b-c6af-4513-9e13-9772ace2e0d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "8be41142-1290-42c9-8bdb-9eb28893bfe9", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/8be41142-1290-42c9-8bdb-9eb28893bfe9", "rel": "self"}, {"href": "http://localhost/deploy_templates/8be41142-1290-42c9-8bdb-9eb28893bfe9", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.264653+00:00", "updated_at": null} PATCH: /v1/deploy_templates/aaf684e1-ddc7-4ecc-846b-063457254afa [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.042240s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.114520s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.164983s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.061621s] ... ok PATCH: /v1/deploy_templates/f65e1eb9-8ad5-4a2e-9627-737eafcaef8d [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-336074b2-0ec4-49a3-84e1-9af1cad98e7c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/foo', 'op': 'remove'}'. Reason: can't remove non-existent object 'foo'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/32af5e80-77df-4260-b84c-c5b3f9a37f2b [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0b79697-2ac1-45b5-8599-839745c5cea0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/f47e1c7c-a6be-47ee-b5e8-eb87639e0be7 [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fbb63c5-8789-4b0c-9336-1e0fe05c91e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/adf066a6-2d94-4b47-b3ec-19be28238ff7 [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1c931610-5782-4b34-8ad1-8ad04cade070 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/40fa50ce-20fa-48cf-a0b6-9c4a9fb5f50f [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6dfe599a-df6d-47ad-bb7e-e542a0d11515 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/a5b42282-f973-4ea1-8437-83f1152ee69b [{'path': '/steps', 'op': 'replace', 'value': []}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-286a4b19-9962-4e3a-b862-1fdbea5fe0b6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/c4298864-4233-4ece-b452-e026c2955057 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2752d8f8-3c41-4830-b7ce-6775590eaa58 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/db839e21-e0da-467e-b29e-91050785988d [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-de5a0deb-3ee6-4418-ad6c-6b61e146a8a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: bios, management, power, deploy, raid\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/408783ae-f714-4a1d-91f0-eed914a7f741 [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84b2f0a7-9766-4bf9-8da6-6e8844ab48c1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}], 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39d0c303-10de-4c0c-a638-f6b3ce490c13 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "52685e16-2bdf-4a53-b85f-143fa6478aef", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/52685e16-2bdf-4a53-b85f-143fa6478aef", "rel": "self"}, {"href": "http://localhost/deploy_templates/52685e16-2bdf-4a53-b85f-143fa6478aef", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.131275+00:00", "updated_at": null} PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} PATCH: /v1/deploy_templates/bad6dc6a-c352-4c60-baf1-40c6129a7e94 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b590ef6-a3cd-49bc-9c95-6b22483bd2c8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/6edfe32c-4144-42b6-b662-6efa05d544c6 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93116a14-8c35-4caf-b936-9bfe582a5a2f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6edfe32c-4144-42b6-b662-6efa05d544c6", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/6edfe32c-4144-42b6-b662-6efa05d544c6", "rel": "self"}, {"href": "http://localhost/deploy_templates/6edfe32c-4144-42b6-b662-6efa05d544c6", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.298099+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.065243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.105417s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.121522s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.154293s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.103897s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.027959s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.101100s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.048232s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.051280s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.047532s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.050195s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.046771s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.046929s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.047879s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.046957s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.047388s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.049267s] ... ok PATCH: /v1/deploy_templates/CUSTOM_DT1.json [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e56f3a9-2fda-4ee2-ad1f-3aa9c854df69 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "9b4195ea-c6cc-4c26-8fd8-df0b16c4b84f", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/9b4195ea-c6cc-4c26-8fd8-df0b16c4b84f", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b4195ea-c6cc-4c26-8fd8-df0b16c4b84f", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.382812+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '1fe70e21-07b5-4b04-9f26-075950ff11a9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9 Openstack-Request-Id: req-740dc1b2-f336-4803-8f48-f5f23d9a28d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1fe70e21-07b5-4b04-9f26-075950ff11a9", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9", "rel": "self"}, {"href": "http://localhost/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9 {} GOT:{'uuid': '1fe70e21-07b5-4b04-9f26-075950ff11a9', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1fe70e21-07b5-4b04-9f26-075950ff11a9', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c6c147fd-b678-4700-b88a-e85a805c4720', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9d6fb2f8-80b6-434e-8aca-ae82544003c9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1 Openstack-Request-Id: req-3291a4a8-f700-460d-a59a-dde33246ae60 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "3d9c31f5-64d9-4687-b546-b538ed83d3d1", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1", "rel": "self"}, {"href": "http://localhost/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.761896+00:00", "updated_at": null} GET: /v1/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1 {} GOT:{'uuid': '3d9c31f5-64d9-4687-b546-b538ed83d3d1', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3d9c31f5-64d9-4687-b546-b538ed83d3d1', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:31.761896+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9336db9b-a5cb-4e6a-a359-6d1aa508873b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '40603ba4-388a-46f0-bd27-98a044dae9ad', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b6c6870-c047-4ba1-8750-ec1486ef6999 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '40603ba4-388a-46f0-bd27-98a044dae9ad', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42}'. Value not a valid dict: 42\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': None, 'uuid': '98585e4c-339f-4168-9305-a7e41383b480', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bb459e3c-2334-4bb2-83ff-3ee82a37c136 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '268b7e18-1fd5-44e7-934d-0eb2986707ed', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0bc8d053-9781-4f9d-b1f0-65cd443e242c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '268b7e18-1fd5-44e7-934d-0eb2986707ed', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}}'. Value not a valid dict: []\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '880f0246-dddd-4163-b002-1e0e9ae86965', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c32823ef-0a05-4aa2-91be-879c4141695a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template.steps: foo\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c6660f3c-489f-4ef0-84d3-c554f1123de1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c4a6f5f-d922-4b77-b208-8c4aa2d4a5f2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: '-1'. Value should be greater or equal to 0\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.054308s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.112454s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.090484s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.092528s] ... ok PATCH: /v1/deploy_templates/ecdb71e4-e6b7-4df9-be79-3f9ba273e0a0 [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-667eaf77-660b-49ee-98c2-f8b6c07b7602 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "ecdb71e4-e6b7-4df9-be79-3f9ba273e0a0", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/ecdb71e4-e6b7-4df9-be79-3f9ba273e0a0", "rel": "self"}, {"href": "http://localhost/deploy_templates/ecdb71e4-e6b7-4df9-be79-3f9ba273e0a0", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.369488+00:00", "updated_at": null} PATCH: /v1/deploy_templates/3144c36d-5dbb-43de-9010-7c2a5ebdb3b3 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b450447b-2c4f-4c16-96a5-915d0917e6cb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 3144c36d-5dbb-43de-9010-7c2a5ebdb3b3 could not be found.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '131d9034-e60a-48b2-95ad-9779088bd6a6', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/131d9034-e60a-48b2-95ad-9779088bd6a6 Openstack-Request-Id: req-e9a75022-205a-4619-88a1-b7d3fe64487f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "131d9034-e60a-48b2-95ad-9779088bd6a6", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/131d9034-e60a-48b2-95ad-9779088bd6a6", "rel": "self"}, {"href": "http://localhost/deploy_templates/131d9034-e60a-48b2-95ad-9779088bd6a6", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.712818+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e341798f-7783-4f23-82d6-7aed5d0ef68a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a Openstack-Request-Id: req-b2eea22c-33d8-4284-b28a-47b38887aeaf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "e341798f-7783-4f23-82d6-7aed5d0ef68a", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a", "rel": "self"}, {"href": "http://localhost/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:31.792005+00:00", "updated_at": null} GET: /v1/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a {} GOT:{'uuid': 'e341798f-7783-4f23-82d6-7aed5d0ef68a', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e341798f-7783-4f23-82d6-7aed5d0ef68a', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-05-05T00:01:31.792005+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2e852b04-0794-4175-b66e-244d79ff57f8', 'steps': [], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a586b889-d5b2-4340-964d-dbca4fec2045 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '297219f5-f606-471a-b60c-a55b3311309d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8ce9109-4452-4f2d-85f8-063cc1934bce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template: foo\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 42, 'uuid': 'd266cd4b-f1a5-4c17-8841-1340c3ad8d8b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cca790b5-3287-41e3-99e5-6c5c2421f339 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: '42'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'a88aad39-a653-4f69-b426-7d5a34c30cf5', 'steps': {}, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e8f2b81-99b6-4045-ae73-d9499f02a5e4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': 'a88aad39-a653-4f69-b426-7d5a34c30cf5', 'steps': {}, 'extra': {}}'. Value not a valid list: {}\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '54f3686b-f354-442c-8f28-1654cfcab769', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fbe2e049-fee4-483a-8b07-d2844301199a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '54f3686b-f354-442c-8f28-1654cfcab769', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}}'. Value not a valid dict: not a dict\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '09be182e-a733-44fd-8eca-7438248caa6a', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70578d6e-aaf9-4d10-b3e7-16e754143790 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: '[3]'. unhashable type: 'list'\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '34919ef0-422e-4121-b6f3-9e49e7a0e2b9', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.086409s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.096256s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.098915s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.108783s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.096829s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.045821s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.046457s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.046594s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.047001s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.053169s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.053530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.046897s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.048129s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.086330s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.046672s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.073101s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.050937s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.046656s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.068407s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.071265s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.073713s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.047149s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.116171s] ... ok POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '10ee7db3-6541-4a97-a10d-ccd7f9a5e767', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/10ee7db3-6541-4a97-a10d-ccd7f9a5e767 Openstack-Request-Id: req-5bd6449c-8a2e-4e31-857c-ea7e010c387c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "10ee7db3-6541-4a97-a10d-ccd7f9a5e767", "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/10ee7db3-6541-4a97-a10d-ccd7f9a5e767", "rel": "self"}, {"href": "http://localhost/deploy_templates/10ee7db3-6541-4a97-a10d-ccd7f9a5e767", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:32.177641+00:00", "updated_at": null} POST: /v1/deploy_templates {'uuid': 'badf8459-f86c-49db-b25c-1b21f6fafb1f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-30018b1f-795c-445e-a3f7-ee06af374113 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2ba088c0-9d20-4251-9a29-2c0fe69eca84', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e4f2db1-cfef-46c0-a1ad-4185dc11a66c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute steps. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd1e1b90c-9522-420e-9e7c-b9c340338cf9', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-06292788-eea2-4cbf-b403-2d9681dd493d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'be5a5756-72a6-4af5-9004-ba5d8ddfc618', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-104499a6-52d1-4aa5-bf03-dda0d4ff9f56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '35cdba76-86f9-485c-933e-405810cd75dc', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed66f319-3ce0-4c5d-9f91-679ccfdcc57c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'HW_CPU_X86_VMX', 'uuid': '94be3adf-9f34-442c-a02e-ef0ea0d1b5fe', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/94be3adf-9f34-442c-a02e-ef0ea0d1b5fe Openstack-Request-Id: req-43d6cbdd-06ea-4119-89dc-c7e29cdf6731 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "94be3adf-9f34-442c-a02e-ef0ea0d1b5fe", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/94be3adf-9f34-442c-a02e-ef0ea0d1b5fe", "rel": "self"}, {"href": "http://localhost/deploy_templates/94be3adf-9f34-442c-a02e-ef0ea0d1b5fe", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:32.634158+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '260cce92-bbb5-4ecb-8f74-5c7ea31b96be', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1ef262e2-3a69-4897-bb26-2ccc4d488172 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e0481d8-f482-4bb1-82c9-9e775bade056 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} GET: /v1/drivers/test/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3d4d094-2782-434c-a512-b54329699f65 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-201e4110-b30e-4ee6-9ee9-aacfbac3d611 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5a15b28-8164-4c75-a1b5-a84b32143cb5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.061238s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.078850s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.104005s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.135958s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.188810s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f9f6e4f0-680e-4b1a-bd05-28cd356c82e4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: bios, management, power, deploy, raid\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '6a0da3db-bd2b-4404-ab4c-dead466d35b3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ccd36f9-acb8-47cd-a4ae-3a5d8fb82575 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '6a0da3db-bd2b-4404-ab4c-dead466d35b3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}}'. invalid literal for int() with base 10: 'not a number'\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'f3c1f472-314a-46f0-81f6-a0e5e5675444', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f260846-807a-494a-984f-4aecc8a5003f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: '42'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': '6209c775-99c9-4b61-8c13-c4238ad48434', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fdb7b8b5-9c2e-400c-8e8b-b84ca822a28e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '7fd5d7d7-ec6a-4c5b-8e5d-9592bbb5dc63', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41345119-a1c5-48a4-919a-b19b36aa59e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'acdfbf0c-55fd-4513-a951-c2a75ec12925', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a248b6e3-4276-4e85-9181-dc70701a43d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute args. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'cdf973d2-81ed-4857-a3a3-bd8d9a7877a7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/cdf973d2-81ed-4857-a3a3-bd8d9a7877a7 Openstack-Request-Id: req-e8546926-f7e7-4b15-b96c-c9a9666174c4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "cdf973d2-81ed-4857-a3a3-bd8d9a7877a7", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/cdf973d2-81ed-4857-a3a3-bd8d9a7877a7", "rel": "self"}, {"href": "http://localhost/deploy_templates/cdf973d2-81ed-4857-a3a3-bd8d9a7877a7", "rel": "bookmark"}], "extra": {}, "created_at": "2020-05-05T00:01:32.643017+00:00", "updated_at": null} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-d5bebef0-3352-4946-b9ab-eef1edd32114 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cbe26ee1-86ef-4d1b-9edc-7c405459871a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-27b460f5-1975-4b10-8bed-6b16c0b40a19 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a9378ac-be3f-4c05-a736-b6b3fd4686f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} GET: /v1/drivers?detail=True {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c6df2ae3-9eae-459e-8c2a-b0499d841784 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.060188s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.090606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.072174s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.223579s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.046070s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.177319s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.049582s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.053088s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.063942s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.067378s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.176908s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.177901s] ... ok GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} GOT:foo GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f38a569-124a-4c9e-83cd-3bfc429d5128 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} GET: /v1/drivers {} GOT:{'drivers': []} GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers?detail=True {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}]}{0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.208650s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.157364s] ... ok GET: /v1/drivers?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1dc0a68e-53fe-4480-9ae4-3ab976baab66 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7e490d7b-f0e0-4d71-bd0d-b9bf0490629a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a73ec1ea-4661-4795-b71b-c1c1e582e389 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:{'drivers': []} GET: /v1/drivers?type=dynamic {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers?detail=True {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]}{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.203455s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.140242s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.057593s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.152095s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.043274s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.043167s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.075978s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.041737s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.062888s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.042107s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.044302s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.044071s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.044211s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.041631s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.044640s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.042365s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.041516s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.047458s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.043036s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.042842s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chassis_api_policy [0.061593s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy [0.080019s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_conductor_api_policy [0.039023s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy [0.050392s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy [0.075362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.060096s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.058057s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy [0.191819s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.061767s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy [0.026896s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.056319s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.053635s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.061063s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.062751s] ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d51a14fe-93c0-4bdb-b04f-38b5e984e309 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-48ede972-a6d2-46e9-95ed-fe44016199ca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'valid.event'}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2df8e4f4-b05d-4a45-886d-e917407677b9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f16eab6-ca70-43d5-86ac-051ccaaf45b2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': 'PORT_ID_SHOULD_BE_UUID', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-08a4c871-32e7-4c20-b3d8-ed1b128a61fa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for port_id. Expected a UUID but received PORT_ID_SHOULD_BE_UUID.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.unbind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-f40fd34d-c376-4cb9-aef0-97c29fdcc660 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-654c1707-c0ff-4543-bce5-f568e937298d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"UNKNOWN are invalid keys\", \"debuginfo\": null}"} POST: /v1/nodes/node-39/vifs {'id': 'f19caa7f-2260-4217-895b-5e0e290b6b11'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39d73c10-2115-413d-bcc8-eb68790000b3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc1afac3-dbf4-488c-bcbd-aa83330cd28f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': 'a2253e4f-7b68-475a-8145-7902b5fb84b9'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b1e04c1b-bc73-4523-8ac5-93b27492bf05 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '83e33851-5d92-4081-b2ee-d2aa9eda23c9'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-70be4a53-22cd-4f09-b9f4-dff9fedbb61d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.275255s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.110300s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.057444s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.083805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.070918s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.352958s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.046505s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.054060s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.094380s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.015799s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.027777s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.028524s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.030856s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.092701s] ... ok GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} POST: /v1/events {'events': [{'event': 'valid.event'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-e5d411a5-a334-4e77-b0d6-cb2eb43065f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-79f895f0-372a-4616-8b40-cf5822aeb480 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: event\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f34de73d-411c-41b1-b130-f3a560b1af8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"invalid.event is not one of valid events: network.delete_port, network.bind_port, network.unbind_port.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'valid.event1'}, {'event': 'valid.event2'}, {'event': 'valid.event3'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-11a2538f-cd36-4f06-9351-2e08d62e200f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-16eadcc0-b1bb-497d-b81d-161f81a2e049 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/events {'events': [{'event': 'network.delete_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-2df441c7-1558-41f3-9cc9-3fdb41fd1744 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-acef73fa-707b-46c3-a2ad-523006c00f2a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': 'DEVICE_ID_SHOULD_BE_UUID', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1905a719-e5fc-4cfb-8995-cf49c65f8b15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for device_id. Expected a UUID but received DEVICE_ID_SHOULD_BE_UUID.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'INVALID_MAC_ADDRESS', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-52a93281-3998-4704-a6ee-747533e71b8b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for mac_address. Expected a MAC address but received INVALID_MAC_ADDRESS.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c967178f-4796-42f8-aa2c-0874c0ea989f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'e37834df-1736-4143-bc11-8cbe229a4ac6'} GOT:Response: 204 No Content Openstack-Request-Id: req-5e55b445-e0db-4ea0-8c0c-cf0001e3552c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 POST: /v1/nodes/node-39/vifs {'id': '9cb75c11-3a08-4e62-b36a-307e1365980d'} GOT:Response: 204 No Content Openstack-Request-Id: req-2a9d48c3-ee79-470e-b739-5b1f69761bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 DELETE: /v1/nodes/node-39/vifs/9d4f69f3-b787-4ed4-935e-b7dffefbffb9 GOT:Response: 204 No Content Openstack-Request-Id: req-cd0bdd9c-a02c-4230-9acc-06f7824b1082 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:{'vifs': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:{'bios': [{'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:35.459371+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:{'virtualization': {'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:01:35.861738+00:00', 'updated_at': None}}{1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.093559s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.058336s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.016710s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.015633s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.013159s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.013602s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.026805s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.027393s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.083692s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.104213s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.055008s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.066300s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.061706s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.062584s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.052254s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.047921s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.047148s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.072541s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.068893s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.063087s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.147310s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.066095s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.070298s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.143457s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.066574s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.051934s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.100804s] ... ok POST: /v1/nodes/doesntexist/vifs {'id': '2c3f4697-c03b-437d-a98b-2f64241bcda5'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76d0b3c9-dd6a-4281-80e6-b8f05f2701f4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/2bce89a3-4ed8-4345-9b67-48beed91fa01 GOT:Response: 204 No Content Openstack-Request-Id: req-02994a15-0fe2-4928-bc4a-2d5534794ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/c99157f9-a070-436c-bf7b-71aa5c50a947 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ab9e7f32-725d-44dd-9062-418b95d8dc02 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/doesntexist/vifs/3d0295a7-6bd3-4129-a3c1-a3d2c556398a GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1a51efc-9a60-4319-a749-ce54365d8dbc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d3574e3-8bce-4ce7-a214-2f2fc9331eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-33d66fc0-ad75-4495-a1ec-489d76b193da X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content Openstack-Request-Id: req-42b40706-880f-4dc3-b286-8f2c9c5e94b8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed00d1ab-ed18-4225-8a7d-81203fd1b1c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-c4db137a-dad3-4cfd-bc3b-1bb1471baccf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d4f0c74c-4f52-4af2-9472-75e1c79b259b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34263a16-a467-4fe8-9758-cedc1b469370 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes?fields=driver_info,uuid {} GOT:{'nodes': [{'uuid': '850f595d-4e1c-4cc2-a364-8e8a005917f6', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/850f595d-4e1c-4cc2-a364-8e8a005917f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/850f595d-4e1c-4cc2-a364-8e8a005917f6', 'rel': 'bookmark'}]}, {'uuid': 'f197dc1a-601a-4e80-9766-5e5b6da8fec9', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/f197dc1a-601a-4e80-9766-5e5b6da8fec9', 'rel': 'self'}, {'href': 'http://localhost/nodes/f197dc1a-601a-4e80-9766-5e5b6da8fec9', 'rel': 'bookmark'}]}, {'uuid': '8ba3d139-0ae1-4df2-80ce-239b92efd7a9', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/8ba3d139-0ae1-4df2-80ce-239b92efd7a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/8ba3d139-0ae1-4df2-80ce-239b92efd7a9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=8ba3d139-0ae1-4df2-80ce-239b92efd7a9'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': 'de8e37cf-5f80-4761-ae84-99fc98db56ba', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/de8e37cf-5f80-4761-ae84-99fc98db56ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/de8e37cf-5f80-4761-ae84-99fc98db56ba', 'rel': 'bookmark'}]}, {'uuid': '03d7570e-4b25-4ccb-a5a6-23a9a7f69dde', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/03d7570e-4b25-4ccb-a5a6-23a9a7f69dde', 'rel': 'self'}, {'href': 'http://localhost/nodes/03d7570e-4b25-4ccb-a5a6-23a9a7f69dde', 'rel': 'bookmark'}]}, {'uuid': 'efbe8e7d-762d-414f-b075-ab7f710b0e26', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/efbe8e7d-762d-414f-b075-ab7f710b0e26', 'rel': 'self'}, {'href': 'http://localhost/nodes/efbe8e7d-762d-414f-b075-ab7f710b0e26', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=efbe8e7d-762d-414f-b075-ab7f710b0e26'} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-40ca0744-9690-4c8f-8143-bad8cd38c85a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?detail=True {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:36.800465+00:00'}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.107371s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.062525s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.208603s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.352763s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.079451s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.079831s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.067210s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/foo.1 GOT:Response: 204 No Content Openstack-Request-Id: req-0d408d8b-4b99-4ad3-9bae-8a40e5ac423a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/foo.json GOT:Response: 204 No Content Openstack-Request-Id: req-abefe380-1eef-4ad7-a3f1-bd0a2acbd334 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/foo/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-ee6946ec-7fe6-4613-a172-9e4488e847b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f3d3c241-7570-445e-a715-aec7380e9a78 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfe06127-eddd-4910-89df-69d35a302a34 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aa791532-b655-45e2-bf66-269109769f1d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ea95709c-fa21-4b98-80db-850e833f31f7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-54406e2c-1a6d-4abf-9a11-3f2fe26983fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a90ac92-7ce8-4958-91c3-c957d09bb2bc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0ee1ebf3-de26-403f-955a-ac354ec5d935 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-280bcaab-9d7c-4f55-b3ac-82716ed118dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute associated. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} GET: /v1/nodes?associated=true {} GOT:{'nodes': [{'uuid': 'db0a9640-4c65-4f27-9210-b06508b6d405', 'instance_uuid': 'ea9a7e40-9c8c-4fb0-a6cf-cda7b51a547b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/db0a9640-4c65-4f27-9210-b06508b6d405', 'rel': 'self'}, {'href': 'http://localhost/nodes/db0a9640-4c65-4f27-9210-b06508b6d405', 'rel': 'bookmark'}]}, {'uuid': 'e20da3c2-6bff-486a-ad86-d01633f84d35', 'instance_uuid': '111517d5-0e80-4029-8b11-6a6d135eb2b9', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e20da3c2-6bff-486a-ad86-d01633f84d35', 'rel': 'self'}, {'href': 'http://localhost/nodes/e20da3c2-6bff-486a-ad86-d01633f84d35', 'rel': 'bookmark'}]}, {'uuid': '68357be9-61da-45a2-aa96-910f45200ad2', 'instance_uuid': 'c92a4079-f430-44a1-8376-ea379c60b916', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/68357be9-61da-45a2-aa96-910f45200ad2', 'rel': 'self'}, {'href': 'http://localhost/nodes/68357be9-61da-45a2-aa96-910f45200ad2', 'rel': 'bookmark'}]}, {'uuid': 'b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'instance_uuid': '6a29e556-5c32-45d3-aff9-192769367cc1', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'rel': 'self'}, {'href': 'http://localhost/nodes/b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=True {} GOT:{'nodes': [{'uuid': 'db0a9640-4c65-4f27-9210-b06508b6d405', 'instance_uuid': 'ea9a7e40-9c8c-4fb0-a6cf-cda7b51a547b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/db0a9640-4c65-4f27-9210-b06508b6d405', 'rel': 'self'}, {'href': 'http://localhost/nodes/db0a9640-4c65-4f27-9210-b06508b6d405', 'rel': 'bookmark'}]}, {'uuid': 'e20da3c2-6bff-486a-ad86-d01633f84d35', 'instance_uuid': '111517d5-0e80-4029-8b11-6a6d135eb2b9', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e20da3c2-6bff-486a-ad86-d01633f84d35', 'rel': 'self'}, {'href': 'http://localhost/nodes/e20da3c2-6bff-486a-ad86-d01633f84d35', 'rel': 'bookmark'}]}, {'uuid': '68357be9-61da-45a2-aa96-910f45200ad2', 'instance_uuid': 'c92a4079-f430-44a1-8376-ea379c60b916', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/68357be9-61da-45a2-aa96-910f45200ad2', 'rel': 'self'}, {'href': 'http://localhost/nodes/68357be9-61da-45a2-aa96-910f45200ad2', 'rel': 'bookmark'}]}, {'uuid': 'b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'instance_uuid': '6a29e556-5c32-45d3-aff9-192769367cc1', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'rel': 'self'}, {'href': 'http://localhost/nodes/b414a5c6-ae1f-4d53-817a-cbd5d3b7636d', 'rel': 'bookmark'}]}]} GET: /v1/nodes/?limit=3 {} GOT:{'nodes': [{'uuid': '5c927021-5cfd-42f4-b671-e3c83af4d099', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5c927021-5cfd-42f4-b671-e3c83af4d099', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c927021-5cfd-42f4-b671-e3c83af4d099', 'rel': 'bookmark'}]}, {'uuid': 'b74dd97f-1497-4971-8be5-1263edfb7524', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b74dd97f-1497-4971-8be5-1263edfb7524', 'rel': 'self'}, {'href': 'http://localhost/nodes/b74dd97f-1497-4971-8be5-1263edfb7524', 'rel': 'bookmark'}]}, {'uuid': '6cc34279-a010-40da-8c72-07df57ec795c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6cc34279-a010-40da-8c72-07df57ec795c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6cc34279-a010-40da-8c72-07df57ec795c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=6cc34279-a010-40da-8c72-07df57ec795c'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.149967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.117199s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.159810s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.131946s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.058137s] ... ok GET: /v1/nodes?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0fb163e-842f-4a08-b4ca-699b8e7c6e26 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/nodes/detail?associated=true {} GOT:{'nodes': [{'uuid': '6859d4d0-baf5-4326-82c5-f56cc062a12d', 'instance_uuid': '30504411-624b-42d4-a5bc-bc3a64e2e4a1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/6859d4d0-baf5-4326-82c5-f56cc062a12d', 'rel': 'self'}, {'href': 'http://localhost/nodes/6859d4d0-baf5-4326-82c5-f56cc062a12d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6859d4d0-baf5-4326-82c5-f56cc062a12d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6859d4d0-baf5-4326-82c5-f56cc062a12d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:36.997511+00:00'}, {'uuid': 'd6ee97bd-3580-472b-8f40-c618b1640c98', 'instance_uuid': '74da8a61-53e2-4084-bad1-b5bfcffee6ae', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/d6ee97bd-3580-472b-8f40-c618b1640c98', 'rel': 'self'}, {'href': 'http://localhost/nodes/d6ee97bd-3580-472b-8f40-c618b1640c98', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d6ee97bd-3580-472b-8f40-c618b1640c98/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d6ee97bd-3580-472b-8f40-c618b1640c98/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:37.004650+00:00'}, {'uuid': 'a50619c1-04f6-46cd-b76f-710d1f2b59d0', 'instance_uuid': '3d7ba641-e4c3-4dfa-8714-25a73da2f6ac', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a50619c1-04f6-46cd-b76f-710d1f2b59d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/a50619c1-04f6-46cd-b76f-710d1f2b59d0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a50619c1-04f6-46cd-b76f-710d1f2b59d0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a50619c1-04f6-46cd-b76f-710d1f2b59d0/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:37.012169+00:00'}, {'uuid': 'ea44f099-2bf7-4e54-9f28-836480d15f2f', 'instance_uuid': 'b27ba454-b373-4942-8082-5db7e5b6f969', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/ea44f099-2bf7-4e54-9f28-836480d15f2f', 'rel': 'self'}, {'href': 'http://localhost/nodes/ea44f099-2bf7-4e54-9f28-836480d15f2f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ea44f099-2bf7-4e54-9f28-836480d15f2f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ea44f099-2bf7-4e54-9f28-836480d15f2f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:37.018970+00:00'}]} GET: /v1/nodes/detail?instance_uuid=12d52cd8-fde7-4352-82fd-d3d19d8aeba7 {} GOT:{'nodes': [{'uuid': 'c417e216-54cb-4691-bd83-f02d5796b86f', 'instance_uuid': '12d52cd8-fde7-4352-82fd-d3d19d8aeba7', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/c417e216-54cb-4691-bd83-f02d5796b86f', 'rel': 'self'}, {'href': 'http://localhost/nodes/c417e216-54cb-4691-bd83-f02d5796b86f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c417e216-54cb-4691-bd83-f02d5796b86f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c417e216-54cb-4691-bd83-f02d5796b86f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:37.181420+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-52be4030-509a-43a1-88ff-ff9a7eadb77b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e828173-63b6-4ab6-8afd-a81931474ce1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes?fields=name&limit=2 {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6241522f-5865-44c7-9154-c5f6acf2162d', 'rel': 'self'}, {'href': 'http://localhost/nodes/6241522f-5865-44c7-9154-c5f6acf2162d', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/421a2883-6092-4ea6-8b5e-89391d4214a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/421a2883-6092-4ea6-8b5e-89391d4214a5', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=421a2883-6092-4ea6-8b5e-89391d4214a5'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.129434s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.120078s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.091066s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.222796s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.061665s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.083953s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.062717s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.085467s] ... ok GET: /v1/nodes?instance_uuid=346dd321-c131-46ce-933e-4df312ae53e9 {} GOT:{'nodes': [{'uuid': '2940b293-f9ff-479e-a36d-148f59abf5c7', 'instance_uuid': '346dd321-c131-46ce-933e-4df312ae53e9', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2940b293-f9ff-479e-a36d-148f59abf5c7', 'rel': 'self'}, {'href': 'http://localhost/nodes/2940b293-f9ff-479e-a36d-148f59abf5c7', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:37.544987+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-03706452-abdd-4024-8520-a1de1ba0c249 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?detail=False {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:{'nodes': [{'uuid': 'ebf3a637-05e8-4e7b-adb1-811ca3dc3947', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf3a637-05e8-4e7b-adb1-811ca3dc3947/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:37.943927+00:00'}, {'uuid': 'd4895477-0b5b-4440-b3fb-4cb560129432', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/d4895477-0b5b-4440-b3fb-4cb560129432', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4895477-0b5b-4440-b3fb-4cb560129432', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d4895477-0b5b-4440-b3fb-4cb560129432/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4895477-0b5b-4440-b3fb-4cb560129432/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d4895477-0b5b-4440-b3fb-4cb560129432/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4895477-0b5b-4440-b3fb-4cb560129432/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:37.937476+00:00'}, {'uuid': '72c8094f-e15b-4494-b4d3-baefcb2968d2', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_3', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/72c8094f-e15b-4494-b4d3-baefcb2968d2/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:37.930552+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.130936s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.130792s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.089387s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.125946s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.076158s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.089429s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.080359s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.180582s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.080779s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.078919s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.176281s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.127803s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.094835s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.078684s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.079606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.175724s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.080197s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.085406s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.075458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.182517s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.076080s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-99f38ea1-4333-4212-93c2-64dac39b508c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor_group': ''} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0ad856d6-5a4c-423e-8042-6e016851fd35 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/spam/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2cd6be61-9f47-4c92-ad02-56abb82eb7a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'network_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-28d4a6a8-6607-4cc1-accf-f9d51f8e4032 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-84bd3772-2386-407e-8092-837b250ae327 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d604581f-f020-4da8-a927-ea238636edad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET: /v1/nodes?description_contains=cat {} GOT:{'nodes': [{'uuid': 'a832752c-a5cd-49bc-ae09-6d30864d887f', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a832752c-a5cd-49bc-ae09-6d30864d887f', 'rel': 'self'}, {'href': 'http://localhost/nodes/a832752c-a5cd-49bc-ae09-6d30864d887f', 'rel': 'bookmark'}]}]} GET: /v1/nodes?description_contains=dog {} GOT:{'nodes': [{'uuid': '150980d6-aca3-4b9f-98e3-e683f3c3d8e8', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/150980d6-aca3-4b9f-98e3-e683f3c3d8e8', 'rel': 'self'}, {'href': 'http://localhost/nodes/150980d6-aca3-4b9f-98e3-e683f3c3d8e8', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=ipmi {} GOT:{'nodes': [{'uuid': '21a7e12d-8094-438b-8502-c7710bacb8c7', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/21a7e12d-8094-438b-8502-c7710bacb8c7', 'rel': 'self'}, {'href': 'http://localhost/nodes/21a7e12d-8094-438b-8502-c7710bacb8c7', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{'nodes': [{'uuid': '7d8ebf58-d4df-4fe9-aef1-f686af11264e', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7d8ebf58-d4df-4fe9-aef1-f686af11264e', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d8ebf58-d4df-4fe9-aef1-f686af11264e', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes?provision_state=available {} GOT:{'nodes': [{'uuid': 'b780be8b-f1fa-42a0-b972-a658d4ab904a', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b780be8b-f1fa-42a0-b972-a658d4ab904a', 'rel': 'self'}, {'href': 'http://localhost/nodes/b780be8b-f1fa-42a0-b972-a658d4ab904a', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=deploying {} GOT:{'nodes': [{'uuid': '59c72dce-0712-433f-8f23-f502a1207ce3', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/59c72dce-0712-433f-8f23-f502a1207ce3', 'rel': 'self'}, {'href': 'http://localhost/nodes/59c72dce-0712-433f-8f23-f502a1207ce3', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=foo {} GOT:{'nodes': [{'uuid': 'e82f8428-fa5c-4760-b817-437c64483753', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e82f8428-fa5c-4760-b817-437c64483753', 'rel': 'self'}, {'href': 'http://localhost/nodes/e82f8428-fa5c-4760-b817-437c64483753', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=bar {} GOT:{'nodes': [{'uuid': '1244c084-5fcb-4b0f-ba11-48cd10cb9dcb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1244c084-5fcb-4b0f-ba11-48cd10cb9dcb', 'rel': 'self'}, {'href': 'http://localhost/nodes/1244c084-5fcb-4b0f-ba11-48cd10cb9dcb', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?resource_class=foo {} GOT:{'nodes': [{'uuid': '03e3b835-c08b-4114-92f9-1124073c091a', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/03e3b835-c08b-4114-92f9-1124073c091a', 'rel': 'self'}, {'href': 'http://localhost/nodes/03e3b835-c08b-4114-92f9-1124073c091a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/03e3b835-c08b-4114-92f9-1124073c091a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/03e3b835-c08b-4114-92f9-1124073c091a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/03e3b835-c08b-4114-92f9-1124073c091a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/03e3b835-c08b-4114-92f9-1124073c091a/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:39.203126+00:00'}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.228363s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.055105s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.070025s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.311372s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.080366s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json [0.083596s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.076508s] ... ok GET: /v1/nodes?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0531af29-a03b-430f-b5d5-652c7ccac328 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/nodes?detail=False&fields=name {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'automated_clean': True} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes/spam/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes?fields=uuid,instance_info {} GOT:{'nodes': [{'uuid': 'e5aac4d1-1389-4703-bfa9-62dc09cf33cf', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/e5aac4d1-1389-4703-bfa9-62dc09cf33cf', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5aac4d1-1389-4703-bfa9-62dc09cf33cf', 'rel': 'bookmark'}]}, {'uuid': '86b39c55-8ea1-4d7e-893f-ac7d685490bb', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/86b39c55-8ea1-4d7e-893f-ac7d685490bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/86b39c55-8ea1-4d7e-893f-ac7d685490bb', 'rel': 'bookmark'}]}, {'uuid': 'fc63e97f-48b1-4551-8bdc-b7550f284738', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/fc63e97f-48b1-4551-8bdc-b7550f284738', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc63e97f-48b1-4551-8bdc-b7550f284738', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor': 'fake.conductor'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': False, 'console_info': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b62b6362-ac90-4d8c-ac2c-0048e7d1e59e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8207dfb7-2c35-4af4-984b-6062260b2772 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'description': 'useful piece'} GET: /v1/nodes?conductor=rocky.rocks {} GOT:{'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': '53382daf-ee1d-4c90-9f60-0dceab59431e', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/53382daf-ee1d-4c90-9f60-0dceab59431e', 'rel': 'self'}, {'href': 'http://localhost/nodes/53382daf-ee1d-4c90-9f60-0dceab59431e', 'rel': 'bookmark'}]}, {'uuid': 'bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': 'bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd1dbc7a-85b0-456c-8b7d-f8a77bd213dc', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '5adba84a-f287-4850-81a9-62cd6c7c72f6', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c408c6b2-e79a-492d-ba68-5ce86ad87b75/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group1', 'updated_at': None, 'created_at': '2020-05-05T00:01:39.573009+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.367852s] ... ok GET: /v1/nodes/detail?resource_class=bar {} GOT:{'nodes': [{'uuid': '950344f2-2374-42c4-be88-abeac7d40475', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'bar', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/950344f2-2374-42c4-be88-abeac7d40475', 'rel': 'self'}, {'href': 'http://localhost/nodes/950344f2-2374-42c4-be88-abeac7d40475', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/950344f2-2374-42c4-be88-abeac7d40475/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/950344f2-2374-42c4-be88-abeac7d40475/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/950344f2-2374-42c4-be88-abeac7d40475/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/950344f2-2374-42c4-be88-abeac7d40475/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:39.210548+00:00'}]} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-da28193c-12d0-4de0-9ff1-7705bac17ffe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a3f3a7d-cb59-4109-b9fb-f81a6a86098c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:39.560226+00:00'} GET: /v1/nodes/node.json.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:39.643681+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=owner {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'owner': 'fred'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'protected': True}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.085921s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.133717s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.067980s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.123919s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.349110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.112560s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.057937s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.053493s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.114110s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'storage_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d0b0087c-f83c-4952-8aeb-1e84b1133d3b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-af2366df-bdbc-407a-92e9-914bc87d66ab X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.213722+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.213722+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.330126+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.330126+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.447378+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:40.447378+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.123407s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.231531s] ... ok GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '5adba84a-f287-4850-81a9-62cd6c7c72f6', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5adba84a-f287-4850-81a9-62cd6c7c72f6/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group2', 'updated_at': None, 'created_at': '2020-05-05T00:01:39.580283+00:00'}]} GET: /v1/nodes?conductor=like.shadows {} GOT:{'nodes': []} GET: /v1/nodes?conductor=like.shadows {} GOT:{'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-04262bd8-957c-42c4-bbc0-22469b7abf8a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"} GET: /v1/nodes?conductor=rocky.rocks {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-21ed143f-a0cd-48b2-bc71-2343954c44d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"} GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cfcd1524-731d-418a-879e-c4ef11165aac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} GET: /v1/nodes?fault=power failure {} GOT:{'nodes': [{'uuid': '6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=clean failure {} GOT:{'nodes': [{'uuid': '260603f4-6531-4484-812f-da0313382673', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{'nodes': [{'uuid': '6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'power failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f57e2dd-8c22-4ce5-972b-5b788bc1ccfc/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.404453+00:00'}]} GET: /v1/nodes/detail?fault=clean failure {} GOT:{'nodes': [{'uuid': '260603f4-6531-4484-812f-da0313382673', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'clean failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/260603f4-6531-4484-812f-da0313382673/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/260603f4-6531-4484-812f-da0313382673/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.411761+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.335191s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.178332s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.204982s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.095322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.088945s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.060050s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.133039s] ... ok GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.596355+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.596355+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.804971+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:40.804971+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:41.007075+00:00'}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.192240s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.184128s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.210126s] ... ok GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dc41f2cb-d511-4a0f-9f1f-cea948490ebc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} GET: /v1/nodes/detail?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-70996177-871d-44ec-a487-35184b13f7d0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} GET: /v1/nodes?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c38ae3ae-6024-4860-8e0d-c89c9e8bfe62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\", \"debuginfo\": null}"} GET: /v1/nodes/detail?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8d953ff-94d1-41c6-898d-7ca30847b838 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\", \"debuginfo\": null}"} GET: /v1/nodes?driver=test {} GOT:{'nodes': []} GET: /v1/nodes?provision_state=test {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a180334-a7ec-4535-9d14-4a49333dd05f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} GET: /v1/nodes/detail?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes?owner=fred {} GOT:{'nodes': [{'uuid': '6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'rel': 'bookmark'}]}]} GET: /v1/nodes?owner=bob {} GOT:{'nodes': [{'uuid': '6c997dcb-314e-4e23-8145-c47f5a028d9c', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?owner=fred {} GOT:{'nodes': [{'uuid': '6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ebac1b9-6690-4fd7-abdc-2f249e09ee20/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'fred', 'updated_at': None, 'created_at': '2020-05-05T00:01:41.311425+00:00'}]} GET: /v1/nodes/detail?owner=bob {} GOT:{'nodes': [{'uuid': '6c997dcb-314e-4e23-8145-c47f5a028d9c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c997dcb-314e-4e23-8145-c47f5a028d9c/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'bob', 'updated_at': None, 'created_at': '2020-05-05T00:01:41.322533+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.325705s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.095002s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.088902s] ... ok GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:41.007075+00:00'}]} GET: /v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45 {} GOT:{'uuid': '1c78706e-d305-4719-b85b-49f37a925d45', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:41.197962+00:00'} GET: /v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45 {} GOT:{'uuid': '1c78706e-d305-4719-b85b-49f37a925d45', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:41.197962+00:00'} GET: /nodes/1c78706e-d305-4719-b85b-49f37a925d45 {} GOT:{'uuid': '1c78706e-d305-4719-b85b-49f37a925d45', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/1c78706e-d305-4719-b85b-49f37a925d45/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:41.197962+00:00'} GET: /v1/nodes?maintenance=true {} GOT:{'nodes': [{'uuid': '52a386d7-a6ae-439a-b97f-de4f6c840579', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/52a386d7-a6ae-439a-b97f-de4f6c840579', 'rel': 'self'}, {'href': 'http://localhost/nodes/52a386d7-a6ae-439a-b97f-de4f6c840579', 'rel': 'bookmark'}]}, {'uuid': '36736ca2-91e0-4463-8606-116c0a422fa4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/36736ca2-91e0-4463-8606-116c0a422fa4', 'rel': 'self'}, {'href': 'http://localhost/nodes/36736ca2-91e0-4463-8606-116c0a422fa4', 'rel': 'bookmark'}]}]} GET: /v1/nodes?maintenance=false {} GOT:{'nodes': [{'uuid': 'c21ece33-c516-4484-9e8b-fc7dde15f2cc', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c21ece33-c516-4484-9e8b-fc7dde15f2cc', 'rel': 'self'}, {'href': 'http://localhost/nodes/c21ece33-c516-4484-9e8b-fc7dde15f2cc', 'rel': 'bookmark'}]}, {'uuid': '1d8c1443-3331-4323-ac05-d1f9bfe01e2c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1d8c1443-3331-4323-ac05-d1f9bfe01e2c', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d8c1443-3331-4323-ac05-d1f9bfe01e2c', 'rel': 'bookmark'}]}, {'uuid': 'f8614861-c0be-4de1-8e78-2c178b05a6b8', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f8614861-c0be-4de1-8e78-2c178b05a6b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8614861-c0be-4de1-8e78-2c178b05a6b8', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:41.596378+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.180615s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.092498s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.053059s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.225537s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.078578s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.075239s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.078194s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.074027s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.077444s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.089576s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:41.596378+00:00'} GET: /v1/nodes/?limit=3&associated=True {} GOT:{'nodes': [{'uuid': 'a6544ed5-d92c-43ec-897f-30ca3fba6f89', 'instance_uuid': '9eb987f9-7b29-4fde-a117-f1f2d3e70ffa', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a6544ed5-d92c-43ec-897f-30ca3fba6f89', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6544ed5-d92c-43ec-897f-30ca3fba6f89', 'rel': 'bookmark'}]}, {'uuid': '4130e4ff-61c5-4a0e-8a77-e39cb8f91c59', 'instance_uuid': 'b0a383a7-ec2c-408e-82ae-741f5ef50519', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4130e4ff-61c5-4a0e-8a77-e39cb8f91c59', 'rel': 'self'}, {'href': 'http://localhost/nodes/4130e4ff-61c5-4a0e-8a77-e39cb8f91c59', 'rel': 'bookmark'}]}, {'uuid': '0a76acce-cccb-4950-b61d-4a052126e75a', 'instance_uuid': 'b82e1ef6-e410-4fcf-b58c-ab2e8144af86', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0a76acce-cccb-4950-b61d-4a052126e75a', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a76acce-cccb-4950-b61d-4a052126e75a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=0a76acce-cccb-4950-b61d-4a052126e75a'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': False, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.004223+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': True, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.079507+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspecting', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-05-05T00:01:42.154311+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.161078s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.243974s] ... ok GET: /v1/nodes?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a42f03a8-e46a-4d20-afdd-8ba28a9d2e56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET: /v1/nodes/detail?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b0c88b19-2936-49c1-857d-67058581d416 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-11cea6fd-c681-4e7b-9026-65dcc63d8096 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/detail?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-79041bcc-ca98-450a-bf5f-f11d15915c8c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-845bccf2-89bc-471e-83d6-8ac78427022f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} GOT:{'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'extra': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} GOT:{'driver_info': {'fake_password': '******'}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.117448+00:00'} GET: /v1/nodes/node.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.196667+00:00'} GET: /v1/nodes/test.1 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'test.1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.289517+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.088977s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.140263s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.089639s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.078145s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.079601s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspect wait', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-05-05T00:01:42.154311+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'updated_at': None, 'created_at': '2020-05-05T00:01:42.342735+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.342735+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'akindofmagic', 'updated_at': None, 'created_at': '2020-05-05T00:01:42.594793+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.116083s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.115484s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.189339s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.087487s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.121080s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.075034s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.708067+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.708067+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'active', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': True, 'protected_reason': 'reason!', 'updated_at': None, 'created_at': '2020-05-05T00:01:42.873772+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error', 'raid_config': {'foo': 'bar'}, 'target_raid_config': {'foo': 'bar'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.030594+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/spam/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-392cb0d7-29b7-4e27-bd8d-a0d5351598e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'traits': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'allocation_uuid': 'c34e38ef-f7e8-432c-a864-2d8e8d33c28b'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:42.892404+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': 'useful piece', 'updated_at': None, 'created_at': '2020-05-05T00:01:42.892404+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.009936+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'fish', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.009936+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.116714s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.325173s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.155256s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.341105s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.164994s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.285630s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.049592s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked [0.082048s] ... ok GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.145683+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-05-05T00:01:43.145683+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.468754+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.468754+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.743231+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.124928s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.234673s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.030594+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:{'portgroups': [{'uuid': 'c3031a61-6f8b-46a3-af1d-bac6826074f3', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/c3031a61-6f8b-46a3-af1d-bac6826074f3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3031a61-6f8b-46a3-af1d-bac6826074f3', 'rel': 'bookmark'}]}, {'uuid': 'd3f7881b-da55-464e-ae50-fd1d3ee3e8e0', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/d3f7881b-da55-464e-ae50-fd1d3ee3e8e0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d3f7881b-da55-464e-ae50-fd1d3ee3e8e0', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} GOT:{'portgroups': [{'uuid': 'c3031a61-6f8b-46a3-af1d-bac6826074f3', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/c3031a61-6f8b-46a3-af1d-bac6826074f3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3031a61-6f8b-46a3-af1d-bac6826074f3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=c3031a61-6f8b-46a3-af1d-bac6826074f3'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.564355+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'ssh_password': '******', 'ssh_key_contents': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.750004+00:00'} GET: /v1/nodes/validate?node=spam {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1b3e7fad-2618-45ea-8fe1-eb23fe1bba88 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.103023s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.141527s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.113206s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init [0.012142s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.045477s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.078942s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.081682s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.381416s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.092025s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.078549s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.121380s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:43.743231+00:00'} GET: /v1/nodes/13a12409-ba69-487d-830e-f34c459652b7 {} GOT:{'uuid': '13a12409-ba69-487d-830e-f34c459652b7', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.862899+00:00'} GET: /v1/nodes/13a12409-ba69-487d-830e-f34c459652b7 {} GOT:{'uuid': '13a12409-ba69-487d-830e-f34c459652b7', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.862899+00:00'} GET: /nodes/13a12409-ba69-487d-830e-f34c459652b7 {} GOT:{'uuid': '13a12409-ba69-487d-830e-f34c459652b7', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/13a12409-ba69-487d-830e-f34c459652b7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:43.862899+00:00'} GET: /v1/nodes?associated=true&maintenance=false {} GOT:{'nodes': [{'uuid': '84ed0a65-ad3b-496c-86ab-5c975230b135', 'instance_uuid': '5b2ed106-03f8-456f-8093-80eb7a1ada40', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/84ed0a65-ad3b-496c-86ab-5c975230b135', 'rel': 'self'}, {'href': 'http://localhost/nodes/84ed0a65-ad3b-496c-86ab-5c975230b135', 'rel': 'bookmark'}]}, {'uuid': 'a70c8df6-8492-4ede-8220-015902f349d4', 'instance_uuid': '5bad280e-4b62-4255-a98e-6644f4d640a2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a70c8df6-8492-4ede-8220-015902f349d4', 'rel': 'self'}, {'href': 'http://localhost/nodes/a70c8df6-8492-4ede-8220-015902f349d4', 'rel': 'bookmark'}]}, {'uuid': '85e03c13-be92-4fde-9a70-4be7fedd1abc', 'instance_uuid': '80e08298-9a6e-480b-aedf-2fe38176fd0b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/85e03c13-be92-4fde-9a70-4be7fedd1abc', 'rel': 'self'}, {'href': 'http://localhost/nodes/85e03c13-be92-4fde-9a70-4be7fedd1abc', 'rel': 'bookmark'}]}, {'uuid': 'cc7017b8-f3e1-484e-8e7d-830bb190ab7c', 'instance_uuid': '7ea81ba5-7177-4976-a3fa-e95cb49e1059', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cc7017b8-f3e1-484e-8e7d-830bb190ab7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc7017b8-f3e1-484e-8e7d-830bb190ab7c', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=true {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'c67005f2-e977-43c8-89d5-5100ce3d281b', 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=TruE {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'c67005f2-e977-43c8-89d5-5100ce3d281b', 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a93e74e8-8759-472a-825c-e61ca4a109a4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute maintenance. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.061301s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.225158s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.076713s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.086182s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.147707s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.071372s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.075460s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.154507s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.077446s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.125618s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.077429s] ... ok GET: /v1/nodes {} GOT:{'nodes': [{'uuid': 'ce9a54e7-7eef-4af2-b37b-1259dc38ad3b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ce9a54e7-7eef-4af2-b37b-1259dc38ad3b', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce9a54e7-7eef-4af2-b37b-1259dc38ad3b', 'rel': 'bookmark'}]}, {'uuid': '2ff4b136-5032-41dc-9057-6c30ff444860', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2ff4b136-5032-41dc-9057-6c30ff444860', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ff4b136-5032-41dc-9057-6c30ff444860', 'rel': 'bookmark'}]}, {'uuid': 'f62fba71-6ef4-4d89-84a8-5ddd29254c08', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f62fba71-6ef4-4d89-84a8-5ddd29254c08', 'rel': 'self'}, {'href': 'http://localhost/nodes/f62fba71-6ef4-4d89-84a8-5ddd29254c08', 'rel': 'bookmark'}]}, {'uuid': '0039b790-78e6-4544-bbc1-508d3cad278e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0039b790-78e6-4544-bbc1-508d3cad278e', 'rel': 'self'}, {'href': 'http://localhost/nodes/0039b790-78e6-4544-bbc1-508d3cad278e', 'rel': 'bookmark'}]}, {'uuid': 'f3f61f11-8284-4a91-9933-102c1802f3f7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f3f61f11-8284-4a91-9933-102c1802f3f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/f3f61f11-8284-4a91-9933-102c1802f3f7', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '0f8520ea-6ddf-4488-8d2b-8ec56d8dc127', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0f8520ea-6ddf-4488-8d2b-8ec56d8dc127', 'rel': 'self'}, {'href': 'http://localhost/nodes/0f8520ea-6ddf-4488-8d2b-8ec56d8dc127', 'rel': 'bookmark'}]}, {'uuid': 'c335d736-467c-4988-bd39-6f91d6887480', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c335d736-467c-4988-bd39-6f91d6887480', 'rel': 'self'}, {'href': 'http://localhost/nodes/c335d736-467c-4988-bd39-6f91d6887480', 'rel': 'bookmark'}]}, {'uuid': 'c76d5e13-3c9a-44a8-9c93-785c8cb5ffd5', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c76d5e13-3c9a-44a8-9c93-785c8cb5ffd5', 'rel': 'self'}, {'href': 'http://localhost/nodes/c76d5e13-3c9a-44a8-9c93-785c8cb5ffd5', 'rel': 'bookmark'}]}, {'uuid': '16ade85a-6dc6-45ca-8d61-78ce43a224e4', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/16ade85a-6dc6-45ca-8d61-78ce43a224e4', 'rel': 'self'}, {'href': 'http://localhost/nodes/16ade85a-6dc6-45ca-8d61-78ce43a224e4', 'rel': 'bookmark'}]}, {'uuid': '9ffb65b4-1400-499c-a4dc-54465f993a07', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9ffb65b4-1400-499c-a4dc-54465f993a07', 'rel': 'self'}, {'href': 'http://localhost/nodes/9ffb65b4-1400-499c-a4dc-54465f993a07', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{'nodes': [{'uuid': 'e7ec4ad6-3beb-4066-a5dd-dbfcb50850e6', 'instance_uuid': '8bb04524-6f95-4723-b29c-5714627dc25b', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e7ec4ad6-3beb-4066-a5dd-dbfcb50850e6', 'rel': 'self'}, {'href': 'http://localhost/nodes/e7ec4ad6-3beb-4066-a5dd-dbfcb50850e6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e7ec4ad6-3beb-4066-a5dd-dbfcb50850e6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e7ec4ad6-3beb-4066-a5dd-dbfcb50850e6/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:44.940760+00:00'}, {'uuid': '1e7f07fc-875d-4fa9-8b28-fd0c63960321', 'instance_uuid': '8b6a86c4-2b45-4750-a96d-696b56f0c991', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1e7f07fc-875d-4fa9-8b28-fd0c63960321', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e7f07fc-875d-4fa9-8b28-fd0c63960321', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1e7f07fc-875d-4fa9-8b28-fd0c63960321/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e7f07fc-875d-4fa9-8b28-fd0c63960321/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:44.947279+00:00'}, {'uuid': '37a4309c-5f0d-4177-9fa7-1dd337c1d9d5', 'instance_uuid': '83fed278-205a-4d74-9821-e1bdc98ebd65', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/37a4309c-5f0d-4177-9fa7-1dd337c1d9d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/37a4309c-5f0d-4177-9fa7-1dd337c1d9d5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/37a4309c-5f0d-4177-9fa7-1dd337c1d9d5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/37a4309c-5f0d-4177-9fa7-1dd337c1d9d5/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:44.953933+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=37a4309c-5f0d-4177-9fa7-1dd337c1d9d5'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2020-05-05T00:01:45.071073+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.112046s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.098740s] ... ok GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c13922fb-c3b2-433d-a844-e3eab982c6af X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fdc39c5f-3927-4ca5-a586-d9bc6593af8d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/chassis_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/nodes/ee89fa6a-e1b0-4682-a91f-3b92c47b296d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f2534010-fc95-43f6-b7f9-22c0da3bdf36 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ee89fa6a-e1b0-4682-a91f-3b92c47b296d can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} PATCH: /v1/nodes/5c226ae9-4fce-4e81-a8f9-414fe8488d2a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0fef2b28-059b-4eaf-bea3-8c1be95d5712 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5c226ae9-4fce-4e81-a8f9-414fe8488d2a", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "active", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/5c226ae9-4fce-4e81-a8f9-414fe8488d2a", "rel": "self"}, {"href": "http://localhost/nodes/5c226ae9-4fce-4e81-a8f9-414fe8488d2a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c226ae9-4fce-4e81-a8f9-414fe8488d2a/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c226ae9-4fce-4e81-a8f9-414fe8488d2a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:44.431551+00:00"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e582e813-5bf1-4a8a-9dc6-ea4440062fb0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} PATCH: /v1/nodes/30d14cdb-ed22-4401-93b1-cb99de23a425 [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'd56803d6-0d07-49ad-aa86-3b57f41e85b7'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da4e58c8-fec6-4942-9fd2-4d4ee57066c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/7a916bd8-2b8a-4296-89ad-f1bb3bc95c49 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9c9416cf-7d10-4cd7-9295-ca516fbcdb4e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/deploy_step' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/f5918ab1-9674-451d-8963-09b76c59406f [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-549a8552-56b9-4517-bb1a-c8f2d3e50d13 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} PATCH: /v1/nodes/0dee2bf1-bb86-4069-ba1d-743254d8694f [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cbbdf023-7b44-4ff0-82a6-945ace06c55d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/fault' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9a638a0-7505-4ec1-98d5-79e0abddfb4b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb86c48f-5bf4-45e0-9b51-d0c9ad8a3a07 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43cda411-856c-4a86-9e6f-dd6de8c1b052 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1c07e05-9ea7-4101-aab3-86e65ab339f1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dbdbbbb5-ea0d-4435-aea3-865cddcc63d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.110663s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.206470s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:45.071073+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:45.183458+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-05-05T00:01:45.316944+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:45.316944+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.150433s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.093148s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.077935s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.075981s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.125455s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.061115s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.071002s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.068551s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.338990s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.078273s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.094746s] ... ok GET: /v1/nodes?instance_uuid=12c69fd9-53bc-489e-97af-eb3db04cf3ba {} GOT:{'nodes': [{'uuid': '93a83e23-c989-4311-a78f-258a954d1e19', 'instance_uuid': '12c69fd9-53bc-489e-97af-eb3db04cf3ba', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93a83e23-c989-4311-a78f-258a954d1e19', 'rel': 'self'}, {'href': 'http://localhost/nodes/93a83e23-c989-4311-a78f-258a954d1e19', 'rel': 'bookmark'}]}]} GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0ef5a5f-37c1-4541-af7c-dc32bc5afd51 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\", \"debuginfo\": null}"} GET: /v1/nodes?instance_uuid=f10b9a5e-7b5a-457a-b3ff-29a6d8e8e1a2 {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:45.694157+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2020-05-05T00:01:45.694157+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.020873+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.113053s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.141620s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.136822s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.088718s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'updated_at': None, 'created_at': '2020-05-05T00:01:46.020873+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.134691+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.134691+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.275764+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.075021s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.148388s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.096380s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.351128+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.351128+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.499740+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.598062+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.091933s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.246240s] ... ok GET: /v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a {} GOT:{'uuid': 'c06e2aab-5e99-44c9-9be2-2398c8bae33a', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'active', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a', 'rel': 'self'}, {'href': 'http://localhost/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c06e2aab-5e99-44c9-9be2-2398c8bae33a/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': True, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.711566+00:00'} GET: /v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e {} GOT:{'uuid': 'ef0a67d1-7882-49ca-baeb-f8f85960324e', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'active', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef0a67d1-7882-49ca-baeb-f8f85960324e/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.824158+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.958506+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:46.958506+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.172680s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.138684s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.150024s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.243405s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dfb0c01e-80a4-4941-bc79-93181637ca3c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/chassis_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'chassis_id'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-36f8e43b-8915-40fb-82c9-5721324549f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/last_error' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-20a0c831-aeb3-4cb0-b1e3-d7ebcd2b4af7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/driver' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b4b5e53b-b4ec-4756-9a57-f5d75a7ed537 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f4ba787-a316-4318-b97f-8890c54cef7a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-893e3460-5cc1-4557-81eb-b42ea7f1b7d9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/chassis_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'chassis_id'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-095762dd-599d-42bb-b959-370f71399b01 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a59455d-29d2-4a83-b554-a8b685ae972e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21b10e92-7801-47cf-9113-8edbef0951e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d05b176f-683e-481d-bd7d-5567a5720b8c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ccdeb44-1feb-4854-a20f-06eeff9c7c61 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be45af21-58c9-4426-9d3b-cfb3dc9d17d9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7732d4f-c51f-4fc6-9bba-38f72bf07096 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4ad4efb-ad7e-4eea-90d5-d7e4cf967b85 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/power_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fc106a2-9555-43b6-a5fd-cf767a7adabc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31980c64-8cc1-4d21-a492-571aed07ad59 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"} PATCH: /v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5 [{'path': '/vendor_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f74103ab-1d68-4265-aed4-eace9002ad07 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "self"}, {"href": "http://localhost/nodes/c7cc56d7-9689-46bd-87a3-5f1a3b4f63e5/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:46.402797+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.749370s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.135210s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.194910s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.180613s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.134488s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.164003s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-eb081735-7eca-43e5-93b9-b75defd073fb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4 [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf513cac-c36c-412d-bdf2-4416d6cb92dd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c4a822ba-822b-47e9-9e50-a145f204c9b4", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4", "rel": "self"}, {"href": "http://localhost/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/states", "rel": "self"}, {"href": "http://localhost/nodes/c4a822ba-822b-47e9-9e50-a145f204c9b4/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:47.324356+00:00"} PATCH: /v1/nodes/be329765-ea87-41b4-875e-c30b5ab95e52 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e698a60-8944-42dc-82ea-e7d3ba6c70bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "be329765-ea87-41b4-875e-c30b5ab95e52", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": true, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/be329765-ea87-41b4-875e-c30b5ab95e52", "rel": "self"}, {"href": "http://localhost/nodes/be329765-ea87-41b4-875e-c30b5ab95e52", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/be329765-ea87-41b4-875e-c30b5ab95e52/ports", "rel": "self"}, {"href": "http://localhost/nodes/be329765-ea87-41b4-875e-c30b5ab95e52/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:47.513290+00:00"} PATCH: /v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8e16436-9622-4d92-a203-f046decf05a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6", "rel": "self"}, {"href": "http://localhost/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/volume", "rel": "self"}, {"href": "http://localhost/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/states", "rel": "self"}, {"href": "http://localhost/nodes/6c5ef9da-800e-4cc8-8f46-8ffc28f1dfb6/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2020-05-05T00:01:47.704649+00:00"} PATCH: /v1/nodes/1e820905-1fe6-4dbc-b0d7-480847b35f9e [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}]{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.109874s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.168111s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} GET: /v1/nodes/eggs/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '1971-03-09T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:47.427002+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:47.427002+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:47.645034+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-05-05T00:01:47.645034+00:00'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.116742s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.161650s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.296747s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.037801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.068035s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.072415s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.065310s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.083261s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af90d11e-29ca-466c-a491-a5a72912beb9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7ddceda5-de85-4620-a00e-f6d8843da1c4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} PATCH: /v1/nodes/ee1881c5-62cf-47e9-a22c-619f01a22b38 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f717d566-725e-4340-a5a8-48a4dbc817a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ee1881c5-62cf-47e9-a22c-619f01a22b38", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ee1881c5-62cf-47e9-a22c-619f01a22b38", "rel": "self"}, {"href": "http://localhost/nodes/ee1881c5-62cf-47e9-a22c-619f01a22b38", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ee1881c5-62cf-47e9-a22c-619f01a22b38/ports", "rel": "self"}, {"href": "http://localhost/nodes/ee1881c5-62cf-47e9-a22c-619f01a22b38/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.116701+00:00"} PATCH: /v1/nodes/bd24336d-6fa2-447c-91da-3b100a18db01 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e296eaf6-d9ba-40e7-9a43-cfa8fc12fe97 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "bd24336d-6fa2-447c-91da-3b100a18db01", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/bd24336d-6fa2-447c-91da-3b100a18db01", "rel": "self"}, {"href": "http://localhost/nodes/bd24336d-6fa2-447c-91da-3b100a18db01", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bd24336d-6fa2-447c-91da-3b100a18db01/ports", "rel": "self"}, {"href": "http://localhost/nodes/bd24336d-6fa2-447c-91da-3b100a18db01/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.233698+00:00"} PATCH: /v1/nodes/2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a298ecc-3f69-44f6-808f-acdf1b31a5b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspect failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4", "rel": "self"}, {"href": "http://localhost/nodes/2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c4e57ff-6d57-4aa2-bbdb-57e75b06e6b4/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.297262+00:00"} PATCH: /v1/nodes/7565f556-f5ce-4d4e-96d6-77754a226abd [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d320344-5353-4e9d-89bd-ddb9abdd1bb0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7565f556-f5ce-4d4e-96d6-77754a226abd", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7565f556-f5ce-4d4e-96d6-77754a226abd", "rel": "self"}, {"href": "http://localhost/nodes/7565f556-f5ce-4d4e-96d6-77754a226abd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7565f556-f5ce-4d4e-96d6-77754a226abd/ports", "rel": "self"}, {"href": "http://localhost/nodes/7565f556-f5ce-4d4e-96d6-77754a226abd/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.561103+00:00"} PATCH: /v1/nodes/1fe3ff08-353b-430d-a27f-c9159d046d31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4fbfea0-1c76-4c82-9249-f2a585be818d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1fe3ff08-353b-430d-a27f-c9159d046d31", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "clean failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1fe3ff08-353b-430d-a27f-c9159d046d31", "rel": "self"}, {"href": "http://localhost/nodes/1fe3ff08-353b-430d-a27f-c9159d046d31", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1fe3ff08-353b-430d-a27f-c9159d046d31/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fe3ff08-353b-430d-a27f-c9159d046d31/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.608724+00:00"} PATCH: /v1/nodes/dc15481b-eb21-47d6-a39d-a7840fff88f6 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.183226s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.916624s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.132936s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:47.947141+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:{'ports': [{'uuid': '57e093fe-9b85-426b-a89f-54e179dccfc7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/57e093fe-9b85-426b-a89f-54e179dccfc7', 'rel': 'self'}, {'href': 'http://localhost/ports/57e093fe-9b85-426b-a89f-54e179dccfc7', 'rel': 'bookmark'}]}, {'uuid': '982c94f6-cfe4-4be9-b4cc-d8d4a80e7fb4', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/982c94f6-cfe4-4be9-b4cc-d8d4a80e7fb4', 'rel': 'self'}, {'href': 'http://localhost/ports/982c94f6-cfe4-4be9-b4cc-d8d4a80e7fb4', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{'ports': [{'uuid': '57e093fe-9b85-426b-a89f-54e179dccfc7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/57e093fe-9b85-426b-a89f-54e179dccfc7', 'rel': 'self'}, {'href': 'http://localhost/ports/57e093fe-9b85-426b-a89f-54e179dccfc7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=57e093fe-9b85-426b-a89f-54e179dccfc7'} GET: /v1/nodes/123~123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 123~123.\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:48.418693+00:00'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fb75b24a-a949-4293-aea2-f6a578ea431e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e0bb626-6104-4e34-ae65-7f37b532fcf9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c7565b8-a788-4f0c-8dc0-692717524c2f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=uuid {} GOT:{'nodes': [{'uuid': '246bbb27-da2c-42ce-8e17-f00c91396637', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/246bbb27-da2c-42ce-8e17-f00c91396637', 'rel': 'self'}, {'href': 'http://localhost/nodes/246bbb27-da2c-42ce-8e17-f00c91396637', 'rel': 'bookmark'}]}, {'uuid': '36589fa3-00e5-45ba-ad79-e414f1506a4c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/36589fa3-00e5-45ba-ad79-e414f1506a4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/36589fa3-00e5-45ba-ad79-e414f1506a4c', 'rel': 'bookmark'}]}, {'uuid': '5c90dd37-94c8-410d-92bd-f3857cd96c71', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5c90dd37-94c8-410d-92bd-f3857cd96c71', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c90dd37-94c8-410d-92bd-f3857cd96c71', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=resource_class {} GOT:{'nodes': [{'uuid': 'ce3a0b57-7ee3-442b-80f7-92b3535594fd', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ce3a0b57-7ee3-442b-80f7-92b3535594fd', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce3a0b57-7ee3-442b-80f7-92b3535594fd', 'rel': 'bookmark'}]}, {'uuid': '16366ea6-6675-4028-88d4-ead530bbfdd5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/16366ea6-6675-4028-88d4-ead530bbfdd5', 'rel': 'self'}, {'href': 'http://localhost/nodes/16366ea6-6675-4028-88d4-ead530bbfdd5', 'rel': 'bookmark'}]}, {'uuid': 'ebc93a15-a8ea-4e7f-b52d-b999b09ccf8a', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ebc93a15-a8ea-4e7f-b52d-b999b09ccf8a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebc93a15-a8ea-4e7f-b52d-b999b09ccf8a', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d2b9f510-59fb-4e69-993d-efbfae330102 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.338955s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.120514s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f175f062-5cc2-424c-af1b-15703331e557 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "dc15481b-eb21-47d6-a39d-a7840fff88f6", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "error", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/dc15481b-eb21-47d6-a39d-a7840fff88f6", "rel": "self"}, {"href": "http://localhost/nodes/dc15481b-eb21-47d6-a39d-a7840fff88f6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/dc15481b-eb21-47d6-a39d-a7840fff88f6/ports", "rel": "self"}, {"href": "http://localhost/nodes/dc15481b-eb21-47d6-a39d-a7840fff88f6/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.654816+00:00"} PATCH: /v1/nodes/940b6ea7-01d8-4a31-bb0f-3cb1f2149270 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a08635f1-573d-478b-b6a3-84cb2d9b9c23 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "940b6ea7-01d8-4a31-bb0f-3cb1f2149270", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "verifying", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/940b6ea7-01d8-4a31-bb0f-3cb1f2149270", "rel": "self"}, {"href": "http://localhost/nodes/940b6ea7-01d8-4a31-bb0f-3cb1f2149270", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/940b6ea7-01d8-4a31-bb0f-3cb1f2149270/ports", "rel": "self"}, {"href": "http://localhost/nodes/940b6ea7-01d8-4a31-bb0f-3cb1f2149270/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.749833+00:00"} PATCH: /v1/nodes/8ecc0322-fc12-40b9-a66a-217efcea827a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e07c4ae-fc53-4522-a7e2-b27d32061e1e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "8ecc0322-fc12-40b9-a66a-217efcea827a", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "adopt failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/8ecc0322-fc12-40b9-a66a-217efcea827a", "rel": "self"}, {"href": "http://localhost/nodes/8ecc0322-fc12-40b9-a66a-217efcea827a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8ecc0322-fc12-40b9-a66a-217efcea827a/ports", "rel": "self"}, {"href": "http://localhost/nodes/8ecc0322-fc12-40b9-a66a-217efcea827a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.798648+00:00"} PATCH: /v1/nodes/fee7a29f-3531-4183-b6ca-104f40ed1d24 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2baf7f3-f357-4d3c-a05d-123f84998381 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fee7a29f-3531-4183-b6ca-104f40ed1d24", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "rescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/fee7a29f-3531-4183-b6ca-104f40ed1d24", "rel": "self"}, {"href": "http://localhost/nodes/fee7a29f-3531-4183-b6ca-104f40ed1d24", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/fee7a29f-3531-4183-b6ca-104f40ed1d24/ports", "rel": "self"}, {"href": "http://localhost/nodes/fee7a29f-3531-4183-b6ca-104f40ed1d24/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.861395+00:00"} PATCH: /v1/nodes/d185256c-f98c-4d4e-b189-422cc0f4095a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8c2ffef-b1d8-4c52-b3a1-14794559e1ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d185256c-f98c-4d4e-b189-422cc0f4095a", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "unrescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/d185256c-f98c-4d4e-b189-422cc0f4095a", "rel": "self"}, {"href": "http://localhost/nodes/d185256c-f98c-4d4e-b189-422cc0f4095a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d185256c-f98c-4d4e-b189-422cc0f4095a/ports", "rel": "self"}, {"href": "http://localhost/nodes/d185256c-f98c-4d4e-b189-422cc0f4095a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:48.909566+00:00"} PATCH: /v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbc49d69-0fdd-4c03-8a94-0365baff22c0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "37e9b6fa-9227-4706-8499-d54a66426ca7", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7", "rel": "self"}, {"href": "http://localhost/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/ports", "rel": "self"}, {"href": "http://localhost/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/volume", "rel": "self"}, {"href": "http://localhost/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/states", "rel": "self"}, {"href": "http://localhost/nodes/37e9b6fa-9227-4706-8499-d54a66426ca7/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "updated_at": null, "created_at": "2020-05-05T00:01:48.997734+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.110633s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.170044s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.198530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.101188s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.092475s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.250500s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.089854s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.153696s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.073501s] ... ok PATCH: /v1/nodes/26042bb1-6df1-4553-be6b-4d39bef9a0b2 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c737336e-d97a-46b5-a6b1-6450dedbb433 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"26042bb1-6df1-4553-be6b-4d39bef9a0b2\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9af8ad72-11f9-484f-8b8e-aaaac21a716f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "9cf35f27-5319-4ab3-882a-3a2ebfe99e2d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d", "rel": "self"}, {"href": "http://localhost/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/states", "rel": "self"}, {"href": "http://localhost/nodes/9cf35f27-5319-4ab3-882a-3a2ebfe99e2d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:49.313148+00:00"} PATCH: /v1/nodes/d07d3716-d118-4d6c-a1e0-c8a980117f08 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-001b3e8d-2d8b-4d85-ad27-18d66bcfd3df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b14d398-fab6-4202-aece-d58c1f1bbfb3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-05-05T00:01:49.567822+00:00"} PATCH: /v1/nodes/node-57.1.json [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-732cbb70-46a0-43a4-a3cc-a44eddad2613 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-05-05T00:01:49.656833+00:00"} PATCH: /v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ca87504b-808b-4de7-8559-32c417191323 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7", "rel": "self"}, {"href": "http://localhost/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/ports", "rel": "self"}, {"href": "http://localhost/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/volume", "rel": "self"}, {"href": "http://localhost/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/states", "rel": "self"}, {"href": "http://localhost/nodes/f2d25a59-e2c0-4fe3-ad84-51c194ca0ff7/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "updated_at": null, "created_at": "2020-05-05T00:01:49.763670+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.104909s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.142141s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.133022s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.110377s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.072062s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.091932s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.180408s] ... ok GET: /v1/nodes?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a9e725b6-9f6c-42e8-b748-d3ed7c96018b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=driver_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1eade74e-d6c8-47cd-bcc2-6f70923cae6a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a99f78e-b349-498b-8ff9-e7c24de63ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=instance_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a967b3bf-a1df-4a6a-9b9b-7ddbac8f2a53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=driver_internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c295f1c-54c2-4d95-96d8-b0aca9203364 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=clean_step {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d85b5e85-bdd4-499d-9d39-cfdf233edfaf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=traits {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b20f001-76d6-4bc8-96a9-fe199b31d9ff X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c29ef7c2-e3b7-4621-817a-5184b5a44c19 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=false {} GOT:{'nodes': [{'uuid': '33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'rel': 'self'}, {'href': 'http://localhost/nodes/33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'rel': 'bookmark'}]}, {'uuid': 'd97d1e87-4a6f-4a31-a982-03eda1142406', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d97d1e87-4a6f-4a31-a982-03eda1142406', 'rel': 'self'}, {'href': 'http://localhost/nodes/d97d1e87-4a6f-4a31-a982-03eda1142406', 'rel': 'bookmark'}]}, {'uuid': '0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=FALSE {} GOT:{'nodes': [{'uuid': '33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'rel': 'self'}, {'href': 'http://localhost/nodes/33b7f9b2-f1d5-47ef-8c25-bbc657ec0348', 'rel': 'bookmark'}]}, {'uuid': 'd97d1e87-4a6f-4a31-a982-03eda1142406', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d97d1e87-4a6f-4a31-a982-03eda1142406', 'rel': 'self'}, {'href': 'http://localhost/nodes/d97d1e87-4a6f-4a31-a982-03eda1142406', 'rel': 'bookmark'}]}, {'uuid': '0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d65de88-b0df-4d9e-b2b5-cee8b5c75ba7', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=False&limit=2 {} GOT:{'nodes': [{'uuid': '68a264ce-f087-4f1c-b15c-62eb691f41a1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/68a264ce-f087-4f1c-b15c-62eb691f41a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/68a264ce-f087-4f1c-b15c-62eb691f41a1', 'rel': 'bookmark'}]}, {'uuid': '68ba9704-7f50-4fcf-843f-2de109ae9446', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/68ba9704-7f50-4fcf-843f-2de109ae9446', 'rel': 'self'}, {'href': 'http://localhost/nodes/68ba9704-7f50-4fcf-843f-2de109ae9446', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=2&marker=68ba9704-7f50-4fcf-843f-2de109ae9446'} GET: /v1/nodes/validate?node=spam {} GOT:{} GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:{'connectors': [{'uuid': 'a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'rel': 'bookmark'}]}, {'uuid': 'e1093afb-38e8-47bf-9605-14b55ce53256', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e1093afb-38e8-47bf-9605-14b55ce53256', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e1093afb-38e8-47bf-9605-14b55ce53256', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{'connectors': [{'uuid': 'a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a795b50b-4ed2-4d47-be2c-ab26e2601f88', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=1&marker=a795b50b-4ed2-4d47-be2c-ab26e2601f88'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.094322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.156988s] ... ok PATCH: /v1/nodes/ce25cbbe-c748-4be1-b069-2ecd0466e029 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5d7fc5d7-9fa8-4d18-a9d3-e6612887ec5d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-622d542f-a58c-47ab-bfaf-78566cec5107 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "b546067c-52a1-46b8-a57b-6afbfd63d3c9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9", "rel": "self"}, {"href": "http://localhost/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/states", "rel": "self"}, {"href": "http://localhost/nodes/b546067c-52a1-46b8-a57b-6afbfd63d3c9/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "updated_at": null, "created_at": "2020-05-05T00:01:50.017370+00:00"} PATCH: /v1/nodes/527ad1c0-40df-4a52-896b-c38cea157c8a [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-592f0c69-9f41-48b4-a776-29399118a18b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84ffe304-24e2-4894-a88e-508c0df41233 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "35260750-bfd3-49ad-bb88-3612f22c4d6e", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e", "rel": "self"}, {"href": "http://localhost/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/ports", "rel": "self"}, {"href": "http://localhost/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/volume", "rel": "self"}, {"href": "http://localhost/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/states", "rel": "self"}, {"href": "http://localhost/nodes/35260750-bfd3-49ad-bb88-3612f22c4d6e/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": true, "protected_reason": null, "updated_at": null, "created_at": "2020-05-05T00:01:50.198011+00:00"} PATCH: /v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc [{'path': '/protected', 'value': True, 'op': 'replace'}, {'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8e97e60-5e51-4426-965b-dd6348102fcb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1819b168-d76a-41d2-9eb1-cbca2ff200dc", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc", "rel": "self"}, {"href": "http://localhost/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/ports", "rel": "self"}, {"href": "http://localhost/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/volume", "rel": "self"}, {"href": "http://localhost/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/states", "rel": "self"}, {"href": "http://localhost/nodes/1819b168-d76a-41d2-9eb1-cbca2ff200dc/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "updated_at": null, "created_at": "2020-05-05T00:01:50.308795+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.126187s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.194667s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.129799s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.097664s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.078954s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.065765s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.100244s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.180786s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.076560s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.080458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.073213s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.074867s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.043148s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.104499s] ... ok PATCH: /v1/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe52b6dd-f2b8-48b8-853d-974e8c2eaf1d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "93b48fc7-509a-4b18-9c80-d2e03459f3e4", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4", "rel": "self"}, {"href": "http://localhost/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4/ports", "rel": "self"}, {"href": "http://localhost/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4/states", "rel": "self"}, {"href": "http://localhost/nodes/93b48fc7-509a-4b18-9c80-d2e03459f3e4/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-05-05T00:01:50.457488+00:00"} PATCH: /v1/nodes/63e6ec48-e09a-45d3-963c-5185f514bf55 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-29505c86-0dda-4d9e-a922-90368d41c6a8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ee62349e-ff32-462a-88dc-8c5645d0574f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\", \"debuginfo\": null}"} PATCH: /v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e87ad64e-5cf9-4bd9-b0eb-fc6a96657491 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a1fc7612-dc50-4241-89b0-29d72885d38e", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e", "rel": "self"}, {"href": "http://localhost/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/ports", "rel": "self"}, {"href": "http://localhost/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/volume", "rel": "self"}, {"href": "http://localhost/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/states", "rel": "self"}, {"href": "http://localhost/nodes/a1fc7612-dc50-4241-89b0-29d72885d38e/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:50.778798+00:00"} PATCH: /v1/nodes/0642510e-1300-4160-a40b-4d79cbfdd758 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ef8e5e7d-73ea-4c26-9448-81664b06165d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/d21187a2-8629-4a22-bce4-32519f30495e [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb143474-5a29-415d-b07f-44fcd7228074 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0091ed3-37ed-4a8c-a367-6bc5753e35e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-05-05T00:01:51.015896+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.099888s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.182865s] ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd63f885-417c-46eb-ba9e-fa498cdd7d53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-723a6dd1-b684-43f1-91a2-edac76153de1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:50.670597+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:{'targets': [{'uuid': '34d99143-c253-495e-b64a-c004e3502962', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/34d99143-c253-495e-b64a-c004e3502962', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/34d99143-c253-495e-b64a-c004e3502962', 'rel': 'bookmark'}]}, {'uuid': '33e0298b-240b-4278-9b2b-7bdaa75d42a3', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/33e0298b-240b-4278-9b2b-7bdaa75d42a3', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/33e0298b-240b-4278-9b2b-7bdaa75d42a3', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{'targets': [{'uuid': '34d99143-c253-495e-b64a-c004e3502962', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/34d99143-c253-495e-b64a-c004e3502962', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/34d99143-c253-495e-b64a-c004e3502962', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=1&marker=34d99143-c253-495e-b64a-c004e3502962'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-18ddacb0-4b27-457f-8e6d-df390fa480a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f543c64-6ba8-4c25-b208-e1ccf1385b20 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e948b815-c9ae-4403-96bb-28773313cada X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:51.130004+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36999955-0f75-47ee-8412-a3a322eb1738 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:51.263893+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.145235s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.171300s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.079899s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.072652s] ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3da880de-6f75-4f2d-b03f-09bb17b2e641 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-ab4f1e98-4b14-4ad6-96bd-33fa45000d41 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "automated_clean": true, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:51.368079+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': True, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:51.368079+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.167590s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.062340s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.086589s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.284316s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.095288s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.129477s] ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e8fb7496-bf29-476a-881c-f6eae0b0cc59 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-ad1e99d7-aa2e-4b88-acbf-2c1ef06488e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:51.710179+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:51.710179+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e9885f73-bfe2-4273-b7e2-81253efb28e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "neutron", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'neutron', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.184900s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.065523s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.056880s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.090544s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c6d25ca-1e61-4acf-917f-39c8c4ad68c7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:51.420771+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1b61ce04-9d4b-4705-9661-56af0d822e69 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f92a6a70-4ab9-4b45-9ef9-105241d4afc2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0d4d634-d4f6-4180-90e7-c057d998ad3f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ff5e261-b941-4857-bf22-f72230e9a153 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "deadbeef-0000-1111-2222-333333333333", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:51.811170+00:00"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b680497-b11c-4d5c-abae-ce3a485709b3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8209dab8-1ae9-4701-9dfa-661f695a40f1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e04f1026-dc12-4464-b5b4-5fb35c785eaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-906e5786-a7be-4173-8bad-1f78fa58b012 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f0b1cc19-2413-4fb8-879b-23ac328c2e0e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6fdd7e15-851f-4413-970a-bb2d0999d607 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.297368s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.110724s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.092241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.088440s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.074510s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.059984s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-4dc9473f-ed0b-46a7-9558-f28f00353e2b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "class2", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "flat", "updated_at": null, "created_at": "2020-05-05T00:01:51.990332+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-05-05T00:01:51.990332+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f7fdf575-ce8d-4605-bfcd-8f195c65824c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-277bb1a3-0c3c-44f6-8aea-f982c3591372 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e7a91169-245b-494e-b1e4-5b0189eae58b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'protected': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce8113fc-9f03-4dfd-a96c-5a4a4fb5ba14 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify protected or protected_reason on node creation. These fields can only be set for active nodes\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ed02d4ac-85e3-45fd-ad5c-4b9025172f28 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.174054s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.165670s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.055804s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.093418s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.073978s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.076081s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.138945s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.109756s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-91b2d8bf-2e7d-46a6-b5ed-3059ed7dac24 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} PATCH: /v1/nodes/294473a2-46ba-4036-bd7a-223885705939 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '4f56fe76-d645-4b64-8a88-5c6c8a07d214'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f69d8c20-e738-48a9-bd39-ecc5dca094b0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/74230ab6-a6bd-4dca-8843-60fede24371e [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fc2a8c6-53f1-4ea1-8301-527b9d8ba8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/conductor' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0084ab58-da0d-45bf-9e17-abc396ce87d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:52.485118+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31152c11-99ae-42b8-b558-a3c06368be04 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:52.660121+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-032e7226-fc22-4874-8627-75649cf45c9e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0846701-02d7-44b2-abbd-a235d03f2132 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-bdb3ea03-fb73-4b39-95bc-433852d49bb7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15c2b5bb-369e-48f8-a888-fe24d3e4f082 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68ecdf15-ac4d-41f6-bbdb-4066b9b296c9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-05-05T00:01:53.168409+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.157884s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.130598s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.142952s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-0e67ea51-aa52-4831-9c3b-8c217e9da805 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "foo", "updated_at": null, "created_at": "2020-05-05T00:01:52.537033+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': 'foo', 'updated_at': None, 'created_at': '2020-05-05T00:01:52.537033+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ddb9afec-c272-4b8a-8c79-c79870641e1c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': 'c9b106bf-993b-4f9d-836e-3263b82923a4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4 Openstack-Request-Id: req-e0a3b186-7029-416d-a17b-d8fdff7e17d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c9b106bf-993b-4f9d-836e-3263b82923a4", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4", "rel": "self"}, {"href": "http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/volume", "rel": "self"}, {"href": "http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/states", "rel": "self"}, {"href": "http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4 {} GOT:{'uuid': 'c9b106bf-993b-4f9d-836e-3263b82923a4', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9b106bf-993b-4f9d-836e-3263b82923a4/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '691c6c81-4528-4ecd-bf2d-6a600bc019a4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4 Openstack-Request-Id: req-6f7fcadb-c4f3-4f4d-af9f-1352c376a729 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "691c6c81-4528-4ecd-bf2d-6a600bc019a4", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4", "rel": "self"}, {"href": "http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/volume", "rel": "self"}, {"href": "http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/states", "rel": "self"}, {"href": "http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4 {} GOT:{'uuid': '691c6c81-4528-4ecd-bf2d-6a600bc019a4', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/691c6c81-4528-4ecd-bf2d-6a600bc019a4/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '87cece7c-9e56-4bb3-bd1e-6a584aa9090d', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d Openstack-Request-Id: req-ff7827ac-53ac-4659-a416-1c9f461ec19a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "87cece7c-9e56-4bb3-bd1e-6a584aa9090d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d", "rel": "self"}, {"href": "http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/ports", "rel": "self"}, {"href": "http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/volume", "rel": "self"}, {"href": "http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/states", "rel": "self"}, {"href": "http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d {} GOT:{'uuid': '87cece7c-9e56-4bb3-bd1e-6a584aa9090d', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d', 'rel': 'self'}, {'href': 'http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/87cece7c-9e56-4bb3-bd1e-6a584aa9090d/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '53717b95-9949-451d-8d1a-3b2e29a1b309', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309 Openstack-Request-Id: req-e9dd0754-cad9-4e3b-a312-4672104132e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "53717b95-9949-451d-8d1a-3b2e29a1b309", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309", "rel": "self"}, {"href": "http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/ports", "rel": "self"}, {"href": "http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/volume", "rel": "self"}, {"href": "http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/states", "rel": "self"}, {"href": "http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309 {} GOT:{'uuid': '53717b95-9949-451d-8d1a-3b2e29a1b309', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309', 'rel': 'self'}, {'href': 'http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/53717b95-9949-451d-8d1a-3b2e29a1b309/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '795660c0-d371-478f-87d3-3521bb4bbe1a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a Openstack-Request-Id: req-4927a66c-0114-49d6-88c1-79c50a14991f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "795660c0-d371-478f-87d3-3521bb4bbe1a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a", "rel": "self"}, {"href": "http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/ports", "rel": "self"}, {"href": "http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/volume", "rel": "self"}, {"href": "http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/states", "rel": "self"}, {"href": "http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a {} GOT:{'uuid': '795660c0-d371-478f-87d3-3521bb4bbe1a', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a', 'rel': 'self'}, {'href': 'http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/795660c0-d371-478f-87d3-3521bb4bbe1a/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': 'ad95279f-d32e-45f4-bae6-f24167fb2706', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706 Openstack-Request-Id: req-c6046869-04c2-483c-87b7-96379544cd5b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ad95279f-d32e-45f4-bae6-f24167fb2706", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706", "rel": "self"}, {"href": "http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/ports", "rel": "self"}, {"href": "http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/volume", "rel": "self"}, {"href": "http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/states", "rel": "self"}, {"href": "http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.123619s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.135889s] ... ok GET: /v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706 {} GOT:{'uuid': 'ad95279f-d32e-45f4-bae6-f24167fb2706', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad95279f-d32e-45f4-bae6-f24167fb2706/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': 'b01088c1-8fa1-4175-8a54-76b55807fb15', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15 Openstack-Request-Id: req-e1d12a94-376a-432b-9323-9b2a407bc9a7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "b01088c1-8fa1-4175-8a54-76b55807fb15", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15", "rel": "self"}, {"href": "http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/ports", "rel": "self"}, {"href": "http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/volume", "rel": "self"}, {"href": "http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/states", "rel": "self"}, {"href": "http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15 {} GOT:{'uuid': 'b01088c1-8fa1-4175-8a54-76b55807fb15', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15', 'rel': 'self'}, {'href': 'http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b01088c1-8fa1-4175-8a54-76b55807fb15/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': 'c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.101134s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.180185s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6 Openstack-Request-Id: req-d054abbb-2604-4e38-91c4-e519bf2a0bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6", "rel": "self"}, {"href": "http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/ports", "rel": "self"}, {"href": "http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/volume", "rel": "self"}, {"href": "http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/states", "rel": "self"}, {"href": "http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6 {} GOT:{'uuid': 'c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5d82d72-6caf-4c51-a53a-dd7bdfcdf7e6/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '05de96a6-6156-4c11-9d82-09bb60f08c54', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54 Openstack-Request-Id: req-f45bfa8b-e657-43b6-9fe1-6832054927b0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "05de96a6-6156-4c11-9d82-09bb60f08c54", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54", "rel": "self"}, {"href": "http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/ports", "rel": "self"}, {"href": "http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/volume", "rel": "self"}, {"href": "http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/states", "rel": "self"}, {"href": "http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54 {} GOT:{'uuid': '05de96a6-6156-4c11-9d82-09bb60f08c54', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54', 'rel': 'self'}, {'href': 'http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/05de96a6-6156-4c11-9d82-09bb60f08c54/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': 'fe542a4d-51e9-441a-ab85-da0fbf6c1f81', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'rescue_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81 Openstack-Request-Id: req-dc6fe5a9-c9e8-4286-a38d-ddcf3b395e79 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "fe542a4d-51e9-441a-ab85-da0fbf6c1f81", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81", "rel": "self"}, {"href": "http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/ports", "rel": "self"}, {"href": "http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/volume", "rel": "self"}, {"href": "http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/states", "rel": "self"}, {"href": "http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81 {} GOT:{'uuid': 'fe542a4d-51e9-441a-ab85-da0fbf6c1f81', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe542a4d-51e9-441a-ab85-da0fbf6c1f81/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '95000e59-1d29-4db6-b3cd-b242edc04ea0', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'noop', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0 Openstack-Request-Id: req-03b750b8-c9e4-4636-be56-9939147c824a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "95000e59-1d29-4db6-b3cd-b242edc04ea0", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0", "rel": "self"}, {"href": "http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/ports", "rel": "self"}, {"href": "http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/volume", "rel": "self"}, {"href": "http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/states", "rel": "self"}, {"href": "http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.117694s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [1.566243s] ... ok GET: /v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0 {} GOT:{'uuid': '95000e59-1d29-4db6-b3cd-b242edc04ea0', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0', 'rel': 'self'}, {'href': 'http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/95000e59-1d29-4db6-b3cd-b242edc04ea0/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': 'cc2409b4-9488-41d8-9591-96e731c40fee', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee Openstack-Request-Id: req-a609f4db-c36a-4d74-a2b8-d9545b953f0e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "cc2409b4-9488-41d8-9591-96e731c40fee", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee", "rel": "self"}, {"href": "http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/ports", "rel": "self"}, {"href": "http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/volume", "rel": "self"}, {"href": "http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/states", "rel": "self"}, {"href": "http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee {} GOT:{'uuid': 'cc2409b4-9488-41d8-9591-96e731c40fee', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc2409b4-9488-41d8-9591-96e731c40fee/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.341502s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-75fb13c9-9e29-4b6d-927f-0d1b7d1bc61d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1e56b56-6d55-4aa4-88c4-d463adbeb491 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:53.445956+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f31ab597-2413-4e2f-8129-4e05a93ae987 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:53.612977+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-549334cf-4cf6-490a-b9dd-d3b512b98a30 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b55b5dd8-2374-4eba-bd16-63c90e294c39 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:53.868459+00:00"} PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55a74111-8b5e-4e75-8f76-7e37b9463c8a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:53.968414+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a7ac1524-a27d-40ed-bb8b-e0c1e6c40849 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"} PATCH: /v1/nodes/dc157303-cce4-474f-95da-b301e252f88b [{'path': '/storage_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89ba4e19-94e2-4825-b6cc-3e8d3b2a576b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "dc157303-cce4-474f-95da-b301e252f88b", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/dc157303-cce4-474f-95da-b301e252f88b", "rel": "self"}, {"href": "http://localhost/nodes/dc157303-cce4-474f-95da-b301e252f88b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/dc157303-cce4-474f-95da-b301e252f88b/ports", "rel": "self"}, {"href": "http://localhost/nodes/dc157303-cce4-474f-95da-b301e252f88b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dc157303-cce4-474f-95da-b301e252f88b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dc157303-cce4-474f-95da-b301e252f88b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dc157303-cce4-474f-95da-b301e252f88b/volume", "rel": "self"}, {"href": "http://localhost/nodes/dc157303-cce4-474f-95da-b301e252f88b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dc157303-cce4-474f-95da-b301e252f88b/states", "rel": "self"}, {"href": "http://localhost/nodes/dc157303-cce4-474f-95da-b301e252f88b/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:54.273993+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.148868s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.102098s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.151175s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.084766s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.088484s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.068844s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.092687s] ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7b580ce0-1a22-47fd-ac92-8d3070845fcd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea29db25-bfc1-41b5-b13b-b560109305df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bb028060-0aad-4a56-8465-e45281743e50 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-af27b6f8-1f26-4eab-9770-921dbb0a60f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e50f65c7-f8be-4da0-a743-7e803f81b7b6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f9c54206-28e0-498b-9109-5d9af23b2986 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6da5ee81-0744-4d01-b907-c41cddb37900 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3f422ea7-5eec-4104-a57e-1b01cd331c4a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'traits': ['CUSTOM_4']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-34b23429-7b84-48fb-8e84-5f75a79cf79a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify node traits on node creation. Traits must be set via the node traits API.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e52fba40-be45-4457-b942-ad59ed764238 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:54.765221+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.183730s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info [0.169482s] ... ok PATCH: /v1/nodes/4ff2a385-0cc9-40d5-a1a0-b96a536ad283 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbe5985d-693f-4227-ae24-d1cbe13621c6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4ff2a385-0cc9-40d5-a1a0-b96a536ad283", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/4ff2a385-0cc9-40d5-a1a0-b96a536ad283", "rel": "self"}, {"href": "http://localhost/nodes/4ff2a385-0cc9-40d5-a1a0-b96a536ad283", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4ff2a385-0cc9-40d5-a1a0-b96a536ad283/ports", "rel": "self"}, {"href": "http://localhost/nodes/4ff2a385-0cc9-40d5-a1a0-b96a536ad283/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:54.433968+00:00"} PATCH: /v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09144ebe-8fbe-4e21-888d-945cad66cd4b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "ea475564-444d-4b2f-b916-cf323dda4e9a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a", "rel": "self"}, {"href": "http://localhost/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/volume", "rel": "self"}, {"href": "http://localhost/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/states", "rel": "self"}, {"href": "http://localhost/nodes/ea475564-444d-4b2f-b916-cf323dda4e9a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "updated_at": null, "created_at": "2020-05-05T00:01:54.542991+00:00"} PATCH: /v1/nodes/bf38d362-b1e5-4123-ba41-c80f323dfe72 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-633e8596-b70c-40d6-9eef-eb592fd19da6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4c2257f1-7a52-4023-b1fd-a4a50806916d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/8cbe629e-31a4-4537-9cd7-643daef8ac55 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-626e5c98-c774-45fe-a51b-ce5d656456d9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-610f36db-cade-4b66-8fbd-c35c31613627 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "de5df458-ed5a-4a74-8127-61315c47f741", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741", "rel": "self"}, {"href": "http://localhost/nodes/de5df458-ed5a-4a74-8127-61315c47f741", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741/ports", "rel": "self"}, {"href": "http://localhost/nodes/de5df458-ed5a-4a74-8127-61315c47f741/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de5df458-ed5a-4a74-8127-61315c47f741/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741/volume", "rel": "self"}, {"href": "http://localhost/nodes/de5df458-ed5a-4a74-8127-61315c47f741/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de5df458-ed5a-4a74-8127-61315c47f741/states", "rel": "self"}, {"href": "http://localhost/nodes/de5df458-ed5a-4a74-8127-61315c47f741/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "updated_at": null, "created_at": "2020-05-05T00:01:54.970566+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.144521s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.083156s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.200712s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:54.765221+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-0ad5d920-38ab-440b-ab1b-11cb5d678b97 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:54.984851+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:54.984851+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-574e3008-5368-44af-8320-04f4414e0f07 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:55.181893+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:55.181893+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-185b4556-e2b4-4ff5-90c8-44aadfa72615 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:55.319864+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.171325s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.099956s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.138602s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.112496s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.101206s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.096893s] ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-498761ad-21d9-464a-a7b1-97c218ac6495 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2520db8f-f19f-44ce-abbc-afea2120f49f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88f7d4e9-9efd-4039-b090-08df4bf6e953 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89c1dd1a-a5c1-4d5f-97ff-7084a08c6b44 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31ab73ec-cd48-4524-bcd1-fd7e460358e1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee0ff123-1ddc-4984-ba7c-a32579b44a69 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74d6002c-112f-4210-b2b5-c91b57a3bce5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.675635s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.123448s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.088704s] ... ok PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b2bd5fe-08f0-4623-b9f0-bda01b4cdf4f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2cb4bff-2ca4-4fd2-ae0a-e0ed3c72f14e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "c70d5950-7d14-4203-a529-06d0093b89cb", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "self"}, {"href": "http://localhost/nodes/c70d5950-7d14-4203-a529-06d0093b89cb/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:55.160081+00:00"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4f8383b4-fca8-4ff9-8c95-dabb60d1b622 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5a52e22f-0d2b-4a2e-a9a6-3d2bcc5e4b49 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-71a491aa-49ed-4fb4-ac67-12ecfca8636a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a1d20b28-adfe-47f8-ae60-e2fd2fdb670c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6ae0fd48-9e4d-446e-8ee3-ddbdbd20df41 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}]{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.419552s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.096715s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.112847s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.068770s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.094199s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.070922s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.057045s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.084267s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.088923s] ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aadaa7d7-adc3-4466-bd88-444aaea496c3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d142e8ef-0593-40f8-979d-09dd05707be7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/42e161e5-a84f-4c12-94d7-2e676da34ae8 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-64843b0c-2ea7-436f-85f8-b75f18d074b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06aef80c-b136-45fa-bc10-9468f331176f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-05-05T00:01:56.262900+00:00"} PATCH: /v1/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ddfdaa9-a183-444b-b463-2959a34bc942 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "ed139fa0-8844-4f2c-b2da-2e8ce92e96ac", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac", "rel": "self"}, {"href": "http://localhost/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac/states", "rel": "self"}, {"href": "http://localhost/nodes/ed139fa0-8844-4f2c-b2da-2e8ce92e96ac/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-05-05T00:01:56.372696+00:00"} PATCH: /v1/nodes/5ddf46c0-42ae-4249-bb86-48643d52ba72 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-50ad0d50-4fc6-415e-8eb7-df7b3331434f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-842f8094-5b30-49d0-8c37-76741f8b7cf3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.261715s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.102311s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-05-05T00:01:55.319864+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6022050-9efb-437a-b52f-cd5518de9687 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-02266884-f6dc-4713-8af9-6f23156b31cd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-07a1a87b-b480-4b2e-8172-654e4fa04540 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node. Value: 'ports'. unable to convert to Node. Error: __init__() takes 1 positional argument but 2 were given\", \"debuginfo\": null}"} POST: /v1/nodes/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dc75d4b1-dc84-4371-b391-2afcd7ac4029 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-6a1604e0-3643-48f9-a621-a716421cf08b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-f0d48113-a810-41bb-9a59-ebe86f64d8de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 null POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a6b3820c-3029-44ea-b989-91aea201ca84 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-036b6efb-5e88-4b76-831a-1844fded642f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ac88371-577e-4f01-bf6c-07693c1dc14e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"cat": "meow"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc5aa55d-c878-4076-8ebf-7b597c68f0b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-225be5d9-5c9a-4ed2-a6a4-ddb7a5aa2d58 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-3c554a59-ff3b-43c8-ae2c-efd949bed1b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.097928s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.127528s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.307491s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.233597s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.161401s] ... ok POST: /v1/nodes {'uuid': '853314e3-dbec-4479-aa89-8380c434b82c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c Openstack-Request-Id: req-af336d97-de7f-4014-a8a3-376832893de1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "853314e3-dbec-4479-aa89-8380c434b82c", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c", "rel": "self"}, {"href": "http://localhost/nodes/853314e3-dbec-4479-aa89-8380c434b82c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c/ports", "rel": "self"}, {"href": "http://localhost/nodes/853314e3-dbec-4479-aa89-8380c434b82c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c {} GOT:{'uuid': '853314e3-dbec-4479-aa89-8380c434b82c', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c', 'rel': 'self'}, {'href': 'http://localhost/nodes/853314e3-dbec-4479-aa89-8380c434b82c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/853314e3-dbec-4479-aa89-8380c434b82c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/853314e3-dbec-4479-aa89-8380c434b82c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7f9fb57b-7282-41a4-8ea8-62bdfc333b35 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-35a29c02-c0df-47d2-8d60-c30148df459e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:57.017212+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:57.017212+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f7ec5d26-4b29-45da-abc6-4a2df2f86057 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:57.180358+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.213530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.158738s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.139084s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:57.180358+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:57.180358+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'description': 'useful stuff', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f5f8f7a3-72bf-4bed-ad21-698b0e029d98 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": "useful stuff", "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:57.416378+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': 'useful stuff', 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:57.416378+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.157149s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.057060s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.121748s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.120746s] ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fd24f82c-6fe2-4a43-9069-e2e321e9980b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with description exceeding 4096 characters\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-2c2f69da-df8c-4910-9c46-18dd0e49e4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "storage_interface": "cinder", "vendor_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'storage_interface': 'cinder', 'vendor_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.171621s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.145731s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.055752s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.103423s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.061667s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.093960s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.063683s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.057244s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.090331s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.090550s] ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d7eaffc3-146d-46b2-89c2-7940636270e7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2081b318-583d-4f35-8124-55be6791f4fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-05ebc41c-a981-4711-bc87-c2cac690d679 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a43892a8-8ce6-4926-ab66-fcd4b745c4d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f408fdca-5d9d-4472-873d-41dc77ccfcd4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-cb007604-f3fb-4156-993c-b827e738cb24 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:58.167180+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:58.167180+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.134744s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.078525s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.185289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.051178s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a56fa11d-5447-42cb-9d2b-d6cd61c33386 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-051922f1-bbb6-4169-9e89-7e2e25d6b816 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-28d2892a-c59d-4c9c-b4a3-f5328cff54b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-56933572-453e-48ae-8604-a852a321e957 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f1d9e804-820e-43ed-bc0f-e791ae52f2a3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9dde6e62-e098-4d5f-b484-4caa92c2fed2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-acfcb76b-479a-4d47-ad8c-a9197569c8e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-63d32762-7dbb-4829-93f2-8719de32d2b0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-daac4230-d937-42ec-9e5b-177eea5621bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b97f22a-3a48-4634-bf7c-bc1abd222916 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-098baf7f-8e4d-48d7-aa3a-efacb8e89e58 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-eb3a1ef6-187d-4dc0-a7df-30114d165d57 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-dfa63fac-5757-493c-bdd2-7cc57fd88c44 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff13d085-bad8-4fa7-a618-27c9629f09b0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-2f783a00-5a3e-4daf-8725-922304700a1a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d0ecd96f-9c5e-44b9-b72f-ff3e3675c922 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.241751s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.211153s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.078214s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.101500s] ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-85bb4ad2-6f71-47d0-bb9a-3f8198fa4a22 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:58.299697+00:00"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-97225376-b0e1-4f09-9a94-7bb6761e6b87 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:58.428770+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-05-05T00:01:58.428770+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ee4e1213-8e2c-4b81-a824-1ff6aa032fac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'owner': 'cowsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-640b1aa7-5d26-4742-bf70-d771d8756d69 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": "cowsay", "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:58.681129+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.256922s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.089774s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.084861s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.075758s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.073162s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.094259s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': 'cowsay', 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:58.681129+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'owner': 'bob', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9979a5ba-de2d-454f-9531-0b48c6d784e6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'maintenance', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-433f00e1-fbb2-4124-b49b-911510eb6a64 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7b916d1-449d-4305-b728-d19e11f87961 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f94da49c-a273-4cd9-a301-d61fd4786bfe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3a50ca6b-4de4-4567-8074-7588c875ab0c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18e7d831-bdee-49c5-9ff9-b460436b6127 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.212845s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.175584s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.106877s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.055059s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.072072s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.108389s] ... ok POST: /v1/nodes {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9dfb3a94-943c-40d7-95ca-e0d2de9865ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-19b6d13f-812c-4c94-9e2b-fc46e0bb286c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "foo", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-05-05T00:01:59.196723+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-05-05T00:01:59.196723+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b4638e10-ab0c-49a7-bca2-5a81cf0cd0d0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.151289s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.086955s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.160363s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.086447s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.075695s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.074405s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.060999s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.081426s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.066432s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.088337s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.067769s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.091370s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.104588s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f016ed2-984f-401a-a89d-b978d63560cc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db3a8626-3449-4ff7-9f13-d096c7c57fa7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-68384a24-4240-4d92-87bf-f8c0f6c0115d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-99795cfb-cf37-4c33-b2c0-1436fc80ff65 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-a74924f5-9b1b-4c03-9754-21fa9c83f920 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4183dc60-0fb2-4b1d-a6e5-0d451b91e6e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bb32491a-acab-425f-ad43-3716d90be1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5ba83e83-9ec5-4163-af44-86e68d749de4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3c43202-1665-4bf9-9292-6cda3641cf3f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7e32c447-0cf3-4065-af15-f03c56fdbfc3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-caa0a386-ceed-4b59-a9cf-c3c1f037be3f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6d9a1bd6-67c1-4f47-9c2e-8b462741f90e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c03c2768-61b9-4401-9e6e-0c57fbf9626f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-386c431a-86aa-4936-aed4-0eaa03a4fb32 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b76bcaeb-6187-4547-b2ae-6d154813b1b9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-73cd79b8-7a78-49b3-906b-df8eb8960713 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5eb82d5-90ec-43c7-9756-e414e9ab88fd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b2d42fe-b6e2-43f3-911c-b6b530bce005 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.098784s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.154135s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3acb9d51-6583-4b75-a414-89a214ae7ba1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:59.417277+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:59.417277+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e18faedb-d106-4305-ae34-a59a08616455 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-05-05T00:01:59.602014+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-05-05T00:01:59.602014+00:00'} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8de9e8ad-27f9-4554-87b2-50660e75b3cb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a653f939-4c1a-4267-ab77-a55abfd480de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-dd9640ce-168e-4249-8854-152ec783f8de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} GOT:foo GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-dec7cb02-6d41-4ac6-a6d0-f341ca75c9cf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.101600s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.212728s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.149504s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.079787s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.094154s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.097201s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.109755s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.109409s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.090606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.073552s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.484688s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.064180s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.074711s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.066043s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.063478s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.077714s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.092883s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.078315s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.090269s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.081164s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.094949s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.078461s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.063166s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.068088s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.073811s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.073574s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.068243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.074698s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.304790s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.077248s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.079167s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.074111s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.083126s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9b12a6d5-b55f-4d84-b136-ae9668d5595a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-8905c0bf-7aaa-4532-a547-a791b1bee434 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d802a456-2a19-4ea9-a3de-da6907fd2f26 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2e116d7-e1aa-497c-904f-4685564d7529 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-adcc6c1d-f3b8-46d9-bf85-461250fcbcd5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 204 No Content Openstack-Request-Id: req-2b29d4cc-0b46-457e-b0cf-dad3bac51e06 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-182d7cc1-a4d2-4ce0-8368-f3e063de1889 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8038b541-fb9d-43f6-ac41-3a6d0c102375 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c02d6eba-3422-4e85-b65e-e97babc748e0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4c53e29c-ad5f-4446-86a1-41e20ffeef48 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3d80dabf-7b64-4a79-bd8f-cc61f975f649 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39a38bc0-06d9-4916-9de0-787670f41c1b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8b79e307-c910-482b-a1a0-53a7a30a09ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-3b1a6f86-d03e-4334-bd06-d30a779a1d71 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-89ed745c-d788-49ac-b1da-4b60c2aa0ce9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b2ed11b1-19a7-4932-9abf-a60fc3758113 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-82340f23-c444-4908-b71d-0c49a8645d0f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7e8b17fe-2161-439e-8e2c-2028bdb80e56 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.074977s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.080760s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.115442s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.135435s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-383b8e9b-dac6-4cfe-a2e5-7b8379daec91 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b3ae83ac-f2ec-4ef3-9725-cd00f3a835a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-a407fff9-c8b9-49ac-821b-1dad4d1ae92c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-04a95545-9ac5-4082-8c8c-8a8b4c992224 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e64a0bfb-07ba-49e9-aff4-bad77eee2f30 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-623d4caf-432a-431e-836c-583029ad4eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-87db80ef-3c5b-49ed-9068-9128cdb1abf3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8683e62f-acbc-41b5-9425-bacf699212be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-466fdc15-e94a-4371-9fd4-ae19ea8ee048 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1b3d7861-6d0a-4445-b446-bfafc9e78cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-63c42e74-cdf2-4a44-a481-319c8e4ce67c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-706b76c9-b3bd-4f01-a0d6-f159ab0f815d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86e4b579-8b58-4c31-a209-11a3c107e5e9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states/console Openstack-Request-Id: req-5d4bee64-b929-40b9-815f-b8de0ce484d6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a6747a7-b604-48f6-ba30-cf14ac001a1e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute enabled. Value: 'invalid-value'. unable to convert to boolean. Error: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-05154ec6-8ff0-4d52-9321-1cfe4037948a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'false'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-a56d77e8-eab4-48a0-9302-9d381d8ddadc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-5ba65f85-bee8-49aa-85c1-b0ea134059bb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-c14c0752-b345-456d-a408-4c97f0c065c1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.130063s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.163345s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.114819s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.130634s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.084057s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.075110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.081710s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.097192s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.085449s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.079745s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.081890s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.253351s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.085718s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.081770s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.081594s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.250553s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.083617s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.012850s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.013984s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.014765s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.013689s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.012805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset [0.013803s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.100395s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.080221s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.086407s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.085201s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-637b4835-0b41-4a59-b028-4dbe33244400 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2d5aed88-5766-486d-8ffc-67ab31338bc5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-85a3a1ea-7358-427d-beb1-459de66e38ce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-62657e3d-62df-4b9f-a464-8a68c697027f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c4cde05-cb6e-4dfe-948b-f8e7f5f8938a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d66e4075-de06-43f6-9828-c7d34abe88b3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-dabe3255-e3e2-44da-b2a2-393c99e2236a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-604f2944-8c8c-48ce-8362-08149c3d98f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-7441305d-8b1b-48e8-b700-4227a7e8669b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-a60e62a7-f0c8-4077-bcce-6ce0f3403d9c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a6d564e8-3537-4c0c-a153-42ac818f077c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b85bc962-65bc-4eb2-9db5-7afb0a2d4995 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7fbb6d79-a012-42eb-995c-fd34156447a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-420093d4-6ce4-4960-b158-753423a0b3f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a986bb9c-2c19-4e13-867f-7db7de902215 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c161beda-d664-4bf0-8e24-6055421fa49f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0721e47b-cddd-4c03-9d23-55d580d736c2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.251462s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.157811s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.057901s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.058507s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.320610s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.090096s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.075529s] ... ok PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-da948a17-55ac-4027-be60-cd1987b5d54f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-208d286d-4bf6-46f9-9349-de847fb187ea X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-5915b8ba-fdf0-4f7b-bc22-7446fce67257 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d9a18e3-4573-4e26-a6a3-90b773b22f5a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/bad_trait {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b243ba83-313b-4223-bb98-c6bfdd84c36c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-be8318a7-1c31-4add-a7b3-d1fcff7cf0f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 204 No Content Openstack-Request-Id: req-c68ea9f5-89bb-4ab9-ba3a-2f7b9c845689 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b9205fb0-b7d1-4274-b263-edd2e2279a7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-78b4ebd8-733f-40d1-8784-22fc14f364bd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_12 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c2964b64-a331-4630-be75-468494afbe91 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0c5eee3-d511-4303-96a7-df75e4d9dd93 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-e43c41c5-da1d-472d-a50f-09ac831460e2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6780bfb4-85e1-4ae3-a26d-3efb2c658614 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/4538c32e-72e9-4fd1-a4d6-b38b8b6a0f71 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0f193a7-0ee9-4369-bbc3-9f9bbe281e0f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/ports/?limit=3 {} GOT:{'ports': [{'uuid': '66a28794-7501-4299-8f92-c0900a665674', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/66a28794-7501-4299-8f92-c0900a665674', 'rel': 'self'}, {'href': 'http://localhost/ports/66a28794-7501-4299-8f92-c0900a665674', 'rel': 'bookmark'}]}, {'uuid': '969cafec-3772-4312-b786-802ae25b1393', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/969cafec-3772-4312-b786-802ae25b1393', 'rel': 'self'}, {'href': 'http://localhost/ports/969cafec-3772-4312-b786-802ae25b1393', 'rel': 'bookmark'}]}, {'uuid': '479a0b6a-29b5-444c-80b9-31d78b059c48', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/479a0b6a-29b5-444c-80b9-31d78b059c48', 'rel': 'self'}, {'href': 'http://localhost/ports/479a0b6a-29b5-444c-80b9-31d78b059c48', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=479a0b6a-29b5-444c-80b9-31d78b059c48'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2dfdd54-b60f-4859-bcd5-86557f358062 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-95023c2b-0c66-4f4b-ba7c-b6f254590a10 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?detail=True {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:03.783136+00:00', 'updated_at': None}]}{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.090283s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.213265s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.116939s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.087282s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_unsupported [0.076679s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.055797s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.093276s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.074931s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.090090s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.063029s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.060079s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.076314s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.066328s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.079584s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.074362s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.078283s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.082567s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.067722s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.083892s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.058716s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-1844ec28-c041-4268-8f57-c83e7985dfaf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a3a7aa70-99ba-4bbe-86c1-81e89668113a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-54295178-9fa9-4be8-8a6d-bce4e7d82beb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b534a484-8b10-48b1-9b3e-445d5aef5514 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-43e5b04f-ba89-4c45-aa09-2c88f2dd9b0e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-14a260db-0418-4965-a6ae-710f28955012 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b3ec9905-d02e-42d9-b65e-fad5681a3e45 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0dbe144f-31bb-4500-94cb-27deb559f7be X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': {'serialize': 'me'}, 'meta_data': {'hostname': 'example.com'}, 'network_data': {'links': []}}} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cda803d7-675c-445c-97c2-f0465bc458dd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ec145a3-a0d7-49ce-8b50-ec86c3e16546 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Providing a JSON object for configdrive is only supported starting with API version 1.56\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-f0caa4b4-eb17-45a1-9e04-24dfa104ce5f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b5a0d4aa-9ece-4182-8360-2966d57cfdea X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 204 No Content Openstack-Request-Id: req-ba0c08b5-7b61-4cc3-8d9d-d93e77443562 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3956a46-702b-4201-9dbc-816e2c481d7c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-55e4b5b3-7172-408d-aa95-eba0e153ff5b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah {'boot_device': 'pxe'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9280c6e0-1e76-4dd0-93eb-81d416e142b6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute persistent. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-82cfc924-ffc9-41f0-b1c0-bdc544a7de62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.077676s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.139297s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.115097s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.083186s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.072945s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.066391s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.095896s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.062387s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.106130s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.091256s] ... ok GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?detail=False {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': '38056d12-30bc-4f30-a637-812a0826937f', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': False, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/38056d12-30bc-4f30-a637-812a0826937f', 'rel': 'self'}, {'href': 'http://localhost/ports/38056d12-30bc-4f30-a637-812a0826937f', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:04.086294+00:00', 'updated_at': None}, {'uuid': 'eb9d6439-f8c0-48af-a7e0-049f9f4be0e5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/eb9d6439-f8c0-48af-a7e0-049f9f4be0e5', 'rel': 'self'}, {'href': 'http://localhost/ports/eb9d6439-f8c0-48af-a7e0-049f9f4be0e5', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:04.088992+00:00', 'updated_at': None}]} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7c87662f-a399-45d3-8b79-10e310c4a829 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?detail=False&fields=internal_info {} GOT:{'ports': [{'internal_info': {'bar': 'buzz'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e81d630-3745-4ce9-b194-73ec1716c76d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/ports {} GOT:{'ports': []} GET: /v1/ports?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-997ac43b-7408-4786-a20a-5003bfc7707a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:04.496234+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=fooname {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:04.572891+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:04.656163+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fbd479c3-2eb7-4277-a95a-9360266bfad2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?fields=address&limit=2 {} GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b8c7fe4d-fc2d-41f4-8886-003a1ee68a17', 'rel': 'self'}, {'href': 'http://localhost/ports/b8c7fe4d-fc2d-41f4-8886-003a1ee68a17', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8fb14c98-6cc2-4559-a358-67c189942f7f', 'rel': 'self'}, {'href': 'http://localhost/ports/8fb14c98-6cc2-4559-a358-67c189942f7f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=8fb14c98-6cc2-4559-a358-67c189942f7f'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ed0be61d-71d4-4774-b2d0-934b982a715a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ac0dcc13-7e9c-4b6e-b467-75e29efc30a3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': True} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.082448+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.076122s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.075977s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.068877s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.177899s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.082464s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.051602s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.109555s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.104718s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.112990s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.053263s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.116200s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.089377s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.064514s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group [0.089491s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.059463s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.081808s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.049214s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.080262s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.088967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.078398s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.077307s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.083297s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.087591s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.263280+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.263280+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.413020+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': True, 'created_at': '2020-05-05T00:02:05.413020+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.523067+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.523067+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.639991+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:05.639991+00:00', 'updated_at': None} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:05.761472+00:00', 'updated_at': None}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} GOT:{'ports': []} GET: /v1/portgroups/123 123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 123 123.\"}"} GET: /v1/ports?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': 'bb4e1bfb-d76d-4b2c-9a3b-378d7d6bdc66', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/bb4e1bfb-d76d-4b2c-9a3b-378d7d6bdc66', 'rel': 'self'}, {'href': 'http://localhost/ports/bb4e1bfb-d76d-4b2c-9a3b-378d7d6bdc66', 'rel': 'bookmark'}]}, {'uuid': '13cd6de1-edac-4615-a8da-fbb6b4a2c572', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/13cd6de1-edac-4615-a8da-fbb6b4a2c572', 'rel': 'self'}, {'href': 'http://localhost/ports/13cd6de1-edac-4615-a8da-fbb6b4a2c572', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10286215-7772-44da-b176-d534d6b7e54c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/ports?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45e3f3ad-7bda-47da-a218-f1766fb9fc1f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/ports?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-54628239-db1b-47ac-9f59-ad2535c41bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.160728s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.079968s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id [0.117365s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.097725s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.076583s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal [0.110459s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal [0.140401s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d1226bf-e4a8-4127-b35c-304c31d9c378 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"enabled\\\"\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ef16e9dc-4718-48a7-939b-0b970128b6a3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-4632a3de-8bd7-4c26-b04b-c3ac006af6a8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2324547b-82d6-4b91-98ee-4e2f0ec116a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6f2e7382-81ff-4db9-8d8a-7464fa26f16f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-605c0bb2-c15e-4c8b-969f-46df30f430d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} DELETE: /v1/nodes/node-39/traits GOT:Response: 204 No Content Openstack-Request-Id: req-d2c96cd2-03bb-43a2-875c-3ea553bd4fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/node-39/traits GOT:Response: 204 No Content Openstack-Request-Id: req-7bb54792-d165-4490-918c-e2a19af2d027 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-69264544-16b8-4223-bb3b-703bbe6e8b8a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/badname/traits {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c33d365-e08d-4111-9fa8-78931d5d1db6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3dbef119-ac45-4a0f-840b-bd454236b64e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-03cc22c1-cc93-4adb-a1ab-518c40924556 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-f104d2f1-a31a-4ff6-891e-3cb2d99502c3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits {'traits': []} GOT:Response: 204 No Content Openstack-Request-Id: req-a84b522f-bc68-463e-ad20-4e66ae9a4e52 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-178999d2-1c20-45f5-bcde-bd8d4d3a0462 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ef0d71e3-89af-4322-8219-214b79db1b9b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-0af58247-6593-467a-bc0f-6ee4f83dd1c7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.102775s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.012597s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.011967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.011244s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.059654s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.163354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.157091s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.110553s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.107905s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.066059s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.080685s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.066376s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.074487s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.104339s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.059361s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.054449s] ... ok GET: /v1/ports?sort_key=local_link_connection {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d8869d0-1b18-4d7d-b396-8f98826a0f09 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/ports?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b3184cf5-87ba-4706-8e13-191b23f5e369 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/3fb1a1d9-ceae-4912-9d46-f54f4d194441 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a799348d-ad94-4a26-abfd-66858562d589 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "3fb1a1d9-ceae-4912-9d46-f54f4d194441", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/3fb1a1d9-ceae-4912-9d46-f54f4d194441", "rel": "self"}, {"href": "http://localhost/ports/3fb1a1d9-ceae-4912-9d46-f54f4d194441", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:06.295186+00:00", "updated_at": "2020-05-05T00:02:06.363844+00:00"} PATCH: /v1/ports/c116820a-4e0b-4daf-838e-593b7d8684d8 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-133b0a5b-c71c-4b0d-9233-108dfc72cbf6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "c116820a-4e0b-4daf-838e-593b7d8684d8", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/c116820a-4e0b-4daf-838e-593b7d8684d8", "rel": "self"}, {"href": "http://localhost/ports/c116820a-4e0b-4daf-838e-593b7d8684d8", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:06.416279+00:00", "updated_at": "2020-05-05T00:02:06.474948+00:00"} PATCH: /v1/ports/0d76c6db-628e-439b-aad2-fc734980cb2e [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c169c24b-026c-4241-9f93-2441651f545e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "0d76c6db-628e-439b-aad2-fc734980cb2e", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/0d76c6db-628e-439b-aad2-fc734980cb2e", "rel": "self"}, {"href": "http://localhost/ports/0d76c6db-628e-439b-aad2-fc734980cb2e", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:06.524752+00:00", "updated_at": "2020-05-05T00:02:06.600459+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a873632-5491-4b29-a5ba-e911132020f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:06.680022+00:00", "updated_at": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1bf0651-b2ea-454e-988b-0f563e777af1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:06.828307+00:00", "updated_at": "2020-05-05T00:02:06.887341+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fda92525-2c26-454a-945d-09d3451ff81a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1503d563-4178-437e-b6af-36a5a8106caa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-682c627a-55c4-472f-bdc1-839715a1b9ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:07.073193+00:00", "updated_at": "2020-05-05T00:02:07.130822+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d2bfc3ce-375f-4415-b558-f2b406fd72e7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.073690s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.096133s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.188596s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal [0.137168s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.056464s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.061227s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.098229s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.070232s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.161206s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.096891s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.063055s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.122538s] ... ok DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b55e646d-1e5b-4999-a528-14ffca6c2c62 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} GET: /v1/ports?fields=address,uuid {} GOT:{'ports': [{'uuid': 'c3242ef4-24b2-4ac9-b3b9-e968bd1f54a3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/c3242ef4-24b2-4ac9-b3b9-e968bd1f54a3', 'rel': 'self'}, {'href': 'http://localhost/ports/c3242ef4-24b2-4ac9-b3b9-e968bd1f54a3', 'rel': 'bookmark'}]}, {'uuid': '7f0c76b5-ce56-4489-9090-eb0e8c47af30', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/7f0c76b5-ce56-4489-9090-eb0e8c47af30', 'rel': 'self'}, {'href': 'http://localhost/ports/7f0c76b5-ce56-4489-9090-eb0e8c47af30', 'rel': 'bookmark'}]}, {'uuid': 'e685d670-0af1-4fd0-bb60-eab0e01f2627', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/e685d670-0af1-4fd0-bb60-eab0e01f2627', 'rel': 'self'}, {'href': 'http://localhost/ports/e685d670-0af1-4fd0-bb60-eab0e01f2627', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=e685d670-0af1-4fd0-bb60-eab0e01f2627'} GET: /v1/ports {} GOT:{'ports': [{'uuid': '78da9f67-44c9-4fc7-b4fe-ad42c7b2a4f6', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/78da9f67-44c9-4fc7-b4fe-ad42c7b2a4f6', 'rel': 'self'}, {'href': 'http://localhost/ports/78da9f67-44c9-4fc7-b4fe-ad42c7b2a4f6', 'rel': 'bookmark'}]}, {'uuid': '95dc6532-5932-4179-bdde-32f319f60db4', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/95dc6532-5932-4179-bdde-32f319f60db4', 'rel': 'self'}, {'href': 'http://localhost/ports/95dc6532-5932-4179-bdde-32f319f60db4', 'rel': 'bookmark'}]}, {'uuid': 'fccf6731-f361-47b5-95d0-78263ce50035', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/fccf6731-f361-47b5-95d0-78263ce50035', 'rel': 'self'}, {'href': 'http://localhost/ports/fccf6731-f361-47b5-95d0-78263ce50035', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=fccf6731-f361-47b5-95d0-78263ce50035'} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': True, 'created_at': '2020-05-05T00:02:06.968785+00:00', 'updated_at': None}]} GET: /v1/ports/detail?node=test-node {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:07.048335+00:00', 'updated_at': None}]} GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31b8a8e5-a073-41d8-aa91-5c32f64e5316 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'ports': []} GET: /v1/ports?node=test-node {} GOT:{'ports': [{'uuid': '23439d95-0013-447e-8196-3560202b722f', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/23439d95-0013-447e-8196-3560202b722f', 'rel': 'self'}, {'href': 'http://localhost/ports/23439d95-0013-447e-8196-3560202b722f', 'rel': 'bookmark'}]}, {'uuid': 'f834151d-d8be-4471-b02d-d3fe871c0941', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/f834151d-d8be-4471-b02d-d3fe871c0941', 'rel': 'self'}, {'href': 'http://localhost/ports/f834151d-d8be-4471-b02d-d3fe871c0941', 'rel': 'bookmark'}]}, {'uuid': '8a69aa8f-b1f0-49b1-aa99-36b6a09932a1', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/8a69aa8f-b1f0-49b1-aa99-36b6a09932a1', 'rel': 'self'}, {'href': 'http://localhost/ports/8a69aa8f-b1f0-49b1-aa99-36b6a09932a1', 'rel': 'bookmark'}]}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c71f65cd-a631-4f42-87c0-094694180700 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/ports?fields=uuid,extra {} GOT:{'ports': [{'uuid': '529fcffe-ca7d-448b-b206-9bf8774964c6', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/529fcffe-ca7d-448b-b206-9bf8774964c6', 'rel': 'self'}, {'href': 'http://localhost/ports/529fcffe-ca7d-448b-b206-9bf8774964c6', 'rel': 'bookmark'}]}, {'uuid': '8cb75555-b354-4363-806c-78b846ceccb2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/8cb75555-b354-4363-806c-78b846ceccb2', 'rel': 'self'}, {'href': 'http://localhost/ports/8cb75555-b354-4363-806c-78b846ceccb2', 'rel': 'bookmark'}]}, {'uuid': '48c8cb2f-327a-4d53-b65b-9abdfb8dcca7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/48c8cb2f-327a-4d53-b65b-9abdfb8dcca7', 'rel': 'self'}, {'href': 'http://localhost/ports/48c8cb2f-327a-4d53-b65b-9abdfb8dcca7', 'rel': 'bookmark'}]}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7245a0fd-593e-4c62-b665-ef21f835a8f1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-33040671-d142-484c-b51b-824f0bc1b23a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7ea93ad5-aa8d-437d-9715-d8dff2450c82 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.070872s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.072733s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.124801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.158957s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.072927s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.107761s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.066022s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.147290s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.100471s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.146623s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node [0.105043s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/1c602033-5c85-43ff-a534-3385008c3661 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2d0e74dc-2962-40c0-b806-7841a376fe03 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/ports/0373bcbd-c54a-46c7-b59a-f3d5e1b9fbd1 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60e7cf56-ee62-42f2-b1d0-c2d3f77b9007 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "0373bcbd-c54a-46c7-b59a-f3d5e1b9fbd1", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/0373bcbd-c54a-46c7-b59a-f3d5e1b9fbd1", "rel": "self"}, {"href": "http://localhost/ports/0373bcbd-c54a-46c7-b59a-f3d5e1b9fbd1", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:07.366521+00:00", "updated_at": "2020-05-05T00:02:07.440535+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3496de3-e6e1-4d21-87ba-ba0409752782 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/address' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-367fc30a-be41-464d-9c97-572c7a64cdd0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:07.545839+00:00", "updated_at": "2020-05-05T00:02:07.606703+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fd13799-73d4-44d8-b40f-9e2c2c4eaf08 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:07.545839+00:00", "updated_at": "2020-05-05T00:02:07.666118+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c6c0196-d2a2-451e-b2bf-38f4f60bc884 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7a788e85-eb03-4b2f-bdec-125d7d990ba9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5240d346-b3d2-4c07-89c9-530abbde4dbf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:07.900513+00:00", "updated_at": "2020-05-05T00:02:07.980040+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-834e44d7-91fb-4d4c-a7f2-fe3d9daac38a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:08.026512+00:00", "updated_at": "2020-05-05T00:02:08.089675+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a7afa67-6d28-48ac-86b5-197648590566 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0c88c4b-2f57-493f-bba8-54ef3401e836 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:08.203578+00:00", "updated_at": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dfd337c1-6866-4636-815b-fe8e637c72d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.075636s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.108024s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.133390s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node [0.104761s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.101432s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.129071s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.060313s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.074989s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.063666s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.081186s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.116167s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.150955s] ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:07.820517+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:07.923070+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:07.923070+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.053566+00:00', 'updated_at': None} GET: /v1/ports/4518939f-25d9-4cd0-ae59-45a8fb618722 {} GOT:{'uuid': '4518939f-25d9-4cd0-ae59-45a8fb618722', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'self'}, {'href': 'http://localhost/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.130595+00:00', 'updated_at': None} GET: /v1/ports/4518939f-25d9-4cd0-ae59-45a8fb618722 {} GOT:{'uuid': '4518939f-25d9-4cd0-ae59-45a8fb618722', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'self'}, {'href': 'http://localhost/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.130595+00:00', 'updated_at': None} GET: /ports/4518939f-25d9-4cd0-ae59-45a8fb618722 {} GOT:{'uuid': '4518939f-25d9-4cd0-ae59-45a8fb618722', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'self'}, {'href': 'http://localhost/ports/4518939f-25d9-4cd0-ae59-45a8fb618722', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.130595+00:00', 'updated_at': None} GET: /v1/ports/41daab84-67fc-4b76-bed2-41c9c19a2254 {} GOT:{'uuid': '41daab84-67fc-4b76-bed2-41c9c19a2254', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'self'}, {'href': 'http://foo/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.275707+00:00', 'updated_at': None} GET: /v1/ports/41daab84-67fc-4b76-bed2-41c9c19a2254 {} GOT:{'uuid': '41daab84-67fc-4b76-bed2-41c9c19a2254', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'self'}, {'href': 'http://foo/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.275707+00:00', 'updated_at': None} GET: /ports/41daab84-67fc-4b76-bed2-41c9c19a2254 {} GOT:{'uuid': '41daab84-67fc-4b76-bed2-41c9c19a2254', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'self'}, {'href': 'http://foo/ports/41daab84-67fc-4b76-bed2-41c9c19a2254', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.275707+00:00', 'updated_at': None} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '4baa0621-75bc-4489-8308-65d3f39ebe63', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/4baa0621-75bc-4489-8308-65d3f39ebe63', 'rel': 'self'}, {'href': 'http://localhost/ports/4baa0621-75bc-4489-8308-65d3f39ebe63', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:08.429073+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': []} GET: /v1/ports {} GOT:{'ports': [{'uuid': '583c15d7-6153-46d8-92d0-ce8dacb30bcd', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/583c15d7-6153-46d8-92d0-ce8dacb30bcd', 'rel': 'self'}, {'href': 'http://localhost/ports/583c15d7-6153-46d8-92d0-ce8dacb30bcd', 'rel': 'bookmark'}]}, {'uuid': '5a9acb03-9b7d-454e-aadd-a5cf8baaf96e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/5a9acb03-9b7d-454e-aadd-a5cf8baaf96e', 'rel': 'self'}, {'href': 'http://localhost/ports/5a9acb03-9b7d-454e-aadd-a5cf8baaf96e', 'rel': 'bookmark'}]}, {'uuid': 'd33f1fc1-bca7-4e55-b135-c7545b56e11e', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d33f1fc1-bca7-4e55-b135-c7545b56e11e', 'rel': 'self'}, {'href': 'http://localhost/ports/d33f1fc1-bca7-4e55-b135-c7545b56e11e', 'rel': 'bookmark'}]}, {'uuid': '20ccb8ec-f1a2-43ff-b232-2d9be06f4d10', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/20ccb8ec-f1a2-43ff-b232-2d9be06f4d10', 'rel': 'self'}, {'href': 'http://localhost/ports/20ccb8ec-f1a2-43ff-b232-2d9be06f4d10', 'rel': 'bookmark'}]}, {'uuid': 'fdba8013-185d-47d4-a2f1-ec0493023a2d', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/fdba8013-185d-47d4-a2f1-ec0493023a2d', 'rel': 'self'}, {'href': 'http://localhost/ports/fdba8013-185d-47d4-a2f1-ec0493023a2d', 'rel': 'bookmark'}]}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} GOT:{'ports': [{'uuid': '35d0dd98-04cf-4804-8fa2-41d7c4d408b9', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/35d0dd98-04cf-4804-8fa2-41d7c4d408b9', 'rel': 'self'}, {'href': 'http://localhost/ports/35d0dd98-04cf-4804-8fa2-41d7c4d408b9', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9cd66290-e12f-481c-b3a1-0b223a0eda3c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.065179s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.059441s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init [0.023517s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.016456s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.130956s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.018083s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.091725s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated [0.107041s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.088271s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.097249s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.061182s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.063405s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.130981s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '29b730a2-5b5e-421d-94f4-7c10ff898a54', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-36f1234a-7cae-4224-96a9-f0f45e29b26e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'fd48b541-b4e3-42c1-8fd5-8188264dfd6a', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '4f3c71c4-dd02-4f61-bcfc-e347cde3d143', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-406e92ae-b93e-4b5e-8f7a-50948c0b2eb9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "4f3c71c4-dd02-4f61-bcfc-e347cde3d143", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:08.490440+00:00", "updated_at": "2020-05-05T00:02:08.579116+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c83fe5c-8038-461b-8a7c-d6e15ae79cfb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:08.625721+00:00", "updated_at": "2020-05-05T00:02:08.683551+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fa9a31ca-a319-4552-b25e-43fbfa99e857 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5fb57e83-6620-4edf-a735-cad38f5b7839 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a2a61a1-abd7-4d8b-8992-e223f1c1377b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:08.850259+00:00", "updated_at": "2020-05-05T00:02:08.925376+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-38ca7957-c420-4431-b4fa-5491c0911d07 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f127494c-d79c-45a6-a8da-186a8154c665 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4c12bb17-52d9-4274-8a2a-d4518abc82a0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-524b1fed-8d99-4460-9a59-7e816b6c7a13 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59fdea02-59f3-4ca8-9186-4d128ab71f32 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.080797s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.101503s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.180970s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.063822s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.102893s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id [0.103010s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.098795s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.060135s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same [0.108873s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.067903s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.086090s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.097755s] ... ok GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/ports?sort_key=uuid {} GOT:{'ports': [{'uuid': '75494946-112d-4219-9118-5fde0727944e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/75494946-112d-4219-9118-5fde0727944e', 'rel': 'self'}, {'href': 'http://localhost/ports/75494946-112d-4219-9118-5fde0727944e', 'rel': 'bookmark'}]}, {'uuid': 'cedf537a-64ec-4529-87cb-94eefe2047f0', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/cedf537a-64ec-4529-87cb-94eefe2047f0', 'rel': 'self'}, {'href': 'http://localhost/ports/cedf537a-64ec-4529-87cb-94eefe2047f0', 'rel': 'bookmark'}]}, {'uuid': 'ee848bde-62ea-42c1-80d6-2ecaa0481fb7', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/ee848bde-62ea-42c1-80d6-2ecaa0481fb7', 'rel': 'self'}, {'href': 'http://localhost/ports/ee848bde-62ea-42c1-80d6-2ecaa0481fb7', 'rel': 'bookmark'}]}]} PATCH: /v1/ports/2eb0d1ad-4bf9-4f9e-b431-3428ea532e89 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea904984-ea3e-4b42-b098-16095e5bd3e8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "2eb0d1ad-4bf9-4f9e-b431-3428ea532e89", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/2eb0d1ad-4bf9-4f9e-b431-3428ea532e89", "rel": "self"}, {"href": "http://localhost/ports/2eb0d1ad-4bf9-4f9e-b431-3428ea532e89", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.186812+00:00", "updated_at": "2020-05-05T00:02:09.241849+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26351aed-f06e-4647-be7a-1f0d48e4a242 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.286852+00:00", "updated_at": "2020-05-05T00:02:09.343408+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31fc4b1b-86c5-4d27-a4f6-506ec55e2f44 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'd9f32f9d-24ff-430f-9984-c16591a9245c', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e42bc9a-f5f3-4511-9133-0be0cd4136a2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "d9f32f9d-24ff-430f-9984-c16591a9245c", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.451123+00:00", "updated_at": "2020-05-05T00:02:09.536213+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1ca00cfe-c3d2-4581-8201-08b239250a07 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e63531d-9e30-4fb5-a5ca-536ada6a5ce8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} PATCH: /v1/ports/eb542837-16c4-4b5b-b232-703981adbeb1 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f155ee3-2127-4525-bf65-2fce3b4c0a61 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "eb542837-16c4-4b5b-b232-703981adbeb1", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/eb542837-16c4-4b5b-b232-703981adbeb1", "rel": "self"}, {"href": "http://localhost/ports/eb542837-16c4-4b5b-b232-703981adbeb1", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.755703+00:00", "updated_at": "2020-05-05T00:02:09.811090+00:00"} PATCH: /v1/ports/bcd0d13d-3b8a-42b0-b6af-e68d863e017c [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b60394a-1151-4761-90d0-30ae3587a755 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "bcd0d13d-3b8a-42b0-b6af-e68d863e017c", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/bcd0d13d-3b8a-42b0-b6af-e68d863e017c", "rel": "self"}, {"href": "http://localhost/ports/bcd0d13d-3b8a-42b0-b6af-e68d863e017c", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.859838+00:00", "updated_at": "2020-05-05T00:02:09.919908+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-62e92cde-a24c-43ef-98ab-17b5b81b9b94 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.280737s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.092599s] ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c788d1d8-574e-4129-b814-dcad42d4fb5c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:09.620977+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-448d83ca-343a-425a-8701-1fa244418cc1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:09.749122+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-6b1bdc9c-07f5-4edc-a975-27f74e0b53b9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:09.847586+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c5cb7898-4806-4863-b17e-3c1034cc8652 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e980c6f-0f83-47a2-bdd6-a9b23e24e7f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-7667a840-083a-456b-ab42-c311e4a6d641 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:10.068912+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b82e229f-6d13-4a79-b70e-9f47b08d7c81 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:10.166243+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.135431s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.208131s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.211731s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.073040s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.072558s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.069250s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.072996s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.060362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.070042s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id [0.104125s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.146491s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.076965s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports [0.080992s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.127210s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.118470s] ... ok GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-688f091d-c1dc-4367-81a8-5c0b62d369b1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ef2bc71b-d08f-4a30-a7d3-384ea31c3c34 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:10.510858+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '12796f01-54af-4e0b-8a8b-105825dc1256', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-75831d17-6817-4d54-aaea-601a26f4fc9a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12796f01-54af-4e0b-8a8b-105825dc1256 could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1511cb5f-32f7-4b06-9d4f-6b9685805b5e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-81cc842c-4d6e-4467-9ab4-a481ac7515f0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-25b5d120-4f66-4a27-acf3-e7960b1058ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:10.831423+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:10.831423+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '4a57c2ef-0b74-4236-97aa-2830e968eacf'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0ce50204-afab-49a7-a674-7ecde9730967 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '6e0879f5-715b-43ab-bf15-9aa94a8f6cad'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.107795s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.126414s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.118657s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.115815s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.098521s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.103796s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.073268s] ... ok PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-011a9d1a-deee-4eb3-81b1-6a065a7aeee8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f98334aa-cd82-462a-a1f9-d055352c6171 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:10.372484+00:00", "updated_at": "2020-05-05T00:02:10.501527+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ad4a41c1-88a9-4c33-b82c-18764c7f92fc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-de0ee0e0-53eb-435f-836f-cb56b206231a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-807be3f6-cb3d-4733-87c1-d61b08fe9608 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/ports/730e51c9-2ecc-4a81-aa91-8997a8b797e1 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68968ff3-d542-4ec3-89c7-4a71a7f6d1c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "730e51c9-2ecc-4a81-aa91-8997a8b797e1", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/730e51c9-2ecc-4a81-aa91-8997a8b797e1", "rel": "self"}, {"href": "http://localhost/ports/730e51c9-2ecc-4a81-aa91-8997a8b797e1", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:10.765246+00:00", "updated_at": "2020-05-05T00:02:10.819886+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f5192b3-9311-41aa-9f6f-59fd9219bc8a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-701eadfd-bf3f-4afa-b866-e3214e739426 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:10.941514+00:00", "updated_at": "2020-05-05T00:02:11.003771+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bee542bc-b267-4535-8718-5366f1e2f985 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'b18a4570-9e84-4458-a085-63eba6de632b', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd180a4e-efed-4548-8656-413ad50fb5a2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "b18a4570-9e84-4458-a085-63eba6de632b", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:11.190868+00:00", "updated_at": "2020-05-05T00:02:11.266771+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '1c44666e-f356-4ed7-928d-fe1c434eb6e9', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b4aa102-50fa-40d5-b32b-3d2a5ba4ac3a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:11.311093+00:00", "updated_at": null} PATCH: /v1/ports/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.092656s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.098713s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.158984s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.062191s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.100896s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a39f6b31-6298-4aa5-b675-a11fde7f43d3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "6e0879f5-715b-43ab-bf15-9aa94a8f6cad"}, "internal_info": {"tenant_vif_port_id": "6e0879f5-715b-43ab-bf15-9aa94a8f6cad"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:11.063821+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'd9643c18-8200-45f6-9730-9b4fab5da92f'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b087c8c4-fdf4-46f7-85c0-888c36fe0bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "d9643c18-8200-45f6-9730-9b4fab5da92f"}, "internal_info": {"tenant_vif_port_id": "d9643c18-8200-45f6-9730-9b4fab5da92f"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:11.179550+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'de5368f9-404a-4c40-9888-58efe8554f94'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ea59912e-bc99-4acf-abd9-adf1377697a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "de5368f9-404a-4c40-9888-58efe8554f94"}, "internal_info": {"tenant_vif_port_id": "de5368f9-404a-4c40-9888-58efe8554f94"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:11.307445+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-2e383fcd-c650-470f-8959-f210ba398bfa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:11.408998+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f136e63-7a56-4687-a633-d8ad20ccd17d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0938528d-7af4-412d-ab6c-65352bef879f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3d771eca-3010-480e-adc0-62cdfa914cef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:11.702853+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.136570s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.158205s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.137023s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.079904s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.057852s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.016110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.053282s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.015510s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.015559s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.015242s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.014500s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.014947s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.079514s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.070847s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.144545s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.071125s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.048943s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.102329s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f4e80656-06f7-4dc6-9566-97493d703218 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7da23bb-6fb2-4969-8cbd-a48cf4ae0d36 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:11.532542+00:00", "updated_at": "2020-05-05T00:02:11.625225+00:00"} PATCH: /v1/ports/79c18c5e-77c7-4fe6-b299-dbca9645f87f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1e28c9f-4608-4642-9a3e-b9f24ff4b683 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 79c18c5e-77c7-4fe6-b299-dbca9645f87f could not be found.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8755893f-d70d-4476-a411-a866fe504ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:11.734346+00:00", "updated_at": "2020-05-05T00:02:11.792664+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57161665-2947-49aa-a4d6-84a025eaa49b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:11.857149+00:00", "updated_at": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3073285b-fc96-4a55-b3d5-edb65d27f807 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-635eb337-a972-43e9-995f-3cfc4021ec77 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ef359f2b-6aae-430d-a48a-97b90ab36dbb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:12.326732+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:12.326732+00:00', 'updated_at': None}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.146870s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.119248s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port [0.173678s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.058119s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.073391s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.143017s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.114591s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.148093s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.059888s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.093017s] ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b1964dde-c84f-4285-83eb-35c0bc51c86d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c34f9fbd-5fb5-42e0-a704-d9afb7a9d140 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\"}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-fe3cf189-ad0b-45d0-8fc1-4cabe6d8ddc4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/portgroups/pg.1 GOT:Response: 204 No Content Openstack-Request-Id: req-d6b47dc3-e5a3-42a9-89a1-60de9cc1610d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/portgroups/pg.1.json GOT:Response: 204 No Content Openstack-Request-Id: req-ca2eb9c8-e575-40f4-bb64-4c5ea201bc66 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?fields=address,uuid {} GOT:{'portgroups': [{'uuid': 'f917aad0-c888-44b8-88b9-f5c49e8948a1', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/f917aad0-c888-44b8-88b9-f5c49e8948a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f917aad0-c888-44b8-88b9-f5c49e8948a1', 'rel': 'bookmark'}]}, {'uuid': '62fffbf9-9c96-4d86-bf8b-2023ba01eee3', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/62fffbf9-9c96-4d86-bf8b-2023ba01eee3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/62fffbf9-9c96-4d86-bf8b-2023ba01eee3', 'rel': 'bookmark'}]}, {'uuid': '577b44ae-8fd0-466f-ae46-7e6663f67565', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/577b44ae-8fd0-466f-ae46-7e6663f67565', 'rel': 'self'}, {'href': 'http://localhost/portgroups/577b44ae-8fd0-466f-ae46-7e6663f67565', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=577b44ae-8fd0-466f-ae46-7e6663f67565'} GET: /v1/portgroups/detail {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:12.439019+00:00', 'updated_at': None}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-734437a4-2464-46b5-ab69-b91f74e5e108 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups?detail=True {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:12.619100+00:00', 'updated_at': None}]} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?detail=False {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:{'portgroups': [{'uuid': '87afeff6-56e6-42ee-8a9e-c57fac220426', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/87afeff6-56e6-42ee-8a9e-c57fac220426', 'rel': 'self'}, {'href': 'http://localhost/portgroups/87afeff6-56e6-42ee-8a9e-c57fac220426', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/87afeff6-56e6-42ee-8a9e-c57fac220426/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/87afeff6-56e6-42ee-8a9e-c57fac220426/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:12.816564+00:00', 'updated_at': None}, {'uuid': '0fc9fd06-bec3-493c-8208-d3954bd8d275', 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/0fc9fd06-bec3-493c-8208-d3954bd8d275', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0fc9fd06-bec3-493c-8208-d3954bd8d275', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/0fc9fd06-bec3-493c-8208-d3954bd8d275/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0fc9fd06-bec3-493c-8208-d3954bd8d275/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:12.814012+00:00', 'updated_at': None}, {'uuid': '48a4fcb2-66cb-495b-ab55-ae924977248d', 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/48a4fcb2-66cb-495b-ab55-ae924977248d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/48a4fcb2-66cb-495b-ab55-ae924977248d', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/48a4fcb2-66cb-495b-ab55-ae924977248d/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/48a4fcb2-66cb-495b-ab55-ae924977248d/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:12.811432+00:00', 'updated_at': None}]}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.105447s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.097384s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.093595s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.125002s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.079757s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.094712s] ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b4095273-cefe-414c-9df7-49654e59b41c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:12.545349+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cc44c557-aada-4caa-8209-5deeaa4c7daa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:12.648088+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:12.648088+00:00', 'updated_at': None} POST: /v1/ports {'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/151396a6-98ec-45c5-967e-22d68de13d5b Openstack-Request-Id: req-2719fd2c-3bf8-41bc-911e-11b6a0739c60 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "151396a6-98ec-45c5-967e-22d68de13d5b", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/151396a6-98ec-45c5-967e-22d68de13d5b", "rel": "self"}, {"href": "http://localhost/ports/151396a6-98ec-45c5-967e-22d68de13d5b", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:12.794110+00:00", "updated_at": null} GET: /v1/ports/151396a6-98ec-45c5-967e-22d68de13d5b {} GOT:{'uuid': '151396a6-98ec-45c5-967e-22d68de13d5b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/151396a6-98ec-45c5-967e-22d68de13d5b', 'rel': 'self'}, {'href': 'http://localhost/ports/151396a6-98ec-45c5-967e-22d68de13d5b', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:12.794110+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'invalid-format', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-998e03bf-492d-4982-bded-a59ef7ced955 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 1234, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-01ac3214-899e-469e-afa9-d3f668b568ca X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f7045c6a-8ff0-424c-8343-d4bda460e417 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are {'port_id', 'switch_id'}. Or in case of Smart NIC {'port_id', 'hostname'}. Submitted keys are {'switch_id', 'switch_info'} .\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'zz:zz:zz:zz:zz:zz', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.128998s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.064446s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.154766s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.119353s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.059404s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.072309s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.107722s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.075665s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.112544s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port [0.068708s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.069278s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.256708s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.076820s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.059354s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.074240s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-64ee211e-a679-4d18-b35d-adb82e56c385 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-671110a7-95cd-4d54-83e4-72a1ec300216 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4c98a12a-dd0a-4d65-a50a-1a957f27847d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:13.431390+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-4680c322-1c96-4ffd-8b01-89c9a7e482cd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:13.537777+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-01f0daf3-523f-4bb6-a184-6d61eeb8f9fd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:13.653083+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e06526da-60a0-4595-aa72-5f80270f9d03 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-191f2fbf-e7ff-47b3-ba8d-29cb303b590d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-10145074-c7d1-4d33-834f-728b27ce4d6d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"{'switch_foo'} are invalid keys\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '566d4a74-e946-4d37-8112-5a32b26ff7bf'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-8e410fef-baee-4dbe-97bb-5f8c4d8d9c15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "566d4a74-e946-4d37-8112-5a32b26ff7bf"}, "internal_info": {"tenant_vif_port_id": "566d4a74-e946-4d37-8112-5a32b26ff7bf"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:13.973319+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.101989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.103091s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.150473s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id [0.145699s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated [0.107299s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.061310s] ... ok GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0f53f5b0-d378-4a6d-a96c-d7be5a3d1980 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups?detail=False&fields=internal_info {} GOT:{'portgroups': [{'internal_info': {'bar': 'buzz'}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:13.113682+00:00', 'updated_at': None}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?fields=address&limit=2 {} GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/39866385-3eeb-4467-87fc-4b6b5bc5e4a2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/39866385-3eeb-4467-87fc-4b6b5bc5e4a2', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/52f9201f-3e0c-448b-9b8d-b8709fa5ea1d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/52f9201f-3e0c-448b-9b8d-b8709fa5ea1d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=52f9201f-3e0c-448b-9b8d-b8709fa5ea1d'} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-295d0309-3c6a-4b72-8041-077559ee877d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:13.500500+00:00', 'updated_at': None} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-64d08d6d-7b71-42c4-8d0c-7197bb1fa1b2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:13.967167+00:00', 'updated_at': None} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:14.057719+00:00', 'updated_at': None} GET: /v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c {} GOT:{'uuid': '7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:14.194114+00:00', 'updated_at': None} GET: /v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c {} GOT:{'uuid': '7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:14.194114+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.194215s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.132878s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.082591s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.059296s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.109617s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.059480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.073073s] ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '7c9efa4e-27fa-45f5-b86a-df2d678988fd'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-56355823-bc38-4a15-ae04-5b96ea75b209 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b5effd3b-75f1-4a23-a5c2-1f1fc3dfe615 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:14.226654+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-677f74e8-840c-4668-ad0a-3f44b0797701 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:14.334113+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cef38c2e-ac5a-438e-84bb-4bb64903f76f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c9ff970d-8442-4720-a139-92c89d389938 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{'a': 'b'}'. Cannot set read only field.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'hostname': 'host1', 'port_id': 'rep0-0'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-7b71f987-94e2-40c9-aafe-5df7816674b7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": true, "created_at": "2020-05-05T00:02:14.589549+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-65ed0d2b-3ade-41da-b339-86634328422f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are {'port_id', 'switch_id'}. Or in case of Smart NIC {'port_id', 'hostname'}. Submitted keys are {'switch_id', 'hostname', 'switch_info'} .\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-527be104-3950-467b-84ae-02ba2bb3a4ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.077682s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.074438s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.111379s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.360110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.054157s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.106271s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.049300s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.061213s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.101894s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.083179s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.091900s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.106936s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.108732s] ... ok GET: /portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c {} GOT:{'uuid': '7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7a8aea27-9d10-4f00-9b8f-e8db09865e9c/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:14.194114+00:00', 'updated_at': None} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} GOT:{'portgroups': [{'uuid': 'ac0e9176-bdc8-4b59-b0ff-6a986098e14f', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/ac0e9176-bdc8-4b59-b0ff-6a986098e14f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ac0e9176-bdc8-4b59-b0ff-6a986098e14f', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f134d79-b0c5-44cc-8b12-0b8bb6230225 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e35b521f-c6f0-4d1e-ac88-d144be0193f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups/d5ac446a-a4dd-4f76-8428-2563e865c0ad/ports {} GOT:{'ports': [{'uuid': 'dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'self'}, {'href': 'http://localhost/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'bookmark'}]}, {'uuid': 'f0786f54-04c1-4546-b298-24819361ab7c', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/f0786f54-04c1-4546-b298-24819361ab7c', 'rel': 'self'}, {'href': 'http://localhost/ports/f0786f54-04c1-4546-b298-24819361ab7c', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/d5ac446a-a4dd-4f76-8428-2563e865c0ad/ports/detail {} GOT:{'ports': [{'uuid': 'dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': 'd5ac446a-a4dd-4f76-8428-2563e865c0ad', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'self'}, {'href': 'http://localhost/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:14.646780+00:00', 'updated_at': None}, {'uuid': 'f0786f54-04c1-4546-b298-24819361ab7c', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': 'd5ac446a-a4dd-4f76-8428-2563e865c0ad', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/f0786f54-04c1-4546-b298-24819361ab7c', 'rel': 'self'}, {'href': 'http://localhost/ports/f0786f54-04c1-4546-b298-24819361ab7c', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-05-05T00:02:14.649420+00:00', 'updated_at': None}]} GET: /v1/portgroups/d5ac446a-a4dd-4f76-8428-2563e865c0ad/ports?limit=1 {} GOT:{'ports': [{'uuid': 'dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'self'}, {'href': 'http://localhost/ports/dd1abbea-8c01-4144-b8b3-a73cb283f5f7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=dd1abbea-8c01-4144-b8b3-a73cb283f5f7'} GET: /v1/portgroups/d5ac446a-a4dd-4f76-8428-2563e865c0ad/ports/0c1b833c-c674-41ee-8454-d934ce6426e6 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/d5ac446a-a4dd-4f76-8428-2563e865c0ad/ports/28294ec1-8408-43c6-8562-20f5d163a559 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24f991d9-1f01-4593-83cd-3f4d5436f606 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/portgroups/2f70a90d-0168-495a-8275-3c39b1422259/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?sort_key=uuid {} GOT:{'portgroups': [{'uuid': '60fc4752-5a7c-4768-8e27-0f430a81f363', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/60fc4752-5a7c-4768-8e27-0f430a81f363', 'rel': 'self'}, {'href': 'http://localhost/portgroups/60fc4752-5a7c-4768-8e27-0f430a81f363', 'rel': 'bookmark'}]}, {'uuid': '694f0fb0-d060-4c2c-9b65-555c4d2e149c', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/694f0fb0-d060-4c2c-9b65-555c4d2e149c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/694f0fb0-d060-4c2c-9b65-555c4d2e149c', 'rel': 'bookmark'}]}, {'uuid': 'c96dfa80-8439-48da-b3f5-2a91aefa33d5', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/c96dfa80-8439-48da-b3f5-2a91aefa33d5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c96dfa80-8439-48da-b3f5-2a91aefa33d5', 'rel': 'bookmark'}]}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f287b9b-48a0-452d-8180-e5efc7dc523e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:15.214279+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0749c6d9-93d0-44e1-b610-bd22027067e3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.069356s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.107725s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.130829s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.046061s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.060613s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.192580s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.058964s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.062782s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.060706s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.059879s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.067672s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.073511s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.066498s] ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cda52c60-0b70-473c-bea6-267d923d8d2f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-73491c75-2d49-4819-b35b-252b0582e01f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-794d5a56-6413-44fb-8519-9adb41064b3f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-05-05T00:02:15.037685+00:00", "updated_at": null} DELETE: /v1/portgroups/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad2069ef-36d0-4db1-912d-e5c9fee24c86 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c674f782-1f7d-47e7-9aa9-2f2f424dc058 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/portgroups/?limit=3 {} GOT:{'portgroups': [{'uuid': 'b9bd1942-4540-4c36-80d5-ce9a4a5c2ec0', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/b9bd1942-4540-4c36-80d5-ce9a4a5c2ec0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b9bd1942-4540-4c36-80d5-ce9a4a5c2ec0', 'rel': 'bookmark'}]}, {'uuid': 'e31606a2-8f68-413d-a147-afc316359ee1', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e31606a2-8f68-413d-a147-afc316359ee1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e31606a2-8f68-413d-a147-afc316359ee1', 'rel': 'bookmark'}]}, {'uuid': '686842fb-634d-4e2b-a7af-415869b3e52d', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/686842fb-634d-4e2b-a7af-415869b3e52d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/686842fb-634d-4e2b-a7af-415869b3e52d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=686842fb-634d-4e2b-a7af-415869b3e52d'} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '59616728-d2e4-4e28-be37-c4b4eaa86dd4', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/59616728-d2e4-4e28-be37-c4b4eaa86dd4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/59616728-d2e4-4e28-be37-c4b4eaa86dd4', 'rel': 'bookmark'}]}, {'uuid': '61be38f7-5f55-4a16-8db6-d26f6170c21d', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/61be38f7-5f55-4a16-8db6-d26f6170c21d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/61be38f7-5f55-4a16-8db6-d26f6170c21d', 'rel': 'bookmark'}]}, {'uuid': '1153077f-60ff-4907-93e8-0045e2add84e', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/1153077f-60ff-4907-93e8-0045e2add84e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1153077f-60ff-4907-93e8-0045e2add84e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=1153077f-60ff-4907-93e8-0045e2add84e'} GET: /v1/portgroups/detail?node=test-node {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:15.478260+00:00', 'updated_at': None}]} GET: /v1/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-720732f6-5549-4b73-b635-7f0417480627 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/portgroups?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-caf0ba7f-56ad-4b7d-9cb3-ff6ff82d377f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:{'portgroups': []} GET: /v1/portgroups?node=test-node {} GOT:{'portgroups': [{'uuid': 'b3b93038-ff8c-484c-a6c5-6f0799de2579', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/b3b93038-ff8c-484c-a6c5-6f0799de2579', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b3b93038-ff8c-484c-a6c5-6f0799de2579', 'rel': 'bookmark'}]}, {'uuid': '934be0a6-0c9b-4d9e-b799-e8d0cd2ec393', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/934be0a6-0c9b-4d9e-b799-e8d0cd2ec393', 'rel': 'self'}, {'href': 'http://localhost/portgroups/934be0a6-0c9b-4d9e-b799-e8d0cd2ec393', 'rel': 'bookmark'}]}, {'uuid': 'c5a5622e-f6b2-48a7-b43b-dcead045f11c', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/c5a5622e-f6b2-48a7-b43b-dcead045f11c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c5a5622e-f6b2-48a7-b43b-dcead045f11c', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.114681s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.171422s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.087995s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.136674s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.073479s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.153697s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-034ea8c8-759c-430c-b2b4-b453e41177b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:15.402869+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba54391d-b941-4629-9ead-19551558b1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:15.512351+00:00", "updated_at": "2020-05-05T00:02:15.524935+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7a6d3e5-3c5a-4769-a5b2-cb48bb65c303 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:15.512351+00:00", "updated_at": "2020-05-05T00:02:15.524935+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5cfa11ad-bf57-4d7a-b0e2-3a7beb241cb4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c29756d5-1280-4257-bce6-a4780e35c274 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8529535e-9747-4e27-94cc-f01b2a5e26d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98866288-8e54-4f11-9944-5e7c41fc1820 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46c8bb7d-7e29-4372-9d5e-e786fb9026e4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a88afcb-efef-49d5-b73d-63b882bbf630 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.049229+00:00", "updated_at": null} PATCH: /v1/portgroups/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7dcb9b9-9320-418b-9416-93a80f62a1dc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.171283+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.107638s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.137582s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.101419s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.121934s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.063073s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.066122s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.068395s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.059163s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.096686s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.080374s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id [0.102461s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.124108s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.054278s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal [0.108101s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id [0.104834s] ... ok GET: /v1/portgroups?fields=uuid,extra {} GOT:{'portgroups': [{'uuid': '2e5efc3b-1eaf-4a1b-9859-34b6836e409e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/2e5efc3b-1eaf-4a1b-9859-34b6836e409e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2e5efc3b-1eaf-4a1b-9859-34b6836e409e', 'rel': 'bookmark'}]}, {'uuid': '9a734e19-996e-42b3-af02-fd9f9c4c99be', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/9a734e19-996e-42b3-af02-fd9f9c4c99be', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9a734e19-996e-42b3-af02-fd9f9c4c99be', 'rel': 'bookmark'}]}, {'uuid': 'd10c8208-b8af-488c-ab97-809e7167b906', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/d10c8208-b8af-488c-ab97-809e7167b906', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d10c8208-b8af-488c-ab97-809e7167b906', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1faac60d-94d4-41b3-b05d-50ae550d19ce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:16.168309+00:00', 'updated_at': None} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': 'ce60a3b2-1e9e-4430-a273-73e39b948785', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/ce60a3b2-1e9e-4430-a273-73e39b948785', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ce60a3b2-1e9e-4430-a273-73e39b948785', 'rel': 'bookmark'}]}, {'uuid': '9385a0f0-e431-441a-b8cf-630dc1891930', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/9385a0f0-e431-441a-b8cf-630dc1891930', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9385a0f0-e431-441a-b8cf-630dc1891930', 'rel': 'bookmark'}]}, {'uuid': 'ba822182-8a83-468d-aa17-d481e0dbb6cc', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/ba822182-8a83-468d-aa17-d481e0dbb6cc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ba822182-8a83-468d-aa17-d481e0dbb6cc', 'rel': 'bookmark'}]}, {'uuid': 'c5b56074-48d2-41fd-9631-d52a1331850d', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/c5b56074-48d2-41fd-9631-d52a1331850d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c5b56074-48d2-41fd-9631-d52a1331850d', 'rel': 'bookmark'}]}, {'uuid': 'b77d6f61-0ce1-4abf-b23b-8597038fe1e7', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/b77d6f61-0ce1-4abf-b23b-8597038fe1e7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b77d6f61-0ce1-4abf-b23b-8597038fe1e7', 'rel': 'bookmark'}]}]} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} GOT:{'portgroups': []} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-483a93e7-f4c0-4c2d-a464-278cfc1e26af X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=mode {} GOT:{'portgroups': [{'uuid': 'c1330070-d420-430d-8fe9-5e73fe013165', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/c1330070-d420-430d-8fe9-5e73fe013165', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c1330070-d420-430d-8fe9-5e73fe013165', 'rel': 'bookmark'}]}, {'uuid': '18dbe20e-6b0f-4a6d-b3df-887472c4eaea', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/18dbe20e-6b0f-4a6d-b3df-887472c4eaea', 'rel': 'self'}, {'href': 'http://localhost/portgroups/18dbe20e-6b0f-4a6d-b3df-887472c4eaea', 'rel': 'bookmark'}]}, {'uuid': 'd426839d-05b4-4250-b3db-47cd2a5f9a3e', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/d426839d-05b4-4250-b3db-47cd2a5f9a3e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d426839d-05b4-4250-b3db-47cd2a5f9a3e', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66e3a135-15c9-4d26-be8c-0d279163090b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e2487c73-6a64-4a2a-a3e8-80fc9c892d70 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8053452-e76b-40d6-ad96-feca0ca88a25 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39e2cb4d-cb30-4737-a9ca-3a1e61ef9dbd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-910e5588-0339-4621-b6fa-1311dd452e20 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd375bb2-852a-4350-aa26-d47d55f6959a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.921321+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.100461s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.093264s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.119526s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.094796s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.066995s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1ecf0dd-e692-412e-b1b9-079c34ac5102 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.307486+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e11974f1-32b1-4f67-8cb1-e9c187b885f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/portgroups/505d2506-63b3-4d59-b4e2-97ff185efe73 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2d2bd060-ed31-4598-87f1-ccc67fca85b5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 505d2506-63b3-4d59-b4e2-97ff185efe73 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/internal_info', 'value': False, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b17bbf5f-cf09-4897-80d2-52ee3531d361 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2a0041bf-01b1-4ad6-8d20-15bd479e562a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-28b4504a-02b5-4e4e-af53-a1299b81c57b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f03cbed9-1e73-4eaa-9cd9-ff140cf8fe3c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.748213+00:00", "updated_at": "2020-05-05T00:02:16.808062+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ecf95d07-b7fd-4912-9cc3-e6ac8c66aa7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.852806+00:00", "updated_at": "2020-05-05T00:02:16.918300+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd6b35fb-ba12-4d4f-b790-f994ecb5839f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:16.959991+00:00", "updated_at": "2020-05-05T00:02:17.023220+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24e9ade3-577e-4113-a124-9af0a1ac9c99 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.086961+00:00", "updated_at": "2020-05-05T00:02:17.179796+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same [0.177656s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id [0.158956s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init [0.010614s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.111567s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.144702s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.097418s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.116101s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.094902s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.088478s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.093328s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.069354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.047399s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.056412s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16eed3e0-8db4-4a15-916b-d9723835a4ae X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.249987+00:00", "updated_at": "2020-05-05T00:02:17.358125+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-92fbdff6-8216-4d40-b018-29b5dce81d26 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-a74b1574-9e18-4c4b-b67e-e2c0f323838f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.603334+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:17.603334+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-8175f60e-3ad3-4133-b57f-50d2b79f0036 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.724280+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c9fd6e75-540e-4767-a841-65b01f136a0b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6248b79a-70a4-4be7-a825-2d851332b692 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.149401s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.107002s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5697df7b-5225-447d-b4f3-5faae1cb66ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac72489a-2ace-42fb-8908-f48614a31c4b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.114374+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-312be9ca-13ca-4a11-97a3-98bb884f39ba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f342c8a-aae7-4d11-ac6e-e4ca229c7ccc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-cdb13ba3-a491-4bdb-882d-ea367634a3a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c85405aa-ce1b-4d97-860f-6e5172bc99d5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.509981+00:00", "updated_at": "2020-05-05T00:02:17.515436+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cef9f1b9-213b-464c-98bf-eb93e2cd584d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.608405+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4891d1af-e07c-476f-b594-54d17f3470c6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.704415+00:00", "updated_at": null} PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\"}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebee0101-4e58-4f22-a1b6-e1436f14eb41 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.848288+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.104036s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.094101s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.120416s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.133463s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.242608s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.106980s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id [0.082879s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.091675s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.045906s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated [0.083103s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated [0.099483s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra [0.083788s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal [0.107307s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-35c93cbb-46db-4f15-a085-4cffe3e43702 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_prop": 123}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:17.976773+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f398b562-9138-46b5-ab3a-f17f818637a2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-992345a5-f81e-48b0-a5f2-3202019dfc54 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-20f2a416-ec83-4201-9160-258a243482a9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.438490+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-828d201e-6694-4a2b-b382-81fa1a3d4943 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.521331+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-d4903349-5baf-4ecf-a704-d2b68d4b4949 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.604133+00:00", "updated_at": null} POST: /v1/heartbeat/9719963d-8e60-443e-aabd-18d1831b6067 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b66a350-4de1-4929-a5bc-8e24ac2c378a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9719963d-8e60-443e-aabd-18d1831b6067 could not be found.\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.056642s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.117777s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.131339s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48ad5381-30c0-4ed6-a405-1e710661504b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf8f0420-5435-487f-b379-db843bf30d53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.193731+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73c31242-69b5-4112-9d85-c6b72327223e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_param": "100"}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.307765+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dba61ff7-d5b8-4ee7-a795-c13389e9f53c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": false, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.408724+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-453e6cdf-c9de-4b65-98f5-2d3be9a117a7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.549857+00:00", "updated_at": "2020-05-05T00:02:18.607028+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10ed2ebb-2af8-4d06-a45b-d83524ffc2c1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.652973+00:00", "updated_at": "2020-05-05T00:02:18.715863+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-fe209f0f-cf02-44fc-ad54-3e7092c6e80b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:18.796810+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.171078s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.070926s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.040992s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.167704s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.115587s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.140777s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.055102s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.073785s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.053448s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.053319s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.105779s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.057427s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.074071s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.018786s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.026670s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.019551s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.041715s] ... ok POST: /v1/portgroups {'uuid': 'e05d1790-419e-4b61-87d5-1e18aebc771c', 'name': '6685cf70-33be-43b4-b65e-c9a3901e2cb5', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-bce2f763-2498-40cd-9190-21025b472c15 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-adc8cc37-b647-4703-863c-bc3a553c00f5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:19.015729+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:19.015729+00:00', 'updated_at': None} POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7 Openstack-Request-Id: req-26dc7552-866f-4e88-9169-47f25c5c9578 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "0c027fd1-1d0d-4568-8266-d3590a1298e7", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7", "rel": "self"}, {"href": "http://localhost/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:19.137711+00:00", "updated_at": null} GET: /v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7 {} GOT:{'uuid': '0c027fd1-1d0d-4568-8266-d3590a1298e7', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0c027fd1-1d0d-4568-8266-d3590a1298e7/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:19.137711+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f11ae3de-2802-48f1-96bd-b5311608d6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'}'. Value not a valid dict: info\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b8686bb-3cb0-4bdd-9477-f7dd68607de3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cb2a95eb-6f32-4ab3-9e6c-95cc5aba0d68 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ff55be6d-7456-4392-87cd-89f0540fa8c8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4ed72c3a-ae82-4706-9ae0-42218b16feaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.109412s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.092026s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value [0.022696s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values [0.013694s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_mac_network_port_event [0.010249s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_missing_mandatory_fields_network_port_event [0.010864s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.156742s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value [0.026954s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr [0.013469s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value [0.012456s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr [0.012519s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr [0.012706s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path [0.013006s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr [0.012563s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op [0.013413s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.116941s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path [0.014758s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring [0.010591s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values [0.011146s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id [0.011665s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value [0.011094s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key [0.013546s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.071990s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_local_link_keys_mandatory [0.012465s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_local_link_mandatory_key [0.010829s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.011519s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_with_optional [0.010826s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr [0.010645s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr [0.011720s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name [0.011438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name [0.010873s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid [0.011764s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid [0.010795s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.121184s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.012238s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.011241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.011020s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.011001s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.010449s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.017206s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.019117s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.018416s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.019191s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.019266s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.019551s] ... ok POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'aa:bb_cc', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51e5b7c4-c35e-40ab-8cac-2d0c502a0fc6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-cd8c83ad-b0d1-4cb0-92f1-1693991d34cf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "foo", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:19.650640+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'foo', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:19.650640+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-5e8a33dc-19df-43c3-a7b6-22d4da5ff01f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:19.775708+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': None, 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:19.775708+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-faf853d3-de03-464b-8145-85cba06f1269 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-00a9687e-07af-4879-a3c8-e37eadc7da82 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:19.968593+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:19.968593+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d52ef7cc-13be-49ee-9a80-55e38c71ae5a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.061287s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.085783s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.025274s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.011504s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.104399s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.013453s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.012214s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.012061s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.012991s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.011054s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.067249s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.012309s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.011829s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.011935s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.011553s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.016281s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.011370s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.011938s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.011318s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.011308s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.118557s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.011058s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.012084s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.010800s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.011687s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.011023s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.011396s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.011026s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.011799s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.083089s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.011392s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.011590s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.012229s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.013939s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.011893s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.013146s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.081927s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.012974s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.011858s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.009900s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.010276s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.013489s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.011541s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.011438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.011235s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.109733s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.082866s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.011706s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values [0.010878s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_event_missing_madatory_field [0.011487s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_event_type [0.011099s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_network_port_event [0.010563s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_simple_event_type [0.012405s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr [0.027235s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op [0.016616s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches [0.016669s] ... ok POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-74639d20-a8a3-499d-ac10-10599a8dec3d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-d4860faa-a69d-408e-85ce-bbbce9a369eb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-20096be2-f25e-400a-92bb-a67146ae8a76 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} POST: /v1/heartbeat/419cb810-c2cc-4b7b-ae3f-d30c24f68be5 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-430ad616-64ab-406a-87de-78223779ddaa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9eda5139-8e42-40cc-870a-797380477b5b {} GOT:{'node': {'uuid': '9eda5139-8e42-40cc-870a-797380477b5b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9eda5139-8e42-40cc-870a-797380477b5b {} GOT:{'node': {'uuid': '9eda5139-8e42-40cc-870a-797380477b5b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9eda5139-8e42-40cc-870a-797380477b5b {} GOT:{'node': {'uuid': '9eda5139-8e42-40cc-870a-797380477b5b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9eda5139-8e42-40cc-870a-797380477b5b', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?node_uuid=dbbc78fa-e17a-4fc2-9a44-cef076c773b9 {} GOT:{'node': {'uuid': 'dbbc78fa-e17a-4fc2-9a44-cef076c773b9', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/dbbc78fa-e17a-4fc2-9a44-cef076c773b9', 'rel': 'self'}, {'href': 'http://localhost/nodes/dbbc78fa-e17a-4fc2-9a44-cef076c773b9', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=not-a-valid-address,80:00:02:48:fe:80:00:00:00:00:00:00:f4:52:14:03:00:54:06:c2,11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:{'node': {'uuid': '70aa2a51-5f4b-4c4c-83b7-2077faee9660', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/70aa2a51-5f4b-4c4c-83b7-2077faee9660', 'rel': 'self'}, {'href': 'http://localhost/nodes/70aa2a51-5f4b-4c4c-83b7-2077faee9660', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bde03f62-b6fd-4da3-975f-940f0e673794 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=6abcf57d-93d4-43ee-8d80-29a0645babd7 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-34cb65b6-dbd2-44e0-b032-1b0ee8b659f6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} GET: /v1/volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]}{1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values [0.016710s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type [0.010925s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type [0.010350s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id [0.010030s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.311378s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_mandatory [0.013904s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.009946s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name [0.011097s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.043480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name [0.011719s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid [0.010023s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type [0.009666s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id [0.010000s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key [0.010614s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key [0.009945s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.009798s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.010570s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.089214s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.011154s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.010152s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.010357s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.010015s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.009989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.010308s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.009676s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.010000s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.010592s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait [0.011155s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.111292s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.018558s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.011226s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.011092s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.010835s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.011278s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.010833s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.011394s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.011153s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.108869s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.013781s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.011107s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.011899s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.011695s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.017457s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.026149s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.110358s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.015958s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.011609s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.011688s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.011234s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.011466s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.065441s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.012647s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.011586s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.011647s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.011498s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.011064s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.065762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.013241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.011857s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.012227s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.010760s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.011869s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.011418s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.084872s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.014404s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.011778s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.011776s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.013043s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.013030s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.013188s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.080689s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.013196s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.011395s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.012370s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.046668s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.015372s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.012469s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.012684s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.011019s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.010939s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.067426s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.013543s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.013349s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.015318s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.011643s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.077268s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.046324s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.091051s] ... ok GET: /volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/connectors {} GOT:{'connectors': []} GET: /volume/connectors {} GOT:{'connectors': []} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /volume/targets {} GOT:{'targets': []} GET: /v1/volume/ {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ae973979-9c1f-4e75-a9b6-78c1f8ee4f4a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-01815951-be8f-4a63-804b-fd6098406466 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} GET: /v1/volume/connectors/?limit=3 {} GOT:{'connectors': [{'uuid': '87375b5b-b71a-4ecf-9955-b63c04b3da7a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/87375b5b-b71a-4ecf-9955-b63c04b3da7a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/87375b5b-b71a-4ecf-9955-b63c04b3da7a', 'rel': 'bookmark'}]}, {'uuid': 'e9b98e9d-6105-4c97-9e25-b3b7c56afcbf', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e9b98e9d-6105-4c97-9e25-b3b7c56afcbf', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e9b98e9d-6105-4c97-9e25-b3b7c56afcbf', 'rel': 'bookmark'}]}, {'uuid': '59bcac6e-df67-4caa-b93a-a48cb7ae0bd0', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/59bcac6e-df67-4caa-b93a-a48cb7ae0bd0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59bcac6e-df67-4caa-b93a-a48cb7ae0bd0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=59bcac6e-df67-4caa-b93a-a48cb7ae0bd0'} GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '0543b582-54e6-4beb-8800-9a33ee8aeb95', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/0543b582-54e6-4beb-8800-9a33ee8aeb95', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0543b582-54e6-4beb-8800-9a33ee8aeb95', 'rel': 'bookmark'}]}, {'uuid': 'd7a1df2e-044a-43c5-a0d4-ff7b9392873e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/d7a1df2e-044a-43c5-a0d4-ff7b9392873e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d7a1df2e-044a-43c5-a0d4-ff7b9392873e', 'rel': 'bookmark'}]}, {'uuid': '72b31ee3-b4f9-4c2d-8e08-edf3d7a399e3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/72b31ee3-b4f9-4c2d-8e08-edf3d7a399e3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/72b31ee3-b4f9-4c2d-8e08-edf3d7a399e3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=72b31ee3-b4f9-4c2d-8e08-edf3d7a399e3'} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '94d507b8-2212-48d2-9eaa-4764a58e9a9a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/94d507b8-2212-48d2-9eaa-4764a58e9a9a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/94d507b8-2212-48d2-9eaa-4764a58e9a9a', 'rel': 'bookmark'}]}, {'uuid': '357bdf82-97aa-4e15-be78-92ab804ff215', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/357bdf82-97aa-4e15-be78-92ab804ff215', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/357bdf82-97aa-4e15-be78-92ab804ff215', 'rel': 'bookmark'}]}, {'uuid': '35c6ab35-e36d-496a-8a0f-d1b55dd2221b', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/35c6ab35-e36d-496a-8a0f-d1b55dd2221b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/35c6ab35-e36d-496a-8a0f-d1b55dd2221b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=35c6ab35-e36d-496a-8a0f-d1b55dd2221b'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-53700200-6c8c-4a52-9b4d-7063a41e9b5f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3caef7ed-38a2-4ae7-aacf-8cc4de2e92ad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=True&node=test-node {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:21.653364+00:00', 'updated_at': None}]} GET: /v1/volume/connectors?detail=False {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors {} GOT:{'connectors': []} GET: /v1/volume/connectors?node=test-node {} GOT:{'connectors': [{'uuid': '38c5b3a3-0982-45c1-ac39-bb5487f99fbf', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/38c5b3a3-0982-45c1-ac39-bb5487f99fbf', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/38c5b3a3-0982-45c1-ac39-bb5487f99fbf', 'rel': 'bookmark'}]}, {'uuid': 'f8acf3e2-41e1-4d4e-91dc-4ca868b5c387', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/f8acf3e2-41e1-4d4e-91dc-4ca868b5c387', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f8acf3e2-41e1-4d4e-91dc-4ca868b5c387', 'rel': 'bookmark'}]}, {'uuid': '93f33835-b73b-4d3a-9b98-16a5fc6d830c', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/93f33835-b73b-4d3a-9b98-16a5fc6d830c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/93f33835-b73b-4d3a-9b98-16a5fc6d830c', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.118980s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.215958s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.044177s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.157699s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.046279s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.344423s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.101190s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.064337s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.129528s] ... ok POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-c4bbd270-50e0-4957-9b37-7d70db764cf9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:20.151440+00:00", "updated_at": null} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 202 Accepted Openstack-Request-Id: req-04986de7-8569-4742-a21b-f71d776ad8b4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 POST: /v1/heartbeat/test.1 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-fde88cc8-cd32-4f74-9270-41a6e146db95 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:{'node': {'uuid': '8184cdd4-09ef-4501-bf8e-0878b90a8a30', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/8184cdd4-09ef-4501-bf8e-0878b90a8a30', 'rel': 'self'}, {'href': 'http://localhost/nodes/8184cdd4-09ef-4501-bf8e-0878b90a8a30', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=fe901ba1-525b-45a4-97e0-3197e9f1a4f0 {} GOT:{'node': {'uuid': 'fe901ba1-525b-45a4-97e0-3197e9f1a4f0', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/fe901ba1-525b-45a4-97e0-3197e9f1a4f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe901ba1-525b-45a4-97e0-3197e9f1a4f0', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=f8428114-631a-4eb6-85ac-906ba162ba5c {} GOT:{'node': {'uuid': 'f8428114-631a-4eb6-85ac-906ba162ba5c', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/f8428114-631a-4eb6-85ac-906ba162ba5c', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8428114-631a-4eb6-85ac-906ba162ba5c', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69968122-a789-4f3b-8c23-c7ed19f86530 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cbaa210c-b4a8-40df-9097-5bf4b63ceb39 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-370c9b6a-d9c7-431d-9425-7f8ff125b28a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-87d48b52-8e39-44d8-8450-fa31772480d8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=True&limit=3 {} GOT:{'connectors': [{'uuid': '1a215a0c-5ee6-4b7f-8ffa-7ce58ee673e6', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1a215a0c-5ee6-4b7f-8ffa-7ce58ee673e6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1a215a0c-5ee6-4b7f-8ffa-7ce58ee673e6', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.212594+00:00', 'updated_at': None}, {'uuid': '0fba3bcc-9b5b-455b-bc48-8059b1dd8047', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/0fba3bcc-9b5b-455b-bc48-8059b1dd8047', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0fba3bcc-9b5b-455b-bc48-8059b1dd8047', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.223135+00:00', 'updated_at': None}, {'uuid': '60e9b940-5ac8-4b58-9f78-e0b23cb08f87', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/60e9b940-5ac8-4b58-9f78-e0b23cb08f87', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/60e9b940-5ac8-4b58-9f78-e0b23cb08f87', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.226137+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=60e9b940-5ac8-4b58-9f78-e0b23cb08f87'} GET: /v1/volume/connectors?detail=True {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.555468+00:00', 'updated_at': None}]}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.087132s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.125885s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.073240s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.121463s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.048019s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.079580s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.167437s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.078990s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.066556s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.080021s] ... ok GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': 'a2193b37-88aa-4cb6-b8f0-fa31d0e39ef0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/a2193b37-88aa-4cb6-b8f0-fa31d0e39ef0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a2193b37-88aa-4cb6-b8f0-fa31d0e39ef0', 'rel': 'bookmark'}]}, {'uuid': 'b91700f1-4db4-4bb4-b364-4884b7a0fd36', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/b91700f1-4db4-4bb4-b364-4884b7a0fd36', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b91700f1-4db4-4bb4-b364-4884b7a0fd36', 'rel': 'bookmark'}]}, {'uuid': 'bf5b8d0f-c174-47cf-9769-8342097f7dc8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/bf5b8d0f-c174-47cf-9769-8342097f7dc8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bf5b8d0f-c174-47cf-9769-8342097f7dc8', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03 {} GOT:{'uuid': '6e6e5d96-175e-4ec1-977b-404d328c0f03', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.315495+00:00', 'updated_at': None} GET: /v1/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03 {} GOT:{'uuid': '6e6e5d96-175e-4ec1-977b-404d328c0f03', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.315495+00:00', 'updated_at': None} GET: /volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03 {} GOT:{'uuid': '6e6e5d96-175e-4ec1-977b-404d328c0f03', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6e6e5d96-175e-4ec1-977b-404d328c0f03', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:22.315495+00:00', 'updated_at': None} GET: /v1/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7d9e9e3-d63f-4947-95bc-1a116ad316ac X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:22.518934+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0f00311d-d8d9-4233-b9ac-4105eec61ed0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76c2d00b-6541-46c3-ac47-6e0b4a5b7716 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-123", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:22.688443+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/value', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-abf1599b-c95b-4557-89de-a4ad9fde7c87 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/value', 'op': 'remove'}'. Reason: can't remove non-existent object 'value'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4c5a3b9a-1d26-40a3-9ba4-37c6399267f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:22.891619+00:00", "updated_at": "2020-05-05T00:02:22.900630+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ba70894-f060-4ffd-b3ff-a87e49938547 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:22.891619+00:00", "updated_at": "2020-05-05T00:02:22.900630+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cdef79dd-cade-41d9-ba4d-44bf47fdd993 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-777f7419-b93a-4f0e-b01c-e2ea99387a61 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.069995s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.173643s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.194667s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.066573s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.079624s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.096865s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.106346s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.045013s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.070269s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.094443s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.127134s] ... ok GET: /v1/volume/connectors/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b81c8cc-0b56-433c-b05c-995aad519871 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} GET: /v1/volume/connectors?fields=connector_id&limit=2 {} GOT:{'connectors': [{'connector_id': 'test-connector_id-0', 'links': [{'href': 'http://localhost/v1/volume/connectors/6a32e56e-4586-4a3f-993d-2eab9026c902', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6a32e56e-4586-4a3f-993d-2eab9026c902', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/6b97f3b0-04a0-4e69-a4ce-a9393f02ee61', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6b97f3b0-04a0-4e69-a4ce-a9393f02ee61', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=6b97f3b0-04a0-4e69-a4ce-a9393f02ee61'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-496b7248-221b-4a1a-a78a-72dd6a2706b4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:23.019963+00:00', 'updated_at': None} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=connector_id,extra {} GOT:{'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': 'de6b0b25-09f9-456d-bdfc-48aa8bd13077', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/de6b0b25-09f9-456d-bdfc-48aa8bd13077', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/de6b0b25-09f9-456d-bdfc-48aa8bd13077', 'rel': 'bookmark'}]}, {'uuid': '4b83a6b6-a32e-48f1-87ab-0403fb8c47e8', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4b83a6b6-a32e-48f1-87ab-0403fb8c47e8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4b83a6b6-a32e-48f1-87ab-0403fb8c47e8', 'rel': 'bookmark'}]}, {'uuid': '2343ef43-fc3c-40d8-b363-1e8e995c607b', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2343ef43-fc3c-40d8-b363-1e8e995c607b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2343ef43-fc3c-40d8-b363-1e8e995c607b', 'rel': 'bookmark'}]}, {'uuid': '4ffa6b87-bd9f-4690-ae8c-2f4715a0014c', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4ffa6b87-bd9f-4690-ae8c-2f4715a0014c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4ffa6b87-bd9f-4690-ae8c-2f4715a0014c', 'rel': 'bookmark'}]}, {'uuid': 'ab47c546-1372-4d80-8ff9-4bcad0c7e195', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ab47c546-1372-4d80-8ff9-4bcad0c7e195', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ab47c546-1372-4d80-8ff9-4bcad0c7e195', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?sort_key=uuid {} GOT:{'connectors': [{'uuid': 'ae9d28a9-1e7f-4e32-ae3d-c2987388441f', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ae9d28a9-1e7f-4e32-ae3d-c2987388441f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ae9d28a9-1e7f-4e32-ae3d-c2987388441f', 'rel': 'bookmark'}]}, {'uuid': 'b8bfdeab-39c0-44e0-a87f-26764ebc0585', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/b8bfdeab-39c0-44e0-a87f-26764ebc0585', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b8bfdeab-39c0-44e0-a87f-26764ebc0585', 'rel': 'bookmark'}]}, {'uuid': 'bfc5632f-a990-4cf5-852e-b3a5d97e620e', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/bfc5632f-a990-4cf5-852e-b3a5d97e620e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bfc5632f-a990-4cf5-852e-b3a5d97e620e', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-42fad838-a77d-4e70-87d5-ef9f8158f1bb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da21800f-d243-483e-9d49-1d4130c7e1a1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2bea068-6e91-4e3d-91d6-ea5987936666 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:23.660995+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.105975s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.092956s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.164707s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.105595s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.057593s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.066685s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.064906s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.093214s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.070266s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.088846s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.101832s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-051eea01-fd32-4b95-ac4d-935374ad6348 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:23.232392+00:00", "updated_at": "2020-05-05T00:02:23.239740+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70e55220-b0fb-41a4-b44c-b2d431b77d21 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89c51a3d-4198-4568-a4f8-ed8e942a93a5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-999", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:23.440558+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PATCH: /v1/volume/connectors/05a01cf7-2995-439f-ad83-f07b2edef574 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-96e62b14-9ff8-4de8-9f55-c608b6fb3530 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 05a01cf7-2995-439f-ad83-f07b2edef574 could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-1df01818-66e4-4664-b0a3-4fabe159bcf2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-57b32baa-5c09-41a2-80b6-39f6130302b9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:23.862559+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:23.862559+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a51a99ea-512d-45a1-930a-0dd78cb3eb43 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-833aa2c5-eafe-41ed-a2d1-14984a6bcf24 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.049908s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.126360s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.085039s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.103374s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.081206s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.081414s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.043631s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.063884s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.101526s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.071499s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.108479s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.102289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.133471s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.081954s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.045547s] ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0f6d3ffa-7f37-4cd2-bc79-ddff9556dd67 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fae0b0ea-4656-47ea-88b6-f62cc217df4b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c8d0928e-37f4-4d5b-98a6-4878dc96d543 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-68613f9d-5d6a-4aae-a97d-be93178aadd7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d5ff886-a697-41e2-b121-4ee39d136401 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b60896cd-3868-4fa8-8447-8d9f735752e7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:24.220371+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca11b9a0-ced1-4552-81c4-6cb103b68dba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0f0cbdd9-1c75-4854-8373-5eb2964eca37 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09372f29-1852-47a4-84a7-ac9acdc7bf4a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:24.513153+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-94859f16-cc58-4e3a-9b7c-7af47d6ce1ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f Openstack-Request-Id: req-bf1b64cc-7929-4757-904c-d95047f48ccf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "005038b8-c1ae-49dc-838f-e91ded6f0f7f", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f", "rel": "self"}, {"href": "http://localhost/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:24.737332+00:00", "updated_at": null} GET: /v1/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f {} GOT:{'uuid': '005038b8-c1ae-49dc-838f-e91ded6f0f7f', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/005038b8-c1ae-49dc-838f-e91ded6f0f7f', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:24.737332+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5382140a-642f-4d85-b4c7-f3b80616cc4f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.071892s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.082106s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.060641s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.209396s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.150011s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.100384s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.126939s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.091198s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init [0.013411s] ... ok GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4cd8469-8e2f-4748-a4d3-fc3444205040 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=boot_index,extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-531e200b-46c6-45d3-b1de-7768cf7a0931 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/targets?detail=True&node=test-node {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:24.406996+00:00', 'updated_at': None}]} GET: /v1/volume/targets?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bc283421-d3ed-4073-8c32-4f86470cd1d2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} GET: /v1/volume/targets?node=test-node {} GOT:{'targets': [{'uuid': '6c16208c-c53d-4149-b749-99ad1811a621', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/6c16208c-c53d-4149-b749-99ad1811a621', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6c16208c-c53d-4149-b749-99ad1811a621', 'rel': 'bookmark'}]}, {'uuid': '4039bb01-e8cf-44ad-9ca2-c8d3eba2159e', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4039bb01-e8cf-44ad-9ca2-c8d3eba2159e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4039bb01-e8cf-44ad-9ca2-c8d3eba2159e', 'rel': 'bookmark'}]}, {'uuid': '085bab4a-3c23-4303-81b5-0bf6f727b470', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/085bab4a-3c23-4303-81b5-0bf6f727b470', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/085bab4a-3c23-4303-81b5-0bf6f727b470', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'e089ab0b-e7e6-4f87-88ec-8e5a5eac59f1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/e089ab0b-e7e6-4f87-88ec-8e5a5eac59f1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e089ab0b-e7e6-4f87-88ec-8e5a5eac59f1', 'rel': 'bookmark'}]}, {'uuid': 'b59f60c2-b351-4c8c-8bd9-9ee74c4432b8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/b59f60c2-b351-4c8c-8bd9-9ee74c4432b8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b59f60c2-b351-4c8c-8bd9-9ee74c4432b8', 'rel': 'bookmark'}]}, {'uuid': 'c8368e3e-d4be-47fe-9841-9526c7753686', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/c8368e3e-d4be-47fe-9841-9526c7753686', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c8368e3e-d4be-47fe-9841-9526c7753686', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8f41527f-8419-4e18-be37-2453af3d5d39 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '03982625-d64b-45ab-800f-d2c5e379ecf6', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/03982625-d64b-45ab-800f-d2c5e379ecf6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/03982625-d64b-45ab-800f-d2c5e379ecf6', 'rel': 'bookmark'}]}, {'uuid': 'e02ec977-f351-4611-9c79-499ad65e5951', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e02ec977-f351-4611-9c79-499ad65e5951', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e02ec977-f351-4611-9c79-499ad65e5951', 'rel': 'bookmark'}]}, {'uuid': '603ba612-046c-4195-af83-10b6f312302e', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/603ba612-046c-4195-af83-10b6f312302e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/603ba612-046c-4195-af83-10b6f312302e', 'rel': 'bookmark'}]}, {'uuid': 'da52919e-6db2-404c-b611-666bab313888', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/da52919e-6db2-404c-b611-666bab313888', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/da52919e-6db2-404c-b611-666bab313888', 'rel': 'bookmark'}]}, {'uuid': '97469e2a-bbb1-4686-b7fa-e3f1bf5667f0', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/97469e2a-bbb1-4686-b7fa-e3f1bf5667f0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/97469e2a-bbb1-4686-b7fa-e3f1bf5667f0', 'rel': 'bookmark'}]}]} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-857ca016-d6be-476a-9ce8-0adc5de0d0ed X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.150201+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7b860cb-054f-4903-8641-8d7b69bf5c50 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.070501s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.136532s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.120115s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.097180s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.079951s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.101687s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.087438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.062886s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.094875s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.132016s] ... ok POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc828f13-7c08-46cc-a924-0643a24608c5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1376f4c9-afa7-4cb9-abee-74576bd5bf38 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-aa44ad9f-821e-446a-bd53-9ae12ec95e59 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-456", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.103264+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': 'b091bc92-f2e7-4a26-a489-040bc3e482e0', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8cdef1e9-179a-4d2d-8d8c-4f7034c8764b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-8bf56f8a-7d4e-4f55-b375-0860cc6d0e7d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.232510+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:25.232510+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c759ff33-3814-4d8e-abe6-f7c4f19f821c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.363084+00:00", "updated_at": null} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-b9f4dce9-d05d-4f27-afd8-d57f6b2d0df7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fed31f3-81f5-4a67-ad5b-6543fa8ed882 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-33619068-7a88-4d89-9ddd-08e4164ef31b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/volume/targets/?limit=3 {} GOT:{'targets': [{'uuid': 'f1f93d18-7e8b-44fb-96b3-b63788f3a3d0', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f1f93d18-7e8b-44fb-96b3-b63788f3a3d0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f1f93d18-7e8b-44fb-96b3-b63788f3a3d0', 'rel': 'bookmark'}]}, {'uuid': 'eca71f78-6eef-4ede-88ff-243c8d476ec1', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/eca71f78-6eef-4ede-88ff-243c8d476ec1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/eca71f78-6eef-4ede-88ff-243c8d476ec1', 'rel': 'bookmark'}]}, {'uuid': 'a76fe25f-745e-49dc-8ba8-71a6669bc243', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a76fe25f-745e-49dc-8ba8-71a6669bc243', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a76fe25f-745e-49dc-8ba8-71a6669bc243', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=a76fe25f-745e-49dc-8ba8-71a6669bc243'}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.116607s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.207274s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.100512s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.110761s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.128407s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.066714s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.108230s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.083453s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.082780s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-107135a3-2751-4cd3-b26f-81f6caace944 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-76d7d275-cbe8-40cf-83bd-d98ff8f23328 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e2c7749-3655-4ec0-9837-b50ad962d5fb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.555825+00:00", "updated_at": "2020-05-05T00:02:25.561034+00:00"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e8c8201-35de-45b2-bd54-69b6e3160149 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56e33939-adbb-4fd1-a03a-1bd6858ef98e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:25.723185+00:00", "updated_at": null} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-41eae4fc-d0d6-4171-92b2-daeb52f61a77 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5ed1361f-18e2-4d79-aff8-76e82f40f622 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/targets {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d Openstack-Request-Id: req-18ad3d7d-a219-4328-86ff-b2f7edb058b4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "869ffe35-9959-4a7e-a6f8-2d0a10c2545d", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d", "rel": "self"}, {"href": "http://localhost/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:26.098588+00:00", "updated_at": null} GET: /v1/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d {} GOT:{'uuid': '869ffe35-9959-4a7e-a6f8-2d0a10c2545d', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/869ffe35-9959-4a7e-a6f8-2d0a10c2545d', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.098588+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18c83e2c-eefd-4d95-a05d-ce0a24a282f8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} GET: /v1/ {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5b400a7-b0aa-4189-bff6-0f0b081170ee X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.58", "min_version": "1.1"}}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.088257s] ... ok {0} ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions [0.119853s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.049814s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.033465s] ... ok {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.028429s] ... ok {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.021793s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin [0.032860s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.035918s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.020367s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.019963s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.115391s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.036688s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.040280s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.079313s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.036868s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.037300s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.084108s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.037606s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.036475s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.036536s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.019142s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.018626s] ... ok {0} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.036392s] ... ok {0} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.025586s] ... ok {0} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.026713s] ... ok GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'c68cc027-d06c-4160-9fb6-854b19210316', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/c68cc027-d06c-4160-9fb6-854b19210316', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c68cc027-d06c-4160-9fb6-854b19210316', 'rel': 'bookmark'}]}, {'uuid': 'b674e3b8-eadf-467d-8fff-ff264f6fe5a4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/b674e3b8-eadf-467d-8fff-ff264f6fe5a4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b674e3b8-eadf-467d-8fff-ff264f6fe5a4', 'rel': 'bookmark'}]}, {'uuid': '00490088-cdc4-4ba2-85e7-c30b2e02f0cb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/00490088-cdc4-4ba2-85e7-c30b2e02f0cb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/00490088-cdc4-4ba2-85e7-c30b2e02f0cb', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=00490088-cdc4-4ba2-85e7-c30b2e02f0cb'} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': 'c9c8bda2-c5e4-48a4-85a7-12c1dc638a85', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/c9c8bda2-c5e4-48a4-85a7-12c1dc638a85', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c9c8bda2-c5e4-48a4-85a7-12c1dc638a85', 'rel': 'bookmark'}]}, {'uuid': '82ffe7be-9c84-4b47-ab32-005d0c53cb9f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/82ffe7be-9c84-4b47-ab32-005d0c53cb9f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/82ffe7be-9c84-4b47-ab32-005d0c53cb9f', 'rel': 'bookmark'}]}, {'uuid': 'bd6e076b-7287-45e8-aad8-bd43a2d01144', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/bd6e076b-7287-45e8-aad8-bd43a2d01144', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/bd6e076b-7287-45e8-aad8-bd43a2d01144', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=bd6e076b-7287-45e8-aad8-bd43a2d01144'} GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{'targets': [{'uuid': '8a308281-0290-4319-90d6-542707b39fc7', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8a308281-0290-4319-90d6-542707b39fc7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8a308281-0290-4319-90d6-542707b39fc7', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.150897+00:00', 'updated_at': None}, {'uuid': '649a8288-43a1-44a8-a997-148395226b6c', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 1, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/649a8288-43a1-44a8-a997-148395226b6c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/649a8288-43a1-44a8-a997-148395226b6c', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.153330+00:00', 'updated_at': None}, {'uuid': '148085e3-6d9e-4991-996f-30ceca0e605e', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 2, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/148085e3-6d9e-4991-996f-30ceca0e605e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/148085e3-6d9e-4991-996f-30ceca0e605e', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.155665+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=148085e3-6d9e-4991-996f-30ceca0e605e'} GET: /v1/volume/targets?detail=True {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.263048+00:00', 'updated_at': None}]} GET: /v1/volume/targets?detail=False {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /v1/volume/targets?fields=boot_index&limit=2 {} GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/4f07104f-a537-4ca1-89d8-3d51c2158111', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4f07104f-a537-4ca1-89d8-3d51c2158111', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/3fdb4ac5-c27d-4229-9c6a-88cc8a3c0d15', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3fdb4ac5-c27d-4229-9c6a-88cc8a3c0d15', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=3fdb4ac5-c27d-4229-9c6a-88cc8a3c0d15'} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.634491+00:00', 'updated_at': None} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra {} GOT:{'boot_index': 0, 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869 {} GOT:{'uuid': 'faa7c73f-2cfd-495f-940a-e3915b054869', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.800717+00:00', 'updated_at': None} GET: /v1/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869 {} GOT:{'uuid': 'faa7c73f-2cfd-495f-940a-e3915b054869', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.800717+00:00', 'updated_at': None} GET: /volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869 {} GOT:{'uuid': 'faa7c73f-2cfd-495f-940a-e3915b054869', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/faa7c73f-2cfd-495f-940a-e3915b054869', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:26.800717+00:00', 'updated_at': None}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.174185s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.152403s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.047427s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.108877s] ... ok {0} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.281206s] ... ok {0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.030413s] ... ok {0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.042427s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.123708s] ... ok {0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.043176s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.030678s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.030401s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.030197s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.101883s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option [0.030754s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.026941s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.071181s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.022732s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.022360s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.018348s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.017146s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.016282s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.017541s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.104452s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.021068s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.019938s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.066738s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.062267s] ... ok {0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions [0.237226s] ... ok {0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.016956s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.092686s] ... ok GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets?sort_key=uuid {} GOT:{'targets': [{'uuid': '35141ec7-2bb5-4ca0-8add-4a91f2520c68', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/35141ec7-2bb5-4ca0-8add-4a91f2520c68', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/35141ec7-2bb5-4ca0-8add-4a91f2520c68', 'rel': 'bookmark'}]}, {'uuid': '4b4584a2-8513-4967-af3b-3cb8749e82a9', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4b4584a2-8513-4967-af3b-3cb8749e82a9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4b4584a2-8513-4967-af3b-3cb8749e82a9', 'rel': 'bookmark'}]}, {'uuid': 'd1c03a90-bc21-4d5d-981e-5665e7770c1f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/d1c03a90-bc21-4d5d-981e-5665e7770c1f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d1c03a90-bc21-4d5d-981e-5665e7770c1f', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f5e2fc2-89f1-4bf8-8ebe-c4e525e46b79 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-de81c289-9076-46ad-80e0-350f595fb955 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-552ba5fe-3900-4407-a73e-8a97b7e2cbe8 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3d37781-f3f3-4f2b-8ae9-a7c640c6ae8f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:27.414934+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-765980aa-81ca-44c8-a6f7-520c9d7661d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1af9f53-139f-4f3d-bf62-46f2eab40a60 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:27.593119+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-11c58e8e-06c1-4764-87f5-6e250c743091 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c267d247-e0b6-4847-965e-a9d7f78ab25a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e96585f3-253f-444e-8f18-7062e6006392 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:27.828594+00:00", "updated_at": "2020-05-05T00:02:27.834198+00:00"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87e7b5b7-6e65-4f14-b47b-eb6ed866e74f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:27.828594+00:00", "updated_at": "2020-05-05T00:02:27.834198+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.171645s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.161417s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.141193s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.060517s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.085261s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.090354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.067822s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.085855s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.097746s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.087202s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.075980s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.089049s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.100422s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.086619s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.044301s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.089070s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.066139s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.084946s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.030588s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.025136s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.126937s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.023524s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.013530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.044054s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.011301s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.012167s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.010241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.061809s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.032533s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.028095s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.058681s] ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbe6214b-ce02-4dd5-8bfb-b5a0e695c447 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fdd4f067-9744-4819-8400-848665c1cd7f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f12aa555-a553-4c55-ae94-96ff79e65bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a7d41e1-d947-4fc6-994e-2411f45b59af X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c932111-fb15-4f89-b66c-f42d152afdcf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:28.385245+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5c09107-5f15-4e46-b0fb-8c27f8235711 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-01ef2840-e068-418a-8c3a-f3cfaaa5adcb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:28.560295+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PATCH: /v1/volume/targets/7c5ccea5-2d7f-41f7-aa57-b92f50af86b6 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7a157dcf-c0b5-4d13-a944-c6648daa3331 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7c5ccea5-2d7f-41f7-aa57-b92f50af86b6 could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-8f37c788-48eb-4be2-8ec2-c84b02d73566 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:28.814918+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:28.814918+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-75e1426a-67a6-45fe-954d-6b8351f9ab72 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.063606s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.060077s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.096385s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.160640s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.028162s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.016802s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.016421s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.017433s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.134283s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.018248s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.017586s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.088751s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.068392s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init [0.012446s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.024313s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.015892s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.017033s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_authenticated [0.070614s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.020746s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.024447s] ... ok {0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.012866s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.011588s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.012002s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_non_admin [0.068701s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.011555s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.010540s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.022320s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed [0.011432s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.010769s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header [0.069039s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.024577s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.013236s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated [0.037426s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [0.013722s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.012932s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.012270s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.008900s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.006349s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.010780s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.016726s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.024113s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.013838s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.013658s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.013042s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.013262s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.013445s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.012798s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ddb93a68-4d2e-4be6-8e26-a7ddb3f4487b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7736a30-1402-4601-ae57-975272d5ee14 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute volume_type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e7f32b4-1898-4a9d-9cce-f4ceba01243e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-2800645c-e83f-4636-9d61-51d426ce9a55 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:29.271362+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-05-05T00:02:29.271362+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ce2ed986-c8ac-4e58-a793-f218dbc23b49 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-05-05T00:02:29.408182+00:00", "updated_at": null} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-35f08793-29a7-4fd4-b2d9-65db69fe9bef X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c1b45600-9b5c-4ad0-9231-4a60c69e3e9d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 401 Unauthorized Content-Type: application/json Www-Authenticate: Keystone uri="https://127.0.0.1:35357" {"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}} GET: / {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6680714b-4ce6-4449-9e36-6062fcb8b94f {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which aims to provision baremetal machines.", "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.58", "min_version": "1.1"}], "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.58", "min_version": "1.1"}} GET: /v1 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89f1013a-6b4d-4e45-89d2-1cf3ba2cdf96 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.58", "min_version": "1.1"}}{1} ironic.tests.unit.api.test_acl.TestACL.test_public_api [0.070984s] ... ok {1} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.023125s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.032088s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.037711s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.059089s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.036710s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.117219s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.050769s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.040693s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.051621s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.013290s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.024281s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.037359s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.056513s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.084881s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.037205s] ... ok {1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.023392s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.020411s] ... ok {1} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.038307s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.031863s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.039098s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented [0.035520s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.012865s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.031250s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.014028s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.019494s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href [0.013286s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error [0.012941s] ... ok {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.052519s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code [0.013396s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.013364s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.012394s] ... ok {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.044774s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.011689s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.013102s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.010779s] ... ok {1} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.033202s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.019654s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso [0.015799s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError [0.013184s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.052039s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg [0.017331s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.022515s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise [0.015512s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.018591s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.024278s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.019237s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.023706s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.023193s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.023067s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.023541s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.023175s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails [0.030300s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.017855s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.014377s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.019987s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.012870s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.017176s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size [0.012447s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.017617s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.023570s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.020381s] ... ok Error while running foo: bar. "max-count" must be a positive value. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.021615s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present [0.014247s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.018165s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.014331s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.015482s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.019023s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.013778s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.015757s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.016324s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.094600s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.016836s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.042769s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.031824s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure [0.103410s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.041733s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.068799s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.118634s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.044174s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.052701s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.031350s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request [0.119574s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.032508s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.030723s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.030407s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value [0.089647s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.031583s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.007863s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.090236s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.081857s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.090461s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.078556s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.086775s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.075441s] ... ok {0} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.074023s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.082270s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client [0.018223s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts [0.023129s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session [0.014496s] ... ok {0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.085806s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.025610s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context [0.010806s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.012571s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.019607s] ... ok {0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.075588s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.028253s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer [0.016701s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.016233s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.017078s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.076790s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.017493s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.017122s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.016003s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.017297s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.077357s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.017039s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.016620s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.014848s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra [0.073254s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.068057s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.071678s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.068345s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra [0.077282s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.068249s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.072590s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.067824s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.074224s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.064125s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults [0.059555s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.119419s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.012325s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.012960s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.076666s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.015876s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.011376s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.025393s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.014453s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.014571s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.026169s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet [0.014702s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.025248s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.025245s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.025032s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.079727s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.026394s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.083721s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.074610s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.069254s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.083392s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.067349s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.016100s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.095145s] ... ok {1} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.070983s] ... ok {1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.012904s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.075351s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.012035s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.010955s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.010257s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.019207s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.019223s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.078351s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.019931s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.010967s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound [0.010767s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.012858s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.010669s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.077511s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.012466s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.013381s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.017437s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.015957s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.013774s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.083170s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.030300s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.028387s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.011561s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.010208s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.081837s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.011628s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.012919s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.013083s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.010629s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.013014s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.082125s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.054463s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.077712s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.053528s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.018390s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.053174s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.095611s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.049823s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.061975s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.049844s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.061155s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.031837s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.024863s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail [0.022834s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.062901s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.019088s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.029000s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.012138s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror [0.015922s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.030048s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror [0.019722s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success [0.017368s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.034379s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.028113s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.028952s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.013564s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.011798s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.029726s] ... ok {1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.014591s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.017903s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.029605s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.019943s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_esp_imageimg [0.016861s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.040526s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.021852s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.014469s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.036269s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.019200s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.019416s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.044009s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.019948s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.031788s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.022317s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.020285s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.027211s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.017232s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.016259s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_deploy_iso [0.028092s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.017633s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_esp_image [0.024617s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.017277s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.013722s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails [0.025375s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.015412s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.013825s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.028780s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount [0.024772s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.028583s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.013702s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.018889s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.035090s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails [0.023897s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.032918s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.014211s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.029448s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.037071s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.012326s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.031516s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.012239s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.012488s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api [0.021885s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.020512s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member [0.022951s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.016284s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format [0.012652s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password [0.021950s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.018523s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create [0.020160s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.014089s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get [0.020756s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.014105s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.013397s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api [0.022181s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.016585s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password [0.019964s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_serialization [0.025180s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.020197s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.018381s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.020463s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.016261s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.013700s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.013223s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.014697s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.014859s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.017293s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.073729s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.030335s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.034329s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.067552s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.030771s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.029278s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_no_blacklisted_methods [0.031296s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.081055s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.024259s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_serialize_objects [0.038308s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.031595s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.007853s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.007792s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.008049s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.010165s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe [0.110292s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.101400s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_local_boot [0.118209s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.285551s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.078187s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.116011s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.078646s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.101033s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.082845s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe [0.077281s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.074587s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_local_boot [0.096132s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.071114s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_rescue [0.092090s] ... ok {1} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.075913s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.075654s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.093559s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.075485s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ramdisk_params [0.080678s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra [0.075920s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.061263s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.075141s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info [0.077713s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra [0.075554s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.074120s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_without_is_whole_disk_image [0.089110s] ... ok {1} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.126520s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.011922s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.014866s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.014703s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.014493s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.097881s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.015221s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.014307s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.019087s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.019128s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.086550s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token [0.037615s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.026700s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.019505s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.026613s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.024399s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.024976s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.024218s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.100832s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.025924s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.024302s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_three [0.027077s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.098683s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_two [0.028717s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.024105s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.095201s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.086324s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.082781s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.100555s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.083313s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.099408s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.080584s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.103921s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.088335s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.084843s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.027693s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.084446s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.029858s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.084926s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.080114s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.077211s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.085173s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.081482s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.087895s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.028737s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.036571s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.030139s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.060630s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.066805s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.028879s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.064232s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.059257s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.036419s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.063572s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.074403s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.063045s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.061037s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.075268s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.045517s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi [0.075858s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.040599s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.028447s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.014025s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.028448s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_ipxe_ipv6 [0.086666s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.032315s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.026911s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.014682s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.026845s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.015485s] ... ok {1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.012573s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.026907s] ... ok {1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.013421s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe [0.026487s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.028193s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash [0.026161s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.028181s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash [0.026600s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.027638s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.025859s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.031286s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.027388s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.043074s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.023263s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.032318s] ... ok {1} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.015306s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.025442s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create [0.019666s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.023926s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get [0.021305s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.024655s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api [0.019181s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api [0.017510s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.040766s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.064761s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.060123s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.054470s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.066087s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.024956s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.024499s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.058402s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.013751s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.026154s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.017310s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.015139s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.015234s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.015327s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.015676s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.015683s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.095436s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.016198s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.011412s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.011002s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.011533s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.012123s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.013761s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.013263s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.105230s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.016007s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.011655s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.011473s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.056140s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.119862s] ... ok {0} ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start [0.040892s] ... ok {0} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.012033s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.064911s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.100443s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails [0.069669s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue [0.112954s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.064131s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.064558s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.117524s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [0.065673s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object [0.061641s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.100166s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta [0.063463s] ... ok {0} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.014590s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.077592s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper [0.020246s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.014741s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper [0.013639s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.016725s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.011605s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.014436s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.081951s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.012259s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.012718s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id [0.026502s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.012716s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.065579s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.013201s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.011702s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.012153s] ... ok {0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.023998s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.063445s] ... ok {0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.014541s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.014811s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.014798s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.018242s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.017440s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options [0.090411s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.017398s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.011308s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.026097s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.016644s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.026056s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.030432s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.025153s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.014827s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.011424s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_one [0.028651s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_pass [0.025921s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.049858s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.018125s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.016226s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.048637s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.030399s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.024652s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.052220s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.080684s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi [0.070196s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.080376s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.028168s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.033491s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.029961s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs [0.083384s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.411296s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.082060s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.087093s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.171702s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.059590s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.057086s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios [0.077541s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.183003s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.026216s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash [0.023693s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash [0.024661s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.023580s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.024348s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.117044s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir [0.024445s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.023952s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.015359s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.015774s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.014675s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.016009s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.111953s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.016215s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.019118s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.015310s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.015622s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.015187s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.015375s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.014959s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.107576s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.011798s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.011083s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.010658s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.010570s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.011151s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.011549s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.011704s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.013189s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.011933s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.109510s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.012075s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.010541s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.010855s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.011377s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.055099s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.103099s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.058716s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.098280s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.068654s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.072344s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.064909s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.066230s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.014377s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.013859s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.013260s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.030628s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.011848s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.179144s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.017744s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.019787s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.011910s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.011612s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.010768s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.012874s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.012837s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.012901s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.011678s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.112043s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.012201s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.010493s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.011553s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.013633s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.015923s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.046087s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.131146s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure [0.016758s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.047217s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.104009s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.175412s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.012862s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.011655s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.109727s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.105504s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.028706s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.180610s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.189564s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.181161s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.093144s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.037725s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.095529s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.323185s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.119960s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.106973s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.100163s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.049527s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.276797s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.142923s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.168430s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.101657s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success [0.015729s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.172190s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.168803s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.202803s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.173423s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.067280s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.021595s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.180746s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.174321s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.080756s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.247927s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.183019s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.207418s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.178480s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.170326s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.175538s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.167328s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.018927s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces [0.018150s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.177632s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.044569s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.075733s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.049301s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.073210s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.206729s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.658499s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.260271s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.223728s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.488433s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.266357s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.177656s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.045192s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.076110s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.257581s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.072955s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.056168s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.245328s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.264616s] ... ok {0} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.268366s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.258854s] ... ok {0} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.272756s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.221628s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.216466s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.057063s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.245309s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.056561s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.247718s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.254964s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.248816s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.232502s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.265358s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_polling [0.470038s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.281008s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.218720s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.029043s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.242753s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.082578s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.058902s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.279130s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.368818s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.258820s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.230818s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.284507s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.267743s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.212522s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.223542s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.230769s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.220974s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.129475s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.220229s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.080417s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance [0.081052s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.075795s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_no_skip_step [0.249638s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.080558s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.077485s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.048727s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.070020s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_skip_step [0.238096s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.237879s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.301706s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.268021s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_clean_step_oob_reboot_fail [0.301665s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_deploy_step_oob_reboot [0.253327s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.279111s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.046426s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps [0.068498s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.081299s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step [0.071219s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked [0.049474s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.074024s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.074159s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.317170s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.238449s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.247941s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.223535s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.260024s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.267066s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.230408s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.223843s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.230105s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.224951s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.235599s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.207490s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.082676s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.049748s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.086478s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version [0.259560s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.052089s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated [0.279622s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.295538s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort [0.087216s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.080849s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name [0.087410s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.116188s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.099532s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.046487s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.273629s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.074894s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.273647s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.285336s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.279839s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.333467s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.297908s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.479700s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.107502s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.322003s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_no_skip [0.066808s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception [0.064715s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.476111s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.326254s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.272576s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.322476s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.275162s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.119221s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.365517s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.100910s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.240668s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.206244s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat [0.257636s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual [0.249510s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.091830s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.116059s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.137512s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.260380s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.118582s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.276130s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.276749s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.279191s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.258597s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.250758s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.337094s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_polling [0.248402s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.256892s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.221910s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.478298s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.335475s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated [0.227147s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.258238s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.107399s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.106435s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.335902s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.257644s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.261379s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.274707s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.275382s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.273748s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.117673s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.214107s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.120603s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.213612s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.117032s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.122077s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.118064s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict [0.295953s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict_with_meta_data [0.285841s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.342632s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.121049s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.277821s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.234127s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps [0.083589s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip [0.091973s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step [0.112638s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.387379s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.238360s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.290097s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.267470s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.324402s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.241834s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.280434s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.564226s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step [0.238622s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old [0.298040s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.251224s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old [0.276495s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.269207s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps [0.258549s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.257884s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps [0.277294s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.255058s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps [0.248011s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.261463s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.242444s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.225886s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.213144s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.243101s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.234062s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.242818s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.249746s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.239902s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.243183s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_and_user_data_as_dict [0.306269s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.244463s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.248692s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.244195s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.278821s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.171067s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.074584s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_with_network_data [0.303749s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.170808s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.309165s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old [0.292058s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok [0.293953s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.298463s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old [0.266710s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.276964s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_console [0.473631s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated [0.227088s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [2.603001s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc [0.264881s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.273049s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.217400s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.253638s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.239691s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.099118s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.212786s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.100479s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.210231s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.247368s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.252326s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.244689s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.241717s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.254654s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.111748s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.234209s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.121190s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.111439s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.215605s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.215893s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.081822s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.253076s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.018829s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.020629s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.019992s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.076098s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.020165s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.018037s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.018407s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.018029s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.022324s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.019066s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.019487s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.249741s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.192832s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.240680s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.275009s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.266424s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.208679s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.267982s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.269800s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.027882s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.027806s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.026246s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.046399s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.028433s] ... ok /usr/lib/python3.6/site-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.048925s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.028951s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.317340s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.028677s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.026797s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.027087s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.020314s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.020965s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.020456s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.018031s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.018743s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.023370s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.018055s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.018655s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.019213s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.018878s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.019079s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.018159s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.321910s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management [0.142788s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.282625s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake [0.168398s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.075581s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.187133s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify [0.250512s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.152826s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.061113s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.049199s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.071300s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.248579s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.074485s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error [0.229120s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.451475s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.249993s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.082506s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.236787s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.080096s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.076595s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.147163s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.230514s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.088873s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.090111s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.022379s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.019189s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.231235s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.022593s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.018704s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.017627s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.018525s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.019723s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.019108s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.019684s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.019199s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.180260s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.024085s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.102448s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.108324s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.256612s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.088437s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.099561s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.220047s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.027647s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.050178s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.178991s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.048482s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.048363s] ... ok This is bad/usr/lib/python3.6/site-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.050407s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.128466s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.047652s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.027790s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.019538s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.019425s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.018357s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.025271s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.022674s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.166247s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.019693s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.028150s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.018423s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.019153s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.019067s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.025040s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.169256s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.127180s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.165500s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.145358s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.177093s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.144002s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.138023s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.141168s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.059654s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.392434s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.057860s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.056437s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.059373s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.223859s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.075822s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.069540s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.255570s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.246738s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.316806s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok [0.235239s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.104039s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old [0.309721s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error [0.240696s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait [0.235751s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old [0.303331s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting [0.235103s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.230655s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.086882s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.089999s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state [0.238355s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive [0.048630s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift [0.051731s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.015890s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.016169s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.111163s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.016970s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.016186s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.096806s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.146545s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.086504s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.139935s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.102901s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.093972s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.128330s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.085760s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.101454s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.089840s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.018806s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.022403s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.059296s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.099494s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.101349s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.152831s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.634677s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.168311s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.171221s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.261660s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.034797s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.037959s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.166629s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.069050s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.089506s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.202218s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.329413s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.341145s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.226400s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old [0.305471s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.080121s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.082797s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.082247s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.085247s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.361417s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.078489s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.088803s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.083391s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.078954s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old [0.288627s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.075048s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.092379s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.084542s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old [0.305052s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.084313s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.234240s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.077379s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.080554s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.046622s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.547798s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.136875s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.127370s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.141588s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.334623s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.139273s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.212892s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.089960s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.231516s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.275080s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.218369s] ... ok {1} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.054008s] ... ok {1} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.056260s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.016098s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.017171s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.016550s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.016268s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.218533s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.101231s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.092142s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.210752s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.109277s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.079778s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.075048s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.131197s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.073440s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.096717s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.072350s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.077854s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.074716s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.059847s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.011494s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.031746s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.025749s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.025246s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.025326s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.018818s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.014760s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.018707s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.018028s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.018442s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.018022s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.019245s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.019230s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.019316s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.019237s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.019367s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.019544s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.019254s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.021585s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.018929s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.019249s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.019066s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.039864s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.031772s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.038530s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.019170s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.018788s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.019560s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.018960s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.022966s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.019389s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.018306s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.018454s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.018455s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.018614s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.018634s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.018496s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.018553s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.018756s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.019287s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.079420s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.075476s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.075463s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.071056s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.078158s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.073480s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.072384s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.072965s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.079060s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.074175s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.098407s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.075355s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.078984s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_driver_steps [0.076144s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.075193s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.077094s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.081774s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.078057s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.072524s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.073029s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.079744s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.076230s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.075731s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.074606s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.073414s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.080321s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [3.133929s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.103228s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_error [0.074849s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.013127s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.149362s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.013218s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.013955s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.013216s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.012812s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.014657s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.014683s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.094988s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.021519s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.013858s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.013734s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.036442s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.013550s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.028510s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.030918s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.032442s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.152998s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.247675s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.031403s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.035241s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.031710s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.028716s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.027547s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.034828s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.032408s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.014017s] ... ok {0} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.012615s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.015262s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.013004s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.013485s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.012836s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.013351s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.012687s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.018490s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.013520s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.012765s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.012979s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.013884s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.014759s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.014547s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.013340s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.026182s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.014191s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.734635s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.079474s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.086850s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.075725s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation [0.075361s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.077771s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.432228s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.081667s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.050930s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.087523s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.076807s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.076593s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.082355s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.076019s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.093035s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.072633s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.091741s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.075153s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.098207s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.226219s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.117829s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.086453s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.098426s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.052161s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.101413s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.120417s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.236620s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.104498s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.149725s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.234905s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.047830s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.101867s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.079498s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.078746s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.114434s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.075042s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.117349s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.078352s] ... ok /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.116061s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.090841s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.083733s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.117720s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.074558s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.112939s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.074282s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.074899s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.111909s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.081253s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.120531s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.136463s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.071886s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.070953s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.136928s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.074078s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.075705s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.147844s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.111337s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.129949s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.115227s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.139533s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.115535s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.122977s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.011325s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.105686s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.322116s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.085858s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.081947s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.081314s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.214124s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.083340s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.084415s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.205895s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.080262s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.072670s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.077019s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.212914s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.077580s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.085321s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.075661s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.011457s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.223237s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.051577s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.076038s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.076464s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.046457s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.014677s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.025037s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.029208s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.024670s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.010929s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.017509s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.017823s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.017623s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.023178s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.014189s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.019173s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.018288s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.019388s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.017203s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.018656s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.026146s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.018973s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.017973s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.030961s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.018272s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.027102s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.022438s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.017378s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.031361s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.018036s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.017944s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.028559s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.059097s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.018796s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.027694s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.023355s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.027758s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.018987s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.031813s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.034946s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.027236s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.027477s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.027877s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.031376s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.017722s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.018483s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.043072s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.022972s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.018095s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.051869s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.016514s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.017800s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.018405s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.047511s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.018411s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.017854s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.044832s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.018234s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.025149s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.058320s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.040243s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.027096s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.029009s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.074286s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.051167s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.031798s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.023920s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.103699s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.044473s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_user_steps [0.077677s] ... ok {0} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions [0.049040s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_steps [0.075047s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.119486s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.079769s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.062486s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.084546s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.072403s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.071848s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.341411s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.076487s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.072270s] ... ok {1} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_ok [0.071846s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.210960s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.012214s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.011280s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.013677s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.014038s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.013744s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.012330s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.014368s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.016000s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.014267s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.163770s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.036874s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.030226s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.028079s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.032243s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.028618s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.035850s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.031448s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.026952s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.256534s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.028440s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.028090s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.085617s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.032875s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.024406s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.032946s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.034076s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.036906s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.240600s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.026859s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.030559s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.036805s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.031285s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.043060s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.035058s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.038149s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.032158s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.041372s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.065316s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.012483s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.035353s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.014214s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.011923s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.012011s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.043521s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.011766s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.013104s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.022178s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.013513s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.022186s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.014807s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.013360s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.016943s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.013104s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.015656s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.071205s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.013175s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.012750s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.016597s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.014860s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.013163s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.067425s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.015194s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.013658s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.013027s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.048233s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.027209s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.032341s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.014520s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.026530s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.028262s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.076339s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.022669s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.029409s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.026956s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.090147s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.038045s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.022740s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.023197s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.022950s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.079349s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.030347s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.024390s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.074176s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.026779s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.026522s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.023010s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.022424s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.088058s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.031087s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.036252s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.029387s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.027076s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.050907s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.015486s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.028950s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.030040s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.031345s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.073052s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.027483s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.022503s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.028645s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.018827s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.105803s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.041995s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.037043s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.036428s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.104331s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.045785s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.027796s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.117529s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.122004s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.116026s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.069608s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.074826s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.111660s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.012526s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.561431s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.013305s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.011574s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.013297s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.011532s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.051359s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.078646s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.080418s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.077405s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.080446s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.080822s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.077119s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.081930s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.558163s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.079553s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.077795s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.083664s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.085114s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.081416s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.083358s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.075015s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.584682s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.026582s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.029471s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.084519s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.035090s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.037939s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.076903s] ... ok {1} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.015570s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.031379s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.027505s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.028853s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.040789s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.030837s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.025446s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.044432s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.022435s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.060925s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.015854s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.061808s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.041670s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.053823s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.016847s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.011044s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.058895s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.010197s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.017700s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.042575s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.022740s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.025487s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.042607s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.026234s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.031375s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.051895s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.027237s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.037390s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.026258s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.044201s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.045969s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.040646s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.051375s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.039319s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.055681s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.029726s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.019455s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.060520s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.055068s] ... ok {1} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model [0.023615s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.039532s] ... ok {1} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null [0.037643s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.038357s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.038757s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.077304s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.045235s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.046898s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.039448s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.126638s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.032549s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.033955s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.080833s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.028365s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.028641s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.028125s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.027473s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.027411s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.026938s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.027025s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.028831s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.031595s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.027618s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.028888s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.029072s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.028690s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.033569s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.041465s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.465339s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.031373s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.029041s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.030340s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.030026s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.036569s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.026621s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.031299s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.025832s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.026503s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.029571s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.290177s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.030661s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.042077s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.042547s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.036207s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.028922s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.027343s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.024431s] ... ok {0} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.012324s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.041044s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.012080s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.011738s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.011034s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.027903s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.281056s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.018135s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra [0.081150s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.082272s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.030182s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.084384s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.060795s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.027581s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.079938s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.028278s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.027142s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.020089s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.081490s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.026776s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.030683s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.021977s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.082458s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.022637s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.018250s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.035269s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.084363s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.029464s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.042503s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.022884s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.086069s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.026042s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.025555s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.024132s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.027825s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.099971s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.028196s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock [0.028934s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.020248s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.082333s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.025258s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.031143s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.030907s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.083853s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.030647s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.027186s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.027177s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.027264s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.027857s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.028216s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.028128s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.049761s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.028354s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.030567s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.316021s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.029882s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.027532s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.038583s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.100039s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.028914s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.030387s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.036483s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.094608s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.032260s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.028647s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.032854s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.108501s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.035961s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.057076s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.078817s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.029101s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.030187s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.076170s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.052675s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.030102s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.027811s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.108342s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.052542s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.033865s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.036083s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.099860s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.058614s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.035019s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.022086s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.109092s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.031182s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.022538s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.025141s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.015919s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.016416s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot [0.116885s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.043876s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.065114s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_with_smartnic_port [0.111661s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.031401s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.071791s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated [0.096724s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.069366s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.071960s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.061149s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.078208s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.066817s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.049229s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.053598s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.019128s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.093249s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.046050s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.025536s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.024438s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.025578s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.024319s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.086852s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.206039s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.031824s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.087675s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.039907s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.040557s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.092323s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.065996s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.052226s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.090799s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.026190s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.049735s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.028146s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.025572s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.057404s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.027741s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.024715s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.072924s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config [0.082263s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.056251s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.034825s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot [0.081453s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.059363s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config [0.075196s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.063686s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.037034s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.038285s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client [0.135467s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.053417s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info [0.025488s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.023529s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol [0.025916s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.039407s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host [0.026001s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.020769s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password [0.029831s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.038934s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port [0.025478s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol [0.024256s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.044756s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.039038s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus [0.072253s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.026663s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.025601s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.030629s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure [0.075472s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.033567s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.031653s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure [0.074356s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.032672s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.026079s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.025607s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode [0.079812s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.037443s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.037712s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.026951s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware [0.105511s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.035498s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.023186s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.028750s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu [0.078865s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.030531s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.038678s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.028642s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports [0.103190s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.028688s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs [0.026235s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.031381s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue [0.032569s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.024536s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.025999s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail [0.027333s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.025930s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid [0.027400s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.028326s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom [0.029635s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.027956s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi [0.029647s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.036298s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device [0.031672s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.025543s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode [0.031394s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.034077s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail [0.030827s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.026864s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list [0.030638s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.023092s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.025856s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode [0.033662s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.030925s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable [0.030562s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.035931s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change [0.038716s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.026852s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode [0.037738s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.030436s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled [0.036495s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.029733s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.026177s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail [0.032807s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.011112s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.010103s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step [0.036230s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.027254s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.026458s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step [0.037623s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step [0.038338s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra [0.081666s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue [0.074918s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.076751s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info [0.063004s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties [0.024676s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.077815s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices [0.062384s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.077058s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device [0.103319s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.081021s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.075604s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy [0.101114s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.076730s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job [0.116398s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.075301s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.095958s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean [0.131297s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status [0.043433s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.076396s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes [0.026903s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.073521s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state [0.066617s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail [0.060635s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties [0.024985s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy [0.104036s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout [0.076009s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.091159s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.023474s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout [0.078591s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.072669s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 [0.046247s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 [0.038219s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only [0.039054s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.094872s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only [0.040585s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration [0.038131s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry [0.096744s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps [0.040966s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb [0.039280s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance [0.092026s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail [0.030155s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail [0.026281s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail [0.028362s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.075800s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail [0.033880s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime [0.025992s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks [0.026217s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_with_smartnic_port [0.079371s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail [0.025784s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks [0.025883s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.076404s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail [0.027954s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot [0.090051s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing [0.146177s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.078577s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.023705s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.023808s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.041431s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved [0.122566s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.091517s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled [0.120219s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.088619s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.023865s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean [0.127469s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.109969s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.025202s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.026516s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.023188s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.024755s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy [0.152361s] ... ok /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) /usr/lib/python3.6/site-packages/oslo_versionedobjects/fields.py:382: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details FutureWarning) ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to delete the pending BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail [0.086571s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks [0.142552s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config [0.074008s] ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail [0.081704s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size [0.143625s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config [0.060085s] ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to get the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail [0.060783s] ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to set the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks [0.139382s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail [0.076176s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port [0.023522s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path [0.023805s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username [0.024082s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers [0.131216s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled [0.072145s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode [0.070475s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks [0.113727s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list [0.070964s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk [0.067771s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties [0.033318s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks [0.143303s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail [0.073320s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks [0.136563s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk [0.103048s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job [0.025016s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail [0.026106s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail [0.025840s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid [0.025481s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy [0.147527s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix [0.026193s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs [0.074007s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change [0.122530s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail [0.078975s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios [0.027824s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe [0.028864s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device [0.029884s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_non_realtime_controller [0.132465s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent [0.031033s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list [0.029980s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device [0.076396s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent [0.029202s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting [0.028441s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties [0.059657s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device [0.035686s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device [0.040705s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices [0.073921s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable [0.035953s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step [0.034782s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi [0.090138s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device [0.061468s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail [0.086093s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data [0.073132s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode [0.085498s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state [0.251019s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac [0.043234s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail [0.042893s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean [0.066183s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy [0.055900s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean [0.067287s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean [0.065446s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy [0.058633s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy [0.066506s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update [0.032421s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs [0.020462s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off [0.044779s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on [0.045087s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state [0.044793s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail [0.047873s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 [0.023753s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level [0.022976s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all [0.023169s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete [0.022323s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level [0.023019s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb [0.022270s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job [0.029097s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job [0.026264s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config [0.017909s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config [0.016399s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config [0.017417s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config [0.016437s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot [0.016069s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk [0.017417s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail [0.017847s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs [0.017502s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk [0.017214s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail [0.020223s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail [0.016067s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers [0.015572s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_cleaning_foreign_drives [0.081085s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space [0.067740s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change [0.068197s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks [0.062037s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 [0.075606s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level [0.078260s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean [0.073592s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks [0.052840s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode [0.042681s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data [0.032994s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes [0.033218s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail [0.051727s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device [0.051365s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail [0.051250s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate [0.038720s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot [5.024970s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail [0.048926s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout [2.432430s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties [0.034081s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached [20.693860s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state [0.043167s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states [0.033844s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached [12.823250s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate [0.034665s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.014453s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address [0.013281s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.013539s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info [0.012991s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca [0.014403s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath [0.013966s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.013054s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary [0.013082s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.055819s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.060345s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.069842s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.063776s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.054156s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.064503s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.063434s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.046574s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.043309s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.059251s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.050224s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.045750s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.036741s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.035558s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.013783s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc [0.035635s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso [0.015259s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver [0.024182s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.044689s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.043221s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.046291s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver [0.059556s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.051788s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name [0.013462s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image [0.049073s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url [0.052339s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam [0.044354s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam [0.042255s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url [0.192851s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid [0.044244s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image [0.045044s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.048181s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.064091s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.047738s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.050950s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.057688s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.055390s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.053778s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.062497s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.067746s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.043371s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.068000s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.056686s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.078567s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.075225s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.191487s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.068409s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.073626s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.068906s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.046906s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver [0.054056s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver_exc [0.056401s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.050486s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.042312s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.064407s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.045982s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.046783s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.051739s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.057658s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.051225s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.054421s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.052848s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.016500s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.053529s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.026946s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.017098s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.044823s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.044554s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.017187s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.047848s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.043597s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.043249s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.041847s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.046011s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.042569s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.014999s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.015775s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.016288s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.042575s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.047306s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.042327s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.052597s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.042819s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.056361s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.052143s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.041965s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.017041s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.013512s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.014556s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.018914s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.015245s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.014582s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.015246s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.016162s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.014304s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.018102s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.014089s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.014891s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.044107s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.043984s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.017382s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.008195s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.020197s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.019880s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.026495s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.023755s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.026033s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.007010s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.006383s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.006155s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.006514s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.006198s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.006618s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.006177s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.064696s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.065082s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.007947s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.007050s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.058540s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.058233s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.057138s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.058971s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.015915s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.016363s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.016015s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.015238s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.062944s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.062159s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.051334s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.065522s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.043061s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.070294s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.026863s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.026549s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.019230s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error [0.053904s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error [0.057863s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs [0.047720s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.046955s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.049136s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.050141s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.046987s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.047160s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.045403s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.048498s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.047436s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.048097s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.048508s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.052098s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.049751s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.064119s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.059931s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.047172s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.046941s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.048011s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.059463s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.063637s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.078967s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.222863s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.061831s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.062604s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.069634s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.057564s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.068390s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.055879s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.056379s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.053894s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component [0.049753s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.048527s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.041978s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.019753s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.041916s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.043832s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.043581s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.046064s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.052061s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.044370s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.044316s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.044110s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.071388s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.068411s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.059535s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.063290s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.067600s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.065100s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.051743s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.050772s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.078429s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.077285s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.073030s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.051759s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.051882s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.072776s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.070845s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.047140s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.045690s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.043322s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.041926s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.040841s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.041142s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.046461s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.042079s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.079456s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.047345s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.041406s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.042290s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.043119s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.046468s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.048639s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.045345s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.045138s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.013855s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.018466s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.014817s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.013838s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.013502s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.013860s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.014428s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.013933s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.013741s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.063548s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.060899s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.047601s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.047772s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.045278s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.036359s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.015175s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.046822s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.053903s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.037817s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_iscsi [0.063798s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.073813s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.075957s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.078279s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.073560s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.072979s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.075731s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.078309s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state [41.255829s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.109545s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail [0.088032s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.118600s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.298629s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.075448s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.080953s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.080817s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_without_copy [0.076685s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.078347s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.098802s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.101224s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.222630s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_image_doesnt_exists [0.039564s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.036384s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.036370s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_image_source [0.036451s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.037382s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.039801s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.041226s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.038297s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.044432s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_secure_boot_false [0.054249s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.052624s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.057072s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot [0.063264s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.057924s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.056179s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.063640s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.056766s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.054979s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.062573s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.064045s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.197443s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_glance_image [0.055522s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_non_glance_image [0.053563s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.052056s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.077343s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout [2.695751s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.118418s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.083122s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.094595s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.087153s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.082443s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.083890s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.071919s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.081719s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.079229s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.006889s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.006066s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.014782s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.013970s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.016592s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.013500s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.013740s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security [0.014794s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.014108s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.013999s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.013697s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.014922s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.014442s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.015327s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.014864s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.014609s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.014331s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.038570s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.105201s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.120698s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.038674s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.040722s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false [0.038128s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap [0.038139s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.055962s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.052356s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.034359s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.043653s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng [0.044721s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices [0.046292s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.045628s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.045224s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.044778s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk [0.185722s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe [0.183421s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe [0.183912s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.043661s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.024550s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.030264s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.020737s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object [0.021046s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.014069s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.038909s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.036418s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.037678s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.037968s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.036786s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry [4.075112s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info [0.014785s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme [0.014099s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.015126s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties [0.033201s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order [0.042506s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate [0.035166s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.066383s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.061422s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.063000s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.058906s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.057277s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.059827s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.060157s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.063726s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.051056s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.080905s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.077151s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.073109s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.062801s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.063196s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.042050s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.036944s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.036519s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.035480s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.035481s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info [0.014211s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance [0.036006s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.061785s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.054254s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver [0.063607s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.015951s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image [0.045074s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image [0.055385s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.044897s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.046477s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.052982s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.049156s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.047204s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.053445s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.056841s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso [0.045299s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.064130s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.059569s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.045435s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.054331s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.056855s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.061861s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.070876s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.055309s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_glance [0.053810s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.049143s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.014057s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.055834s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.047719s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.018133s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.050349s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.053593s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.044457s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.027352s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.111483s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.027824s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.076724s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state [0.087576s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile [0.028428s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.029539s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.061542s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.076759s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.082794s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.038223s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.057167s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.080956s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.052925s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.035774s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.078673s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.026038s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.025400s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate [0.063234s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.075042s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail [0.066122s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.058744s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.077386s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.060547s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.075608s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.062549s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.024080s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.090203s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.025732s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.024224s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.023870s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.074338s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.068140s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.096943s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.062655s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.074202s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.062751s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.060383s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.077198s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.062261s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false [0.080867s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.065584s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true [0.076799s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.027744s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.064162s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.025314s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.024424s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.023168s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.064788s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.024317s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.024166s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.014198s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.063649s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.013584s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.040719s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.044258s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.102208s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.042135s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.042246s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.081897s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.044283s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.034870s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.083039s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.034678s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.034650s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.016636s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.086984s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.011390s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.011207s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.010537s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.011244s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.098145s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.087427s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.076471s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.083567s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.334492s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.092863s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.116853s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.082502s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.072777s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail [0.081853s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.098125s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id [0.083591s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.099146s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure [0.087551s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.113968s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.078881s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.024336s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.209996s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.024867s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.027126s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.026146s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.025872s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.024726s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.024051s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.069374s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.214976s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.070913s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.111125s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.209665s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.076137s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.047643s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception [0.098573s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.206405s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs [0.080314s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.079885s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.084842s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.087015s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.081498s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.079854s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.081525s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.081477s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.080750s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.088144s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.081620s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.086473s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.081675s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.090800s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.079990s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.291056s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.081772s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.082024s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.084009s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.083754s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.110391s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.084910s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.081690s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.106277s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.101408s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.105888s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.105160s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.120512s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.085189s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.106726s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.085994s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.105988s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.083901s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.095435s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.093839s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.093824s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.096731s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.040455s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component [0.082750s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.086711s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.031672s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url [0.089792s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.032094s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.040664s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.072694s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.032621s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id [0.080741s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.061287s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.046970s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.050200s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.046948s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra [0.050313s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.050245s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.046248s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.051784s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.047005s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.048315s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.050086s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.052744s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.044738s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.043773s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.049097s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.062190s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.046622s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.057894s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.056685s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.045002s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.045159s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.045603s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.045528s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.050642s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.046214s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.086100s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.051114s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.057385s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.048048s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.046211s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.045080s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.045405s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra [0.056489s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.049094s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.043556s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.045276s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.044911s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local [0.052083s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot [0.051859s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc [0.050973s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.074793s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.081233s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.071362s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.082781s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.040997s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.041574s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.043915s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.043009s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.043220s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.043877s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.042757s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.047566s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.042612s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.042812s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.043484s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.043162s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.046741s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.078057s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.042024s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.081245s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.043894s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.068854s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.066850s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.034055s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.074936s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error [0.024100s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.057906s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_filename [0.034095s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_qs [0.033049s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_without_qs [0.032962s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_iso_image [0.034128s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_everything [0.041796s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_specific [0.038835s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_unknown [0.036996s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.040459s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_boot_iso [0.035971s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_deploy_iso [0.034322s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_floppy_image [0.035406s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_bios [0.035645s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_local [0.039943s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_swift [0.047305s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.045644s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.033620s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.033244s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.033479s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.036562s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.059209s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.058728s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.088732s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.087882s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.056762s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.056427s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.034470s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.035066s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu [0.050926s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.048564s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.050342s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.048368s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.034397s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive [0.037377s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.034306s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.035519s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.034741s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.035413s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.037625s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.034266s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.035983s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.046412s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.045905s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.048643s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.036247s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.037988s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error [0.016251s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.079023s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.045461s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot [4.541942s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.034496s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_basic [0.043697s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_disabled_sessions_cache [0.039625s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_session_reuse [0.039304s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_expire_old_sessions [0.045698s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system [0.039465s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry [0.040882s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.014522s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.013517s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.015047s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.014295s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.017779s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.167145s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.048335s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.061161s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.062217s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.087848s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.056964s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.048749s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.075400s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.053345s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.075749s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.063150s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.050673s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.073056s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.053762s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.044123s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.059904s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.055488s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.043724s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.051306s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.045629s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.043046s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.042831s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.060301s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.051777s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.056074s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.059601s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.043027s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.051808s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.042869s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.059222s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.063562s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false [0.050329s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.056148s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.093239s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands [0.047412s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done [0.045006s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running [0.044227s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.094548s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false_with_smartnic_port [0.095739s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.085407s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.061421s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.062516s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.016649s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.093142s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.079270s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.046901s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.070151s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.087055s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.113010s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.086748s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.093698s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance [0.086448s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error [0.111188s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot [0.084770s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.079456s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.061577s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.074572s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.058037s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.083151s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.083390s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.105023s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.079093s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.069605s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.062324s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.091374s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.062572s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.077295s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.125208s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.072257s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.024112s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_glance [0.024219s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.118883s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail [0.075694s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.104756s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.108395s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail [0.202511s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.073576s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.120797s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid [0.074941s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.111243s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi [0.077951s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image [0.071227s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.103517s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep [0.071922s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.106471s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot [0.106953s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.135159s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch [0.091819s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail [0.090987s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.137193s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail [0.078315s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.089143s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails [0.094771s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.089421s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails [0.095360s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.125327s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot [0.097687s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.122116s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception [0.162307s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.123825s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated [0.104218s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.074184s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off [0.097466s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.078728s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.075856s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails [0.163644s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.076079s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.076294s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails [0.099742s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.074288s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_with_smartnic_port [0.088713s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.092659s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue [0.089176s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.076369s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc [0.087798s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.084751s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.111750s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.078190s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.075168s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.104890s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.080408s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_deploy [0.106169s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.076706s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.023961s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.024585s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.025312s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.072709s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.026654s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.024449s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails [0.322001s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.078321s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.092045s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.106283s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.084361s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.025539s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.172943s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.082132s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.077864s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.062555s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.029884s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.075773s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.077005s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.077207s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.456511s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.096837s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot [0.112369s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot_active [0.130409s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot [0.094995s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.433606s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_active [0.115892s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_missing_root_uuid [0.082889s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.231668s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.085406s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.106657s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.122902s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.137576s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.212460s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.134621s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation [0.172005s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps [0.094099s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.012610s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.013050s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.013508s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.013018s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.012148s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.012113s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.011579s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.012662s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.012802s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.012869s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.028192s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.013289s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.013408s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image [0.013395s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port [0.012221s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.012865s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.014944s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.013734s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.010918s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.011725s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.011865s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.017537s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.016144s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.017959s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.027279s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.023922s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.015824s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.016190s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.016052s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.019199s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.038804s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.035670s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.036098s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.040232s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.035940s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.864039s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.040127s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.017739s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.017494s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift [0.138206s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.094535s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps [0.073695s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.028264s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.142782s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.029014s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.025989s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.120328s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps [0.089908s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.102938s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.130511s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.080590s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.079516s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.173335s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.087182s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_conn_problem [0.109398s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.040196s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.054094s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_invalid_trusted_boot_value [0.062606s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.056159s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.062439s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.017471s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.016212s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.016074s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.016624s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.023691s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.098213s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.018047s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.065862s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.075889s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.016322s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.021805s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.023759s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_with_secure_boot [0.093576s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.024902s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.023446s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.024676s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_without_secure_boot [0.092096s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.025280s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.023656s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.023180s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.024191s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot [0.095871s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.072888s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.023543s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot_false [0.093207s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option [0.025633s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value [0.023931s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev [0.024795s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_without_secure_boot [0.093898s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.027962s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.025701s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.030280s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.095661s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.080287s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.179200s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.111844s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.113884s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.113043s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.076125s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot [0.093122s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.312116s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.111721s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.012608s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.011034s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.025318s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false [0.011887s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid [0.011750s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.011108s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.010908s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.011304s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.011089s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device [0.015783s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.093354s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label [0.024378s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot [0.023630s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios [0.024080s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.076651s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot [0.024604s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi [0.026630s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral [0.024029s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_whole_disk_image [0.095884s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option [0.024689s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap [0.023924s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image [0.032354s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.082631s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_sparse [0.030415s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection [0.012645s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_override_attempts [0.012873s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises [0.013232s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.012959s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image [0.011809s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot [0.011374s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.011645s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.010900s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.134947s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.115810s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.143263s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.115013s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.083132s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.089088s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.086602s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image [0.091655s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.118992s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.091328s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.137615s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.108375s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.092600s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.127235s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.077507s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.140085s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.098681s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.075014s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.127166s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.073922s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.073193s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.126114s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.019049s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.024841s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.023766s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.026949s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.017020s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.028333s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.026821s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.023941s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.024205s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.080870s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.033705s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.025459s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.029589s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.080364s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.020786s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.016434s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.027768s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.016051s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.013751s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.028272s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.014292s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.014423s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.026293s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.024451s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image_linkfail [0.033322s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.020251s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.027114s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.022473s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.020241s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.020215s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.017595s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.083325s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.014280s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.014901s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.015245s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.016696s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware [0.069120s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.065986s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.025056s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.056880s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.170140s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored [0.026114s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting [0.025317s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished [0.025798s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting [0.025367s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector [0.026556s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_boot_clean_up_failed [0.075936s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.229966s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error [0.033369s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.065928s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_network_clean_up_failed [0.075743s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed_no_power_off [0.045395s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.067336s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok [0.024965s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error [0.026304s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.072110s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params [0.079906s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok [0.074612s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_require_managed_boot [0.027346s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error [0.046500s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.225542s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_ok [0.048839s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.014331s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.013913s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.065905s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.013794s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.013549s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.013511s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.013728s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.013689s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.067822s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.013383s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.013129s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.013060s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.096191s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.076047s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.023696s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.024524s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.024183s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.089125s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.024868s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.079540s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.074669s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.077821s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.073427s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.072842s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok [0.076365s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.079556s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok [0.083555s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.072375s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng [0.093100s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device [0.077886s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.072932s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.078166s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.104828s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios [0.330737s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.076569s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1 [0.094698s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.113902s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.076510s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom [0.336515s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate [0.060884s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.096105s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail [0.061511s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.083099s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.058497s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.051542s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.075660s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.076371s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.074408s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.058191s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.077583s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.056525s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.032039s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.081917s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.066317s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.077768s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.062497s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.078489s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.063637s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.078916s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.050681s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.046380s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.045155s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.046029s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.049411s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.046647s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.129404s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.044042s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.042739s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.044453s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.043298s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.046961s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.017908s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.017806s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.017471s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.017034s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.017285s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.016332s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.020157s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.017185s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.016946s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password [0.015573s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception [0.015119s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password [0.015074s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception [0.017441s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.016103s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.019061s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.015719s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.015275s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.017421s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.017913s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.017509s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.017911s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.019235s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.095832s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.044857s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.043027s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.043061s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.034914s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.039074s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.014910s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.014570s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.014694s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.035613s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.036139s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.036994s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.047803s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.043775s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.069610s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.044598s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.049865s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.069389s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.068879s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.068451s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.072053s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.070282s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.069615s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.055590s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.028998s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.086022s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.059345s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.043753s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.049004s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.051049s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra [0.046432s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra [0.047754s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.046461s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.199383s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.047288s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.045090s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.046284s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id [0.044927s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key [0.047107s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.119292s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.117517s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [1.082000s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.155482s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.118764s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.116491s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.121023s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.121378s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.116584s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.047456s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.047789s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.045454s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.045996s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.049197s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.050152s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.048326s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.054070s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.054635s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.044105s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.045984s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.019651s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.026425s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.022698s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra [0.042219s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.044138s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra [0.015484s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.023354s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.046515s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.048732s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.047079s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.086674s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.088778s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.017048s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.041942s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.042457s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.044833s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.045621s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.085150s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [2.082638s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.032987s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.070775s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.039908s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.032765s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.032582s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.030656s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.150269s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.032846s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.030659s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.087032s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.074759s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid [0.071149s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.074459s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.261999s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.030934s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.031325s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info [0.095366s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.033810s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.070256s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.099062s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.080283s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.085803s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net [0.027062s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.060382s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.073336s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.058934s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.057244s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.074015s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.075217s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.083977s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.082801s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.135188s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.075935s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.074113s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.129241s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.095554s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.086512s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.065727s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.075536s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.060628s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.094446s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.077929s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.082398s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.078206s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.077873s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.104687s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.078218s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.104740s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.025906s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.074956s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.101338s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.075435s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.064649s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.072569s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot [0.115639s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.118736s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot [0.097468s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.114326s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_active [0.118910s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.086236s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.140059s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.074526s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.143757s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.142959s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.119745s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.138339s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.129962s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.103095s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.139750s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.076202s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.139390s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.136733s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.102337s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_floppy_image [0.058069s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_not_inserted [0.068960s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.074115s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.090187s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.732906s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_uefi [0.087248s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_copy [0.099340s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_link [0.096777s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_swift [0.082262s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.065068s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.062807s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error [0.025277s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.057160s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.574441s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.056864s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.056981s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.056933s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.139222s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.057148s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.144086s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.104206s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_bios_boot [0.063160s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.060059s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.144795s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_uefi_boot [0.067041s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.056718s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.125986s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu [0.064974s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.069077s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.184008s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.087315s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.087600s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.180166s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.084517s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.056772s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.141079s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.063929s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.056758s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_image_source [0.065696s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.290086s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.067889s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.075812s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.064509s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.065081s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.123100s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error [0.025398s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.100701s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.119074s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.083816s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot [0.109317s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.123676s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.056262s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy [0.097690s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.057456s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_fast_track [0.121932s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.117430s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false [0.096713s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false_with_smartnic_port [0.058981s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_with_deployment_reboot [0.061960s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step [0.045717s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false [0.067976s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_with_smartnic_port [0.070204s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down [0.076624s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_with_smartnic_port [0.083793s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false [0.038150s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size [0.043722s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy [0.075909s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail [0.107981s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id [0.104888s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch [0.015141s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot [0.014775s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified [0.015704s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image [0.015414s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image_no_root [0.015630s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url [0.037587s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path [0.015159s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout [0.030241s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.007775s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.014602s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.007129s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.007307s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.006911s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.054157s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.051624s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active [0.234581s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active [0.068376s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi [0.062773s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.077349s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.068735s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.072341s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.069435s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.082626s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.303334s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.085724s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.087026s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.089956s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.081446s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.071371s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.073027s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.102559s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.080916s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem [0.065333s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.038527s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.037984s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source [0.040217s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.041063s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.038516s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.055351s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.039104s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy [0.182534s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy_with_smartnic_port [0.180284s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare [0.079752s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning [0.082303s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate [0.051220s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate [0.042496s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch [0.056330s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.041971s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.049476s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.036346s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.056704s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.045867s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.042437s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.018887s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.048450s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.050384s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.047192s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.044919s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.046584s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.044793s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.045841s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.044641s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.011336s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.011817s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.010881s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.010017s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.013886s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.010212s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.010545s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.011568s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.010428s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.010144s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.015823s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.014623s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.010610s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.011112s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.010118s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.013447s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.010902s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.010160s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.010107s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.011234s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.010205s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.010018s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.009740s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.011047s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.010193s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.013285s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [9.027792s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.015652s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [21.857231s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.026949s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.012388s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.026062s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.014706s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.012026s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.013910s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.024041s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.011525s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.011034s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.010950s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.010625s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.043118s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.045441s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.042958s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.043365s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.042685s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.046123s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.043783s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.043701s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.010023s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.009402s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.009535s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.009248s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.009800s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.009226s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.009456s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.009040s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.012681s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.009396s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.009402s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.009164s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.009870s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.009663s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.009587s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.009152s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.009685s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.009184s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.009368s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.009090s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client [0.021670s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info [0.014641s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port [0.014153s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config [0.015063s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id [0.014839s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device [0.045748s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail [0.045276s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none [0.044107s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices [0.043420s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device [0.047600s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout [0.043196s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power [0.042877s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail [0.043714s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate [0.043234s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.007279s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.006401s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.006843s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.007451s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.008232s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.006327s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.006380s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.007276s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.006136s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.008188s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.007018s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.014569s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.009082s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.172671s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.007274s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.009345s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.009820s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.009020s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.007785s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.008133s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.006735s] ... ok {0} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.007684s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.007233s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.010487s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.006867s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.009007s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.008844s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac [0.100151s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector [0.065863s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.043691s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.043655s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.043932s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [25.044079s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.068628s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.125361s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.069394s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.067587s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.039993s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.039729s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.040834s] ... ok {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.043187s] ... ok {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.040593s] ... ok {0} ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces [0.042777s] ... ok {0} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.040194s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.042165s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.041815s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.041708s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.044565s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.043938s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.043341s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.045753s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.048035s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.044133s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.041058s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.041357s] ... ok {0} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.041982s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.009437s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.012793s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.016430s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.050026s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.050520s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.051011s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.013747s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.014500s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.055937s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.014014s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.014052s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.011290s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.009882s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.011447s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.012043s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.021778s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.010964s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.010107s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.010370s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.013284s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.010519s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.010683s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.010720s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.025060s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.009336s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.010782s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.011144s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.010339s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.011711s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.011809s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.011591s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.011936s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.010743s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.009856s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.011811s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.013468s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.009208s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.009726s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.010083s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.010388s] ... ok {0} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.007190s] ... ok {0} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.006014s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.006440s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.006538s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.009451s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.009717s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.009705s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.009594s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.009028s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.009314s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.009357s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.009613s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.008942s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.009540s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.009015s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.009427s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.009265s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.009899s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.009388s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.011532s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.009270s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.009893s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.009169s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.009407s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.009609s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.009962s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.009686s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.010606s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.009677s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.009830s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.010073s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.011446s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.010358s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.010622s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.010868s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.011265s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.012170s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.011246s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.048044s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.012761s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.009610s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.009500s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.009744s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.009823s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.006248s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.006424s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.007170s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.006752s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.013300s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.012970s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.006469s] ... ok {0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.006083s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.007155s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.006982s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.006607s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.006481s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.006593s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.009465s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.006250s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.006001s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.006242s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.005990s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.007259s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.007412s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.006188s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.006756s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.006888s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.007027s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.006702s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.006407s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.005924s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.006025s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.006528s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.006238s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.006261s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.006518s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.006373s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.006320s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.006445s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.006297s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.006151s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.007011s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.007161s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.007135s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.006651s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.008535s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.007949s] ... ok {0} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.057681s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.010093s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.008938s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.009425s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.009281s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.009407s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.009131s] ... ok {0} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.022267s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.010822s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address [0.009658s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.009935s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.010036s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.008733s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.010845s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.011002s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.011250s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.009145s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.009133s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.010745s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.010206s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.009906s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.010458s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.010514s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.009605s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.011135s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.011524s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.010825s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.010303s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.012749s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.012212s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.010362s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.009266s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.010101s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.010966s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.011243s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.011823s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.010843s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.011912s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.007324s] ... ok GET: /v1.json {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a57e12da-553f-429b-a934-3605398ed16e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.58", "min_version": "1.1"}} GET: /v1.xml {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-63f41d0d-de8b-4fdc-9633-30ff6b5c0aa2 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-945dffc5-053f-4d6c-a9d7-c6ba9576742a {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ca791b8d-3897-4f9c-8d53-91abe65d8f91 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b3fe2ae4-5afd-4c12-9b8b-cb38cc32f8bc {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7765c5a5-0281-48f3-9ae6-5ff7746ef924 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-03fe1607-494d-443a-9b0c-d3bd2a2ef0a9 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ef7f4c8e-5069-42c2-8999-52990c93f005 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} GET: /v1/foo {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. func1() migrated 10 of 15 objects. func1() migrated 10 of 10 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. Running batches of 50 until migrations have been completed. Malformed option m1.key1value1 Running batches of 50 until migrations have been completed. Data migrations have completed. {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [13.147015s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_auto [0.041425s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_session [0.043824s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_basic_session_caching [0.041621s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_address [0.039587s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_username [0.041699s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found [0.039878s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.015414s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.014676s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.014868s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.014782s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.014289s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.014899s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.014138s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.050652s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.044436s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.053389s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data [0.052985s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.043923s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.052287s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.061841s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.045506s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.043431s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.062377s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.066595s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.063404s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.066168s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.060752s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.059228s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.056626s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.063454s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.051373s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.045020s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered [0.041217s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.041703s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.043027s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.050394s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.054765s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.049376s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.058795s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.064972s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.061321s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.048114s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy [0.070963s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url [0.072080s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image [0.070239s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies [0.070649s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies [0.072124s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started [0.044466s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start [0.043711s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done [0.045964s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands [0.042705s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response [0.043526s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race [0.043343s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.066014s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.044808s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.075732s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.045008s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_capabilities_as_string [0.099302s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities [0.098473s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite [0.098172s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise [0.064615s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.089370s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot [0.085513s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image [0.232873s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 [0.089615s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.088473s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.044275s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.085986s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.054202s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.039536s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.038897s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.041875s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.046329s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.042289s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.043806s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.014420s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot [0.051504s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook [0.027721s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered [0.024668s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot [0.040623s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.042201s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.045229s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid [0.041759s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_software_raid [0.042414s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail [0.111027s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning [0.049265s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch [0.062145s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command [0.048826s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot [0.061121s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running [0.040729s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown [0.041583s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook [0.051019s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook [0.015600s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition [0.055441s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot [0.052703s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy [0.046493s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails [0.058631s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed [0.054519s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails [0.085515s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete [0.058047s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result [0.049833s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result [0.053498s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.052589s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.059956s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.288735s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step [0.066285s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step_polling [0.062892s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_reboot_to_instance [0.063361s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying [0.091727s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue [0.060462s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean [0.059791s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save [0.059440s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step [0.053150s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_in_other_step [0.048391s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_no_steps_list [0.040615s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface [0.043832s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps [0.046071s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.008934s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.006860s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.006742s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep [0.007170s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive [0.007125s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target [0.007038s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata [0.007411s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.009092s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.011364s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.010621s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.009388s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.009174s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.009096s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.014061s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.815776s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.014258s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.010631s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.009387s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.010256s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.018021s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.022514s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.022210s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.019025s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.020728s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.017111s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.020684s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.019872s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.021834s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.010736s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.011904s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.016706s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.016760s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.016356s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step [0.044619s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running [0.043734s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch [0.046629s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface [0.043049s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities [0.042816s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none [0.044019s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.060013s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.057151s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.046726s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.024086s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.035097s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.031438s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.009742s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.009742s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.009188s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.009540s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.009731s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.043089s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.042953s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra [0.046482s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device [0.007869s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield [0.007619s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.013872s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.014617s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.014510s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.015055s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.014143s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.014128s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.013452s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.041615s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.014843s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.016540s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.016308s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.015031s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority [0.014473s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config [0.015477s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.177343s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.060085s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.007201s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.006423s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.006286s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.006579s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.006237s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.006250s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true [0.009488s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.006965s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.006930s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.007184s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability [0.006746s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi [0.015919s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises [0.008024s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition [0.013401s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi [0.013333s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios [0.015200s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral [0.014266s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive [0.013858s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch [0.013694s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode [0.015643s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive [0.017543s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update [0.007825s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped [0.009760s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises [0.019790s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup [0.022250s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update [0.010813s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image [0.007835s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.006966s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.007293s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image [0.007426s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.006979s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image [0.006773s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image [0.006894s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.050732s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.069455s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_is_md5 [0.069497s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_none [0.071486s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.068603s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.014055s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.040931s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.071944s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.069374s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.252391s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.060288s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.045233s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image [0.016115s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop [0.016797s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail [0.015875s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.015015s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.014434s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.014889s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.015013s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.018720s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.017723s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.011831s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.008919s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.008258s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.006474s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.008528s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image [0.007903s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.011633s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.009264s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.008640s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.008377s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.007682s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.009544s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.009455s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.009654s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.009602s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.010695s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.094090s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.045135s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed [0.043899s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error_managed_no_power_off [0.027155s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok [0.017515s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed [0.046129s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint [0.015562s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.014483s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.015132s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties [0.015210s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client [0.614907s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone [0.765773s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok [0.017991s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_error [0.053062s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_invalid_kernel_params [0.015862s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok [0.015605s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_require_managed_boot [0.018374s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.008589s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.008164s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.007930s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.008837s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.008778s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.008183s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.008356s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.008109s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.008494s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.008592s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.008232s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.010639s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.008244s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.008072s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.008157s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.044359s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.043583s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.043128s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.046994s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.043760s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok [0.057719s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.043510s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.046779s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.042944s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.043853s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.044038s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.046247s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok [0.043434s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent [0.052758s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2 [0.044015s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.050676s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.044784s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.045024s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.045380s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.049192s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.044062s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.043835s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.045922s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.048418s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.125149s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.037945s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.041802s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.041683s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.033816s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.045275s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.017973s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.020948s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.017108s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_wait [0.017834s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password [0.018237s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.018332s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password [0.018278s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.019948s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception [0.015675s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception [0.015862s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.017919s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.016687s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.016644s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.016939s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.015714s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.016670s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.018087s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.018745s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.016592s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.016302s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.016063s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.016772s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.018875s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.018689s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.017883s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.020553s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.042189s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.044833s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.052275s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.045657s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.033385s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.042702s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.041413s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.040940s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.046645s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.041250s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.041722s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.032463s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.032932s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.045506s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.045028s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot_active [0.070454s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.064851s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.050878s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.072011s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.078452s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.081374s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.083628s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.079308s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.083315s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.082032s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.079738s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.082017s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.080227s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.068150s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.100329s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_conn_problem [0.063377s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.036150s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.038447s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.037108s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.035853s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.043248s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.038186s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.042741s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.047881s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master [0.040109s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up [0.044702s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot [0.072941s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi [0.073975s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps [0.049713s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties [0.032815s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning [0.041965s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_fast_track [0.058872s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active [0.045301s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting [0.043174s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying [0.246304s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning [0.042055s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate [0.036209s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path [0.015597s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails [0.046101s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image [0.042323s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image_no_root [0.042631s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid [0.102178s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail [0.103502s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image [0.070132s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images [0.025664s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay [0.062688s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral [0.060253s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure [0.113090s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default [0.014030s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch_none [0.013359s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label [0.014611s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified [0.014275s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port [0.014986s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url [0.033752s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints [0.034544s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path [0.014553s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.007150s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.006922s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.006056s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.037978s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.045586s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.051242s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.041717s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.049968s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.055887s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.055739s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.036194s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot [0.066949s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot [0.055523s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.052522s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.073648s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.053569s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.077214s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.080606s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.081039s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.079529s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.079966s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.078229s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.345615s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.078727s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.081332s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.078021s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.102307s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.103140s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.037774s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.037218s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.038424s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.039992s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.039099s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.047286s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active [0.065555s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk [0.123672s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing [0.062025s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.047541s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.047100s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.051772s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.049670s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.046137s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.052492s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.048979s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.048062s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.051530s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.043642s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.045794s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.043218s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.011598s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.010602s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.013391s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.010199s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.009614s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.010848s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.010603s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.009885s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.010382s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.010713s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.010707s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.009786s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.009811s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.013478s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.011436s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.010197s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.009885s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.011217s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.011408s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.010338s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.016150s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.011109s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.021104s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.014534s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.010799s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.011366s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.012034s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.011003s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.011671s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.012621s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.010985s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.011655s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.011362s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.013298s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.010007s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.010888s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.013213s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.025805s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [4.018559s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.011581s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.025082s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.166840s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.011186s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.011753s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.011908s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.014334s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.011409s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.025152s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.011362s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.011095s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.010624s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.010767s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.010792s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.010169s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.009711s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.062735s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.042647s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.042418s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.045830s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.041864s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.044122s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.042439s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.046230s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.042468s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.009436s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.009097s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.009564s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.008813s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.010078s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.009162s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.008955s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.008722s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.009858s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.009696s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.010480s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.009556s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.009299s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.009089s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.009763s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.009366s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.009392s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.009457s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.013591s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.010157s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.010421s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id [0.014453s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config [0.015344s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none [0.043207s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties [0.015283s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail [0.046090s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate [0.046964s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state [0.042591s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail [0.043483s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties [0.015649s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot [0.044010s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout [0.045045s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.006704s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.006262s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.006667s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.006083s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.006518s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.006078s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.006521s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.006353s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.006914s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.006181s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.006429s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.006198s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.006519s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.007210s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.007357s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.007305s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.007085s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.009744s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.008484s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.008524s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.042991s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor [0.043460s] ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. {1} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent [0.046059s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.039333s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.039477s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.039539s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.039133s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.043259s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.039799s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.039716s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.039896s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.039512s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.038982s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.041708s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.015247s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.010307s] ... ok {1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_with_no_raid [0.039497s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.038853s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.038556s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.039471s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.043329s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.039952s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.039225s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.042263s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.044811s] ... ok {1} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.039382s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.014138s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.041414s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.009874s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.008675s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.010212s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.010151s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.007976s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.014912s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.014756s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.014663s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.015098s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.042391s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.055161s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.058406s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.014896s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.045417s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.013970s] ... ok {1} ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces [0.040349s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.009243s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.009605s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.010351s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.009632s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.008415s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.010468s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.022524s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.010290s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.010598s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.010259s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.008495s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.009882s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.010693s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.019669s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.010172s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.011075s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.009939s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.010494s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.010527s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.009382s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.009701s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.009900s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.009533s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.009404s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.005974s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.005938s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.006144s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.005915s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.005902s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.006146s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.006296s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.006034s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.006331s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.005989s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.009402s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.009469s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.009195s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.009594s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.008872s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.009366s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.008933s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.009614s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.009306s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.009774s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.009580s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.010413s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.009468s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.009554s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.008886s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.009155s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.008733s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.010696s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.008767s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.009429s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.009123s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.009363s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.008766s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.009185s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.008852s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.009509s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.008983s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.009319s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.008845s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.009468s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.009133s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.009497s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.008831s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.010664s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.009918s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.009776s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.008625s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.010098s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.009852s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.010093s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.013813s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.009776s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.009934s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.009940s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.010684s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.012150s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.028983s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.016836s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.015040s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.019574s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.018125s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.022126s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.018624s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.010293s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.012522s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.009198s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.024041s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.024203s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.013034s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.006631s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.006101s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.006395s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.007131s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.007008s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.007976s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.007252s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.006681s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.006179s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.005941s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.005922s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.006421s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.005996s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.006057s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.008460s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.007118s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.006542s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.006858s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.008181s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.005924s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.005873s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.006345s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.005832s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.005937s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.007287s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.005901s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.007812s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.006834s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.007214s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.006934s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.006874s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.007283s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.006388s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.006575s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.006644s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.007833s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.007489s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.016600s] ... ok {1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.058082s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.009811s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.009283s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.008720s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.008914s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.008444s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.008646s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.008397s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.008625s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.008424s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.008532s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.008165s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.008505s] ... ok {1} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.023079s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.012860s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.010237s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.010877s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.012122s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.024960s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.010594s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.009357s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.009280s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.008148s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.022980s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.017571s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.010644s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.009820s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.009465s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.009827s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.010678s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.027450s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.010276s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.011058s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.009679s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.011283s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.011481s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.010976s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.011463s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.010878s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.020487s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.010605s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.010938s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.010510s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.010433s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.010560s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.010810s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.010114s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.011439s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.020766s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.007801s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.007723s] ... ok {1} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.007894s] ... ok GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae44fa62-3a36-42c3-8fdd-fb957c3dd3e3 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-530e4d2b-5340-4a56-8272-b44a89b90e19 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-be0d1172-61b7-4d54-bf61-1d877d105d5e {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3ceddb20-c005-4c40-b6b9-fceffeaee1f7 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} DELETE: /v1/v1 GOT:Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.58', 'min_version': '1.1'}} foo() migrated 15 of 15 objects. func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. Malformed option m1key1=value1 Data migrations have not completed. Please re-run. ====== Totals ====== Ran: 6051 tests in 374.5386 sec. - Passed: 6039 - Skipped: 12 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 674.2960 sec. ============== Worker Balance ============== - Worker 0 (3026 tests) => 0:05:04.271287 - Worker 1 (3025 tests) => 0:06:14.538599 + exit 0 Processing files: openstack-ironic-common-13.0.3-0.20191217040142.3e39d7b.el8.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/lib/python3.6/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.hNjfes + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev5 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/doc/openstack-ironic-common + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/doc/openstack-ironic-common + cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/doc/openstack-ironic-common + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ZOTwSH + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev5 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/licenses/openstack-ironic-common + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64/usr/share/licenses/openstack-ironic-common + exit 0 Provides: config(openstack-ironic-common) = 1:13.0.3-0.20191217040142.3e39d7b.el8 openstack-ironic-common = 1:13.0.3-0.20191217040142.3e39d7b.el8 python3.6dist(ironic) = 13.0.3.dev5 python3dist(ironic) = 13.0.3.dev5 Requires(interp): /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(pre): /bin/sh shadow-utils Requires: /bin/sh /usr/bin/python3 python(abi) = 3.6 Processing files: openstack-ironic-api-13.0.3-0.20191217040142.3e39d7b.el8.noarch Provides: openstack-ironic-api = 1:13.0.3-0.20191217040142.3e39d7b.el8 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 Processing files: openstack-ironic-conductor-13.0.3-0.20191217040142.3e39d7b.el8.noarch Provides: openstack-ironic-conductor = 1:13.0.3-0.20191217040142.3e39d7b.el8 Requires(interp): /bin/sh /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(preun): /bin/sh Requires(postun): /bin/sh Requires: /usr/bin/python3 Processing files: python3-ironic-tests-13.0.3-0.20191217040142.3e39d7b.el8.noarch Provides: python3-ironic-tests = 1:13.0.3-0.20191217040142.3e39d7b.el8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.6 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 Wrote: /builddir/build/RPMS/openstack-ironic-common-13.0.3-0.20191217040142.3e39d7b.el8.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-13.0.3-0.20191217040142.3e39d7b.el8.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-13.0.3-0.20191217040142.3e39d7b.el8.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-13.0.3-0.20191217040142.3e39d7b.el8.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xeD1ME + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev5 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191217040142.3e39d7b.el8.x86_64 + exit 0 Child return code was: 0