Mock Version: 1.4.21 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/1243684-centos-stream-x86_64-1582017151.906236/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': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '2c86ebd9e85c4955a66b872821023899', '-D', '/var/lib/mock/1243684-centos-stream-x86_64-1582017151.906236/root', '-a', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf', '--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=en_US.UTF-8', '-u', 'mockbuild', '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': 'en_US.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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/1243684-centos-stream-x86_64-1582017151.906236/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': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'd919c06ac70c4ac2bdf8457f817db22a', '-D', '/var/lib/mock/1243684-centos-stream-x86_64-1582017151.906236/root', '-a', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--pipe', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.33puv1k2:/etc/resolv.conf', '--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=en_US.UTF-8', '-u', 'mockbuild', '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': 'en_US.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.UmamD3 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-13.0.3.dev4 + /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-13.0.3.dev4-0.20191202201522.cfa58af.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-13.0.3.dev4 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + 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.lt0b93 + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev4 ++ '[' -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/db 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 creating build/lib/ironic/api creating build/lib/ironic/api/controllers 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 creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers creating 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_inspector.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_ipxe.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_pxe.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 creating build/lib/ironic/drivers/modules 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/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 creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.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/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network 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 copying ironic/tests/__init__.py -> build/lib/ironic/tests copying ironic/tests/base.py -> build/lib/ironic/tests 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/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/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/tests/unit/db 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 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/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 copying ironic/drivers/__init__.py -> build/lib/ironic/drivers copying ironic/drivers/base.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 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 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/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 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/test_neutron.py -> 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 creating 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/inspector.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/neutron.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/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/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 copying ironic/__init__.py -> build/lib/ironic copying ironic/version.py -> build/lib/ironic 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/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.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.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/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/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/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 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/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/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/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/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/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 creating 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/neutron.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/pxe_utils.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/utils.py -> build/lib/ironic/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common 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/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/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 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/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 creating 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/boot.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 creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional 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/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_boot.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/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/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking 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/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/tests/unit/api creating build/lib/ironic/tests/unit/api/controllers 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 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/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 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 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 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/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_pxe_utils.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/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 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 copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers 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 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/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/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.WyiWc7 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64 + cd ironic-13.0.3.dev4 ++ '[' -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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6 creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/hacking creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common/glance_service creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conf creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/drac creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/redfish creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ilo creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/xclarity creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ibmc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible/playbooks creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/ansible creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/storage creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/network creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/drivers/modules/intel_ipmi creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/functional copying build/lib/ironic/tests/base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/dhcp creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/common creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/controllers/v1 creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conf creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/conductor creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/objects creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/cmd creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/utils.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/test_base.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/intel_ipmi creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/drivers/modules creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/middleware copying build/lib/ironic/api/wsgi.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/version.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/api/controllers creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy/alembic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/migration.py -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic/db/__init__.py to __init__.cpython-36.pyc writing byte-compilation script '/tmp/tmp0vwijq62.py' /usr/bin/python3 /tmp/tmp0vwijq62.py removing /tmp/tmp0vwijq62.py running install_data creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic copying etc/ironic/rootwrap.conf -> /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic creating /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic-13.0.3.dev4-py3.6.egg-info running install_scripts Installing ironic-api script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/bin Installing ironic-conductor script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/bin Installing ironic-dbsync script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/bin Installing ironic-rootwrap script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/bin Installing ironic-status script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/bin Installing ironic-api-wsgi script to /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64//etc/ironic/policy.json + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-images.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-lib.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.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.20191202201522.cfa58af.el8 --unique-debug-suffix -13.0.3-0.20191202201522.cfa58af.el8.x86_64 --unique-debug-src-base openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.dev4 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.20191202201522.cfa58af.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.20191202201522.cfa58af.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.i7q3HC + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev4 + PYTHON=python3 + stestr-3 run 2020-02-18 09:13:23.092 3726 INFO keyring.backend [-] Loading KWallet 2020-02-18 09:13:23.092 3725 INFO keyring.backend [-] Loading KWallet 2020-02-18 09:13:23.095 3725 INFO keyring.backend [-] Loading SecretService 2020-02-18 09:13:23.098 3726 INFO keyring.backend [-] Loading SecretService 2020-02-18 09:13:23.135 3725 INFO keyring.backend [-] Loading Windows 2020-02-18 09:13:23.138 3725 INFO keyring.backend [-] Loading chainer 2020-02-18 09:13:23.139 3725 INFO keyring.backend [-] Loading macOS 2020-02-18 09:13:23.140 3726 INFO keyring.backend [-] Loading Windows 2020-02-18 09:13:23.145 3726 INFO keyring.backend [-] Loading chainer 2020-02-18 09:13:23.147 3726 INFO keyring.backend [-] Loading macOS 2020-02-18 09:13:27.329 3726 INFO alembic.runtime.migration [req-c0a088e1-8912-4e9b-bcf2-7784308eef37 - - - - -] Context impl SQLiteImpl. 2020-02-18 09:13:27.336 3726 INFO alembic.runtime.migration [req-c0a088e1-8912-4e9b-bcf2-7784308eef37 - - - - -] Will assume non-transactional DDL. 2020-02-18 09:13:27.412 3725 INFO alembic.runtime.migration [req-a03eb605-82f7-42b5-9b25-a05c4237993e - - - - -] Context impl SQLiteImpl. 2020-02-18 09:13:27.415 3725 INFO alembic.runtime.migration [req-a03eb605-82f7-42b5-9b25-a05c4237993e - - - - -] 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 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_greaterthan [0.555540s] ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.019666s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.504547s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.020144s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.018783s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.033932s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.019573s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.017173s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.017631s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.020486s] ... ok {0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.017769s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.019178s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestAllocationObject.test_allocation_init [0.010766s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.019056s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.134923s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.137660s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.058240s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.070241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.049352s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.076570s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.080202s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.037388s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.038764s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.042627s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.078811s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.057095s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.070532s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.080332s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.114303s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.039531s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.043215s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.084005s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.097046s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.066437s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.064158s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.241163s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.073023s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.045828s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.129261s] ... 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/alloc1 GOT:Response: 204 No Content Openstack-Request-Id: req-a557ed63-c3b6-47fa-b2a6-2bfaaa370f33 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-2da0af7a-21f0-472c-a847-e50ffaba3eb0 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: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/ded386aa-8edc-454a-baa4-c7c7070f4fbd/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-30e0df38-51b0-4096-83ed-c4b8ddcff431 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 ded386aa-8edc-454a-baa4-c7c7070f4fbd was not found\", \"debuginfo\": null}"} DELETE: /v1/allocations/b4bd7f3f-c1ca-4d32-91aa-cd3713126073 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/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/a08bba5c-c438-4265-91c2-d10d2078921a/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-628cb1fc-c9f6-45a8-b5eb-29915ad1ca3d 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 a08bba5c-c438-4265-91c2-d10d2078921a could not be found.\", \"debuginfo\": null}"} DELETE: /v1/allocations/d1f4483c-c581-4cab-8bd2-67c871f67311 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0da7486e-56e8-46a8-886b-2b02a45cd25e 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/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/3baa03cf-3cf4-4555-a2d7-4f3b907e519f/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': 'a8e58c6e-1347-4a98-b66d-e2a7ee54cba5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/a8e58c6e-1347-4a98-b66d-e2a7ee54cba5', 'rel': 'self'}, {'href': 'http://localhost/allocations/a8e58c6e-1347-4a98-b66d-e2a7ee54cba5', 'rel': 'bookmark'}]}, {'uuid': '6a350911-949e-41df-a1f3-eb95ff869c9a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/6a350911-949e-41df-a1f3-eb95ff869c9a', 'rel': 'self'}, {'href': 'http://localhost/allocations/6a350911-949e-41df-a1f3-eb95ff869c9a', 'rel': 'bookmark'}]}, {'uuid': 'b5239cef-fb17-4ae2-8a88-3d8b2344122a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/b5239cef-fb17-4ae2-8a88-3d8b2344122a', 'rel': 'self'}, {'href': 'http://localhost/allocations/b5239cef-fb17-4ae2-8a88-3d8b2344122a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=b5239cef-fb17-4ae2-8a88-3d8b2344122a'} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '36e524b4-047e-4d27-bd4a-849d9148c67d', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/36e524b4-047e-4d27-bd4a-849d9148c67d', 'rel': 'self'}, {'href': 'http://localhost/allocations/36e524b4-047e-4d27-bd4a-849d9148c67d', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.371183+00:00', 'updated_at': None}, {'uuid': 'ed585ef4-cc2c-4f23-ac7f-03817f7a0ad0', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/ed585ef4-cc2c-4f23-ac7f-03817f7a0ad0', 'rel': 'self'}, {'href': 'http://localhost/allocations/ed585ef4-cc2c-4f23-ac7f-03817f7a0ad0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.373507+00:00', 'updated_at': None}, {'uuid': '9824da74-37ec-4fb3-bf83-fd1e32c6a80e', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/9824da74-37ec-4fb3-bf83-fd1e32c6a80e', 'rel': 'self'}, {'href': 'http://localhost/allocations/9824da74-37ec-4fb3-bf83-fd1e32c6a80e', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.375806+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=9824da74-37ec-4fb3-bf83-fd1e32c6a80e'} GET: /v1/allocations?node=banana {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fe16539-89a4-4d6f-a747-473e5d7fda7b 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': '99ebd25f-f814-4029-8f8a-bdb3e4747e12', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/99ebd25f-f814-4029-8f8a-bdb3e4747e12', 'rel': 'self'}, {'href': 'http://localhost/allocations/99ebd25f-f814-4029-8f8a-bdb3e4747e12', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.504681+00:00', 'updated_at': None}, {'uuid': 'f2d0c410-f8f4-41b6-8098-29a1d8d69fa0', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/f2d0c410-f8f4-41b6-8098-29a1d8d69fa0', 'rel': 'self'}, {'href': 'http://localhost/allocations/f2d0c410-f8f4-41b6-8098-29a1d8d69fa0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.507260+00:00', 'updated_at': None}, {'uuid': 'a068a102-192a-448d-a1b7-e2095e5da8f6', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/a068a102-192a-448d-a1b7-e2095e5da8f6', 'rel': 'self'}, {'href': 'http://localhost/allocations/a068a102-192a-448d-a1b7-e2095e5da8f6', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.509786+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/951f2c4f-a681-4076-84cb-0f10454ac7ee {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.051536s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.105022s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.036805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.269504s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.069898s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.092128s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.068970s] ... ok DELETE: /v1/allocations/79e08708-920e-4c84-95ba-b8dbe3c3912d GOT:Response: 204 No Content Openstack-Request-Id: req-03d478f6-d731-4a39-9e85-403e0e0ff1d1 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-f06e4f76-cc5a-47d4-a0e8-7e9ce8ef2150 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: 204 No Content Openstack-Request-Id: req-92f3e2a1-aa66-4848-8564-7899e60b9541 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/node/83fa21cf-8ddd-4e47-8dca-d7ca1f1069dc/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': '308ffb77-8810-4037-bea8-286a690c9c65', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/308ffb77-8810-4037-bea8-286a690c9c65', 'rel': 'self'}, {'href': 'http://localhost/allocations/308ffb77-8810-4037-bea8-286a690c9c65', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:27.974316+00:00', 'updated_at': None}, {'uuid': '225b1fad-3ee6-4f02-97e1-8a008c963d6c', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/225b1fad-3ee6-4f02-97e1-8a008c963d6c', 'rel': 'self'}, {'href': 'http://localhost/allocations/225b1fad-3ee6-4f02-97e1-8a008c963d6c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:27.977332+00:00', 'updated_at': None}, {'uuid': '58f34d3f-cc12-4183-96ae-028952577a2b', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/58f34d3f-cc12-4183-96ae-028952577a2b', 'rel': 'self'}, {'href': 'http://localhost/allocations/58f34d3f-cc12-4183-96ae-028952577a2b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:27.979924+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=58f34d3f-cc12-4183-96ae-028952577a2b'} GET: /v1/allocations {} GOT:{'allocations': []} GET: /v1/allocations?node=node-1 {} GOT:{'allocations': [{'uuid': 'db6b25a2-ef6a-4a45-9203-1646d228d732', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/db6b25a2-ef6a-4a45-9203-1646d228d732', 'rel': 'self'}, {'href': 'http://localhost/allocations/db6b25a2-ef6a-4a45-9203-1646d228d732', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.109798+00:00', 'updated_at': None}, {'uuid': 'f94dd52c-95ce-4e1d-8956-672e33f10205', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/f94dd52c-95ce-4e1d-8956-672e33f10205', 'rel': 'self'}, {'href': 'http://localhost/allocations/f94dd52c-95ce-4e1d-8956-672e33f10205', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.112385+00:00', 'updated_at': None}, {'uuid': 'ee27a955-1fcd-43fc-af34-3eeca5238df2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/ee27a955-1fcd-43fc-af34-3eeca5238df2', 'rel': 'self'}, {'href': 'http://localhost/allocations/ee27a955-1fcd-43fc-af34-3eeca5238df2', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.114908+00:00', 'updated_at': None}]} GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'allocations': [{'uuid': '60ffb3f1-8821-417b-91dc-2e3db699ed3e', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/60ffb3f1-8821-417b-91dc-2e3db699ed3e', 'rel': 'self'}, {'href': 'http://localhost/allocations/60ffb3f1-8821-417b-91dc-2e3db699ed3e', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.223965+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:{'uuid': '15ca0975-b21e-4dcd-8711-1c63cc5f5f6e', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/15ca0975-b21e-4dcd-8711-1c63cc5f5f6e', 'rel': 'self'}, {'href': 'http://localhost/allocations/15ca0975-b21e-4dcd-8711-1c63cc5f5f6e', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.460878+00:00', 'updated_at': None} 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=node_uuid&limit=2 {} GOT:{'allocations': [{'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/a0cd873a-89a8-40e3-a16a-752452a9259b', 'rel': 'self'}, {'href': 'http://localhost/allocations/a0cd873a-89a8-40e3-a16a-752452a9259b', 'rel': 'bookmark'}]}, {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/0af42546-45a2-4221-b947-ab4438fae77b', 'rel': 'self'}, {'href': 'http://localhost/allocations/0af42546-45a2-4221-b947-ab4438fae77b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=node_uuid&limit=2&marker=0af42546-45a2-4221-b947-ab4438fae77b'} GET: /v1/allocations/667cf622-b907-426c-8027-06dadf7aaaf0 {} GOT:{'uuid': '667cf622-b907-426c-8027-06dadf7aaaf0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/667cf622-b907-426c-8027-06dadf7aaaf0', 'rel': 'self'}, {'href': 'http://localhost/allocations/667cf622-b907-426c-8027-06dadf7aaaf0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.745881+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/5c4ef166-e132-4544-a27f-b548d8808371 {} GOT:{'uuid': '5c4ef166-e132-4544-a27f-b548d8808371', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/allocations/5c4ef166-e132-4544-a27f-b548d8808371', 'rel': 'self'}, {'href': 'http://localhost/allocations/5c4ef166-e132-4544-a27f-b548d8808371', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.866574+00:00', 'updated_at': None} GET: /v1/allocations/e2472632-556b-401c-8737-98ab4ef2bc88 {} GOT:{'uuid': 'e2472632-556b-401c-8737-98ab4ef2bc88', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'self'}, {'href': 'http://localhost/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.936293+00:00', 'updated_at': None}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.212803s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.110106s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.037084s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.077263s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.066850s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.093408s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.070490s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.069260s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.115338s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.083590s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.049762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.050185s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.121728s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} GOT:{'extra': {}, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/e24aae11-93f1-47d1-821d-4cb88887a602', 'rel': 'self'}, {'href': 'http://localhost/allocations/e24aae11-93f1-47d1-821d-4cb88887a602', 'rel': 'bookmark'}]} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': '3d10a7ac-9f32-4cf2-930d-a08f5460d007', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/3d10a7ac-9f32-4cf2-930d-a08f5460d007', 'rel': 'self'}, {'href': 'http://localhost/allocations/3d10a7ac-9f32-4cf2-930d-a08f5460d007', 'rel': 'bookmark'}]}, {'uuid': '1a17c816-e92d-4bf0-8b1b-a248114eed31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/1a17c816-e92d-4bf0-8b1b-a248114eed31', 'rel': 'self'}, {'href': 'http://localhost/allocations/1a17c816-e92d-4bf0-8b1b-a248114eed31', 'rel': 'bookmark'}]}, {'uuid': '6113e6aa-013e-47c4-9609-45956fe401a1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/6113e6aa-013e-47c4-9609-45956fe401a1', 'rel': 'self'}, {'href': 'http://localhost/allocations/6113e6aa-013e-47c4-9609-45956fe401a1', 'rel': 'bookmark'}]}]} GET: /v1/allocations/cfc45db5-543a-43f3-9b67-c3f0478a5098?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-510dc66f-ced3-47d3-af08-e716b5080b2b 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/cc413e91-15b0-4c16-a956-ee7796efccdb?fields=resource_class,extra {} GOT:{'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/cc413e91-15b0-4c16-a956-ee7796efccdb', 'rel': 'self'}, {'href': 'http://localhost/allocations/cc413e91-15b0-4c16-a956-ee7796efccdb', 'rel': 'bookmark'}], 'resource_class': 'baremetal'} GET: /v1/allocations/c4872fc9-1e99-4ab9-9602-432f8a57cafb {} 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/cf1cc591-b477-41af-85cf-eeb4b36d7fc6.json {} GOT:{'uuid': 'cf1cc591-b477-41af-85cf-eeb4b36d7fc6', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/cf1cc591-b477-41af-85cf-eeb4b36d7fc6', 'rel': 'self'}, {'href': 'http://localhost/allocations/cf1cc591-b477-41af-85cf-eeb4b36d7fc6', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.208137+00:00', 'updated_at': None} GET: /v1/allocations/fa0c1295-facf-4759-91a8-494b81bb2e5d {} GOT:{'uuid': 'fa0c1295-facf-4759-91a8-494b81bb2e5d', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/allocations/fa0c1295-facf-4759-91a8-494b81bb2e5d', 'rel': 'self'}, {'href': 'http://localhost/allocations/fa0c1295-facf-4759-91a8-494b81bb2e5d', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.277399+00:00', 'updated_at': None} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '82ff3989-6256-4c19-998d-508294ce8b66', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/82ff3989-6256-4c19-998d-508294ce8b66', 'rel': 'self'}, {'href': 'http://localhost/allocations/82ff3989-6256-4c19-998d-508294ce8b66', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.348034+00:00', 'updated_at': None}, {'uuid': 'c2999dfa-8ff4-45dd-802f-5e4e96a33564', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/c2999dfa-8ff4-45dd-802f-5e4e96a33564', 'rel': 'self'}, {'href': 'http://localhost/allocations/c2999dfa-8ff4-45dd-802f-5e4e96a33564', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.350573+00:00', 'updated_at': None}, {'uuid': '2f709912-c519-49d4-9fab-1440eb85156c', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/2f709912-c519-49d4-9fab-1440eb85156c', 'rel': 'self'}, {'href': 'http://localhost/allocations/2f709912-c519-49d4-9fab-1440eb85156c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.353078+00:00', 'updated_at': None}, {'uuid': '5fb97bb3-ab21-42b4-adb6-8a88dd776349', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/5fb97bb3-ab21-42b4-adb6-8a88dd776349', 'rel': 'self'}, {'href': 'http://localhost/allocations/5fb97bb3-ab21-42b4-adb6-8a88dd776349', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.355640+00:00', 'updated_at': None}, {'uuid': '3365fe4b-6989-4e62-913f-2173be431e8f', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation4', 'links': [{'href': 'http://localhost/v1/allocations/3365fe4b-6989-4e62-913f-2173be431e8f', 'rel': 'self'}, {'href': 'http://localhost/allocations/3365fe4b-6989-4e62-913f-2173be431e8f', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.358126+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c30d501c-d048-4fbe-a775-a34abe0d7958 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-e49b8584-18c0-4eb4-839d-0947d55fea5c 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-2ff732ee-9434-4fa4-b11d-a07e3a964883 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-fa4c2534-280f-4dc2-944c-6cf759b6113e 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/80bfbde7-24d6-47ad-a6cd-16dde218cc2e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3191df1-6cb9-4708-bcd2-39f685c23457 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "80bfbde7-24d6-47ad-a6cd-16dde218cc2e", "extra": {"foo": "bar"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/80bfbde7-24d6-47ad-a6cd-16dde218cc2e", "rel": "self"}, {"href": "http://localhost/allocations/80bfbde7-24d6-47ad-a6cd-16dde218cc2e", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.580019+00:00", "updated_at": "2020-02-18T09:13:29.616534+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.066181s] ... ok GET: /v1/allocations/e2472632-556b-401c-8737-98ab4ef2bc88 {} GOT:{'uuid': 'e2472632-556b-401c-8737-98ab4ef2bc88', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'self'}, {'href': 'http://localhost/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.936293+00:00', 'updated_at': None} GET: /allocations/e2472632-556b-401c-8737-98ab4ef2bc88 {} GOT:{'uuid': 'e2472632-556b-401c-8737-98ab4ef2bc88', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'self'}, {'href': 'http://localhost/allocations/e2472632-556b-401c-8737-98ab4ef2bc88', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:28.936293+00:00', 'updated_at': None} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '2968a31a-da64-4595-b0e5-02012ebd0afd', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/2968a31a-da64-4595-b0e5-02012ebd0afd', 'rel': 'self'}, {'href': 'http://localhost/allocations/2968a31a-da64-4595-b0e5-02012ebd0afd', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.155541+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=uuid {} GOT:{'allocations': [{'uuid': '0184224d-83d9-4182-83bd-fd6d83739c0b', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/0184224d-83d9-4182-83bd-fd6d83739c0b', 'rel': 'self'}, {'href': 'http://localhost/allocations/0184224d-83d9-4182-83bd-fd6d83739c0b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.226556+00:00', 'updated_at': None}, {'uuid': '147ff52b-f361-43c7-bcc8-3f90a189359c', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/147ff52b-f361-43c7-bcc8-3f90a189359c', 'rel': 'self'}, {'href': 'http://localhost/allocations/147ff52b-f361-43c7-bcc8-3f90a189359c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.231607+00:00', 'updated_at': None}, {'uuid': '49587ddf-494b-4acc-9950-c6cf5d035546', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/49587ddf-494b-4acc-9950-c6cf5d035546', 'rel': 'self'}, {'href': 'http://localhost/allocations/49587ddf-494b-4acc-9950-c6cf5d035546', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.229110+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=name {} GOT:{'allocations': [{'uuid': '9c25a79e-8427-4020-8fbf-f9cf20066ed3', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/9c25a79e-8427-4020-8fbf-f9cf20066ed3', 'rel': 'self'}, {'href': 'http://localhost/allocations/9c25a79e-8427-4020-8fbf-f9cf20066ed3', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.329067+00:00', 'updated_at': None}, {'uuid': 'db3c18a1-d754-4073-bd07-d282cf4f405a', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/db3c18a1-d754-4073-bd07-d282cf4f405a', 'rel': 'self'}, {'href': 'http://localhost/allocations/db3c18a1-d754-4073-bd07-d282cf4f405a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.326573+00:00', 'updated_at': None}, {'uuid': 'c9cfed2b-8dbe-4b64-8e58-68b47eeab288', 'extra': {}, 'node_uuid': None, 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/c9cfed2b-8dbe-4b64-8e58-68b47eeab288', 'rel': 'self'}, {'href': 'http://localhost/allocations/c9cfed2b-8dbe-4b64-8e58-68b47eeab288', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.324002+00:00', 'updated_at': None}]} PATCH: /v1/allocations/b4708d01-dda2-420f-86a1-00f723523ec1 [{'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-e12c3b62-c09a-4a77-90fe-2d04f0b6a5a6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "b4708d01-dda2-420f-86a1-00f723523ec1", "extra": {"foo1": "bar1", "foo2": "bar2"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/b4708d01-dda2-420f-86a1-00f723523ec1", "rel": "self"}, {"href": "http://localhost/allocations/b4708d01-dda2-420f-86a1-00f723523ec1", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.385509+00:00", "updated_at": "2020-02-18T09:13:29.421542+00:00"} GET: /v1/allocations/b4708d01-dda2-420f-86a1-00f723523ec1 {} GOT:{'uuid': 'b4708d01-dda2-420f-86a1-00f723523ec1', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/b4708d01-dda2-420f-86a1-00f723523ec1', 'rel': 'self'}, {'href': 'http://localhost/allocations/b4708d01-dda2-420f-86a1-00f723523ec1', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.385509+00:00', 'updated_at': '2020-02-18T09:13:29.421542+00:00'} PATCH: /v1/allocations/190310a7-6742-49a2-ad3e-808a9729b90b [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7fc1b0a0-1171-4c3a-b528-e259ae65575c 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/00d09ff7-7c10-4835-bb3f-402e4fcc9506 [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87c2b41c-ad55-4dd5-bd64-28f555e10581 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}"} PATCH: /v1/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2 [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ae39f2e-c5fe-405b-be47-092948af6334 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "da17e8d1-6824-4f49-9640-13b4ff28fdf2", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2", "rel": "self"}, {"href": "http://localhost/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.573718+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.112845s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.065996s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.113336s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.091968s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.111369s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.225676s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.082826s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.088322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.079279s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.047240s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.029884s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.045055s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.087760s] ... ok GET: /v1/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2 {} GOT:{'uuid': 'da17e8d1-6824-4f49-9640-13b4ff28fdf2', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2', 'rel': 'self'}, {'href': 'http://localhost/allocations/da17e8d1-6824-4f49-9640-13b4ff28fdf2', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.573718+00:00', 'updated_at': None} PATCH: /v1/allocations/51e17ad9-da08-4335-9f39-ab8d449abcb9 [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-34bcdc0e-faba-4cd9-b1b0-c779e4c95b40 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 51e17ad9-da08-4335-9f39-ab8d449abcb9 could not be found.\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9 Openstack-Request-Id: req-070d560b-b8f1-468d-a141-342667c9a2c3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9", "rel": "self"}, {"href": "http://localhost/allocations/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9", "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/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9 {} GOT:{'uuid': 'cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9', 'rel': 'self'}, {'href': 'http://localhost/allocations/cf5991a8-a5cf-46cc-9b5b-a8d9ee3a66b9', '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': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a095de3e-1fc8-46b8-ad30-fbefd9c2c527'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd1e42b2-b775-4f56-ba38-9e00f130e72e 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': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4ef66e30-1b5a-48d7-a22b-66382c7a4ac8'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8 Openstack-Request-Id: req-12f849bc-3acf-4130-813b-e7f204230723 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "4ef66e30-1b5a-48d7-a22b-66382c7a4ac8", "extra": {"foo": 123}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8", "rel": "self"}, {"href": "http://localhost/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.990022+00:00", "updated_at": null} GET: /v1/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8 {} GOT:{'uuid': '4ef66e30-1b5a-48d7-a22b-66382c7a4ac8', 'extra': {'foo': 123}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8', 'rel': 'self'}, {'href': 'http://localhost/allocations/4ef66e30-1b5a-48d7-a22b-66382c7a4ac8', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.990022+00:00', 'updated_at': None} 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/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb Openstack-Request-Id: req-c9b35e6c-930e-4814-9f77-0460bf90a33d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a64ffb69-dc53-437e-93b6-3cf4ed09c6eb", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb", "rel": "self"}, {"href": "http://localhost/allocations/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.071497+00:00", "updated_at": null} GET: /v1/allocations/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb {} GOT:{'uuid': 'a64ffb69-dc53-437e-93b6-3cf4ed09c6eb', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb', 'rel': 'self'}, {'href': 'http://localhost/allocations/a64ffb69-dc53-437e-93b6-3cf4ed09c6eb', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.071497+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7d2fdcc3-55ca-4b30-af61-f3f05b745dda'} 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': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '1e2bb7cb-bd69-4665-9660-4521c52c3aa2'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5e5a145-1f0e-4634-a968-65796c983710 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', 'd92d54de-6d32-41ee-9ca2-65e66192f2e3'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '92f12b60-794c-4c0f-a3af-6482d86f18eb'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb Openstack-Request-Id: req-c925a434-4de4-418a-a942-7d6eae09bf32 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "92f12b60-794c-4c0f-a3af-6482d86f18eb", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb", "rel": "self"}, {"href": "http://localhost/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "d92d54de-6d32-41ee-9ca2-65e66192f2e3"], "traits": [], "created_at": "2020-02-18T09:13:30.241587+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.148079s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.074691s] ... ok PATCH: /v1/allocations/81a162eb-9f44-4a0f-94c3-04325a8be813 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac4bf328-4c4d-47c0-af59-ee9e216f5320 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/58bb2d07-30be-48c5-8b26-3e529aee743f [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fd44b4a-fbcf-4743-b36c-1a5cff730224 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "58bb2d07-30be-48c5-8b26-3e529aee743f", "extra": {"foo1": "bar1", "foo3": "bar3"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f", "rel": "self"}, {"href": "http://localhost/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.799390+00:00", "updated_at": "2020-02-18T09:13:29.873944+00:00"} GET: /v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f {} GOT:{'uuid': '58bb2d07-30be-48c5-8b26-3e529aee743f', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f', 'rel': 'self'}, {'href': 'http://localhost/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.799390+00:00', 'updated_at': '2020-02-18T09:13:29.873944+00:00'} PATCH: /v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31884045-29db-433c-ad42-86d0e6793a1c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "58bb2d07-30be-48c5-8b26-3e529aee743f", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f", "rel": "self"}, {"href": "http://localhost/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.799390+00:00", "updated_at": "2020-02-18T09:13:29.935521+00:00"} GET: /v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f {} GOT:{'uuid': '58bb2d07-30be-48c5-8b26-3e529aee743f', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f', 'rel': 'self'}, {'href': 'http://localhost/allocations/58bb2d07-30be-48c5-8b26-3e529aee743f', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.799390+00:00', 'updated_at': '2020-02-18T09:13:29.935521+00:00'} PATCH: /v1/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a [{'path': '/extra/a', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b0af627-77b1-4597-8baa-bef8e02a84ec X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "dd59a9b2-d30c-4515-9440-24d225f3706a", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a", "rel": "self"}, {"href": "http://localhost/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:29.990514+00:00", "updated_at": "2020-02-18T09:13:30.026225+00:00"} GET: /v1/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a {} GOT:{'uuid': 'dd59a9b2-d30c-4515-9440-24d225f3706a', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a', 'rel': 'self'}, {'href': 'http://localhost/allocations/dd59a9b2-d30c-4515-9440-24d225f3706a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:29.990514+00:00', 'updated_at': '2020-02-18T09:13:30.026225+00:00'} PATCH: /v1/allocations/dfba853d-932d-4faa-a6a4-04743a2938a3 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e02c8cba-02fc-4219-abbc-a1ae31369820 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/d842a5a2-21b8-4397-ab1e-cf07b091085a [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a49fbe88-8be6-484f-ba2d-686c3b6975df X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "d842a5a2-21b8-4397-ab1e-cf07b091085a", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/d842a5a2-21b8-4397-ab1e-cf07b091085a", "rel": "self"}, {"href": "http://localhost/allocations/d842a5a2-21b8-4397-ab1e-cf07b091085a", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.124742+00:00", "updated_at": "2020-02-18T09:13:30.159788+00:00"} GET: /v1/allocations/d842a5a2-21b8-4397-ab1e-cf07b091085a {} GOT:{'uuid': 'd842a5a2-21b8-4397-ab1e-cf07b091085a', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/d842a5a2-21b8-4397-ab1e-cf07b091085a', 'rel': 'self'}, {'href': 'http://localhost/allocations/d842a5a2-21b8-4397-ab1e-cf07b091085a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.124742+00:00', 'updated_at': '2020-02-18T09:13:30.159788+00:00'} PATCH: /v1/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9987ad36-655a-48d5-b925-96ef2c685f4f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "b3a87689-7f1d-4671-84d3-d734b07cd60c", "extra": {}, "node_uuid": null, "name": "test", "links": [{"href": "http://localhost/v1/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c", "rel": "self"}, {"href": "http://localhost/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.210126+00:00", "updated_at": "2000-01-01T00:00:00+00:00"} GET: /v1/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c {} GOT:{'uuid': 'b3a87689-7f1d-4671-84d3-d734b07cd60c', 'extra': {}, 'node_uuid': None, 'name': 'test', 'links': [{'href': 'http://localhost/v1/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c', 'rel': 'self'}, {'href': 'http://localhost/allocations/b3a87689-7f1d-4671-84d3-d734b07cd60c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.210126+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.084163s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.126333s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.110967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.114939s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.049922s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.053241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.116239s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init [0.011881s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.079381s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.112841s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.064823s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.059510s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.064413s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.054549s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.064344s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.134281s] ... ok GET: /v1/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb {} GOT:{'uuid': '92f12b60-794c-4c0f-a3af-6482d86f18eb', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb', 'rel': 'self'}, {'href': 'http://localhost/allocations/92f12b60-794c-4c0f-a3af-6482d86f18eb', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'd92d54de-6d32-41ee-9ca2-65e66192f2e3'], 'traits': [], 'created_at': '2020-02-18T09:13:30.241587+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0961eac8-495c-4065-9f36-aff81426d8d4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0961eac8-495c-4065-9f36-aff81426d8d4 Openstack-Request-Id: req-3f208ece-8b4a-4e93-b374-ce64f7460ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "0961eac8-495c-4065-9f36-aff81426d8d4", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/0961eac8-495c-4065-9f36-aff81426d8d4", "rel": "self"}, {"href": "http://localhost/allocations/0961eac8-495c-4065-9f36-aff81426d8d4", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.395684+00:00", "updated_at": null} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '18f45453-71ab-4560-b499-3e540726e6e6'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/18f45453-71ab-4560-b499-3e540726e6e6 Openstack-Request-Id: req-e46db80e-8875-49b7-a012-d5356a5ae4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "18f45453-71ab-4560-b499-3e540726e6e6", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/18f45453-71ab-4560-b499-3e540726e6e6", "rel": "self"}, {"href": "http://localhost/allocations/18f45453-71ab-4560-b499-3e540726e6e6", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "created_at": "2020-02-18T09:13:30.465582+00:00", "updated_at": null} GET: /v1/allocations/18f45453-71ab-4560-b499-3e540726e6e6 {} GOT:{'uuid': '18f45453-71ab-4560-b499-3e540726e6e6', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/18f45453-71ab-4560-b499-3e540726e6e6', 'rel': 'self'}, {'href': 'http://localhost/allocations/18f45453-71ab-4560-b499-3e540726e6e6', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'created_at': '2020-02-18T09:13:30.465582+00:00', 'updated_at': None} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ebaceae6-fbf2-49f3-a6e6-066f02744c0f'} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd26ce266-e140-4615-bad2-46e17d149e35', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d64bb40b-dcfe-46bf-8520-e24b0386f029 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-a23c7f57-fc3b-4828-b76a-6573c2230a54 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}"} GET: /v1/chassis/?limit=3 {} GOT:{'chassis': [{'uuid': 'f0c858c6-f1bc-4103-ba5a-2415a37a311f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/f0c858c6-f1bc-4103-ba5a-2415a37a311f', 'rel': 'self'}, {'href': 'http://localhost/chassis/f0c858c6-f1bc-4103-ba5a-2415a37a311f', 'rel': 'bookmark'}]}, {'uuid': 'e382674a-92ab-4bf1-bfcc-1bf32d762ec4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e382674a-92ab-4bf1-bfcc-1bf32d762ec4', 'rel': 'self'}, {'href': 'http://localhost/chassis/e382674a-92ab-4bf1-bfcc-1bf32d762ec4', 'rel': 'bookmark'}]}, {'uuid': '774de7a2-7780-4f63-b10d-77d4e32e4fae', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/774de7a2-7780-4f63-b10d-77d4e32e4fae', 'rel': 'self'}, {'href': 'http://localhost/chassis/774de7a2-7780-4f63-b10d-77d4e32e4fae', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=774de7a2-7780-4f63-b10d-77d4e32e4fae'} GET: /v1/chassis?fields=extra,uuid {} GOT:{'chassis': [{'uuid': '9d75c9b6-3d4a-4e3f-9b6e-20f6f7ce73c4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/9d75c9b6-3d4a-4e3f-9b6e-20f6f7ce73c4', 'rel': 'self'}, {'href': 'http://localhost/chassis/9d75c9b6-3d4a-4e3f-9b6e-20f6f7ce73c4', 'rel': 'bookmark'}]}, {'uuid': 'b83d27b9-84b6-40d1-bf00-1baf90916015', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/b83d27b9-84b6-40d1-bf00-1baf90916015', 'rel': 'self'}, {'href': 'http://localhost/chassis/b83d27b9-84b6-40d1-bf00-1baf90916015', 'rel': 'bookmark'}]}, {'uuid': '478b6464-f4d8-47cf-915b-7090d1e70cb3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/478b6464-f4d8-47cf-915b-7090d1e70cb3', 'rel': 'self'}, {'href': 'http://localhost/chassis/478b6464-f4d8-47cf-915b-7090d1e70cb3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=478b6464-f4d8-47cf-915b-7090d1e70cb3'} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '2d6d76fb-b735-4343-b84a-3fca94073746', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/2d6d76fb-b735-4343-b84a-3fca94073746', 'rel': 'self'}, {'href': 'http://localhost/chassis/2d6d76fb-b735-4343-b84a-3fca94073746', 'rel': 'bookmark'}]}, {'uuid': '6f8d8cbc-34b2-457d-afeb-95f68fb620ad', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6f8d8cbc-34b2-457d-afeb-95f68fb620ad', 'rel': 'self'}, {'href': 'http://localhost/chassis/6f8d8cbc-34b2-457d-afeb-95f68fb620ad', 'rel': 'bookmark'}]}, {'uuid': '761bcb0e-6107-4550-9c16-c73458acebfa', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/761bcb0e-6107-4550-9c16-c73458acebfa', 'rel': 'self'}, {'href': 'http://localhost/chassis/761bcb0e-6107-4550-9c16-c73458acebfa', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=761bcb0e-6107-4550-9c16-c73458acebfa'} 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-02-18T09:13:30.926064+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.051650s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.054297s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.082825s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.059199s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.064660s] ... ok PATCH: /v1/allocations/7577babb-f9b8-450c-b5ac-d9fbe7654deb [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-84e89865-bb17-4a90-87ff-a4b09aef0792 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/4740fd6f-c0bc-4710-90e0-494416f37459 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-f72006fd-cc3a-45e1-9970-cfa1e99c3fea 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}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4df0e1f1-2c9a-4f8a-9f59-371b2cd60150', 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150 Openstack-Request-Id: req-4d93a8a6-6309-4d02-88da-2febe50f3b29 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "4df0e1f1-2c9a-4f8a-9f59-371b2cd60150", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150", "rel": "self"}, {"href": "http://localhost/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.581980+00:00", "updated_at": null} GET: /v1/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150 {} GOT:{'uuid': '4df0e1f1-2c9a-4f8a-9f59-371b2cd60150', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150', 'rel': 'self'}, {'href': 'http://localhost/allocations/4df0e1f1-2c9a-4f8a-9f59-371b2cd60150', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.581980+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/0fa7b4ad-2c29-4f70-b39e-f710c0064b33 Openstack-Request-Id: req-d7365c00-680b-4d2a-8908-17fbd5d40712 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "0fa7b4ad-2c29-4f70-b39e-f710c0064b33", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/0fa7b4ad-2c29-4f70-b39e-f710c0064b33", "rel": "self"}, {"href": "http://localhost/allocations/0fa7b4ad-2c29-4f70-b39e-f710c0064b33", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "bm-super", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.694931+00:00", "updated_at": null} GET: /v1/allocations/0fa7b4ad-2c29-4f70-b39e-f710c0064b33 {} GOT:{'uuid': '0fa7b4ad-2c29-4f70-b39e-f710c0064b33', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/0fa7b4ad-2c29-4f70-b39e-f710c0064b33', 'rel': 'self'}, {'href': 'http://localhost/allocations/0fa7b4ad-2c29-4f70-b39e-f710c0064b33', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'bm-super', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.694931+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8b98f8f4-5467-4840-941b-a67c66a719e3', 'node': '833be94a-2b23-4476-9ab7-007efc376275'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b5514e6d-120c-4238-8325-8ba098870043 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 833be94a-2b23-4476-9ab7-007efc376275 could not be found.\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e860724c-317d-42e2-978b-8214fd97d484', 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-edd47b63-83e1-4f36-a21b-d8ab36f5e573 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': 'a9f4f457-59a5-4c65-a950-25a4f6bc9cb0', 'node': 'backfill-me'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0 Openstack-Request-Id: req-bc2c1787-df76-4822-a774-7e83516e624b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a9f4f457-59a5-4c65-a950-25a4f6bc9cb0", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0", "rel": "self"}, {"href": "http://localhost/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:30.925374+00:00", "updated_at": null} GET: /v1/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0 {} GOT:{'uuid': 'a9f4f457-59a5-4c65-a950-25a4f6bc9cb0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0', 'rel': 'self'}, {'href': 'http://localhost/allocations/a9f4f457-59a5-4c65-a950-25a4f6bc9cb0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:30.925374+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/badd539e-c52f-4112-b9b8-7789e2721039 Openstack-Request-Id: req-968f60ec-d11d-473e-8400-f3d1332a0e41 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "badd539e-c52f-4112-b9b8-7789e2721039", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/allocations/badd539e-c52f-4112-b9b8-7789e2721039", "rel": "self"}, {"href": "http://localhost/allocations/badd539e-c52f-4112-b9b8-7789e2721039", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "bm-super", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:31.122135+00:00", "updated_at": null} GET: /v1/allocations/badd539e-c52f-4112-b9b8-7789e2721039 {} GOT:{'uuid': 'badd539e-c52f-4112-b9b8-7789e2721039', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/badd539e-c52f-4112-b9b8-7789e2721039', 'rel': 'self'}, {'href': 'http://localhost/allocations/badd539e-c52f-4112-b9b8-7789e2721039', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'bm-super', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:31.122135+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.203999s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.096915s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.105753s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.059844s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.051896s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.052366s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.046938s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.049243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.192745s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.073987s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.051949s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.044395s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.051172s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.076651s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample [0.010326s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.055432s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.053012s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.098143s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.049534s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.046814s] ... ok 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-02-18T09:13:30.976765+00:00'}]} 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?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b1ff69c0-ced5-47b4-bc95-0c0ed83fc4f2 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?fields=uuid,extra {} GOT:{'chassis': [{'uuid': 'a470e624-b0a3-43c5-b862-7f8542f40574', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a470e624-b0a3-43c5-b862-7f8542f40574', 'rel': 'self'}, {'href': 'http://localhost/chassis/a470e624-b0a3-43c5-b862-7f8542f40574', 'rel': 'bookmark'}]}, {'uuid': 'b6e91d4b-4c41-46b2-8460-67e247257113', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/b6e91d4b-4c41-46b2-8460-67e247257113', 'rel': 'self'}, {'href': 'http://localhost/chassis/b6e91d4b-4c41-46b2-8460-67e247257113', 'rel': 'bookmark'}]}, {'uuid': '3b7a29bf-3984-48a7-9df9-1284244e5bf8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/3b7a29bf-3984-48a7-9df9-1284244e5bf8', 'rel': 'self'}, {'href': 'http://localhost/chassis/3b7a29bf-3984-48a7-9df9-1284244e5bf8', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31827101-9de6-47e0-ae5e-e409143121fa 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/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{'nodes': [{'uuid': '240381e2-57dd-4109-9e59-a9c5a33af330', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/240381e2-57dd-4109-9e59-a9c5a33af330', 'rel': 'self'}, {'href': 'http://localhost/nodes/240381e2-57dd-4109-9e59-a9c5a33af330', 'rel': 'bookmark'}]}, {'uuid': '2d2e8848-0c50-43f8-8254-74cd2aa46ce2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2d2e8848-0c50-43f8-8254-74cd2aa46ce2', 'rel': 'self'}, {'href': 'http://localhost/nodes/2d2e8848-0c50-43f8-8254-74cd2aa46ce2', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{'nodes': [{'uuid': '240381e2-57dd-4109-9e59-a9c5a33af330', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/240381e2-57dd-4109-9e59-a9c5a33af330', 'rel': 'self'}, {'href': 'http://localhost/nodes/240381e2-57dd-4109-9e59-a9c5a33af330', '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=240381e2-57dd-4109-9e59-a9c5a33af330'} GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2dd31731-1c09-456c-9565-96d71de00e3b 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 {} 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'}]}]} 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-3e6f70be-7739-4fe5-9131-3443cf5ae8e7 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-02-18T09:13:31.727799+00:00", "created_at": "2020-02-18T09:13:31.694904+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-f32f3fee-0678-43c2-baac-89685c0cc4c2 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/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8c801f6-a32f-450f-b3d3-5eec03305029 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/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e06a2b1-eaa0-4fb1-af0d-729f1cde200b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d", "rel": "self"}, {"href": "http://localhost/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d/nodes", "rel": "bookmark"}], "updated_at": "2020-02-18T09:13:31.887242+00:00", "created_at": "2020-02-18T09:13:31.856393+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.079542s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.046465s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.131032s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.173382s] ... ok POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '03e6b6e7-f14d-4f0c-b367-7de425719331'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eb5b08f9-2658-4064-8f85-a2a13b661cea 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': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '19a53cf3-14e8-4f0c-b647-d971d1b8d7b0'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-410b63fe-5c63-41c0-9ab3-63854939f044 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': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a264f966-b870-432c-9f55-18db06cc3bc4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1a777609-bea5-47db-851a-fd68c8aa3cfa 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': '3cb378c9-0e50-4905-b3d1-b6dd57fbe3b1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d9a278a4-500a-4abd-a884-652e378d12e5 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': '07a4c81f-43f1-4e05-856c-d44a9b01b1b7'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-07633cab-70e2-4510-89a2-403932cf829e 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': '4ef9e09d-f3f7-48af-9814-82c6d7118e59'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59 Openstack-Request-Id: req-0ad8e53d-50c7-44d5-9f16-9d5d8012580b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "4ef9e09d-f3f7-48af-9814-82c6d7118e59", "extra": {}, "node_uuid": null, "name": "foo", "links": [{"href": "http://localhost/v1/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59", "rel": "self"}, {"href": "http://localhost/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:31.555322+00:00", "updated_at": null} GET: /v1/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59 {} GOT:{'uuid': '4ef9e09d-f3f7-48af-9814-82c6d7118e59', 'extra': {}, 'node_uuid': None, 'name': 'foo', 'links': [{'href': 'http://localhost/v1/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59', 'rel': 'self'}, {'href': 'http://localhost/allocations/4ef9e09d-f3f7-48af-9814-82c6d7118e59', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:31.555322+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': 'a5cfef82-4900-41c8-a441-011bfd8cb7fc'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ddd77c3-81a7-4f72-a0d0-6d9839d3cbe8 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': 'b1be8d55-d832-4bd2-b395-9a1921edbe4d'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b1be8d55-d832-4bd2-b395-9a1921edbe4d Openstack-Request-Id: req-46eb53dd-3ce6-45a8-bf98-17969741c8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "b1be8d55-d832-4bd2-b395-9a1921edbe4d", "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/b1be8d55-d832-4bd2-b395-9a1921edbe4d", "rel": "self"}, {"href": "http://localhost/allocations/b1be8d55-d832-4bd2-b395-9a1921edbe4d", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-02-18T09:13:31.679477+00:00", "updated_at": null} GET: /v1/allocations/b1be8d55-d832-4bd2-b395-9a1921edbe4d {} GOT:{'uuid': 'b1be8d55-d832-4bd2-b395-9a1921edbe4d', '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/b1be8d55-d832-4bd2-b395-9a1921edbe4d', 'rel': 'self'}, {'href': 'http://localhost/allocations/b1be8d55-d832-4bd2-b395-9a1921edbe4d', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-02-18T09:13:31.679477+00:00', 'updated_at': None} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-973289c8-1581-4ce1-83b6-ca09b13c368a 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-3244a311-e1c0-4d12-bd3e-0267cfb2dbf4 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/cc161ac4-4fc1-4571-9b99-e28963ee2c6b GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-834ce17d-5ecb-4ef4-ad1a-366a4eb5584e 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 cc161ac4-4fc1-4571-9b99-e28963ee2c6b could not be found.\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d6dee7c-a703-4dfc-b11c-f7f0e1d6d62e 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}"}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.091599s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.097956s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.099909s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.114403s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.075536s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.076001s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.052847s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.052663s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.050131s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.074079s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.051192s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.047847s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.102778s] ... ok GET: /v1/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d {} GOT:{'uuid': '36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d', 'rel': 'self'}, {'href': 'http://localhost/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/36f5d0f5-cfee-4bf5-9ed5-7f7fc222c46d/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-02-18T09:13:31.887242+00:00', 'created_at': '2020-02-18T09:13:31.856393+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-ff59fc2a-22d2-40de-b7e5-8dfe99840e3f 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/abaf633a-5871-4074-98b6-79b0e43500fa [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06b1617b-b15b-4e4c-9a93-2fa21e0fe62d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "abaf633a-5871-4074-98b6-79b0e43500fa", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/abaf633a-5871-4074-98b6-79b0e43500fa", "rel": "self"}, {"href": "http://localhost/chassis/abaf633a-5871-4074-98b6-79b0e43500fa", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/abaf633a-5871-4074-98b6-79b0e43500fa/nodes", "rel": "self"}, {"href": "http://localhost/chassis/abaf633a-5871-4074-98b6-79b0e43500fa/nodes", "rel": "bookmark"}], "updated_at": "2020-02-18T09:13:32.034976+00:00", "created_at": "2020-02-18T09:13:31.982720+00:00"} GET: /v1/chassis/abaf633a-5871-4074-98b6-79b0e43500fa {} GOT:{'uuid': 'abaf633a-5871-4074-98b6-79b0e43500fa', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/abaf633a-5871-4074-98b6-79b0e43500fa', 'rel': 'self'}, {'href': 'http://localhost/chassis/abaf633a-5871-4074-98b6-79b0e43500fa', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/abaf633a-5871-4074-98b6-79b0e43500fa/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/abaf633a-5871-4074-98b6-79b0e43500fa/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-02-18T09:13:32.034976+00:00', 'created_at': '2020-02-18T09:13:31.982720+00:00'} 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-e12e0fce-acba-4507-a8e5-674dd336c71c 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-02-18T09:13:32.121956+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-02-18T09:13:32.121956+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-8ae49b22-b572-4e55-a3e7-4f5cbe48014b 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}"} PATCH: /v1/chassis/0db7b2d1-6e9a-44a0-b5e1-0e55c16347d1 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a6a274e-aefb-4ebf-a4a6-92f742d04adb 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 0db7b2d1-6e9a-44a0-b5e1-0e55c16347d1 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-4c10de31-fd67-430b-9d8e-ee058e33ca2d 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-02-18T09:13:32.444818+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-02-18T09:13:32.444818+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-8bda2f9f-c4cf-4d97-8c4f-37fd96c6767f 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/94171f61-a1f4-44f5-8831-fbefde987bfa Openstack-Request-Id: req-e7f952ac-c449-4a40-ae23-2238a958640d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "94171f61-a1f4-44f5-8831-fbefde987bfa", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa", "rel": "self"}, {"href": "http://localhost/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa/nodes", "rel": "self"}, {"href": "http://localhost/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:32.572454+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.122732s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.043212s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.042538s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.157468s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.083679s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.126543s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.067270s] ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-195e15b9-ea47-4a25-bd6f-f54b6e9124eb 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?detail=True&fields=description {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c74f4ff-c543-4d2e-a774-515486d813de 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 {} GOT:{'chassis': []} GET: /v1/chassis?fields=extra&limit=2 {} GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/69cc47b1-7db5-46ac-96f5-d2fc1822ad88', 'rel': 'self'}, {'href': 'http://localhost/chassis/69cc47b1-7db5-46ac-96f5-d2fc1822ad88', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/5c4bfb62-9a43-4845-b665-42cde109f686', 'rel': 'self'}, {'href': 'http://localhost/chassis/5c4bfb62-9a43-4845-b665-42cde109f686', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=5c4bfb62-9a43-4845-b665-42cde109f686'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0e0c0570-4e20-432a-a560-77664b71da2d 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-02-18T09:13:32.423502+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/af424eca-8352-46c4-b1ae-885106ae29eb {} GOT:{'uuid': 'af424eca-8352-46c4-b1ae-885106ae29eb', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.525851+00:00'} GET: /v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb {} GOT:{'uuid': 'af424eca-8352-46c4-b1ae-885106ae29eb', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.525851+00:00'} GET: /chassis/af424eca-8352-46c4-b1ae-885106ae29eb {} GOT:{'uuid': 'af424eca-8352-46c4-b1ae-885106ae29eb', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/af424eca-8352-46c4-b1ae-885106ae29eb/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.525851+00:00'} GET: /v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a {} GOT:{'uuid': 'b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.632601+00:00'} GET: /v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a {} GOT:{'uuid': 'b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.632601+00:00'} GET: /chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a {} GOT:{'uuid': 'b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/b7ece233-2b2a-4926-b8bf-82dde13cb08a/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:32.632601+00:00'} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '6d34fd92-1d8b-4e57-b691-d75eef686578', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6d34fd92-1d8b-4e57-b691-d75eef686578', 'rel': 'self'}, {'href': 'http://localhost/chassis/6d34fd92-1d8b-4e57-b691-d75eef686578', 'rel': 'bookmark'}]}, {'uuid': 'aad88012-03e7-4c5a-9ed7-132deb7c191b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/aad88012-03e7-4c5a-9ed7-132deb7c191b', 'rel': 'self'}, {'href': 'http://localhost/chassis/aad88012-03e7-4c5a-9ed7-132deb7c191b', 'rel': 'bookmark'}]}, {'uuid': 'a1304e3c-64b6-4d37-bb7f-7f638cbbd305', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a1304e3c-64b6-4d37-bb7f-7f638cbbd305', 'rel': 'self'}, {'href': 'http://localhost/chassis/a1304e3c-64b6-4d37-bb7f-7f638cbbd305', 'rel': 'bookmark'}]}, {'uuid': '22117fe6-2988-46cf-870c-f52527bbeecd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/22117fe6-2988-46cf-870c-f52527bbeecd', 'rel': 'self'}, {'href': 'http://localhost/chassis/22117fe6-2988-46cf-870c-f52527bbeecd', 'rel': 'bookmark'}]}, {'uuid': '58598a0d-771b-4e2f-8ca6-68d35e7c4b30', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/58598a0d-771b-4e2f-8ca6-68d35e7c4b30', 'rel': 'self'}, {'href': 'http://localhost/chassis/58598a0d-771b-4e2f-8ca6-68d35e7c4b30', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.084669s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.052291s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.050394s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.070772s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.077522s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.079388s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.056662s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.083432s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline [0.058937s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.057037s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.107415s] ... ok GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '94171f61-a1f4-44f5-8831-fbefde987bfa', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa', 'rel': 'self'}, {'href': 'http://localhost/chassis/94171f61-a1f4-44f5-8831-fbefde987bfa', 'rel': 'bookmark'}]}]} 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-4759fdca-be58-4d8f-83ce-af5ddc73000d 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': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dc640ebd-30aa-4deb-94d4-dfe7f35d83da 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-fd192d05-15c6-43de-bbc5-19543dfa7985 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-02-18T09:13:32.788352+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-02-18T09:13:32.788352+00:00'} GET: /v1/conductors/?limit=3 {} GOT:{'conductors': [{'hostname': '49ba84a5-8ee3-47cc-b091-b61a2e2612df', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/49ba84a5-8ee3-47cc-b091-b61a2e2612df', 'rel': 'self'}, {'href': 'http://localhost/conductors/49ba84a5-8ee3-47cc-b091-b61a2e2612df', 'rel': 'bookmark'}]}, {'hostname': 'e0280100-4f8e-45dd-9c6e-8f723da12f3a', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/e0280100-4f8e-45dd-9c6e-8f723da12f3a', 'rel': 'self'}, {'href': 'http://localhost/conductors/e0280100-4f8e-45dd-9c6e-8f723da12f3a', 'rel': 'bookmark'}]}, {'hostname': 'bb3d3fd4-f6ee-46db-a230-5c258a9985ff', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/bb3d3fd4-f6ee-46db-a230-5c258a9985ff', 'rel': 'self'}, {'href': 'http://localhost/conductors/bb3d3fd4-f6ee-46db-a230-5c258a9985ff', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=bb3d3fd4-f6ee-46db-a230-5c258a9985ff'} 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': 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-02-18T09:13:33.113395+00:00', 'updated_at': '2020-02-18T09:13:33.112940+00:00'} 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:{'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-02-18T09:13:33.228328+00:00', 'updated_at': '2020-02-18T09:13:33.227861+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-02-18T09:13:33.228328+00:00', 'updated_at': '2020-02-18T09:13:33.227861+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-02-18T09:13:33.228328+00:00', 'updated_at': '2020-02-18T09:13:33.227861+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-02-18T09:13:33.334679+00:00', 'updated_at': '2020-02-18T09:13:33.334211+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-02-18T09:13:33.334679+00:00', 'updated_at': '2020-02-18T09:13:33.334211+00:00'} 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-02-18T09:13:32.871463+00:00'} GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e67b96c-c427-4362-87f3-683fb4e49068 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?sort_key=uuid {} GOT:{'chassis': [{'uuid': '49aaaff8-9aaf-47bf-8594-4199401fa72e', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/49aaaff8-9aaf-47bf-8594-4199401fa72e', 'rel': 'self'}, {'href': 'http://localhost/chassis/49aaaff8-9aaf-47bf-8594-4199401fa72e', 'rel': 'bookmark'}]}, {'uuid': 'e1c3842b-4ffc-4f52-8c7e-cf1a4e29a55f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e1c3842b-4ffc-4f52-8c7e-cf1a4e29a55f', 'rel': 'self'}, {'href': 'http://localhost/chassis/e1c3842b-4ffc-4f52-8c7e-cf1a4e29a55f', 'rel': 'bookmark'}]}, {'uuid': 'f588ce58-2bf4-4ae5-9f02-0e1d12f778c3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/f588ce58-2bf4-4ae5-9f02-0e1d12f778c3', 'rel': 'self'}, {'href': 'http://localhost/chassis/f588ce58-2bf4-4ae5-9f02-0e1d12f778c3', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7baa8375-5bf9-4a48-bd60-69c331b7b2c9 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-843a770a-ea4a-462e-9aef-0ed44ac2b68d 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 [{'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-a00bb697-12de-4579-b225-f7cba1c25d2b 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-02-18T09:13:33.159966+00:00", "created_at": "2020-02-18T09:13:33.125899+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-02-18T09:13:33.159966+00:00', 'created_at': '2020-02-18T09:13:33.125899+00:00'} 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-130f12b7-1e09-4517-872a-59d9fb7b643a 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/a3543f99-060a-4360-9786-9585369fdd34 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1dadc52-be27-445b-b4aa-30cbe888fc18 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a3543f99-060a-4360-9786-9585369fdd34", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34", "rel": "self"}, {"href": "http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes", "rel": "bookmark"}], "updated_at": "2020-02-18T09:13:33.300925+00:00", "created_at": "2020-02-18T09:13:33.269411+00:00"} GET: /v1/chassis/a3543f99-060a-4360-9786-9585369fdd34 {} GOT:{'uuid': 'a3543f99-060a-4360-9786-9585369fdd34', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34', 'rel': 'self'}, {'href': 'http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-02-18T09:13:33.300925+00:00', 'created_at': '2020-02-18T09:13:33.269411+00:00'} PATCH: /v1/chassis/a3543f99-060a-4360-9786-9585369fdd34 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d93941b7-00b4-45e6-aa24-e795f0721b57 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a3543f99-060a-4360-9786-9585369fdd34", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34", "rel": "self"}, {"href": "http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes", "rel": "bookmark"}], "updated_at": "2020-02-18T09:13:33.355026+00:00", "created_at": "2020-02-18T09:13:33.269411+00:00"} GET: /v1/chassis/a3543f99-060a-4360-9786-9585369fdd34 {} GOT:{'uuid': 'a3543f99-060a-4360-9786-9585369fdd34', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34', 'rel': 'self'}, {'href': 'http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/a3543f99-060a-4360-9786-9585369fdd34/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-02-18T09:13:33.355026+00:00', 'created_at': '2020-02-18T09:13:33.269411+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.155560s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.181306s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.103785s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.077586s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.079266s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.100543s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.114916s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.067143s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.060103s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.057579s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.074944s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.061173s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.071188s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.081715s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.054114s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.069671s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.053207s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.043449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.060348s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.032012s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.047390s] ... ok 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-02-18T09:13:33.334679+00:00', 'updated_at': '2020-02-18T09:13:33.334211+00:00'} 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-02-18T09:13:33.537339+00:00', 'updated_at': '2020-02-18T09:13:33.536857+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-02-18T09:13:33.541036+00:00', 'updated_at': '2020-02-18T09:13:33.540635+00:00'}]} GET: /v1/conductors?sort_key=hostname {} GOT:{'conductors': [{'hostname': '565bfb44-40b6-498f-84e5-ba5ff9031baf', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/565bfb44-40b6-498f-84e5-ba5ff9031baf', 'rel': 'self'}, {'href': 'http://localhost/conductors/565bfb44-40b6-498f-84e5-ba5ff9031baf', 'rel': 'bookmark'}]}, {'hostname': '56f203fa-f65d-4446-b206-885df1fd1bd3', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/56f203fa-f65d-4446-b206-885df1fd1bd3', 'rel': 'self'}, {'href': 'http://localhost/conductors/56f203fa-f65d-4446-b206-885df1fd1bd3', 'rel': 'bookmark'}]}, {'hostname': '5d2526bf-9b7c-4235-bb58-993a499375ad', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/5d2526bf-9b7c-4235-bb58-993a499375ad', 'rel': 'self'}, {'href': 'http://localhost/conductors/5d2526bf-9b7c-4235-bb58-993a499375ad', 'rel': 'bookmark'}]}, {'hostname': '72205833-d196-4027-8df1-6b0ceb3c1f29', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/72205833-d196-4027-8df1-6b0ceb3c1f29', 'rel': 'self'}, {'href': 'http://localhost/conductors/72205833-d196-4027-8df1-6b0ceb3c1f29', 'rel': 'bookmark'}]}, {'hostname': 'e3b73036-5167-452e-b21c-b9afb7803d2d', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/e3b73036-5167-452e-b21c-b9afb7803d2d', 'rel': 'self'}, {'href': 'http://localhost/conductors/e3b73036-5167-452e-b21c-b9afb7803d2d', 'rel': 'bookmark'}]}]} DELETE: /v1/deploy_templates/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e6a60e23-041e-4d7d-bff6-32c132150368 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-7bd8be2a-c686-407a-9281-d99254097401 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/93b179d7-be58-4ee2-8b8f-8de0bdad197a GOT:Response: 204 No Content Openstack-Request-Id: req-1aa657e6-7fa3-40a0-a2ef-380d33088365 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?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': '1bec9e09-b718-4de3-8324-ef3703f9f698', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/1bec9e09-b718-4de3-8324-ef3703f9f698', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1bec9e09-b718-4de3-8324-ef3703f9f698', 'rel': 'bookmark'}]}, {'uuid': '743f802e-46c1-41ee-8035-97c0b4c1955e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/743f802e-46c1-41ee-8035-97c0b4c1955e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/743f802e-46c1-41ee-8035-97c0b4c1955e', 'rel': 'bookmark'}]}, {'uuid': '11b19c88-3504-4b35-94ad-64129e97d0c4', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/11b19c88-3504-4b35-94ad-64129e97d0c4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/11b19c88-3504-4b35-94ad-64129e97d0c4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,steps&limit=3&marker=11b19c88-3504-4b35-94ad-64129e97d0c4'} GET: /v1/deploy_templates?sort_key=name&detail=True {} GOT:{'deploy_templates': [{'uuid': '8781a1bb-8ade-4ad4-ba2d-59c97418041e', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8781a1bb-8ade-4ad4-ba2d-59c97418041e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8781a1bb-8ade-4ad4-ba2d-59c97418041e', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:33.973844+00:00', 'updated_at': None}, {'uuid': '01e36b66-879b-4487-ada8-a1bfd6571b20', 'name': 'CUSTOM_DT2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/01e36b66-879b-4487-ada8-a1bfd6571b20', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/01e36b66-879b-4487-ada8-a1bfd6571b20', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:33.970210+00:00', 'updated_at': None}, {'uuid': 'ede2a7b0-d902-434c-9d4f-cb8b16e4c60d', 'name': 'CUSTOM_DT3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/ede2a7b0-d902-434c-9d4f-cb8b16e4c60d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ede2a7b0-d902-434c-9d4f-cb8b16e4c60d', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:33.965491+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/9651ed3e-c5f6-4da8-b677-2a1eb92aa71d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9651ed3e-c5f6-4da8-b677-2a1eb92aa71d', 'rel': 'bookmark'}]}]} 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=name&limit=2 {} GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/b4c7f9f0-6a05-43b7-94c5-f5394dbf794b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b4c7f9f0-6a05-43b7-94c5-f5394dbf794b', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/16bc0c5c-7e9c-41d4-ba49-bf111a2745fe', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/16bc0c5c-7e9c-41d4-ba49-bf111a2745fe', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=16bc0c5c-7e9c-41d4-ba49-bf111a2745fe'}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.072587s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.094583s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.096872s] ... ok 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-14d171d9-92fd-4b0f-ad31-72fb92f435fe 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"} 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': 'амо'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-b595f146-846c-4965-808c-e6cd384d7713 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-02-18T09:13:33.669691+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-02-18T09:13:33.669691+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-d55fc1d4-806f-4c2b-8819-2802ca59ef23 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?fields=hostname,alive {} GOT:{'conductors': [{'hostname': '3c827e4b-5034-4a80-a6be-137e11dbdb41', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/3c827e4b-5034-4a80-a6be-137e11dbdb41', 'rel': 'self'}, {'href': 'http://localhost/conductors/3c827e4b-5034-4a80-a6be-137e11dbdb41', 'rel': 'bookmark'}]}, {'hostname': '8a070f54-b839-41bb-9767-48ea6eda2d42', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/8a070f54-b839-41bb-9767-48ea6eda2d42', 'rel': 'self'}, {'href': 'http://localhost/conductors/8a070f54-b839-41bb-9767-48ea6eda2d42', 'rel': 'bookmark'}]}, {'hostname': 'a37914d7-3149-41ce-ab3a-6b5b6e6e4d36', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/a37914d7-3149-41ce-ab3a-6b5b6e6e4d36', 'rel': 'self'}, {'href': 'http://localhost/conductors/a37914d7-3149-41ce-ab3a-6b5b6e6e4d36', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=a37914d7-3149-41ce-ab3a-6b5b6e6e4d36'} GET: /v1/conductors {} GOT:{'conductors': [{'hostname': '4df5fca7-a6af-4b2d-9d46-2545bc0b3b9a', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/4df5fca7-a6af-4b2d-9d46-2545bc0b3b9a', 'rel': 'self'}, {'href': 'http://localhost/conductors/4df5fca7-a6af-4b2d-9d46-2545bc0b3b9a', 'rel': 'bookmark'}]}, {'hostname': '0df4b7ad-08cf-4d87-a230-675b34075fc7', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/0df4b7ad-08cf-4d87-a230-675b34075fc7', 'rel': 'self'}, {'href': 'http://localhost/conductors/0df4b7ad-08cf-4d87-a230-675b34075fc7', 'rel': 'bookmark'}]}, {'hostname': '7a2dd2a4-20d1-4928-b3c2-a0665ec9c9c5', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/7a2dd2a4-20d1-4928-b3c2-a0665ec9c9c5', 'rel': 'self'}, {'href': 'http://localhost/conductors/7a2dd2a4-20d1-4928-b3c2-a0665ec9c9c5', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=7a2dd2a4-20d1-4928-b3c2-a0665ec9c9c5'} GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-20b81833-63d7-475b-a101-c4e5f8c70665 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?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:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb465c93-b4d5-4478-8418-8049af27d240 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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2156be0-43c2-4bc4-90be-bb2e516ed09a 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=alive {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cbd0e0f6-760b-452e-ba69-0e97df0f5347 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 {}{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.106840s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.144359s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.074151s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.098388s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.034134s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.032909s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.031043s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_init [0.010102s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.057978s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_sample [0.010732s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.083915s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.080282s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.058040s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.075124s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.059228s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.058363s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.056555s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.090539s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.049802s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.054252s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.061473s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.055892s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.063464s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.071472s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.059494s] ... ok GET: /v1/deploy_templates/c5d041ac-b1e1-4d3e-91ef-a7ec0c3ee97f?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74db9490-f752-4c4d-9a0b-674259777e5b 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/e32b9f7c-c201-4aae-8f0d-ba45377a9a77 {} GOT:{'uuid': 'e32b9f7c-c201-4aae-8f0d-ba45377a9a77', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/e32b9f7c-c201-4aae-8f0d-ba45377a9a77', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e32b9f7c-c201-4aae-8f0d-ba45377a9a77', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:34.305899+00:00', 'updated_at': None} GET: /v1/deploy_templates/a0e12e04-9029-4b93-b4d7-932a79dc4f55?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/a0e12e04-9029-4b93-b4d7-932a79dc4f55', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a0e12e04-9029-4b93-b4d7-932a79dc4f55', 'rel': 'bookmark'}]} GET: /v1/deploy_templates/60bb6296-7b3c-44c0-aa76-96c3ff1c8fec {} 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/faa88ad5-114c-40c1-bba9-32557bb02133 {} GOT:{'uuid': 'faa88ad5-114c-40c1-bba9-32557bb02133', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/faa88ad5-114c-40c1-bba9-32557bb02133', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/faa88ad5-114c-40c1-bba9-32557bb02133', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:34.505665+00:00', 'updated_at': None} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'af112c05-b38e-4d32-b046-99bad1f4d9df', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/af112c05-b38e-4d32-b046-99bad1f4d9df', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/af112c05-b38e-4d32-b046-99bad1f4d9df', 'rel': 'bookmark'}]}, {'uuid': '397f2aed-80ac-4af4-a93e-93264d490f45', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/397f2aed-80ac-4af4-a93e-93264d490f45', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/397f2aed-80ac-4af4-a93e-93264d490f45', 'rel': 'bookmark'}]}, {'uuid': 'c29f30ed-de93-4b51-8537-d9fc401d981f', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/c29f30ed-de93-4b51-8537-d9fc401d981f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c29f30ed-de93-4b51-8537-d9fc401d981f', 'rel': 'bookmark'}]}, {'uuid': 'e7972571-3cbe-4a28-8da1-ec87a19a6508', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/e7972571-3cbe-4a28-8da1-ec87a19a6508', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e7972571-3cbe-4a28-8da1-ec87a19a6508', 'rel': 'bookmark'}]}, {'uuid': '3188c419-0192-43b7-b1c9-b75f4da5b474', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/3188c419-0192-43b7-b1c9-b75f4da5b474', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3188c419-0192-43b7-b1c9-b75f4da5b474', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'add8ab0b-ec48-4386-871f-8d38b26a92b5', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/add8ab0b-ec48-4386-871f-8d38b26a92b5', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/add8ab0b-ec48-4386-871f-8d38b26a92b5', 'rel': 'bookmark'}]}]} PATCH: /v1/deploy_templates/90630f9b-501f-418c-af34-0dfbde4f8dfa [{'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-78d1d14b-c537-4105-bfc1-c0fdfdc7affd X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "90630f9b-501f-418c-af34-0dfbde4f8dfa", "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/90630f9b-501f-418c-af34-0dfbde4f8dfa", "rel": "self"}, {"href": "http://localhost/deploy_templates/90630f9b-501f-418c-af34-0dfbde4f8dfa", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:34.709630+00:00", "updated_at": null} PATCH: /v1/deploy_templates/29ad86e5-0023-44ba-981d-8067c49d602b [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a829e04f-8c49-4ab8-bdf8-544ff18c1605 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/ecf018ad-042e-48d4-98e8-bef78333405a [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-60e2aec8-d6e6-4a5f-b473-ac0b400ace43 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/463cfc75-d3b4-4ac7-a2ec-edccb7e02d13 [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78adb2ef-55e5-44ed-b9f1-3088c8e58c79 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/2cd4b3c9-73ab-46a9-bac1-dc588996ca3a [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c8eb8774-9d6c-4c43-ac1b-4acd813cb9ac 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/4a45d6c4-bd04-44c7-a7c8-e6e70d567a92 [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b7df079d-b3e7-44c7-b6f8-c2e69aaa90a7 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}"}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.070307s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.101503s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.065284s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.107595s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-173a1b1a-01cc-48e8-a221-2b8e97683795 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-9c28d305-c2ae-46cf-b6cd-f8e0cc821cbb 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/0095b890-ee58-4a67-93c1-72169f768214.json GOT:Response: 204 No Content Openstack-Request-Id: req-e48dd39e-bb94-44a6-adc5-7f66130364ce 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/79c1313f-e6dd-468b-a6d8-3d0dde0b59c1 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/?limit=3 {} GOT:{'deploy_templates': [{'uuid': '44aa0e50-c2d9-46d4-8c8e-86fa9cba2910', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/44aa0e50-c2d9-46d4-8c8e-86fa9cba2910', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/44aa0e50-c2d9-46d4-8c8e-86fa9cba2910', 'rel': 'bookmark'}]}, {'uuid': '0ba9cc9d-33dd-48f1-9cbf-27f5c04eb5e0', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/0ba9cc9d-33dd-48f1-9cbf-27f5c04eb5e0', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0ba9cc9d-33dd-48f1-9cbf-27f5c04eb5e0', 'rel': 'bookmark'}]}, {'uuid': 'ac3b39bd-7c63-496f-9b06-a42a23205469', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/ac3b39bd-7c63-496f-9b06-a42a23205469', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/ac3b39bd-7c63-496f-9b06-a42a23205469', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=ac3b39bd-7c63-496f-9b06-a42a23205469'} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'd69af00f-fed7-4a6d-bdf5-61a70e1f4d35', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/d69af00f-fed7-4a6d-bdf5-61a70e1f4d35', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d69af00f-fed7-4a6d-bdf5-61a70e1f4d35', 'rel': 'bookmark'}]}, {'uuid': 'dbb9c0fc-2853-4f10-a654-82a7a7c44de7', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/dbb9c0fc-2853-4f10-a654-82a7a7c44de7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dbb9c0fc-2853-4f10-a654-82a7a7c44de7', 'rel': 'bookmark'}]}, {'uuid': '00944568-a1ef-4476-b49f-8fc3715350aa', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/00944568-a1ef-4476-b49f-8fc3715350aa', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/00944568-a1ef-4476-b49f-8fc3715350aa', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=00944568-a1ef-4476-b49f-8fc3715350aa'} GET: /v1/deploy_templates?detail=True {} GOT:{'deploy_templates': [{'uuid': '87bd798b-1d38-4f45-ae40-277771947078', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/87bd798b-1d38-4f45-ae40-277771947078', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/87bd798b-1d38-4f45-ae40-277771947078', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:34.726655+00:00', 'updated_at': None}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=False {} GOT:{'deploy_templates': [{'uuid': '9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9ba5d015-bdbe-4ab6-bce0-a8239531f864', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9eceb368-d5ad-4ff4-8c95-adf4ae5fee9e 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:{'deploy_templates': []} GET: /v1/deploy_templates?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': '8119ec1c-eda7-49fa-bbd2-8e3a85dc5a92', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8119ec1c-eda7-49fa-bbd2-8e3a85dc5a92', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8119ec1c-eda7-49fa-bbd2-8e3a85dc5a92', 'rel': 'bookmark'}]}, {'uuid': '8913b111-8f1f-4688-b172-b2bfd0e24a0d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/8913b111-8f1f-4688-b172-b2bfd0e24a0d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8913b111-8f1f-4688-b172-b2bfd0e24a0d', 'rel': 'bookmark'}]}, {'uuid': '6a7d98c6-a1e4-48d1-a135-c97d544a90a8', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/6a7d98c6-a1e4-48d1-a135-c97d544a90a8', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6a7d98c6-a1e4-48d1-a135-c97d544a90a8', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates/4f885e15-15ce-4c21-bec2-30cdfb0ea243.json {} GOT:{'uuid': '4f885e15-15ce-4c21-bec2-30cdfb0ea243', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/4f885e15-15ce-4c21-bec2-30cdfb0ea243', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4f885e15-15ce-4c21-bec2-30cdfb0ea243', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:35.063693+00:00', 'updated_at': None} GET: /v1/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257 {} GOT:{'uuid': '2d169de0-4fec-4505-a095-5745609e0257', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:35.123528+00:00', 'updated_at': None} GET: /v1/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257 {} GOT:{'uuid': '2d169de0-4fec-4505-a095-5745609e0257', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:35.123528+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.169514s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.060608s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.090403s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.099354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.058539s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.074772s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.058104s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.089467s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.065016s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.057141s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.056712s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.059976s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.060930s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.030893s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.063071s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.053476s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.097483s] ... ok PATCH: /v1/deploy_templates/d8889ab7-3e41-4262-bba6-fc252e3c3d38 [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-36327aa9-56f1-4b03-a62d-9b3cee6e4ffc 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/00f8c233-7a38-4fea-a9c2-f8928e0a6450 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ece7f06a-e386-4d7e-9c05-509b2b02bc15 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/15f111c2-c93f-4a7e-8f11-de06f918b103 [{'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-59372239-dafa-4153-80ff-b7594973a56a 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/65f5466d-f032-4d42-af99-e87117a9bf82 [{'path': '/steps', 'op': 'replace', 'value': []}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-912c8456-5b1b-42f9-a8a3-0bfd60c1391b 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/305e8055-92c3-4da1-8d67-452a8cbd274a [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0c66ac8-4d90-4c6b-84f8-fe45ef230033 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/fc71a6da-33c1-45ae-85ca-ca2e894671f9 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a81be83b-a919-45bf-a0e3-687ebed02724 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/41aea58a-a9ca-45ba-b9f1-1048cb8093c3 [{'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-e475fafd-ec39-4d08-b043-4f29e8bff1b3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "41aea58a-a9ca-45ba-b9f1-1048cb8093c3", "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/41aea58a-a9ca-45ba-b9f1-1048cb8093c3", "rel": "self"}, {"href": "http://localhost/deploy_templates/41aea58a-a9ca-45ba-b9f1-1048cb8093c3", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:35.575196+00:00", "updated_at": null} PATCH: /v1/deploy_templates/b58925d5-3d0d-44a7-9d41-bb102c335c64 [{'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-396cf191-b5f7-45f9-8dbc-afbe22c888ab 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/f3a20718-33dd-43c7-a711-5704b68e4c82 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3cbdbbc-90ab-4267-9fa1-ec92df155111 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "f3a20718-33dd-43c7-a711-5704b68e4c82", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/f3a20718-33dd-43c7-a711-5704b68e4c82", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3a20718-33dd-43c7-a711-5704b68e4c82", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:35.692768+00:00", "updated_at": null} PATCH: /v1/deploy_templates/05164dbd-af48-4d09-a41e-740c6ec69c9d [{'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/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-984206c1-ec2d-4110-b267-4505d1fcc566 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "d382daa7-8c5a-4854-99f5-6b6d77ad7de1", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/d382daa7-8c5a-4854-99f5-6b6d77ad7de1", "rel": "self"}, {"href": "http://localhost/deploy_templates/d382daa7-8c5a-4854-99f5-6b6d77ad7de1", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:35.784561+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.062122s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.038529s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.054540s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.092542s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.067298s] ... ok GET: /deploy_templates/2d169de0-4fec-4505-a095-5745609e0257 {} GOT:{'uuid': '2d169de0-4fec-4505-a095-5745609e0257', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2d169de0-4fec-4505-a095-5745609e0257', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:35.123528+00:00', 'updated_at': None} GET: /v1/deploy_templates/999cc1cc-9537-4d6a-be1c-0157e041c70f {} GOT:{'uuid': '999cc1cc-9537-4d6a-be1c-0157e041c70f', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': [], 'password': '******'}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/999cc1cc-9537-4d6a-be1c-0157e041c70f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/999cc1cc-9537-4d6a-be1c-0157e041c70f', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:35.294311+00:00', 'updated_at': None} GET: /v1/deploy_templates?sort_key=uuid {} GOT:{'deploy_templates': [{'uuid': '2f0f4e0f-b5da-4d74-bc80-9d4ce49c2f25', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/2f0f4e0f-b5da-4d74-bc80-9d4ce49c2f25', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2f0f4e0f-b5da-4d74-bc80-9d4ce49c2f25', 'rel': 'bookmark'}]}, {'uuid': '4a3228be-db1c-4346-b9cf-3aae6004dc91', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/4a3228be-db1c-4346-b9cf-3aae6004dc91', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4a3228be-db1c-4346-b9cf-3aae6004dc91', 'rel': 'bookmark'}]}, {'uuid': 'd46bd835-c835-4eaf-8a51-7686888d90e9', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/d46bd835-c835-4eaf-8a51-7686888d90e9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d46bd835-c835-4eaf-8a51-7686888d90e9', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=name&detail=False {} GOT:{'deploy_templates': [{'uuid': 'b41a87d0-f957-4c59-bd03-6a3f469a6251', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/b41a87d0-f957-4c59-bd03-6a3f469a6251', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b41a87d0-f957-4c59-bd03-6a3f469a6251', 'rel': 'bookmark'}]}, {'uuid': 'af8cd66f-b4cf-4fb3-9393-117eae3e1ddc', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/af8cd66f-b4cf-4fb3-9393-117eae3e1ddc', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/af8cd66f-b4cf-4fb3-9393-117eae3e1ddc', 'rel': 'bookmark'}]}, {'uuid': 'a3ee27cf-b2ef-4bab-afde-788079563a4a', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/a3ee27cf-b2ef-4bab-afde-788079563a4a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a3ee27cf-b2ef-4bab-afde-788079563a4a', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dea97a0d-14c3-493a-ae18-f448f26910a0 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-44fe0107-620b-48c6-945f-a5a1591175fe 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-74564a79-0896-4992-ae96-c03581dc1a60 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/d0e97188-c8df-4460-ad4e-7561d688af7e [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84c445f9-6378-4287-8a65-0dc081a09b04 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/2cd106a3-bf91-45d2-80ed-4b177b815e96 [{'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-d9f41ed8-d1fa-4599-87fd-80ae97d9aa81 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}"} PATCH: /v1/deploy_templates/ba10e28e-b5d7-448c-b9ad-98435e501b4a [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84977b5b-eb70-4801-9340-cf2b6f4bb123 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "ba10e28e-b5d7-448c-b9ad-98435e501b4a", "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/ba10e28e-b5d7-448c-b9ad-98435e501b4a", "rel": "self"}, {"href": "http://localhost/deploy_templates/ba10e28e-b5d7-448c-b9ad-98435e501b4a", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:35.737570+00:00", "updated_at": null} PATCH: /v1/deploy_templates/c160ac72-8252-4ddc-aa63-c1d5be662a78 [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f916123-db7f-4292-ad1e-ea12bb023832 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/52ed0aa2-b813-411c-8b1c-08376c314cd0 [{'path': '/name', 'op': 'replace', 'value': None}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-801d4993-509f-41e1-b833-fbfcf425291d 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/5e7c2f72-85d0-4f9c-b1ef-e93a0b7e1532 [{'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-a3ebef97-0c09-4262-b023-84538d41f140 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: management, bios, raid, deploy, power\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.093694s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.095427s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.129569s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.079877s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.069147s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.059213s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.076897s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.058961s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.047293s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.028440s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.080760s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.049968s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.046574s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.044717s] ... ok 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/f41eda40-b12c-4b10-aecb-372e585ec104 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f77b4a6-eae4-4ad3-bfab-7858da3f32ab 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/0cb61588-0498-48fa-a0f2-d40f7b65a137 [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-629fdb34-a32c-4039-8214-6879edba4acf X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "0cb61588-0498-48fa-a0f2-d40f7b65a137", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/0cb61588-0498-48fa-a0f2-d40f7b65a137", "rel": "self"}, {"href": "http://localhost/deploy_templates/0cb61588-0498-48fa-a0f2-d40f7b65a137", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:35.940302+00:00", "updated_at": null} PATCH: /v1/deploy_templates/8361f000-5f0b-408e-895e-cac4f26370e5 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0140f79a-11d4-4c44-8130-a7eae345f89a 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 8361f000-5f0b-408e-895e-cac4f26370e5 could not be found.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2c7688ab-1736-4f97-9cb5-798b573a653f', '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/2c7688ab-1736-4f97-9cb5-798b573a653f Openstack-Request-Id: req-e28d3929-f508-474d-9e08-7afdf14e1d19 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "2c7688ab-1736-4f97-9cb5-798b573a653f", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/2c7688ab-1736-4f97-9cb5-798b573a653f", "rel": "self"}, {"href": "http://localhost/deploy_templates/2c7688ab-1736-4f97-9cb5-798b573a653f", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/deploy_templates/2c7688ab-1736-4f97-9cb5-798b573a653f {} GOT:{'uuid': '2c7688ab-1736-4f97-9cb5-798b573a653f', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/2c7688ab-1736-4f97-9cb5-798b573a653f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/2c7688ab-1736-4f97-9cb5-798b573a653f', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'fae89a33-5c8d-4bb3-ae4e-9d38c26f48ac', '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/fae89a33-5c8d-4bb3-ae4e-9d38c26f48ac Openstack-Request-Id: req-81a7f74b-992f-44ef-8c94-881d9bede0d4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "fae89a33-5c8d-4bb3-ae4e-9d38c26f48ac", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/fae89a33-5c8d-4bb3-ae4e-9d38c26f48ac", "rel": "self"}, {"href": "http://localhost/deploy_templates/fae89a33-5c8d-4bb3-ae4e-9d38c26f48ac", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.240526+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '7d350c57-b4b8-4ebc-a090-d31781ca3187', '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/7d350c57-b4b8-4ebc-a090-d31781ca3187 Openstack-Request-Id: req-f0cfbf8a-ab7d-4af2-8081-c1c77c65f288 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7d350c57-b4b8-4ebc-a090-d31781ca3187", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/7d350c57-b4b8-4ebc-a090-d31781ca3187", "rel": "self"}, {"href": "http://localhost/deploy_templates/7d350c57-b4b8-4ebc-a090-d31781ca3187", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.290575+00:00", "updated_at": null} GET: /v1/deploy_templates/7d350c57-b4b8-4ebc-a090-d31781ca3187 {} GOT:{'uuid': '7d350c57-b4b8-4ebc-a090-d31781ca3187', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/7d350c57-b4b8-4ebc-a090-d31781ca3187', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7d350c57-b4b8-4ebc-a090-d31781ca3187', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:36.290575+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c774628d-5a3d-4dec-9bdc-34f055751dc2', '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-c3bf8865-1f73-4a45-ad51-7280cede1ce6 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', 'uuid': '916968f4-0ec5-4e74-a0a4-b482824d8517', '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': '71dee443-485c-4c19-a51e-c675064d2893', '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-00b23f5a-1e21-4a52-93eb-d5565e6cc983 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': '71dee443-485c-4c19-a51e-c675064d2893', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42}'. Value not a valid dict: 42\", \"debuginfo\": null}"}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.047989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.091580s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.085573s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.059813s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.057351s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.043195s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.044269s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.045327s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.046994s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.065352s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.058014s] ... ok PATCH: /v1/deploy_templates/9631341f-cddc-4dcf-9024-76eff9c28e35 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6fe56dc1-ba0b-4d44-8901-e73bf7bddbea 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 9631341f-cddc-4dcf-9024-76eff9c28e35 already exists.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/306addb4-8ad3-4896-8b75-1c4db832ee7b [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ee1cfb2-cdb3-4df4-a516-9a07b2476e63 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: management, bios, raid, deploy, power\", \"debuginfo\": null}"} 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-ace1db8b-013f-4950-9a00-b6cb048ed9ad X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "0f5004d7-3b16-4de6-b4ac-93647c3b48b7", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/0f5004d7-3b16-4de6-b4ac-93647c3b48b7", "rel": "self"}, {"href": "http://localhost/deploy_templates/0f5004d7-3b16-4de6-b4ac-93647c3b48b7", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.259724+00:00", "updated_at": null} PATCH: /v1/deploy_templates/a478f3d5-9fe3-4ea7-8e0c-54e80179d8b5 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ddff7c2-eb99-4524-8ccb-fbee09f41e53 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a478f3d5-9fe3-4ea7-8e0c-54e80179d8b5", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/a478f3d5-9fe3-4ea7-8e0c-54e80179d8b5", "rel": "self"}, {"href": "http://localhost/deploy_templates/a478f3d5-9fe3-4ea7-8e0c-54e80179d8b5", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.318638+00:00", "updated_at": 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/33d74e6a-38b3-4b42-ac53-933b262a6ef3 Openstack-Request-Id: req-44c8ab1e-4ab6-48ef-b7a7-0a511a97b580 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "33d74e6a-38b3-4b42-ac53-933b262a6ef3", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/33d74e6a-38b3-4b42-ac53-933b262a6ef3", "rel": "self"}, {"href": "http://localhost/deploy_templates/33d74e6a-38b3-4b42-ac53-933b262a6ef3", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.408064+00:00", "updated_at": null} GET: /v1/deploy_templates/33d74e6a-38b3-4b42-ac53-933b262a6ef3 {} GOT:{'uuid': '33d74e6a-38b3-4b42-ac53-933b262a6ef3', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/33d74e6a-38b3-4b42-ac53-933b262a6ef3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/33d74e6a-38b3-4b42-ac53-933b262a6ef3', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-02-18T09:13:36.408064+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '6b552d3f-38cf-4a03-9a69-a6e62fd71924', 'steps': [], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f29a12ec-e9d9-49fa-b5e2-b1be2030db9e 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': 42, 'uuid': 'b6df9cec-47dd-435e-998b-ca4b6a90765a', '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-af1da5e2-336b-42be-b14a-dc0f80c56c54 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': None, 'uuid': '37f3952b-a46f-4c82-ad0f-a06d94053c04', '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-b83b1037-96ed-4dcb-a3d1-02fd1958d629 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': '7fb751f5-8654-48e3-afa3-c589994d8c50', 'steps': {}, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5edbddcc-23f7-4622-9663-50104b4fafe1 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': '7fb751f5-8654-48e3-afa3-c589994d8c50', 'steps': {}, 'extra': {}}'. Value not a valid list: {}\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c24f0002-64b5-4d60-b1c1-e014f0e01815', '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-9c7e9d9b-903e-4502-9a91-2bbec108d099 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': '62346b25-a89c-488e-b3ab-e3403d27d5e8', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d62846d-efed-46f4-86cd-2ea624d98c6f 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: management, bios, raid, deploy, power\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3c2fb5f4-5ea0-4a77-8bf5-9fb9fb6365b9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}}{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.074331s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.054060s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.084571s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.059828s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.043645s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.046191s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.044933s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.045220s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.045002s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.046181s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.044438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.046422s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.074428s] ... ok POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e848fc32-e0b2-4f67-98f4-8832ee9f5adc', '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-ab45ea63-8f2b-4cd2-bc2c-63c3ced6da60 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': 'CUSTOM_DT1', 'uuid': '135b754e-a093-4b16-8e0e-6aa74efc9cba', '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-f395a0f9-85fe-40c8-bcd0-8b116902ce82 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': '135b754e-a093-4b16-8e0e-6aa74efc9cba', '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': '98fbb2eb-73e7-49a9-8e10-9635dcc1732f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-30d37072-d058-4a49-bbee-36a8fa6d88c5 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': '98fbb2eb-73e7-49a9-8e10-9635dcc1732f', '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': '846196b3-e6ca-4973-b4b3-b490200db95e', '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-694b516b-6e8b-4da9-8440-c2b68fc812a4 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': '3ebdb2de-018f-4b2f-a286-a6a1dc3c3b85', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d2f5f37-f48a-461a-b73c-e61b9c791a80 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': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '7d11c380-d37e-46a6-8c11-a2d256dacb91', '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-3bb321cf-76f0-418e-b864-4a9a73aa72ba 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 {'uuid': '7def596e-4edb-49a9-96da-76f5d4b25a34', '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-1f6101b7-3448-477c-8189-b8d24cfc4cb5 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': 'caac1f3a-c905-48c9-9c14-40398d6aea67', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b131321-10dc-44d8-8bf6-dc6705388646 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': 'c0e48a66-f050-4787-bf2d-bb361ad56604', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24aa2cf2-3aaa-42df-b7f6-7422414d64ce 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': '9f79b72e-a542-4464-9af7-a8ab9f7c279d', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9db1929b-eae7-4e21-baf0-04a54a874f65 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': '813943eb-d65b-407c-8f3e-5c4afdc9ca24', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71c6add1-3ee8-4e14-baef-b2d5272cc1e9 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': '32869d00-9749-4064-8965-054abe9a85df', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9568c699-b85a-4fc1-a90d-c16ee059dc1d 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}"}{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.051960s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.108147s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.080233s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.081964s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.051716s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.087098s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.067083s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.045581s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.044728s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.067391s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.046108s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.069634s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.070805s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.076724s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-26430ad1-fc2b-4ccd-b9cd-57ee26b35a3f 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}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '09b5b4ce-4087-4cb8-9918-b44ea7b7b695', '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-04c061c8-9cf1-482e-a763-86039cbb76fc 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': '09b5b4ce-4087-4cb8-9918-b44ea7b7b695', '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_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'a922c647-69ea-4bb8-ac57-001727a158af', '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/a922c647-69ea-4bb8-ac57-001727a158af Openstack-Request-Id: req-a09010fa-c43b-4fa3-bd05-fadda4067157 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "a922c647-69ea-4bb8-ac57-001727a158af", "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/a922c647-69ea-4bb8-ac57-001727a158af", "rel": "self"}, {"href": "http://localhost/deploy_templates/a922c647-69ea-4bb8-ac57-001727a158af", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:36.955284+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': 'ec82bc98-e4cf-4298-831a-86d88a1a0fcb', '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-0b116617-b27a-418b-a4d7-3e4103473886 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': '1611d700-f0b5-41ba-ac6b-85dff7d711ad', '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-eec7644f-de2d-4c75-9bfc-2dcf1909cac8 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-f8203fc9-b5f0-445e-8e5f-ed7a979488c9 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/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f41c205-7bc0-462f-86ef-7f8d9dd9c2eb 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}"} 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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e8a2559c-e9eb-4a5a-8d32-4f30ee81092c 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}"} 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-1a36fe09-d20b-48df-ad36-4fbc9eba9fa0 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-c945fe03-6925-42ba-b682-0c4e70ded18e 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/drivers?detail=True {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0054bb5d-8d9e-4dbe-8072-b867d33a0ade 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:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4b4e5727-e02b-45db-921c-1caedadb65db 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 {} 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'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.260951s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.114029s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.126981s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.068578s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.065843s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.166781s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.107624s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.046229s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.060843s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.051814s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.041823s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.039645s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.039023s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.038896s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.039774s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.172592s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.040293s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_conductor_api_policy [0.038149s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy [0.050884s] ... ok POST: /v1/deploy_templates {'name': 'HW_CPU_X86_VMX', 'uuid': '80d79a8e-f9cf-4f77-a78b-8ca797a3d993', '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/80d79a8e-f9cf-4f77-a78b-8ca797a3d993 Openstack-Request-Id: req-94b1af79-cbb0-4ef3-8aec-643ac0cef39d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "80d79a8e-f9cf-4f77-a78b-8ca797a3d993", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/80d79a8e-f9cf-4f77-a78b-8ca797a3d993", "rel": "self"}, {"href": "http://localhost/deploy_templates/80d79a8e-f9cf-4f77-a78b-8ca797a3d993", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:37.255232+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '54010152-21a2-470d-aa94-c9ed29752d10', '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/54010152-21a2-470d-aa94-c9ed29752d10 Openstack-Request-Id: req-1e95e3ac-ff01-4d20-b7f8-61e837cb122d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "54010152-21a2-470d-aa94-c9ed29752d10", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/54010152-21a2-470d-aa94-c9ed29752d10", "rel": "self"}, {"href": "http://localhost/deploy_templates/54010152-21a2-470d-aa94-c9ed29752d10", "rel": "bookmark"}], "extra": {}, "created_at": "2020-02-18T09:13:37.332593+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/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'}]} 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-dfc56072-079c-45a4-9eb8-9af95fdba97a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-ee78d597-cb2e-4106-be83-33d9b3f93421 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/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'} 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-d6ef6748-5e89-4fc7-ac13-685ed524984f 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 {} 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?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d3cbe972-cec5-4fd6-8127-6e5cc5eb6cf4 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/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-12caf446-e98a-449e-bbe5-a8684c4ab537 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': ['direct', 'iscsi'], '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/fake-hardware-type {}{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.203269s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy [0.136512s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.057343s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy [0.026079s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.046941s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.059074s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.062421s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.059230s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.064299s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.055805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.058863s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.058050s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.163667s] ... 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:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-894ec2b5-da2d-4af2-8125-06990aa596da 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: 204 No Content Openstack-Request-Id: req-141ff241-a77c-4b98-89b6-4b4086b5f5aa 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': 'valid.event'}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-72d2fa53-f379-49c3-9e6e-5940176ab7d8 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': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-0d96240c-9feb-4617-a621-c9c3dea3fa06 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-00684151-ccb6-4eab-b07c-207a054c7c31 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': ['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-88adcdd3-feb5-409f-ae88-fcd4bb5addff 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/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-36bcde28-342d-43c9-a576-00baf693cb8b 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/nodes/node-39/vifs {'id': '7c301512-8a01-4ffc-9a20-3ac034cc06da'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e7dadd4-11c0-47bd-8852-35b9bf35d2ae 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': '7b305c99-db78-42b3-9965-1523e608846f'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c64b9842-b8fb-4a97-8841-4325839158eb 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ecf7ee0c-f88c-4459-a400-f8bfa8aa7872 GOT:Response: 204 No Content Openstack-Request-Id: req-de2969b6-6929-4afd-93f0-50e69267032b 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/1d32e31f-b589-413c-bd07-ddadf41c0efa GOT:Response: 204 No Content Openstack-Request-Id: req-8e2a1f64-40f6-4cc8-81e0-9d9d6663bf1b 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-02-18T09:13:39.015178+00:00', 'updated_at': None}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.095263s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.152312s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.066463s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.014357s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.019952s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.022518s] ... ok 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': ['direct', 'iscsi'], '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 {} GOT:{'drivers': []} GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2793343e-25b2-45c6-b331-991bc2ab80f2 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:{'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': ['direct', 'iscsi'], '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?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': ['direct', 'iscsi'], '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_node.TestDelete.test_delete_associated [0.100052s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.063141s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.551612s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.057370s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.045573s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.110127s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.062196s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.064719s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.062767s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.040411s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.040999s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.060189s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.039637s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.065625s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.040175s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.038369s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.064287s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.040035s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.065349s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.038848s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.040015s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.103762s] ... 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://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'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dba27248-a5f5-404d-bb0a-fb08e51001f3 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}"} POST: /v1/events {'events': [{'INVALID': 'fake.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3ece2b8-f5b3-44b5-a53f-bff686814278 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-69a3799a-9895-4ae9-a871-46aa6822619e 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.unbind_port, network.delete_port, network.bind_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-6227a269-70fd-4e0e-83a9-041e28003d79 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-49aa00e1-0c51-4b07-a87f-93a2fd9e8657 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': '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-5e915d46-9fca-48d4-8260-6d07cada90c4 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': '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-4f0161ea-3b95-43b6-9e6c-cae9eae9926b 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-e5e7470c-b033-423e-8d62-f7ba8fd6bb77 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': '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-4591abba-6941-45b1-ba28-275fd5f56377 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', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7c635ad-4f9b-437c-bd0a-b39e46784b46 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}"}{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.047087s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chassis_api_policy [0.086890s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy [0.229738s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy [0.104272s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d11816b-ac8b-4fd3-843f-1e95549dca81 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}"} 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-566d2916-a600-4fe5-a20f-5bff4b13368b 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/foo.json GOT:Response: 204 No Content Openstack-Request-Id: req-ee2a52c6-c0f1-4a4a-a03e-8c9a3e9cd876 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-3ecdbcdc-37c8-4ee5-87ed-b48dddd44097 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-6064c4f2-11da-4926-ab0a-38270dfce41d 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e0e55e3-b5b6-4453-8ca6-9c0fb4c5772f 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-180cd0f1-29fe-451b-9a3d-7323f2777532 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-f3755c90-6f31-45b5-9f7a-393752c3a077 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-2ffba952-7aa9-4b25-a00f-6a6b390355a6 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-4f1ca65d-cf38-497b-8542-b53191030d90 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}"} 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-2ae8311f-f9f3-4145-97d7-280017906cc8 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?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7655c7ca-a3aa-4d3a-969a-58d20fed7032 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': 'e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'instance_uuid': '4a85bec4-7748-4994-8d66-91ab2b1c00ff', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'rel': 'bookmark'}]}, {'uuid': '57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'instance_uuid': 'a2b3a673-ca7b-400d-a2a6-886c3b2970bf', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'rel': 'self'}, {'href': 'http://localhost/nodes/57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'rel': 'bookmark'}]}, {'uuid': '8efd475e-a011-4898-88f2-33798247e394', 'instance_uuid': 'a3895e21-434e-4035-afed-74bdd5011cd3', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8efd475e-a011-4898-88f2-33798247e394', 'rel': 'self'}, {'href': 'http://localhost/nodes/8efd475e-a011-4898-88f2-33798247e394', 'rel': 'bookmark'}]}, {'uuid': '54857180-a4df-4338-aabc-686c0799cdae', 'instance_uuid': '2002aafe-57ee-4554-a416-afc5c5b5689c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/54857180-a4df-4338-aabc-686c0799cdae', 'rel': 'self'}, {'href': 'http://localhost/nodes/54857180-a4df-4338-aabc-686c0799cdae', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=True {} GOT:{'nodes': [{'uuid': 'e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'instance_uuid': '4a85bec4-7748-4994-8d66-91ab2b1c00ff', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0cf8532-a0c8-427c-80f3-ed45c215b6c9', 'rel': 'bookmark'}]}, {'uuid': '57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'instance_uuid': 'a2b3a673-ca7b-400d-a2a6-886c3b2970bf', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'rel': 'self'}, {'href': 'http://localhost/nodes/57abc1e2-7cd8-4e97-a3e9-cb0ddc08127a', 'rel': 'bookmark'}]}, {'uuid': '8efd475e-a011-4898-88f2-33798247e394', 'instance_uuid': 'a3895e21-434e-4035-afed-74bdd5011cd3', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8efd475e-a011-4898-88f2-33798247e394', 'rel': 'self'}, {'href': 'http://localhost/nodes/8efd475e-a011-4898-88f2-33798247e394', 'rel': 'bookmark'}]}, {'uuid': '54857180-a4df-4338-aabc-686c0799cdae', 'instance_uuid': '2002aafe-57ee-4554-a416-afc5c5b5689c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/54857180-a4df-4338-aabc-686c0799cdae', 'rel': 'self'}, {'href': 'http://localhost/nodes/54857180-a4df-4338-aabc-686c0799cdae', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.287025s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.077894s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.205203s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.056818s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.080608s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.057809s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.058458s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.060010s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.053127s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.063480s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.282516s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.045395s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.056555s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.051998s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.057065s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.087404s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.073473s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.017686s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.012220s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.012738s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.011615s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.012357s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.011638s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.014587s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.092790s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.064580s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.057289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.061902s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.052538s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.119676s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.057046s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.075327s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.050161s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.046385s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.079007s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.147818s] ... ok GET: /v1/nodes?fields=driver_info,uuid {} GOT:{'nodes': [{'uuid': 'e54677d4-1250-4840-9554-2508ed73502d', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/e54677d4-1250-4840-9554-2508ed73502d', 'rel': 'self'}, {'href': 'http://localhost/nodes/e54677d4-1250-4840-9554-2508ed73502d', 'rel': 'bookmark'}]}, {'uuid': 'd94406ad-9132-4fc2-98ad-3dc78828bd1d', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/d94406ad-9132-4fc2-98ad-3dc78828bd1d', 'rel': 'self'}, {'href': 'http://localhost/nodes/d94406ad-9132-4fc2-98ad-3dc78828bd1d', 'rel': 'bookmark'}]}, {'uuid': '9dd6110c-43af-430e-9af2-8118ecf3d7df', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/9dd6110c-43af-430e-9af2-8118ecf3d7df', 'rel': 'self'}, {'href': 'http://localhost/nodes/9dd6110c-43af-430e-9af2-8118ecf3d7df', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=9dd6110c-43af-430e-9af2-8118ecf3d7df'} GET: /v1/nodes?instance_uuid=c443f854-8da6-489c-a9ed-e7d9ab6270bb {} GOT:{'nodes': [{'uuid': 'c2800de0-6deb-4827-9527-88dd46d3129d', 'instance_uuid': 'c443f854-8da6-489c-a9ed-e7d9ab6270bb', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c2800de0-6deb-4827-9527-88dd46d3129d', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2800de0-6deb-4827-9527-88dd46d3129d', '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-02-18T09:13:40.717306+00:00'}]} GET: /v1/nodes?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a2037751-645e-4436-a95b-40ea6ae0c2a2 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=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b726c4fd-e96c-4c50-bf5b-7c9df4c9f02e 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?instance_uuid=bceaca57-890e-467f-9490-fa6d8bd2c945 {} GOT:{'nodes': [{'uuid': '9c3e07d2-7854-4e58-9728-ddaa725821a8', 'instance_uuid': 'bceaca57-890e-467f-9490-fa6d8bd2c945', '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/9c3e07d2-7854-4e58-9728-ddaa725821a8', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c3e07d2-7854-4e58-9728-ddaa725821a8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9c3e07d2-7854-4e58-9728-ddaa725821a8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c3e07d2-7854-4e58-9728-ddaa725821a8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:41.114205+00:00'}]} GET: /v1/nodes {} GOT:{'nodes': []} 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-aab3f8ce-d238-4e43-8bee-ae1836860a5e 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?fields=name&limit=2 {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a227dbd9-56b1-4673-8c69-8c30715da50f', 'rel': 'self'}, {'href': 'http://localhost/nodes/a227dbd9-56b1-4673-8c69-8c30715da50f', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/708297f8-8bdd-4655-8d70-19cabf1f2bf7', 'rel': 'self'}, {'href': 'http://localhost/nodes/708297f8-8bdd-4655-8d70-19cabf1f2bf7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=708297f8-8bdd-4655-8d70-19cabf1f2bf7'} 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?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=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-268de81d-e1d8-4c04-b54b-095c0d7fe119 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_get_custom_fields_invalid_api_version [0.065680s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.115321s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.269320s] ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '62a5fc22-131b-4ae7-800a-5032eeb1618a'} GOT:Response: 204 No Content Openstack-Request-Id: req-0e6cb03a-0bc3-4efe-8ac7-1b6484a3c466 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': '4a194f74-c897-4fc5-9ae6-13d0ffd17f08'} GOT:Response: 204 No Content Openstack-Request-Id: req-4e491643-58d6-45c9-b242-08653a9689f0 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-32b949cf-1ab4-4640-b60a-0cea91d20e16 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': '2f551b63-23ae-4365-9eef-8ea518faffa4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72506c14-2917-4117-979e-3ddd686bb23d 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/doesntexist/vifs {'id': 'ed3598f4-91e0-4dd8-a8ac-5a30dab78b35'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-80f08e40-fdaf-4b00-9a2d-a2ddac79d44f 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/39bb8966-a1db-49d9-ae5f-e7a8efe3fd0e GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c1007706-7a55-4ab7-80e8-55890bc80d91 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/f638338b-a162-4a2f-a44b-bf5b4dda0efb GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cd7e394e-0985-4158-b2b2-b779bef3c717 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 {} 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-02-18T09:13:41.095106+00:00', 'updated_at': None}} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content Openstack-Request-Id: req-54b98426-8a1d-4165-8bca-292a4b8dc0d7 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.1 GOT:Response: 204 No Content Openstack-Request-Id: req-76445c3c-754e-4ee1-a2e3-9c905c8697e8 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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-47925256-4c27-48fe-9736-c655ff7aeba3 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-1cf11900-6d1e-455b-843e-0cb96a378130 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-681f85d0-cb50-40b0-bd89-734fe27e8a9d 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/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f7d0047-c515-429a-b394-bd57ae1f8647 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}"} GET: /v1/nodes/?limit=3 {} GOT:{'nodes': [{'uuid': 'f17828b3-88d2-4efa-82f6-ccf6d1ceabdf', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f17828b3-88d2-4efa-82f6-ccf6d1ceabdf', 'rel': 'self'}, {'href': 'http://localhost/nodes/f17828b3-88d2-4efa-82f6-ccf6d1ceabdf', 'rel': 'bookmark'}]}, {'uuid': 'de6104bb-0d73-4266-80f3-50b242d36734', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/de6104bb-0d73-4266-80f3-50b242d36734', 'rel': 'self'}, {'href': 'http://localhost/nodes/de6104bb-0d73-4266-80f3-50b242d36734', 'rel': 'bookmark'}]}, {'uuid': 'e35bd23c-1b3b-4bda-b05a-a7cf833be350', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e35bd23c-1b3b-4bda-b05a-a7cf833be350', 'rel': 'self'}, {'href': 'http://localhost/nodes/e35bd23c-1b3b-4bda-b05a-a7cf833be350', '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=e35bd23c-1b3b-4bda-b05a-a7cf833be350'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '2f4baf8a-d92d-4589-8427-b3ebfc2b5af5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2f4baf8a-d92d-4589-8427-b3ebfc2b5af5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f4baf8a-d92d-4589-8427-b3ebfc2b5af5', 'rel': 'bookmark'}]}, {'uuid': '5cd13415-eed3-4e71-a842-d0d887900fe5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5cd13415-eed3-4e71-a842-d0d887900fe5', 'rel': 'self'}, {'href': 'http://localhost/nodes/5cd13415-eed3-4e71-a842-d0d887900fe5', 'rel': 'bookmark'}]}, {'uuid': 'e9b83c96-e55c-423d-b57c-5cd831742494', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e9b83c96-e55c-423d-b57c-5cd831742494', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9b83c96-e55c-423d-b57c-5cd831742494', '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=e9b83c96-e55c-423d-b57c-5cd831742494'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.186193s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.085451s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.102249s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.049964s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.205143s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.050853s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.117694s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.047868s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5bd00e85-4d66-4731-b51c-e240c8e3b793 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': 'bd1c008e-272f-4caf-a205-729fbb77e0f4', '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/bd1c008e-272f-4caf-a205-729fbb77e0f4', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd1c008e-272f-4caf-a205-729fbb77e0f4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd1c008e-272f-4caf-a205-729fbb77e0f4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd1c008e-272f-4caf-a205-729fbb77e0f4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bd1c008e-272f-4caf-a205-729fbb77e0f4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd1c008e-272f-4caf-a205-729fbb77e0f4/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:42.247034+00:00'}, {'uuid': 'a82aee72-63fe-4297-9206-42694b675ce3', '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/a82aee72-63fe-4297-9206-42694b675ce3', 'rel': 'self'}, {'href': 'http://localhost/nodes/a82aee72-63fe-4297-9206-42694b675ce3', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a82aee72-63fe-4297-9206-42694b675ce3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a82aee72-63fe-4297-9206-42694b675ce3/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a82aee72-63fe-4297-9206-42694b675ce3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a82aee72-63fe-4297-9206-42694b675ce3/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:42.240786+00:00'}, {'uuid': 'ce8bd70d-a5e0-42e2-8afe-6ff7052a3791', '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/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce8bd70d-a5e0-42e2-8afe-6ff7052a3791/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:42.234167+00:00'}]} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-773a47cf-6a94-4f12-a140-170ce120147e 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-02-18T09:13:42.401969+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.109436s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.197016s] ... ok 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?conductor=rocky.rocks {} GOT:{'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': '5d39d5af-246d-4df3-9a3c-279de1e90549', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5d39d5af-246d-4df3-9a3c-279de1e90549', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d39d5af-246d-4df3-9a3c-279de1e90549', 'rel': 'bookmark'}]}, {'uuid': 'cc437df6-54aa-4241-87a1-7c373c1948ac', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cc437df6-54aa-4241-87a1-7c373c1948ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc437df6-54aa-4241-87a1-7c373c1948ac', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': 'cc437df6-54aa-4241-87a1-7c373c1948ac', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cc437df6-54aa-4241-87a1-7c373c1948ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc437df6-54aa-4241-87a1-7c373c1948ac', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b755727b-ad6c-48f2-964b-200ec198d07e 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-bf0d710d-9cb5-4036-82d3-87a79b9ff04d 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?conductor=rocky.rocks {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0b0178c3-a77c-4ef7-9a1c-6cc99a8a5757 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-baf9a5c8-d860-4e9e-a719-6d4a3882bb40 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': 'c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=clean failure {} GOT:{'nodes': [{'uuid': '8253da7d-79d5-429e-bb52-5097044e6518', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8253da7d-79d5-429e-bb52-5097044e6518', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{'nodes': [{'uuid': 'c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', '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/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4f44efa-a0e6-4eac-9c1c-d8f87f357b48/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-02-18T09:13:42.280935+00:00'}]} GET: /v1/nodes/detail?fault=clean failure {} GOT:{'nodes': [{'uuid': '8253da7d-79d5-429e-bb52-5097044e6518', '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/8253da7d-79d5-429e-bb52-5097044e6518', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8253da7d-79d5-429e-bb52-5097044e6518/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8253da7d-79d5-429e-bb52-5097044e6518/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8253da7d-79d5-429e-bb52-5097044e6518/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8253da7d-79d5-429e-bb52-5097044e6518/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8253da7d-79d5-429e-bb52-5097044e6518/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-02-18T09:13:42.287604+00:00'}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.349795s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.137208s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.071903s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.182420s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.077488s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.173584s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.073794s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.051821s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.047398s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.076039s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.048449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.077439s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.075349s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.073605s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.071523s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.119480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.061231s] ... ok GET: /v1/nodes/detail?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-02aaffc4-53a6-4751-86eb-98c46b9b5544 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-04ff583a-063d-4307-a0ed-888ef7ac66d7 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?resource_class=foo {} GOT:{'nodes': [{'uuid': '22a3736f-d5f1-4901-8e58-ed57bf89a9c2', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/22a3736f-d5f1-4901-8e58-ed57bf89a9c2', 'rel': 'self'}, {'href': 'http://localhost/nodes/22a3736f-d5f1-4901-8e58-ed57bf89a9c2', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=bar {} GOT:{'nodes': [{'uuid': '4beaef8e-a904-4fd0-8557-bdc6c9393e38', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4beaef8e-a904-4fd0-8557-bdc6c9393e38', 'rel': 'self'}, {'href': 'http://localhost/nodes/4beaef8e-a904-4fd0-8557-bdc6c9393e38', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-24ab262a-e8da-487e-b2b6-1672ae1199bf 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?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-695446a6-721b-4417-a325-10a9846c6125 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-220fa576-e4d5-40cf-be58-95203b816f02 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-02-18T09:13:43.170825+00:00'} 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/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-02-18T09:13:43.315877+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json [0.077133s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.178198s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.094940s] ... ok 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/detail?associated=true {} GOT:{'nodes': [{'uuid': '91be6dcd-b844-4fec-b701-d10d86db90a9', 'instance_uuid': '24ccd408-d0a8-4fbb-87d6-3cf85763df98', '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/91be6dcd-b844-4fec-b701-d10d86db90a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/91be6dcd-b844-4fec-b701-d10d86db90a9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/91be6dcd-b844-4fec-b701-d10d86db90a9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/91be6dcd-b844-4fec-b701-d10d86db90a9/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:42.758077+00:00'}, {'uuid': '5f9d2466-99f3-4db3-ab3c-1d4996d492ad', 'instance_uuid': 'aaa78ec1-72af-4a0b-a9a6-c15e491d502d', '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/5f9d2466-99f3-4db3-ab3c-1d4996d492ad', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f9d2466-99f3-4db3-ab3c-1d4996d492ad', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5f9d2466-99f3-4db3-ab3c-1d4996d492ad/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5f9d2466-99f3-4db3-ab3c-1d4996d492ad/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:42.764475+00:00'}, {'uuid': '2331bd54-5a4a-4cbf-b57d-e3ef9ceef951', 'instance_uuid': 'b75290f0-c4ca-43aa-b445-09ee1af77356', '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/2331bd54-5a4a-4cbf-b57d-e3ef9ceef951', 'rel': 'self'}, {'href': 'http://localhost/nodes/2331bd54-5a4a-4cbf-b57d-e3ef9ceef951', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2331bd54-5a4a-4cbf-b57d-e3ef9ceef951/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2331bd54-5a4a-4cbf-b57d-e3ef9ceef951/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:42.771234+00:00'}, {'uuid': '2e586ed6-cdc2-4664-be46-a72cc527a753', 'instance_uuid': 'ebd2be80-9c9f-409c-8760-67b3f1fb6810', '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/2e586ed6-cdc2-4664-be46-a72cc527a753', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e586ed6-cdc2-4664-be46-a72cc527a753', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2e586ed6-cdc2-4664-be46-a72cc527a753/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e586ed6-cdc2-4664-be46-a72cc527a753/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:42.778333+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=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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f70ab194-0128-4b78-a0b3-389be789b5a5 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=uuid,instance_info {} GOT:{'nodes': [{'uuid': '0f2c6c45-99b5-459e-8e20-3f84f24a4624', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/0f2c6c45-99b5-459e-8e20-3f84f24a4624', 'rel': 'self'}, {'href': 'http://localhost/nodes/0f2c6c45-99b5-459e-8e20-3f84f24a4624', 'rel': 'bookmark'}]}, {'uuid': '0366b0a7-eec0-4e0b-ac27-8856cdfbd33e', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/0366b0a7-eec0-4e0b-ac27-8856cdfbd33e', 'rel': 'self'}, {'href': 'http://localhost/nodes/0366b0a7-eec0-4e0b-ac27-8856cdfbd33e', 'rel': 'bookmark'}]}, {'uuid': '842c5e57-7968-4b00-b15e-657e89df6a8b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/842c5e57-7968-4b00-b15e-657e89df6a8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/842c5e57-7968-4b00-b15e-657e89df6a8b', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dbf4c3a7-8078-473a-a0a0-46912b7a3357 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:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9d421fe2-918e-4143-939f-976780f30a69 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.058966s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.121501s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.125253s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.095489s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.058441s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.076529s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.074848s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.075490s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.076793s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.070711s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.076791s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.071935s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.059120s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.059371s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.106747s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.312416s] ... ok 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-02-18T09:13:43.420970+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} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3a0fa51b-4bdf-481a-bea6-929907ec037c 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/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-23813da4-9bcd-415d-b5c7-7514d7f95b1b 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:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4ec4d07b-915d-44ec-a346-6940353fb67f 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-02-18T09:13:44.118466+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-02-18T09:13:44.118466+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-02-18T09:13:44.225334+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.146721s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.163812s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.106139s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/spam/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-a049c084-31a3-4a8d-926a-80c7fff03f0b 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-1eeb9110-f8f8-4477-aff8-241d747f0f2d 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b46d8950-57e3-4e71-a8d5-ecea18f52bda 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:{'nodes': [{'uuid': '176497e9-4f1a-45bb-bf4a-c6ec942d3068', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '7275c0a5-ebd6-4ee2-aea5-89173f0756a5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{'nodes': [{'uuid': '176497e9-4f1a-45bb-bf4a-c6ec942d3068', '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/176497e9-4f1a-45bb-bf4a-c6ec942d3068', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/176497e9-4f1a-45bb-bf4a-c6ec942d3068/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-02-18T09:13:44.121119+00:00'}]} GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '7275c0a5-ebd6-4ee2-aea5-89173f0756a5', '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/7275c0a5-ebd6-4ee2-aea5-89173f0756a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7275c0a5-ebd6-4ee2-aea5-89173f0756a5/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-02-18T09:13:44.127730+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-b8043a04-9164-4234-996c-4711a0e2cefd 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.219967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.271083s] ... 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', 'owner': None, 'description': 'useful piece', 'updated_at': None, 'created_at': '2020-02-18T09:13:44.225334+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-02-18T09:13:44.401625+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-02-18T09:13:44.401625+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-02-18T09:13:44.538592+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-02-18T09:13:44.538592+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'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:44.648541+00:00'}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.249735s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.158755s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.181104s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.073576s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.070416s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.201293s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.088597s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.049367s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.122987s] ... 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'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-02-18T09:13:44.648541+00:00'}]} GET: /v1/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7 {} GOT:{'uuid': 'b9b8840c-3d8f-4fb5-a192-4802e08772a7', '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/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:44.908140+00:00'} GET: /v1/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7 {} GOT:{'uuid': 'b9b8840c-3d8f-4fb5-a192-4802e08772a7', '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/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:44.908140+00:00'} GET: /nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7 {} GOT:{'uuid': 'b9b8840c-3d8f-4fb5-a192-4802e08772a7', '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/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b9b8840c-3d8f-4fb5-a192-4802e08772a7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:44.908140+00:00'} GET: /v1/nodes?maintenance=true {} GOT:{'nodes': [{'uuid': 'f0879446-1ce0-4bb2-9db8-ace157fbb0f7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/f0879446-1ce0-4bb2-9db8-ace157fbb0f7', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0879446-1ce0-4bb2-9db8-ace157fbb0f7', 'rel': 'bookmark'}]}, {'uuid': 'e3d6fcbe-51f2-4d3b-b1cc-6bf11328124c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/e3d6fcbe-51f2-4d3b-b1cc-6bf11328124c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3d6fcbe-51f2-4d3b-b1cc-6bf11328124c', 'rel': 'bookmark'}]}]} GET: /v1/nodes?maintenance=false {} GOT:{'nodes': [{'uuid': 'e52c1a66-8c6c-4d35-b3b0-71ef3b107ff1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e52c1a66-8c6c-4d35-b3b0-71ef3b107ff1', 'rel': 'self'}, {'href': 'http://localhost/nodes/e52c1a66-8c6c-4d35-b3b0-71ef3b107ff1', 'rel': 'bookmark'}]}, {'uuid': 'afdd2ea0-36c5-4c9d-a3c4-8e06dacdc082', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/afdd2ea0-36c5-4c9d-a3c4-8e06dacdc082', 'rel': 'self'}, {'href': 'http://localhost/nodes/afdd2ea0-36c5-4c9d-a3c4-8e06dacdc082', 'rel': 'bookmark'}]}, {'uuid': 'c2bb48fa-6699-4bf5-82e1-c6d04161cf4f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c2bb48fa-6699-4bf5-82e1-c6d04161cf4f', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2bb48fa-6699-4bf5-82e1-c6d04161cf4f', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=false {} GOT:{'nodes': [{'uuid': '5aac4008-2d66-4c06-b157-65f839a87ff6', 'instance_uuid': '6a498b3f-4bcb-42f4-85d1-0a6e71538da4', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5aac4008-2d66-4c06-b157-65f839a87ff6', 'rel': 'self'}, {'href': 'http://localhost/nodes/5aac4008-2d66-4c06-b157-65f839a87ff6', 'rel': 'bookmark'}]}, {'uuid': '127850ed-fe3f-4fe4-9cb8-25d79e96add5', 'instance_uuid': 'ea2697c2-eae0-4585-8fb0-49a39b45752f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/127850ed-fe3f-4fe4-9cb8-25d79e96add5', 'rel': 'self'}, {'href': 'http://localhost/nodes/127850ed-fe3f-4fe4-9cb8-25d79e96add5', 'rel': 'bookmark'}]}, {'uuid': '45e8da7c-a6e8-4702-b5b4-a2d121f3ea89', 'instance_uuid': 'df8514e5-4aa5-48d5-9d2a-83283c264d29', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/45e8da7c-a6e8-4702-b5b4-a2d121f3ea89', 'rel': 'self'}, {'href': 'http://localhost/nodes/45e8da7c-a6e8-4702-b5b4-a2d121f3ea89', 'rel': 'bookmark'}]}, {'uuid': '03324825-9ff2-4511-be2c-384ff6958772', 'instance_uuid': 'a021ddc4-f51d-4f2a-a95d-6fb055480026', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/03324825-9ff2-4511-be2c-384ff6958772', 'rel': 'self'}, {'href': 'http://localhost/nodes/03324825-9ff2-4511-be2c-384ff6958772', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.341896s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.052462s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.104300s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.143710s] ... ok GET: /v1/nodes?description_contains=cat {} GOT:{'nodes': [{'uuid': 'f0bc1ee8-5978-4e06-a347-7139d3ff0d4d', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f0bc1ee8-5978-4e06-a347-7139d3ff0d4d', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0bc1ee8-5978-4e06-a347-7139d3ff0d4d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?description_contains=dog {} GOT:{'nodes': [{'uuid': 'd7ad09c8-d07e-4c92-bc68-b2b0218b6064', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d7ad09c8-d07e-4c92-bc68-b2b0218b6064', 'rel': 'self'}, {'href': 'http://localhost/nodes/d7ad09c8-d07e-4c92-bc68-b2b0218b6064', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=ipmi {} GOT:{'nodes': [{'uuid': '0ba044b2-9104-45ee-8733-311469acf5ae', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0ba044b2-9104-45ee-8733-311469acf5ae', 'rel': 'self'}, {'href': 'http://localhost/nodes/0ba044b2-9104-45ee-8733-311469acf5ae', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{'nodes': [{'uuid': 'ef67d1c9-1bd0-4bbc-97c6-dcdacdb0fb70', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ef67d1c9-1bd0-4bbc-97c6-dcdacdb0fb70', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef67d1c9-1bd0-4bbc-97c6-dcdacdb0fb70', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3b7ef5b3-5004-4032-b503-4aa2cd2c88de 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-49f19c1f-4f4f-462c-944f-820ad3f97bc4 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-3b5b10b1-e63f-4a52-aad1-fbe1b7ca59ec 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-d4ce7584-78da-461d-b2a1-f95654aad6ee 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-df493299-e6a4-486f-a74f-01c620661d21 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?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes?owner=fred {} GOT:{'nodes': [{'uuid': 'b5413e62-a03e-42d7-bf74-0565dc6aed08', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08', 'rel': 'bookmark'}]}]} GET: /v1/nodes?owner=bob {} GOT:{'nodes': [{'uuid': '31010684-d442-4a7d-896d-c4cb47d3f70a', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?owner=fred {} GOT:{'nodes': [{'uuid': 'b5413e62-a03e-42d7-bf74-0565dc6aed08', '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/b5413e62-a03e-42d7-bf74-0565dc6aed08', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5413e62-a03e-42d7-bf74-0565dc6aed08/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-02-18T09:13:45.537726+00:00'}]} GET: /v1/nodes/detail?owner=bob {} GOT:{'nodes': [{'uuid': '31010684-d442-4a7d-896d-c4cb47d3f70a', '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/31010684-d442-4a7d-896d-c4cb47d3f70a', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/31010684-d442-4a7d-896d-c4cb47d3f70a/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-02-18T09:13:45.544560+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.311359s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.237650s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.051867s] ... ok GET: /v1/nodes?associated=true&maintenance=true {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '50523389-ea57-4aea-9ba9-e50f48aa3be6', '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': '50523389-ea57-4aea-9ba9-e50f48aa3be6', '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-fc51619b-246b-4585-ab09-72b98f57d679 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}"} 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-02-18T09:13:45.654434+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': '******'}, '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-02-18T09:13:45.654434+00:00'} GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{'nodes': [{'uuid': 'dc01e53b-d23b-4cec-868b-0fd6ebd4fafe', 'instance_uuid': 'd40da2f5-e95a-483a-9d7c-3d693ae79e9e', '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/dc01e53b-d23b-4cec-868b-0fd6ebd4fafe', 'rel': 'self'}, {'href': 'http://localhost/nodes/dc01e53b-d23b-4cec-868b-0fd6ebd4fafe', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/dc01e53b-d23b-4cec-868b-0fd6ebd4fafe/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dc01e53b-d23b-4cec-868b-0fd6ebd4fafe/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:45.778617+00:00'}, {'uuid': '14fa980a-50ea-4e40-bbdd-12eb51a7c5ec', 'instance_uuid': '3ede94fc-2344-4586-a765-0d89bee8da1e', '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/14fa980a-50ea-4e40-bbdd-12eb51a7c5ec', 'rel': 'self'}, {'href': 'http://localhost/nodes/14fa980a-50ea-4e40-bbdd-12eb51a7c5ec', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/14fa980a-50ea-4e40-bbdd-12eb51a7c5ec/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/14fa980a-50ea-4e40-bbdd-12eb51a7c5ec/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:45.784900+00:00'}, {'uuid': '1e62174f-3b53-4080-a7de-39fed5d144fc', 'instance_uuid': '89236b2e-fa20-4d01-a7f2-ea10203bfbd3', '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/1e62174f-3b53-4080-a7de-39fed5d144fc', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e62174f-3b53-4080-a7de-39fed5d144fc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1e62174f-3b53-4080-a7de-39fed5d144fc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e62174f-3b53-4080-a7de-39fed5d144fc/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:45.791111+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=1e62174f-3b53-4080-a7de-39fed5d144fc'} 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-02-18T09:13:45.914866+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.152052s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.131681s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.175374s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.153402s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.050272s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.072410s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.072876s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.072434s] ... 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': True, 'updated_at': None, 'created_at': '2020-02-18T09:13:46.066504+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-02-18T09:13:46.209909+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-02-18T09:13:46.209909+00:00'} GET: /v1/nodes?instance_uuid=0bbd40cb-fd22-476b-8203-2169f79c11fb {} GOT:{'nodes': [{'uuid': '166176c8-f7bf-48d5-bdbf-e4db520aa4e8', 'instance_uuid': '0bbd40cb-fd22-476b-8203-2169f79c11fb', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/166176c8-f7bf-48d5-bdbf-e4db520aa4e8', 'rel': 'self'}, {'href': 'http://localhost/nodes/166176c8-f7bf-48d5-bdbf-e4db520aa4e8', '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, '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-02-18T09:13:46.423930+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.119327s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.138784s] ... ok GET: /v1/nodes?provision_state=available {} GOT:{'nodes': [{'uuid': 'f0ce3de9-74e2-4bd5-ba91-1297884ca750', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f0ce3de9-74e2-4bd5-ba91-1297884ca750', 'rel': 'self'}, {'href': 'http://localhost/nodes/f0ce3de9-74e2-4bd5-ba91-1297884ca750', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=deploying {} GOT:{'nodes': [{'uuid': '99212196-45d9-411d-a129-b8d681b32754', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/99212196-45d9-411d-a129-b8d681b32754', 'rel': 'self'}, {'href': 'http://localhost/nodes/99212196-45d9-411d-a129-b8d681b32754', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4b2559e2-888c-4310-8f24-7ad7b38fbedd 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=foo {} GOT:{'nodes': [{'uuid': 'ed8e0603-78b3-4306-8269-209ef4e2aeeb', '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/ed8e0603-78b3-4306-8269-209ef4e2aeeb', 'rel': 'self'}, {'href': 'http://localhost/nodes/ed8e0603-78b3-4306-8269-209ef4e2aeeb', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ed8e0603-78b3-4306-8269-209ef4e2aeeb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ed8e0603-78b3-4306-8269-209ef4e2aeeb/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ed8e0603-78b3-4306-8269-209ef4e2aeeb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ed8e0603-78b3-4306-8269-209ef4e2aeeb/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:46.129397+00:00'}]} GET: /v1/nodes/detail?resource_class=bar {} GOT:{'nodes': [{'uuid': 'bbf04b41-71e5-4913-835e-91bc2c62c19d', '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/bbf04b41-71e5-4913-835e-91bc2c62c19d', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbf04b41-71e5-4913-835e-91bc2c62c19d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bbf04b41-71e5-4913-835e-91bc2c62c19d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbf04b41-71e5-4913-835e-91bc2c62c19d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bbf04b41-71e5-4913-835e-91bc2c62c19d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbf04b41-71e5-4913-835e-91bc2c62c19d/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:46.136422+00:00'}]} GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bb7217f5-b418-4d87-88c7-a08f29f77cdc 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.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-02-18T09:13:46.430089+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-02-18T09:13:46.516547+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.155981s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.130230s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.110977s] ... 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': '', 'updated_at': None, 'created_at': '2020-02-18T09:13:46.423930+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-02-18T09:13:46.537217+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-02-18T09:13:46.537217+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-02-18T09:13:46.677934+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.078509s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.194559s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.114134s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.122321s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.156614s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.142520s] ... 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', 'owner': 'akindofmagic', 'updated_at': None, 'created_at': '2020-02-18T09:13:46.798785+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-02-18T09:13:46.964647+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-02-18T09:13:46.964647+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-02-18T09:13:47.074371+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.149438s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.153560s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.073744s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.104467s] ... 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=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': '7200062f-cf52-462a-bc19-1ba7d4b6cd6d'} 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-02-18T09:13:47.014751+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-02-18T09:13:47.014751+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-02-18T09:13:47.174856+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-02-18T09:13:47.174856+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-02-18T09:13:47.318447+00:00'}]}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.238801s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.178341s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.181189s] ... 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': '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-02-18T09:13:47.318447+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-02-18T09:13:47.577325+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': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:47.577325+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-02-18T09:13:47.737070+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-02-18T09:13:47.074371+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': {}, '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-02-18T09:13:47.232048+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-02-18T09:13:47.232048+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 {} 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:{'portgroups': [{'uuid': 'b44f3bdd-de84-436f-8351-533886d6a7bc', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/b44f3bdd-de84-436f-8351-533886d6a7bc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b44f3bdd-de84-436f-8351-533886d6a7bc', 'rel': 'bookmark'}]}, {'uuid': 'b52b81b4-649a-4654-8561-0099cec3777d', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/b52b81b4-649a-4654-8561-0099cec3777d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b52b81b4-649a-4654-8561-0099cec3777d', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} GOT:{'portgroups': [{'uuid': 'b44f3bdd-de84-436f-8351-533886d6a7bc', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/b44f3bdd-de84-436f-8351-533886d6a7bc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b44f3bdd-de84-436f-8351-533886d6a7bc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=b44f3bdd-de84-436f-8351-533886d6a7bc'} 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-02-18T09:13:47.739921+00:00'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.076622s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.270539s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.197984s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.096164s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.117076s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.433216s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.123953s] ... 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': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2020-02-18T09:13:47.737070+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-02-18T09:13:47.977117+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, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:47.977117+00:00'} GET: /v1/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf {} GOT:{'uuid': 'fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', '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/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:48.377310+00:00'} GET: /v1/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf {} GOT:{'uuid': 'fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', '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/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:48.377310+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.186941s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.250658s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.162069s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.073749s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.056522s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.145963s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.066726s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.144987s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:{'ports': [{'uuid': '8529df8e-f7de-43a2-8b9b-7458f800ac46', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8529df8e-f7de-43a2-8b9b-7458f800ac46', 'rel': 'self'}, {'href': 'http://localhost/ports/8529df8e-f7de-43a2-8b9b-7458f800ac46', 'rel': 'bookmark'}]}, {'uuid': '84a02d87-6990-41c5-b46a-b567281a38c3', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/84a02d87-6990-41c5-b46a-b567281a38c3', 'rel': 'self'}, {'href': 'http://localhost/ports/84a02d87-6990-41c5-b46a-b567281a38c3', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{'ports': [{'uuid': '8529df8e-f7de-43a2-8b9b-7458f800ac46', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/8529df8e-f7de-43a2-8b9b-7458f800ac46', 'rel': 'self'}, {'href': 'http://localhost/ports/8529df8e-f7de-43a2-8b9b-7458f800ac46', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=8529df8e-f7de-43a2-8b9b-7458f800ac46'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-43197cdf-0b48-4cd7-bf69-f38b9423c801 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?sort_key=uuid {} GOT:{'nodes': [{'uuid': '06b5f3f5-65e4-44ad-aff2-a87efb79c4fd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/06b5f3f5-65e4-44ad-aff2-a87efb79c4fd', 'rel': 'self'}, {'href': 'http://localhost/nodes/06b5f3f5-65e4-44ad-aff2-a87efb79c4fd', 'rel': 'bookmark'}]}, {'uuid': 'd4d45270-5369-46c0-8606-5ad22294858c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d4d45270-5369-46c0-8606-5ad22294858c', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4d45270-5369-46c0-8606-5ad22294858c', 'rel': 'bookmark'}]}, {'uuid': 'ecba4560-922c-46d7-a238-ee0bd3bc22f6', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ecba4560-922c-46d7-a238-ee0bd3bc22f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecba4560-922c-46d7-a238-ee0bd3bc22f6', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=resource_class {} GOT:{'nodes': [{'uuid': '21d281f6-8bcf-4e3a-a768-364c7c64ddeb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/21d281f6-8bcf-4e3a-a768-364c7c64ddeb', 'rel': 'self'}, {'href': 'http://localhost/nodes/21d281f6-8bcf-4e3a-a768-364c7c64ddeb', 'rel': 'bookmark'}]}, {'uuid': '6c13a2bb-b650-45b7-828a-75ff33b4b8f2', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6c13a2bb-b650-45b7-828a-75ff33b4b8f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c13a2bb-b650-45b7-828a-75ff33b4b8f2', 'rel': 'bookmark'}]}, {'uuid': 'c57266cf-4545-43ed-899e-d3bfa7efcab9', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c57266cf-4545-43ed-899e-d3bfa7efcab9', 'rel': 'self'}, {'href': 'http://localhost/nodes/c57266cf-4545-43ed-899e-d3bfa7efcab9', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb2aea64-7a95-45d4-8029-73ed210cf66a 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/nodes?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-983f4151-dc24-4ac8-b27e-90a9d621981b 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-4aba7eb1-b4db-4895-9a49-1111ffe8f185 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-53758ea4-e028-444e-a091-77936bdc4894 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-7b3969ca-512a-4215-b8ea-98fcce5dbefb 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-651fe262-3ed4-47c5-bf02-9d8ff6da3d44 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-c9aa12df-f9e8-474f-8a3f-2cfc8310f7bd 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-0f419590-1d8f-414a-871a-39df93913e3d 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/validate?node=spam {} GOT:{} GET: /v1/nodes/validate?node=spam {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-089506d3-db14-4d41-b3c3-d65a1a7b4614 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/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:{'connectors': [{'uuid': '70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'rel': 'bookmark'}]}, {'uuid': 'fba880ca-1b13-40de-8cae-1a06184842f5', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/fba880ca-1b13-40de-8cae-1a06184842f5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fba880ca-1b13-40de-8cae-1a06184842f5', 'rel': 'bookmark'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.217348s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.090664s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.130645s] ... ok GET: /nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf {} GOT:{'uuid': 'fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', '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/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd295c06-8a95-47ca-ab8d-95b91a2fe5bf/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-02-18T09:13:48.377310+00:00'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '7cb6321e-a828-4c1e-b0cf-aef383421d71', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7cb6321e-a828-4c1e-b0cf-aef383421d71', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cb6321e-a828-4c1e-b0cf-aef383421d71', 'rel': 'bookmark'}]}, {'uuid': 'd34c3680-646d-40d4-a2a2-918e124a7e8d', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d34c3680-646d-40d4-a2a2-918e124a7e8d', 'rel': 'self'}, {'href': 'http://localhost/nodes/d34c3680-646d-40d4-a2a2-918e124a7e8d', 'rel': 'bookmark'}]}, {'uuid': 'a13d077c-6ae2-4353-bcc9-bc0bb7756910', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a13d077c-6ae2-4353-bcc9-bc0bb7756910', 'rel': 'self'}, {'href': 'http://localhost/nodes/a13d077c-6ae2-4353-bcc9-bc0bb7756910', 'rel': 'bookmark'}]}, {'uuid': '9d3d7faf-0b9b-4974-a3be-9e6bec381061', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9d3d7faf-0b9b-4974-a3be-9e6bec381061', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d3d7faf-0b9b-4974-a3be-9e6bec381061', 'rel': 'bookmark'}]}, {'uuid': '41f88160-35d2-4f5f-901f-b1266ad05a2c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/41f88160-35d2-4f5f-901f-b1266ad05a2c', 'rel': 'self'}, {'href': 'http://localhost/nodes/41f88160-35d2-4f5f-901f-b1266ad05a2c', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '8befb3f8-1ecb-4a1e-92f0-b39c61d55dc9', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8befb3f8-1ecb-4a1e-92f0-b39c61d55dc9', 'rel': 'self'}, {'href': 'http://localhost/nodes/8befb3f8-1ecb-4a1e-92f0-b39c61d55dc9', 'rel': 'bookmark'}]}, {'uuid': 'd8320aa5-80a3-440c-a995-3787e7058a6c', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d8320aa5-80a3-440c-a995-3787e7058a6c', 'rel': 'self'}, {'href': 'http://localhost/nodes/d8320aa5-80a3-440c-a995-3787e7058a6c', 'rel': 'bookmark'}]}, {'uuid': '20e5ed26-44f6-4dae-a174-c4c537967902', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/20e5ed26-44f6-4dae-a174-c4c537967902', 'rel': 'self'}, {'href': 'http://localhost/nodes/20e5ed26-44f6-4dae-a174-c4c537967902', 'rel': 'bookmark'}]}, {'uuid': '3175d2ee-0bef-40ac-8995-f607314e48f2', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3175d2ee-0bef-40ac-8995-f607314e48f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/3175d2ee-0bef-40ac-8995-f607314e48f2', 'rel': 'bookmark'}]}, {'uuid': '591a378f-2db8-489c-bfa4-1ee4e9002859', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/591a378f-2db8-489c-bfa4-1ee4e9002859', 'rel': 'self'}, {'href': 'http://localhost/nodes/591a378f-2db8-489c-bfa4-1ee4e9002859', 'rel': 'bookmark'}]}]} GET: /v1/nodes/?limit=3&associated=True {} GOT:{'nodes': [{'uuid': '58a8cad5-12b4-43cc-b349-ec30e23e6ac2', 'instance_uuid': '0717e60b-1fd4-4894-bd19-4ee7ad32b193', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/58a8cad5-12b4-43cc-b349-ec30e23e6ac2', 'rel': 'self'}, {'href': 'http://localhost/nodes/58a8cad5-12b4-43cc-b349-ec30e23e6ac2', 'rel': 'bookmark'}]}, {'uuid': '84982b12-c9e2-4b17-9220-2dbdbbade4fd', 'instance_uuid': '58d478e3-90ed-4729-8901-156d033997f8', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/84982b12-c9e2-4b17-9220-2dbdbbade4fd', 'rel': 'self'}, {'href': 'http://localhost/nodes/84982b12-c9e2-4b17-9220-2dbdbbade4fd', 'rel': 'bookmark'}]}, {'uuid': 'd5f676dd-c62d-40e3-8da7-3a9bec608966', 'instance_uuid': '3520ea76-c568-4422-826d-235717178bd7', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d5f676dd-c62d-40e3-8da7-3a9bec608966', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5f676dd-c62d-40e3-8da7-3a9bec608966', '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=d5f676dd-c62d-40e3-8da7-3a9bec608966'} 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-02-18T09:13:49.019566+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.169810s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.156756s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.078377s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.065357s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.068087s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.174264s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.071859s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.073010s] ... 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-02-18T09:13:49.019566+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-02-18T09:13:49.215802+00:00'} GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6509016-b486-4ff6-9d77-46853552ee05 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=edef14e2-2349-42df-b464-b6f5d74f9487 {} 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': {}, '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-02-18T09:13:49.483991+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-02-18T09:13:49.483991+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.113751s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.152915s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.127493s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.119173s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.072657s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.078652s] ... 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', 'owner': None, 'description': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:49.619066+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-02-18T09:13:49.752312+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-02-18T09:13:49.752312+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-02-18T09:13:49.872993+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.151286s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.143517s] ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{'connectors': [{'uuid': '70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=1&marker=70f181c9-e07f-47d6-8f99-ddcb9ccb7bb0'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f83c5e5a-5e97-4779-9ec8-c4503df48f5f 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-2edcdaaa-1ab7-4d98-b2f4-e7361296cc02 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:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-17736bd6-9ec1-4646-821c-c774f93f7ef3 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}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:{'targets': [{'uuid': '8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', 'rel': 'bookmark'}]}, {'uuid': '04450f0d-dc98-4025-80d3-2a5044627ef1', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/04450f0d-dc98-4025-80d3-2a5044627ef1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/04450f0d-dc98-4025-80d3-2a5044627ef1', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{'targets': [{'uuid': '8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb', '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=8bc438fb-d8cc-4ef1-82f3-be4f3f0d8bcb'} GET: /v1/nodes/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c141e94-18b9-40d2-a9f7-3f1965b95272 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_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98a28008-a9b9-4d96-81dd-3f7756970556 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/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-f8feb41d-40e6-4aea-859d-2be4b74bd3c3 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-02-18T09:13:49.730896+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-db96c96f-8fd7-4e58-8f2b-f8d20f3242b9 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/adce96be-9ecf-4641-9c7f-8cc97a6d2d71 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fad6029d-3818-4e2f-bbd9-3e48f363dd07 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 adce96be-9ecf-4641-9c7f-8cc97a6d2d71 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} PATCH: /v1/nodes/fff3c691-3b06-47b4-b5d7-b5768000c253 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f979be70-628d-41fd-83ec-c30eb1c47784 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fff3c691-3b06-47b4-b5d7-b5768000c253", "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/fff3c691-3b06-47b4-b5d7-b5768000c253", "rel": "self"}, {"href": "http://localhost/nodes/fff3c691-3b06-47b4-b5d7-b5768000c253", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/fff3c691-3b06-47b4-b5d7-b5768000c253/ports", "rel": "self"}, {"href": "http://localhost/nodes/fff3c691-3b06-47b4-b5d7-b5768000c253/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:50.021664+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.087646s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.134400s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.122745s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.137136s] ... 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-02-18T09:13:49.872993+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-02-18T09:13:50.051771+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-02-18T09:13:50.051771+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-02-18T09:13:50.203454+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.122668s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.147120s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.074857s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.093065s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.092631s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.086390s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.074643s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.067310s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.129736s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.078112s] ... ok GET: /v1/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c {} GOT:{'uuid': 'f5a39a26-ba95-4d08-83c2-9325ea36f55c', '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/f5a39a26-ba95-4d08-83c2-9325ea36f55c', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5a39a26-ba95-4d08-83c2-9325ea36f55c/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-02-18T09:13:50.297785+00:00'} GET: /v1/nodes/824214cc-66cd-47f6-99bc-8749014572f2 {} GOT:{'uuid': '824214cc-66cd-47f6-99bc-8749014572f2', '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/824214cc-66cd-47f6-99bc-8749014572f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/824214cc-66cd-47f6-99bc-8749014572f2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/824214cc-66cd-47f6-99bc-8749014572f2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/824214cc-66cd-47f6-99bc-8749014572f2/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/824214cc-66cd-47f6-99bc-8749014572f2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/824214cc-66cd-47f6-99bc-8749014572f2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/824214cc-66cd-47f6-99bc-8749014572f2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/824214cc-66cd-47f6-99bc-8749014572f2/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/824214cc-66cd-47f6-99bc-8749014572f2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/824214cc-66cd-47f6-99bc-8749014572f2/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-02-18T09:13:50.378346+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-02-18T09:13:50.445637+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'} 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': {}, '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-02-18T09:13:50.688260+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.107820s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.159575s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.079726s] ... 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-02-18T09:13:50.688260+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-02-18T09:13:50.797277+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-02-18T09:13:50.797277+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-02-18T09:13:50.963294+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.093378s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.125938s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.084199s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.042685s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.084238s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.072356s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.062722s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.078234s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.082469s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.074919s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.049712s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked [0.074495s] ... ok 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-6b9cda70-6ad4-4525-b6d8-bd60112b0986 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/e7ef6a4d-1c57-47c0-9dae-838e029e4399 [{'path': '/allocation_uuid', 'op': 'replace', 'value': '90016ab6-13bb-4a2f-a22e-12591d8eab20'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b75b85ce-bcbf-43da-b551-d92b7fb93ef2 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/4c7f8a8a-a301-425a-8aac-9daaf83be33e [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-859ab69e-7a4f-4904-9d40-70e2923e1a6c 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/3ad711f6-0c55-49f6-a5a8-16ba1b4bcb4c [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ce4c527-8614-4beb-917a-f92574a82c43 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/c97deb89-9049-4cb0-ba00-6773e37f5d3f [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c50207f7-20c7-43ae-9557-dd989af285c7 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/8f781389-4dcb-48dd-a0b8-b143626779e4 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-90b0abd4-597c-4212-a161-a8c6b9cff1b9 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 [{'path': '/name', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0de275f8-1959-448a-af76-4c014dc96ca7 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-02-18T09:13:50.746084+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-48165f0a-52f0-4e06-ae67-5fe6d3d0fedd 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-99309c50-b961-45c0-9872-cbc23835101a 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-7c2e4695-2334-4f53-ae7f-cabbe6dc0af1 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-35932b4e-665b-4443-9b6e-b51817b59193 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/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-7d8db74a-0d92-4994-8a33-ddf1f50b3057 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 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c9b33843-421b-43b8-b776-7365b7348ec5 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/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-635f7e81-677a-4c1e-ac40-5621958b6be6 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}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.090322s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.115282s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.101772s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.059804s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.269803s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.253884s] ... ok 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/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-02-18T09:13:51.177769+00:00'} GET: /v1/nodes/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5af14838-07ef-4550-8906-c825d568eb95 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-916226d3-fc22-422b-b4f1-086d72aef05f 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=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-de57df36-d126-4225-9bf1-c78bd51c1002 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/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-02-18T09:13:51.448322+00:00'} GET: /v1/nodes?associated=false {} GOT:{'nodes': [{'uuid': '0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'rel': 'bookmark'}]}, {'uuid': '539863d6-14dd-4d6a-97f1-b287cc2c0985', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/539863d6-14dd-4d6a-97f1-b287cc2c0985', 'rel': 'self'}, {'href': 'http://localhost/nodes/539863d6-14dd-4d6a-97f1-b287cc2c0985', 'rel': 'bookmark'}]}, {'uuid': '19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'rel': 'self'}, {'href': 'http://localhost/nodes/19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=FALSE {} GOT:{'nodes': [{'uuid': '0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a97aa29-7b30-4fd0-9a4f-054dc376e9e2', 'rel': 'bookmark'}]}, {'uuid': '539863d6-14dd-4d6a-97f1-b287cc2c0985', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/539863d6-14dd-4d6a-97f1-b287cc2c0985', 'rel': 'self'}, {'href': 'http://localhost/nodes/539863d6-14dd-4d6a-97f1-b287cc2c0985', 'rel': 'bookmark'}]}, {'uuid': '19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'rel': 'self'}, {'href': 'http://localhost/nodes/19d8a1c5-ab8d-45fd-853e-0cc3221b224a', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=False&limit=2 {} GOT:{'nodes': [{'uuid': 'bc38bfac-5a7c-492b-b5a0-fd91804c209f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bc38bfac-5a7c-492b-b5a0-fd91804c209f', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc38bfac-5a7c-492b-b5a0-fd91804c209f', 'rel': 'bookmark'}]}, {'uuid': 'c16c8e31-5ef3-4d69-ad4a-a6bb668a5fbc', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c16c8e31-5ef3-4d69-ad4a-a6bb668a5fbc', 'rel': 'self'}, {'href': 'http://localhost/nodes/c16c8e31-5ef3-4d69-ad4a-a6bb668a5fbc', '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=c16c8e31-5ef3-4d69-ad4a-a6bb668a5fbc'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.145139s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.121563s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.079693s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.070449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.078598s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init [0.013525s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.058323s] ... ok 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-27393202-8a05-4833-aaf2-7568acd0a0be 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_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b050c29f-25cd-4420-9e85-2f009347881a 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-02-18T09:13:51.627116+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-2370f9f5-ac1e-4f30-82a7-49bd8f1d3e45 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': '/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-9a8a6516-785e-4901-891a-8e8199fc628a 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/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bee83fb4-8872-46ef-8144-8b81663d7131 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"} PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e5e592a-7b8c-45b9-893f-b5e8488b4267 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.064267s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.100180s] ... ok PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ba365bb-bf09-4121-ad83-3ff3170ab58c X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"} PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35c54a92-a330-4abc-b7a0-b0ffa00cf588 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"} PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82f112da-9b97-4cf1-90e7-3aa55f7a0685 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.111333s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.081288s] ... ok PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/power_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0878b9d-b879-4262-837a-3c4019901111 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"} PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9c7ccde-9c04-4039-88a0-3e0e13a6148a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"} PATCH: /v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b [{'path': '/vendor_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77cba62c-9ee8-4cc6-bce1-bbd3762480d7 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "7c29d270-ebc7-4f9d-8e9e-f6376611480b", "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/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/states", "rel": "self"}, {"href": "http://localhost/nodes/7c29d270-ebc7-4f9d-8e9e-f6376611480b/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-02-18T09:13:52.067066+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.569165s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.127533s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.064792s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.112950s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.095224s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.062057s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.069681s] ... ok GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} 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-02-18T09:13:52.141379+00:00'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8eeea208-b591-4a64-9219-7e4fdb02ab76 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}"} 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-2697f936-a74c-4157-bdfc-eb2765dbb83f 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-02-18T09:13:52.429979+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-2bcdadb4-1b00-466f-9649-bb4ed3346389 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-02-18T09:13:52.558010+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-51fb4766-5da7-448c-b985-8a897e2e033b 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/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-63b2b953-e5ff-46c5-b026-ba8990b7f239 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-52fb61c8-2ac5-41d8-8c2c-235a5ff71264 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-02-18T09:13:52.850134+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.093191s] ... 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-eabfcacb-1453-414d-8bd6-a7f947167690 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/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-6922d739-f3bb-458a-aa78-73cd730b4e58 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/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5 [{'path': '/storage_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df636372-c7a7-446c-bd57-6e40742a64fe X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "5948b47a-af86-4e2c-ad53-bb10c1a9b3f5", "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/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5", "rel": "self"}, {"href": "http://localhost/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/ports", "rel": "self"}, {"href": "http://localhost/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/volume", "rel": "self"}, {"href": "http://localhost/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/states", "rel": "self"}, {"href": "http://localhost/nodes/5948b47a-af86-4e2c-ad53-bb10c1a9b3f5/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-02-18T09:13:52.807577+00:00"} 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-879e544a-8833-48a4-aed4-3a138ebb1372 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/0763ee20-7ee7-49d9-bba4-0ee012d3dd4f [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d6a37924-8a08-4ef1-a472-8d5877834316 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/93e26c3e-41e4-4881-8f46-1664486ba252 [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}]{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.106474s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.139653s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.392070s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.070239s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.066556s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.085918s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.068806s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.070423s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e0bd996a-17e3-427b-83d4-6bfa6a1f8d47 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_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-89b5d9a9-a4a3-49ee-a2cc-8d831bbbf0b1 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/8fef0293-961a-4be5-902b-95430e1e84c3 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da2a5f22-17f8-4ca7-ae66-64c44a1fbcf0 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "8fef0293-961a-4be5-902b-95430e1e84c3", "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/8fef0293-961a-4be5-902b-95430e1e84c3", "rel": "self"}, {"href": "http://localhost/nodes/8fef0293-961a-4be5-902b-95430e1e84c3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8fef0293-961a-4be5-902b-95430e1e84c3/ports", "rel": "self"}, {"href": "http://localhost/nodes/8fef0293-961a-4be5-902b-95430e1e84c3/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.288965+00:00"} PATCH: /v1/nodes/bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-314e8da3-2f7e-4076-b6c5-d5f44b33ebbb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8", "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/bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8", "rel": "self"}, {"href": "http://localhost/nodes/bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/bbe328b6-5b1b-4c7e-ae83-21fcc58a08b8/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.341273+00:00"} PATCH: /v1/nodes/a7911326-8575-4261-a740-e734c86d7541 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28a780b6-709e-4e94-a3db-df34c984ba73 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a7911326-8575-4261-a740-e734c86d7541", "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/a7911326-8575-4261-a740-e734c86d7541", "rel": "self"}, {"href": "http://localhost/nodes/a7911326-8575-4261-a740-e734c86d7541", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a7911326-8575-4261-a740-e734c86d7541/ports", "rel": "self"}, {"href": "http://localhost/nodes/a7911326-8575-4261-a740-e734c86d7541/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.385358+00:00"} PATCH: /v1/nodes/2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05480fa1-3a92-4e8e-b2af-607e51d4ae57 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba", "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/2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba", "rel": "self"}, {"href": "http://localhost/nodes/2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba/ports", "rel": "self"}, {"href": "http://localhost/nodes/2efa9bcb-e9b7-4cfa-b612-4fffdf3e34ba/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.427314+00:00"} PATCH: /v1/nodes/ee8a27a5-1010-4333-a208-6705d5e127cd [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e057b785-5275-47aa-ae58-768faeeb37bb X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ee8a27a5-1010-4333-a208-6705d5e127cd", "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/ee8a27a5-1010-4333-a208-6705d5e127cd", "rel": "self"}, {"href": "http://localhost/nodes/ee8a27a5-1010-4333-a208-6705d5e127cd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ee8a27a5-1010-4333-a208-6705d5e127cd/ports", "rel": "self"}, {"href": "http://localhost/nodes/ee8a27a5-1010-4333-a208-6705d5e127cd/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.473186+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.079652s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.597106s] ... ok 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-56570271-e2d1-4a00-a0cf-35a3c7f16e6b 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-b4ec24fe-846d-4446-becc-db2dece8fd4a 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-c7b57fd6-a2f2-47a9-926d-992c7d3cfa10 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-086ec725-9cdc-4702-9754-34a97b8676f0 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-ab6692c2-ac22-4786-b4af-214ff9292233 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-10514c86-5704-4c98-88ee-47ccc3ce51a4 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}"} 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-3eb2fbf7-9155-4c42-b0bb-18dce9257abe 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/a2d39e86-ed24-4297-9f20-edf5ad573418 [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'd39a81c9-312f-45cd-932f-15f8116863ba'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6dbecb01-afd8-4f2d-9cc4-7755d340aff7 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/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-82ece220-a892-4d9a-8d7f-71ddb6816c32 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-02-18T09:13:53.468091+00:00"} 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-411f62a8-04ad-4fd3-9ad8-ab59d06721d2 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-01402a1c-f309-418f-a9db-abf2c805edd4 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 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec147872-c0bf-46f0-a0a4-5b5957e30b19 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-5c59804f-215c-4989-a525-1cf7a8809807 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.089622s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.111209s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.112173s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.062184s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.078682s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.123065s] ... ok PATCH: /v1/nodes/924f667e-0c75-4ebd-8fd8-c6f6599143c0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41ed9ce8-bf03-42aa-8600-9c2e4aa4770a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "924f667e-0c75-4ebd-8fd8-c6f6599143c0", "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/924f667e-0c75-4ebd-8fd8-c6f6599143c0", "rel": "self"}, {"href": "http://localhost/nodes/924f667e-0c75-4ebd-8fd8-c6f6599143c0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/924f667e-0c75-4ebd-8fd8-c6f6599143c0/ports", "rel": "self"}, {"href": "http://localhost/nodes/924f667e-0c75-4ebd-8fd8-c6f6599143c0/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.521731+00:00"} PATCH: /v1/nodes/eb889116-c86d-46ae-a3aa-b8f4a04f5285 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6154730b-bd5e-4ae1-8777-ce5b8b0db951 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "eb889116-c86d-46ae-a3aa-b8f4a04f5285", "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/eb889116-c86d-46ae-a3aa-b8f4a04f5285", "rel": "self"}, {"href": "http://localhost/nodes/eb889116-c86d-46ae-a3aa-b8f4a04f5285", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/eb889116-c86d-46ae-a3aa-b8f4a04f5285/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb889116-c86d-46ae-a3aa-b8f4a04f5285/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.612318+00:00"} PATCH: /v1/nodes/44507e83-61c5-4379-806e-3821d7b47df3 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a655e5f-d863-4bb3-beab-5edbdb3ebc32 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "44507e83-61c5-4379-806e-3821d7b47df3", "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/44507e83-61c5-4379-806e-3821d7b47df3", "rel": "self"}, {"href": "http://localhost/nodes/44507e83-61c5-4379-806e-3821d7b47df3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/44507e83-61c5-4379-806e-3821d7b47df3/ports", "rel": "self"}, {"href": "http://localhost/nodes/44507e83-61c5-4379-806e-3821d7b47df3/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.702815+00:00"} PATCH: /v1/nodes/d6b3db8e-374d-47c9-89e5-016b74864244 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efd29492-dbc5-45ef-92bb-91a25a1bc255 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d6b3db8e-374d-47c9-89e5-016b74864244", "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/d6b3db8e-374d-47c9-89e5-016b74864244", "rel": "self"}, {"href": "http://localhost/nodes/d6b3db8e-374d-47c9-89e5-016b74864244", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d6b3db8e-374d-47c9-89e5-016b74864244/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6b3db8e-374d-47c9-89e5-016b74864244/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.754416+00:00"} PATCH: /v1/nodes/1968ff8b-3596-45f2-9cab-45831f71d107 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13255678-e761-4918-bd07-c02938313523 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1968ff8b-3596-45f2-9cab-45831f71d107", "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/1968ff8b-3596-45f2-9cab-45831f71d107", "rel": "self"}, {"href": "http://localhost/nodes/1968ff8b-3596-45f2-9cab-45831f71d107", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1968ff8b-3596-45f2-9cab-45831f71d107/ports", "rel": "self"}, {"href": "http://localhost/nodes/1968ff8b-3596-45f2-9cab-45831f71d107/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:53.802574+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f229bc64-4794-425a-8fff-c0e7a66974e6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbf23e3e-3963-4412-b4af-2dd7e5a31429 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79d8c7c3-bf6e-4094-b799-571b9dd80fdc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-164ee0f1-792f-40b3-af21-60754efcc850 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.101282s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.063274s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.090584s] ... ok PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-461f4f78-b302-47d4-9eae-e405c82dca41 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4805d8c8-7fc8-4fb0-bcaf-8675a31f5f46 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a390e9f3-36a1-409d-a719-b6ba82684fff X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.664825s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.257721s] ... 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-818cd05b-d572-4f37-ae6f-ff89b9d45afc 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': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4956b89-5d12-4f1a-b810-6a6175814238 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-02-18T09:13:54.002696+00:00"} 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-ae52f04a-5cbf-4324-868a-17b0b3f7e93a 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-66c1f6bb-2b3a-422a-b6a7-99bbeffdced1 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', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71803ad7-6e11-42f4-b598-198f71a544a0 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-02-18T09:13:54.252177+00:00"} 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-095b5010-56a4-4384-a6e5-98bff17db21b 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-a998b9e8-ccd0-498b-b573-a74ff6577800 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': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e95880c0-b916-4ca4-b389-6c347756c40e 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-02-18T09:13:54.519799+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-08ba4ab1-c057-47fd-8787-5ea180143fd1 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-02-18T09:13:54.625144+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.107163s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.158893s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.159791s] ... ok PATCH: /v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0fa95493-3539-4525-8258-da2c6940771f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "635f9966-5aee-44fa-a3b8-bb3292b34248", "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/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/states", "rel": "self"}, {"href": "http://localhost/nodes/635f9966-5aee-44fa-a3b8-bb3292b34248/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-02-18T09:13:53.894938+00:00"} PATCH: /v1/nodes/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cf3db122-7f36-4f64-9350-2bebfccb824f 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9db4a502-3d47-4992-88f5-8938564f8f1a 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0f6b48c4-01c3-4e95-bde1-e1460c7bd945 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1dfe4769-570b-4adc-839b-972c26c881f0 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7007945e-07d8-422b-89d8-c53387df2e20 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f8775616-30f2-4728-b4dc-39196eda066d 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-246c9357-362b-4c7a-a047-c5b39dbc08fd 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/eb0f7459-0d5d-4979-a4e7-e69974520728 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c445d1f0-36c4-447e-8530-c5e0c8abd270 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/4d6fdf0a-15a0-433b-b827-20bac1dddfb4 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcfb43f2-b9b9-4f9b-b0b6-17f646e603f4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "4d6fdf0a-15a0-433b-b827-20bac1dddfb4", "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/4d6fdf0a-15a0-433b-b827-20bac1dddfb4", "rel": "self"}, {"href": "http://localhost/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/volume", "rel": "self"}, {"href": "http://localhost/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/states", "rel": "self"}, {"href": "http://localhost/nodes/4d6fdf0a-15a0-433b-b827-20bac1dddfb4/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-02-18T09:13:54.809468+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.103884s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.141427s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.108764s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.139301s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.082131s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.085572s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.094598s] ... ok 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-28b3a6bd-e6d5-4978-9a9b-0f0e5cce844d 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/3971014a-dbb3-458b-b6e5-a0bccb6b08aa [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b7881df-2aa3-4d5f-bf60-2df7059d37f4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "3971014a-dbb3-458b-b6e5-a0bccb6b08aa", "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/3971014a-dbb3-458b-b6e5-a0bccb6b08aa", "rel": "self"}, {"href": "http://localhost/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/ports", "rel": "self"}, {"href": "http://localhost/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/volume", "rel": "self"}, {"href": "http://localhost/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/states", "rel": "self"}, {"href": "http://localhost/nodes/3971014a-dbb3-458b-b6e5-a0bccb6b08aa/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-02-18T09:13:54.931438+00:00"} PATCH: /v1/nodes/7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d38a7a73-2678-43a0-acae-79985d7d1961 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c", "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/7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c", "rel": "self"}, {"href": "http://localhost/nodes/7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/7ce81d8f-fee9-4bcf-8b7b-58eab5579f5c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:55.099128+00:00"} PATCH: /v1/nodes/94c629e2-c3b7-4608-8cff-d0b0d9b574a4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d61b1387-74bf-48a7-9125-28b700b7fed4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "94c629e2-c3b7-4608-8cff-d0b0d9b574a4", "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/94c629e2-c3b7-4608-8cff-d0b0d9b574a4", "rel": "self"}, {"href": "http://localhost/nodes/94c629e2-c3b7-4608-8cff-d0b0d9b574a4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/94c629e2-c3b7-4608-8cff-d0b0d9b574a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/94c629e2-c3b7-4608-8cff-d0b0d9b574a4/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-02-18T09:13:55.190305+00:00"} PATCH: /v1/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a55e4d8-bf38-4825-b4bc-19ccca28dd64 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "d3835db9-fa4a-4126-9e70-5c6cc25c9c3a", "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/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a", "rel": "self"}, {"href": "http://localhost/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/ports", "rel": "self"}, {"href": "http://localhost/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/volume", "rel": "self"}, {"href": "http://localhost/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/states", "rel": "self"}, {"href": "http://localhost/nodes/d3835db9-fa4a-4126-9e70-5c6cc25c9c3a/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-02-18T09:13:55.276987+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.101280s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.159614s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.114907s] ... ok 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-55344e34-0e26-4d8a-813b-69777a94c2c1 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-02-18T09:13:54.930306+00:00"} 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-460b7378-1d24-4721-9cdc-a3610a760d15 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-02-18T09:13:55.040191+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-4f0be1cc-b7b4-4619-9ea1-15fb64df072b 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-02-18T09:13:55.148090+00:00"} PATCH: /v1/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-589eb1b1-5945-485b-9e43-3fd515c175de X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "12a33649-6ae0-4d27-bbb8-32f434634b00", "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/12a33649-6ae0-4d27-bbb8-32f434634b00", "rel": "self"}, {"href": "http://localhost/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/ports", "rel": "self"}, {"href": "http://localhost/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/volume", "rel": "self"}, {"href": "http://localhost/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/states", "rel": "self"}, {"href": "http://localhost/nodes/12a33649-6ae0-4d27-bbb8-32f434634b00/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-02-18T09:13:55.247060+00:00"} PATCH: /v1/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a67f710-031a-43a6-a5a0-cd2a18aeefab X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "3a5b719b-f8d1-4413-b877-3a7ff57c5f5e", "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/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e", "rel": "self"}, {"href": "http://localhost/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e/states", "rel": "self"}, {"href": "http://localhost/nodes/3a5b719b-f8d1-4413-b877-3a7ff57c5f5e/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-02-18T09:13:55.340761+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.087107s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.106571s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.147731s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.066970s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.116912s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.069309s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.077298s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.069699s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.106567s] ... ok PATCH: /v1/nodes/0f5d29a4-471f-425c-a2d4-990293164a8e [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7a10a637-bda1-4e6e-87e5-e7bf5950fe56 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/d20b5e78-6e8e-45be-b0ef-0540a029e5ad [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f481d7b-08ec-4017-beca-9586f33a5dfa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "d20b5e78-6e8e-45be-b0ef-0540a029e5ad", "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/d20b5e78-6e8e-45be-b0ef-0540a029e5ad", "rel": "self"}, {"href": "http://localhost/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/volume", "rel": "self"}, {"href": "http://localhost/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/states", "rel": "self"}, {"href": "http://localhost/nodes/d20b5e78-6e8e-45be-b0ef-0540a029e5ad/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-02-18T09:13:55.554581+00:00"} PATCH: /v1/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66ffd180-9638-4ffe-852b-428d3f5f6b3d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "ba3b4b60-f0cc-4ffb-9445-d0f4141cc974", "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/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974", "rel": "self"}, {"href": "http://localhost/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/volume", "rel": "self"}, {"href": "http://localhost/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/states", "rel": "self"}, {"href": "http://localhost/nodes/ba3b4b60-f0cc-4ffb-9445-d0f4141cc974/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-02-18T09:13:55.676756+00:00"} 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-63fbf9dc-d033-4415-bf16-29dee19ee63d 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/6712094a-15ad-43c7-b37f-edba1b42d5ac [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1ca5c59-e3b0-4944-a1ad-ae624e3662d9 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6712094a-15ad-43c7-b37f-edba1b42d5ac", "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/6712094a-15ad-43c7-b37f-edba1b42d5ac", "rel": "self"}, {"href": "http://localhost/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/states", "rel": "self"}, {"href": "http://localhost/nodes/6712094a-15ad-43c7-b37f-edba1b42d5ac/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-02-18T09:13:55.850522+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.091788s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.115213s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.111415s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.132938s] ... ok PATCH: /v1/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c20b0620-5107-4d85-b8f6-a0240b47781d X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "32b77f0e-6424-4648-aeab-307f6575ed6f", "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/32b77f0e-6424-4648-aeab-307f6575ed6f", "rel": "self"}, {"href": "http://localhost/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f/states", "rel": "self"}, {"href": "http://localhost/nodes/32b77f0e-6424-4648-aeab-307f6575ed6f/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-02-18T09:13:55.428759+00:00"} PATCH: /v1/nodes/a85725b5-1471-4f45-98ab-63e92a090404 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bba782e8-2c9c-4773-96b9-657ec45234ef 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-48f7ed66-05f8-4fe2-b4be-6c95f31830ed 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/e1ef24f4-051e-4110-9ec2-e614e1416509 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6f9fc2dd-e186-41b3-a2b7-047679f38626 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/4ea7c210-82d0-4b13-b332-e7f9ca6191d6 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fbe445da-00cf-4e30-bfd0-fb2e98d7799d 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-0d858bc3-1218-4f80-954c-f726dd87d880 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-02-18T09:13:55.875163+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-6511803a-8e6c-4698-ade5-10be4bd43eb0 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"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.177698s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.054853s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.109816s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.194749s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.071689s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.086439s] ... 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': '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: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d7b1e5fe-8294-437f-accb-dd7f96d334eb 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': {}, '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-e81092f8-eec9-459d-8600-440b1853ef2f 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'} POST: /v1/nodes {'uuid': 'ccbbbf11-9961-4554-8cbb-1c223186cd32', '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/ccbbbf11-9961-4554-8cbb-1c223186cd32 Openstack-Request-Id: req-fe379438-3a20-494e-ab29-b6be99013296 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ccbbbf11-9961-4554-8cbb-1c223186cd32", "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/ccbbbf11-9961-4554-8cbb-1c223186cd32", "rel": "self"}, {"href": "http://localhost/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32/ports", "rel": "self"}, {"href": "http://localhost/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32 {} GOT:{'uuid': 'ccbbbf11-9961-4554-8cbb-1c223186cd32', '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/ccbbbf11-9961-4554-8cbb-1c223186cd32', 'rel': 'self'}, {'href': 'http://localhost/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ccbbbf11-9961-4554-8cbb-1c223186cd32/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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.090772s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.209865s] ... ok PATCH: /v1/nodes/1c6e1bee-6dfd-4832-b71f-891a25c47a17 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2809dfa4-76d6-4ac9-a427-e0400f4b6fc3 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 \\\"1c6e1bee-6dfd-4832-b71f-891a25c47a17\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/1edf9090-e7cd-4b7a-8f25-45af1474bbb9 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f9fd4596-c639-4274-be2a-2b73188c256c 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/7431101e-d5cc-4d82-a05c-3882555e1529 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ca4d1464-529e-4b45-bcbe-0c7b98026f02 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/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bd67451-cfdf-47a3-b100-921fdad582f1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57", "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/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57", "rel": "self"}, {"href": "http://localhost/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/states", "rel": "self"}, {"href": "http://localhost/nodes/ce522d68-66b6-4a6a-8e6d-6e8b73cd4e57/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-02-18T09:13:56.328274+00:00"} PATCH: /v1/nodes/2cbb23c0-a9c9-4992-a70a-0f210e5aadd8 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4c689c61-c9e3-4517-bf79-400dc6f3d307 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/7d670a29-66d2-4714-b152-8f65a5c0f57d [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c42f25b-1f63-486b-abcd-15578df45acc X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "7d670a29-66d2-4714-b152-8f65a5c0f57d", "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/7d670a29-66d2-4714-b152-8f65a5c0f57d", "rel": "self"}, {"href": "http://localhost/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/states", "rel": "self"}, {"href": "http://localhost/nodes/7d670a29-66d2-4714-b152-8f65a5c0f57d/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-02-18T09:13:56.486873+00:00"} PATCH: /v1/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5 [{'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-11e74db4-86e0-4ce4-a9fb-43551fc1c7aa X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "a40c79bf-211d-44db-9e56-f2edcf8eb7b5", "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/a40c79bf-211d-44db-9e56-f2edcf8eb7b5", "rel": "self"}, {"href": "http://localhost/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/ports", "rel": "self"}, {"href": "http://localhost/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/volume", "rel": "self"}, {"href": "http://localhost/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/states", "rel": "self"}, {"href": "http://localhost/nodes/a40c79bf-211d-44db-9e56-f2edcf8eb7b5/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-02-18T09:13:56.580893+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.114548s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.166097s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.095856s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a34e8250-1e19-406e-bdf8-ee8251538b18 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-3edaf513-6f61-4090-ae6b-132ef7377d00 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-02-18T09:13:56.588502+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-02-18T09:13:56.588502+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-02-18T09:13:56.588502+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-2f89361b-446a-43bc-a317-be4cb09d68b6 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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.174359s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.204109s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.067607s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.070226s] ... ok PATCH: /v1/nodes/daeec49f-fa5e-4959-899f-cf26c89358d6 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a0cef0c0-8b8a-4b20-aa7b-4b6fd383246f 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}"} PATCH: /v1/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4883ea6-bdac-4be7-9cdc-2ce39f8b2987 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "b93f8a60-1df8-4e40-86f6-36648d569b48", "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/b93f8a60-1df8-4e40-86f6-36648d569b48", "rel": "self"}, {"href": "http://localhost/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/ports", "rel": "self"}, {"href": "http://localhost/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/volume", "rel": "self"}, {"href": "http://localhost/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/states", "rel": "self"}, {"href": "http://localhost/nodes/b93f8a60-1df8-4e40-86f6-36648d569b48/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-02-18T09:13:56.858919+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-cc57badd-98b7-4035-a093-1d1b2f1041ef 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-02-18T09:13:56.989787+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-02-18T09:13:56.989787+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.165388s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.075080s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.202065s] ... 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': {}, '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-6c9040ac-838e-434f-813f-7a05f5b75330 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'} 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-2f410b02-ca44-4df5-a742-2d80fba9c1c9 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': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed443dcd-c5cf-4021-8138-b69bac9bb8e1 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 {'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-4217e6fe-d923-4a87-9acf-9bc03db21914 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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.067140s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.209565s] ... 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-2e311e78-9338-49f1-87e5-068922f18cde 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-02-18T09:13:57.197681+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-02-18T09:13:57.197681+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-de587972-1d57-4870-b86b-136934bb4391 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-02-18T09:13:57.393658+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-02-18T09:13:57.393658+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.183341s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.093111s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.108646s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.139559s] ... 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-cbbaa3cb-85f2-44b2-8042-6258e319c60c 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': {'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-196ee540-86cd-40d6-bbbd-7657257abd73 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-02-18T09:13:57.645486+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-02-18T09:13:57.645486+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'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.211989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.103731s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.105337s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5759318f-dbec-438d-b74a-2b6aa380ab03 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': {}, '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-f8c54297-a0d4-430f-bdf5-a06a9336ad31 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-02-18T09:13:57.450239+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-02-18T09:13:57.450239+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': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-23e7850d-7aee-419e-94f9-862550631df7 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': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-5a9761c9-e7c3-4405-a36d-f049f6b048fe 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-02-18T09:13:57.734237+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.076808s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.097847s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.352079s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.074175s] ... 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': {}, 'owner': 'bob', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c496f38e-25ff-4585-869f-9fe02846ce24 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': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fbf290e7-0b20-40d2-8755-0321e4397cac 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-20bdc0ee-c84a-4fc6-abe5-3abacccb5dd1 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-9eeb5aff-d7ad-4dd8-b8ae-c10dee323048 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-78c83493-67da-4d28-aa1b-4d93f7f61bd4 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-58d42137-e1b7-4de2-a585-71a6a4b1fb9e 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-85f55889-da2d-4603-b32b-6115db0cbde0 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-969133d0-5a74-4fe9-92f1-7cff4b70f200 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-02643af6-1d1b-4c7f-8917-ad1c5ef8e219 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']}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.088931s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.111844s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-a8c17ab1-9b1b-4f04-bc9b-ff722615e2af 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-02-18T09:13:57.807331+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-02-18T09:13:57.807331+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': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d2e6a818-39c6-4b43-9f54-b80646d7af88 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6445b1ea-5823-45f3-89ff-564d64a5854c 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 {'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-2df12e20-0388-4ff5-ae84-1ce779fdca6f 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': {}, '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-de1c66fe-1f94-40f8-af7b-235940a5bbb2 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-02-18T09:13:58.266171+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.164860s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.100882s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.234063s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.047434s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.072004s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.046287s] ... ok 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-02-18T09:13:58.266171+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-db2d0cf4-2740-476e-88a2-e953a73b435b 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-69f5a50b-326a-4f66-a73b-fa562e2e5a78 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-02-18T09:13:58.601057+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': 'cowsay', 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-02-18T09:13:58.601057+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.225351s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.101354s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.100028s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.066242s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.072692s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.267239s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.066210s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.166109s] ... 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': {}, 'protected': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f7380f56-b8f1-4558-94ef-9b53104e4819 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 {'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-e5c18833-1693-4e5a-8921-e1f6fc6983ff 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-7022b1e3-65ac-4b73-bbd6-de35fae12e67 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-cd8e0309-f84b-4fe0-b5fb-c0c21143faf8 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-24613120-5001-48d4-95c7-3e85a38a037c 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-684e61b8-f145-440e-a7e3-98c6d9df1f56 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}"} 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-034c6101-1343-4873-933e-2a6899624585 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-8fb8cd3d-9eba-4530-a9d3-d1a27ce527d7 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-02-18T09:13:59.127816+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.148573s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.050979s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a6aeaf14-924e-4a00-8204-eda5697a1ade 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': {'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-d38dbc5b-73cb-4fbb-8506-d264c1ea17ea 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': {}, '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-9bcba919-f4dc-4462-bb7c-7c21cdec9aa2 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-02-18T09:13:58.525980+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-02-18T09:13:58.525980+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-b2e47741-2150-42a1-86d0-de8af48e5279 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/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-0e97d2d6-0061-4380-b3c9-2207b93ada4d 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/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-eaaf0491-c366-477f-b9d8-897d0c5a318b 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-38f96d97-fa30-4728-b591-8be62c675561 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-fe353e58-a447-4db3-9315-7b06c2749cae X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 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/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-d069202f-9179-432d-a671-5b8acc30feba X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.107569s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.190785s] ... 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': '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-02-18T09:13:59.127816+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': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-413bf167-f5cc-4139-90e7-74ada9ea78a2 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'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e5ce8e6f-ce7a-4c9d-bfab-dfa88f8a5487 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-02-18T09:13:59.382880+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-02-18T09:13:59.382880+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.175952s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.106255s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.150388s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.181302s] ... ok 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-b583eb08-3e21-45f3-8c51-9232e0bcc988 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': '5c9a0561-a1fd-49c9-b8c3-d31df5df622f', '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/5c9a0561-a1fd-49c9-b8c3-d31df5df622f Openstack-Request-Id: req-43963331-20f0-4700-9d27-d7c12dd1f9e5 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "5c9a0561-a1fd-49c9-b8c3-d31df5df622f", "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/5c9a0561-a1fd-49c9-b8c3-d31df5df622f", "rel": "self"}, {"href": "http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/states", "rel": "self"}, {"href": "http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/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/5c9a0561-a1fd-49c9-b8c3-d31df5df622f {} GOT:{'uuid': '5c9a0561-a1fd-49c9-b8c3-d31df5df622f', '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/5c9a0561-a1fd-49c9-b8c3-d31df5df622f', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c9a0561-a1fd-49c9-b8c3-d31df5df622f/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': '8f095fe0-3bd5-4987-943b-690ae3ae8af2', '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/8f095fe0-3bd5-4987-943b-690ae3ae8af2 Openstack-Request-Id: req-5aa2d15f-12d9-4a88-accc-2f29e046f6d1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "8f095fe0-3bd5-4987-943b-690ae3ae8af2", "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/8f095fe0-3bd5-4987-943b-690ae3ae8af2", "rel": "self"}, {"href": "http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/ports", "rel": "self"}, {"href": "http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/volume", "rel": "self"}, {"href": "http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/states", "rel": "self"}, {"href": "http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/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/8f095fe0-3bd5-4987-943b-690ae3ae8af2 {} GOT:{'uuid': '8f095fe0-3bd5-4987-943b-690ae3ae8af2', '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/8f095fe0-3bd5-4987-943b-690ae3ae8af2', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f095fe0-3bd5-4987-943b-690ae3ae8af2/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': 'e3965933-5e32-4644-bc51-5293fc5073a7', '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/e3965933-5e32-4644-bc51-5293fc5073a7 Openstack-Request-Id: req-50195df8-8cd9-4f1b-8c4a-8939aedca864 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e3965933-5e32-4644-bc51-5293fc5073a7", "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/e3965933-5e32-4644-bc51-5293fc5073a7", "rel": "self"}, {"href": "http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/volume", "rel": "self"}, {"href": "http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/states", "rel": "self"}, {"href": "http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/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/e3965933-5e32-4644-bc51-5293fc5073a7 {} GOT:{'uuid': 'e3965933-5e32-4644-bc51-5293fc5073a7', '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/e3965933-5e32-4644-bc51-5293fc5073a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3965933-5e32-4644-bc51-5293fc5073a7/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': 'ec94875b-76ea-4a8d-abb0-73225d46b0e8', '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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.202934s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.089607s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.084286s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8 Openstack-Request-Id: req-8eb7efd3-3906-46b4-a4fa-30be017ca7b4 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ec94875b-76ea-4a8d-abb0-73225d46b0e8", "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/ec94875b-76ea-4a8d-abb0-73225d46b0e8", "rel": "self"}, {"href": "http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/ports", "rel": "self"}, {"href": "http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/volume", "rel": "self"}, {"href": "http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/states", "rel": "self"}, {"href": "http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/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/ec94875b-76ea-4a8d-abb0-73225d46b0e8 {} GOT:{'uuid': 'ec94875b-76ea-4a8d-abb0-73225d46b0e8', '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/ec94875b-76ea-4a8d-abb0-73225d46b0e8', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec94875b-76ea-4a8d-abb0-73225d46b0e8/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': '49b4e624-a328-4e4c-a2be-35959f6f15a1', '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/49b4e624-a328-4e4c-a2be-35959f6f15a1 Openstack-Request-Id: req-1d87f60f-b66d-4b21-8d84-ce18392b059f X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "49b4e624-a328-4e4c-a2be-35959f6f15a1", "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/49b4e624-a328-4e4c-a2be-35959f6f15a1", "rel": "self"}, {"href": "http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/ports", "rel": "self"}, {"href": "http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/volume", "rel": "self"}, {"href": "http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/states", "rel": "self"}, {"href": "http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/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/49b4e624-a328-4e4c-a2be-35959f6f15a1 {} GOT:{'uuid': '49b4e624-a328-4e4c-a2be-35959f6f15a1', '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/49b4e624-a328-4e4c-a2be-35959f6f15a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/49b4e624-a328-4e4c-a2be-35959f6f15a1/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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.148387s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.126019s] ... ok POST: /v1/nodes {'uuid': '81b3adc5-4834-4d4e-afb6-ccc9b405f36b', '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/81b3adc5-4834-4d4e-afb6-ccc9b405f36b Openstack-Request-Id: req-54037b59-d1d5-424f-976f-8511d4c73172 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "81b3adc5-4834-4d4e-afb6-ccc9b405f36b", "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/81b3adc5-4834-4d4e-afb6-ccc9b405f36b", "rel": "self"}, {"href": "http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/ports", "rel": "self"}, {"href": "http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/volume", "rel": "self"}, {"href": "http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/states", "rel": "self"}, {"href": "http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/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/81b3adc5-4834-4d4e-afb6-ccc9b405f36b {} GOT:{'uuid': '81b3adc5-4834-4d4e-afb6-ccc9b405f36b', '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/81b3adc5-4834-4d4e-afb6-ccc9b405f36b', 'rel': 'self'}, {'href': 'http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/81b3adc5-4834-4d4e-afb6-ccc9b405f36b/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': 'f390a8a0-0553-4ae1-a231-2d91a76dd4ff', '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/f390a8a0-0553-4ae1-a231-2d91a76dd4ff Openstack-Request-Id: req-c06f8031-872a-4986-96ab-190b97e23df2 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "f390a8a0-0553-4ae1-a231-2d91a76dd4ff", "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/f390a8a0-0553-4ae1-a231-2d91a76dd4ff", "rel": "self"}, {"href": "http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/volume", "rel": "self"}, {"href": "http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/states", "rel": "self"}, {"href": "http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/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/f390a8a0-0553-4ae1-a231-2d91a76dd4ff {} GOT:{'uuid': 'f390a8a0-0553-4ae1-a231-2d91a76dd4ff', '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/f390a8a0-0553-4ae1-a231-2d91a76dd4ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f390a8a0-0553-4ae1-a231-2d91a76dd4ff/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': '757e6db5-7f95-479b-a328-269b29074491', '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: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491 Openstack-Request-Id: req-c6da4b40-be9a-4d25-8810-af288f17a4ce X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "757e6db5-7f95-479b-a328-269b29074491", "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/757e6db5-7f95-479b-a328-269b29074491", "rel": "self"}, {"href": "http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/ports", "rel": "self"}, {"href": "http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/volume", "rel": "self"}, {"href": "http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/states", "rel": "self"}, {"href": "http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/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/757e6db5-7f95-479b-a328-269b29074491 {} GOT:{'uuid': '757e6db5-7f95-479b-a328-269b29074491', '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/757e6db5-7f95-479b-a328-269b29074491', 'rel': 'self'}, {'href': 'http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/757e6db5-7f95-479b-a328-269b29074491/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/757e6db5-7f95-479b-a328-269b29074491/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': '12312567-c32b-4958-aa0d-e4823bdea39d', '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'}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.148372s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.086837s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.092116s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d Openstack-Request-Id: req-5a72ba5e-2290-4ce9-8c1d-35fc09d98529 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "12312567-c32b-4958-aa0d-e4823bdea39d", "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/12312567-c32b-4958-aa0d-e4823bdea39d", "rel": "self"}, {"href": "http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/ports", "rel": "self"}, {"href": "http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/volume", "rel": "self"}, {"href": "http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/states", "rel": "self"}, {"href": "http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/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/12312567-c32b-4958-aa0d-e4823bdea39d {} GOT:{'uuid': '12312567-c32b-4958-aa0d-e4823bdea39d', '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/12312567-c32b-4958-aa0d-e4823bdea39d', 'rel': 'self'}, {'href': 'http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/12312567-c32b-4958-aa0d-e4823bdea39d/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': 'ec0d745b-5b43-4691-ae55-b3938ef4915e', '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/ec0d745b-5b43-4691-ae55-b3938ef4915e Openstack-Request-Id: req-afb292e5-6412-4a8f-b1db-7bf8d636ec33 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ec0d745b-5b43-4691-ae55-b3938ef4915e", "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/ec0d745b-5b43-4691-ae55-b3938ef4915e", "rel": "self"}, {"href": "http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/states", "rel": "self"}, {"href": "http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/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/ec0d745b-5b43-4691-ae55-b3938ef4915e {} GOT:{'uuid': 'ec0d745b-5b43-4691-ae55-b3938ef4915e', '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/ec0d745b-5b43-4691-ae55-b3938ef4915e', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ec0d745b-5b43-4691-ae55-b3938ef4915e/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': 'a450fa62-8cab-4711-9480-c3d105927d72', '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/a450fa62-8cab-4711-9480-c3d105927d72 Openstack-Request-Id: req-b0cc5ef9-09e2-4186-91fc-9506043f65c1 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a450fa62-8cab-4711-9480-c3d105927d72", "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/a450fa62-8cab-4711-9480-c3d105927d72", "rel": "self"}, {"href": "http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/states", "rel": "self"}, {"href": "http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/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/a450fa62-8cab-4711-9480-c3d105927d72 {} GOT:{'uuid': 'a450fa62-8cab-4711-9480-c3d105927d72', '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/a450fa62-8cab-4711-9480-c3d105927d72', 'rel': 'self'}, {'href': 'http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a450fa62-8cab-4711-9480-c3d105927d72/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a450fa62-8cab-4711-9480-c3d105927d72/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': '91b9c4cb-7fa5-4594-b96e-48adacdfc9c3', '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/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3 Openstack-Request-Id: req-ec15062b-c673-405f-831c-b8ab9f1cede6 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "91b9c4cb-7fa5-4594-b96e-48adacdfc9c3", "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/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3", "rel": "self"}, {"href": "http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/ports", "rel": "self"}, {"href": "http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/volume", "rel": "self"}, {"href": "http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/states", "rel": "self"}, {"href": "http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/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.TestPost.test_create_node_specify_interfaces [1.477610s] ... ok 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-07e70cc0-e190-4b73-8507-6aaca90cfb57 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': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d6df5f93-0bbb-4d07-abbd-dcf28b11aad3 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-a398dbfa-514c-493a-a877-895515dbabd9 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-4ebc0ffb-36b6-4de9-b4cd-0469a1271e72 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-bdd81f5b-bc4d-499c-9b52-97dc382dba9e 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-1da40147-20f9-46ea-ab86-cde261b44fe9 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-caf4c741-48f5-4087-98ae-545307e9efed 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-1e452166-1ded-40a5-baa4-a16912a4bee2 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-0dee4357-517e-4226-89e4-70c246dc8029 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-77553091-8e49-4beb-acf1-39792df48fe1 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-75244b45-7375-480e-b8d5-e53fd01f9ed4 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/states/provision {'target': 'abort'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cb7d9bdc-ca1a-4359-bed1-4f1bf6f851fb 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-f0e6f927-3edf-44c7-a466-ebf5f7950181 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-33eb214e-b3c8-446e-b74d-7a7374089f5f 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': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-55334f35-3492-4896-b0e3-8b968a618e39 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-e378ce99-fed9-4e48-b786-7428bac66aa5 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}"} 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-100df4c1-1b5d-4b17-a884-f1d65c329dac 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}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.199782s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.172051s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.282034s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.093055s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.070082s] ... ok GET: /v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3 {} GOT:{'uuid': '91b9c4cb-7fa5-4594-b96e-48adacdfc9c3', '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/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3', 'rel': 'self'}, {'href': 'http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/91b9c4cb-7fa5-4594-b96e-48adacdfc9c3/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': {'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-c50098ee-e402-4365-82db-655393130689 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-02-18T09:14:01.163988+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': {'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-02-18T09:14:01.163988+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': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, '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-8c84319b-4e03-4126-a7e6-01686c9c7a76 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-02-18T09:14:01.377462+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-02-18T09:14:01.377462+00:00'}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.131070s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.125704s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info [0.179448s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.075120s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.071085s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.127871s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.071951s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.076209s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.091143s] ... ok 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-79a6af34-be37-4912-92b6-c36abc11c772 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-02-18T09:14:01.564210+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-02-18T09:14:01.564210+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-a18be2b6-2c2d-4869-9e8f-9baeaa52a55a 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-02-18T09:14:01.694028+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-02-18T09:14:01.694028+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-0fe5288c-0f85-4a55-a610-5fa574a59767 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-02-18T09:14:01.819354+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.171779s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.127435s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.101603s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.058410s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.092585s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.080997s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.065235s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.064703s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.189375s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.065975s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.053887s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.289430s] ... ok 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-07f1f6dd-2edc-454a-8d3a-7d97ddbfef33 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/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-9d6d228b-6e43-444a-8b26-04debe1f3d8d 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-c20c384d-3e54-4e71-83b5-04a41717c788 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'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-974c8905-20eb-4fe7-b8a2-7c4f200b9719 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': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-36b0d679-41ae-48c7-b199-e865b5f9f99d 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-6ddb32b4-a577-44a1-9c19-3351dafeba37 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'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5baa2827-d5d4-4128-96c7-98eb50af73f7 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'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-78d601cd-ec2f-453e-92e4-477801600a27 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': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-869a1a16-d209-4dc0-b1cc-2cfebad1359b 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-d9349605-229d-480e-a44f-67a832644a90 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': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d3be9b3-330b-4a5e-9d26-4a72ae4b2925 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': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-aabe2723-d57b-45a0-8e72-d3ba31458207 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-990c548a-61ec-468c-93d7-889e5c805b06 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-ac0a1977-3dec-4092-8a76-99febf6efa44 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-bb84026e-1f1d-4aad-bd9a-2eaee92f286a 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-409461fc-8afa-4453-aa40-9b5b53f94994 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-0507d876-3c7d-4601-b18d-59d00eab2174 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-259bdc29-1a08-4544-bf44-1b48431899bc 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}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.318296s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.134900s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.111977s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.090097s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.084914s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.071173s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.058746s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.071222s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_unsupported [0.073802s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.138592s] ... 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-02-18T09:14:01.819354+00:00'} 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-e2c99f00-17db-42b9-b681-4ba1f366827e 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-d59fb09b-6625-47b8-94cc-42c74edf9df2 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/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-859a3ced-8159-4f3a-a61d-2de457777210 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-5ed481d8-64c5-4a0c-a43c-a71a2792060b 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e32a3920-ece8-4b57-937d-fb7c35fce2f8 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}"} 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-d2f68232-f371-4e02-aa6b-46991f718600 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-a398615a-d59f-4760-a361-e50167d986c1 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: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-2960a9fc-3803-4597-bd94-a17584fd6525 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 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-5596012e-751b-45ac-a82c-a3a7cdfb5239 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33cbad73-c687-4253-a5dc-e3182d5d01c6 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: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a35a306b-32d2-4478-bbe3-a43955300fc0 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-73fe9691-7b31-46ee-a889-90966f4b6be2 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-30c1a618-5085-4580-91c4-c0543477af31 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.180863s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.072119s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.093454s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.107136s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.068682s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.074836s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.088502s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.279528s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.083552s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.071928s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.071436s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.069607s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.057767s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.070072s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.068030s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.061826s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.066393s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.058286s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.070696s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.073545s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.069835s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.077773s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.070275s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.074616s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.071403s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.063800s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.068468s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.068968s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.075753s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-715efb48-91d4-4750-93be-ac2b8018b536 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-05849a25-5b53-4c82-9f62-27ef78e9c86a 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-0322afd9-4e52-4db1-8d8a-07bdcca6308e 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-6508aca8-88a8-4518-bada-64680c8c8dad 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-9e3f8f2b-7aa0-4861-964a-4d5cace323e4 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-a0e6f907-05c8-4169-8a4e-2f011b46bf8c 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', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-872db45c-6a12-4e32-b73c-d644986bdedd 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': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9dcc6250-c345-455c-aff3-524554c7225b 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-f365a899-cd5c-440f-bcde-8f560dac9930 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-f8af8d35-aee8-46d4-9adc-d90194ae5ae7 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-c007f4ab-4a51-482f-a888-00daebe27e1e 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/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cbe6c53d-06de-4c9f-82e6-ed42b6a58df8 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-886ca09f-0e08-4515-9eae-8df9ea8fe0be 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-f226f8e6-d1ef-4d22-a77a-b2a3180053e9 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ec2b856-c99b-49e5-b12a-7cb05b19305e 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-d4742e4e-7643-4deb-8a21-3f54516c6c43 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/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states/console Openstack-Request-Id: req-bb46e6fb-e459-40be-b4dc-83a718691401 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/console {'enabled': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-12841d0e-2597-4556-b741-3aaa110ba10e 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/console {'enabled': 'invalid-value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-979da6f8-4fd5-4412-9a9b-13e9ac17ab2e 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}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.073777s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.119981s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.142207s] ... ok 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-d0059c4c-b9eb-49ce-8a97-44a3ecf04f68 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-2ab6bb74-6809-4784-a94a-275c55ed6f22 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-04c12fe4-3c2b-4bcc-b8be-dd0d5cf15847 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/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82c00906-35cb-41b6-b878-7481d074fc9f 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-2c24eced-778b-4b47-9264-19371df749aa 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-34c3b251-ec98-4c0a-bc5d-fd398852af9e 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-d863dfdd-707f-43c6-b23d-a912f1630f3f 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/node-39/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-2fa7d9a5-addd-43e1-b352-42b86d2888c2 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/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fdcb8c25-bbde-414f-b38b-59d2b574efd7 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-84b3d9d6-3dc8-4f1e-99aa-1df6329cfc94 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-047cd105-4837-4183-acf5-ec21b412f1de 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-18b5299c-e07e-4a18-a7c6-bd7a15b41909 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', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ca48c3ae-8069-47ef-999e-e78934581478 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: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d721b3ff-0f57-487b-8479-6df7229315fd 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': 'power on', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-05366612-3603-4d5a-99fd-26196bccf115 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': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f07e40a-e183-405f-9584-c48066e5c67b 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-3f3cd210-f3ee-4174-9c3f-04718d24b2be 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-41edbc91-bb6f-4b97-9566-43c20767db88 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': 2}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.091252s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.122878s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.093085s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.121789s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.080525s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.069594s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.076285s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.060719s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.078571s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.073711s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.074912s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.085299s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.076530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.086288s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.050215s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.100101s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.077243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.234405s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.051763s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.084469s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.076223s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.228774s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.075562s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.073477s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.110011s] ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b66f9df9-2515-444f-af4e-3633606dd32b 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-1870b591-919a-45a2-abf2-bdf7873f270e 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-0b6aecde-6f02-49b8-b4e1-6a2beee318b3 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-bf708e6f-8a38-428b-9d62-b3c145b96af3 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-36e06a72-7abd-42ba-bb2d-e27c42ef75e9 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': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac4cbd5b-50d4-4ce3-8e6c-c20e6e2d28b0 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-ac751adf-6c12-42c1-8d85-993ae5b4a102 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': ' '} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f38ccfa7-e72b-412c-99c9-a4843733c9f6 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': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ef3cf561-5043-4c0f-9bc7-ad87732f54b3 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-007bd537-4d0c-48b8-868b-eb9df47be68f 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-505ade52-5d69-40b9-954a-73f6295f433b 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-d118b9d1-0005-4c96-ac96-b26911d38631 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-41f399e7-ff8e-4e25-bd3e-19558e5c584d 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-4f3868de-8380-46f8-8fa9-8875a2cff033 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-d0aa076f-b661-41de-966d-b02ee6362a1a 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-2e8283d4-f52c-4467-a5c4-70af619293ff 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-79209944-4de9-4ea7-b4a5-45c1584d9e4b 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.086165s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.087344s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.094624s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.118655s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.068352s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.076508s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.070515s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.089064s] ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-b3c031ef-c1bb-41ff-90a4-479b7194427b 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/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-9bdf1c8b-9c76-46d8-acf5-71131b36c09d 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-35853026-cc5f-4d4c-8172-4483aa12a5e6 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-adae535a-9978-44dd-ac7e-789352bc8d58 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c80dd972-0830-450d-ae7c-2ae80b8fec50 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-10ead0c5-9898-428d-bff7-c42cc9461dd0 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-eecef660-b058-439e-b10e-c958b97602cd 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 GOT:Response: 204 No Content Openstack-Request-Id: req-397fe3d2-1b09-4dad-8c5f-bc6814e967bc 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-85610a5b-683d-4650-959b-b9ccc109b7c3 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: 204 No Content Openstack-Request-Id: req-b2e67973-89fb-4cf7-84ee-bb61d73aa583 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']} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-499fd10f-e299-4389-9269-f106aa7f7a17 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-d0ae940a-5927-43e3-9304-51741ed6e83d 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-bc5d6608-6d5a-49b6-a514-39b2c79a6b02 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-194f9b4d-400d-46c1-977d-731649e9c36f 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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca689df0-8baa-4881-8180-38aa2df02cb6 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', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0450b1ec-3475-498c-8250-710263ac8a24 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}"}{0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.079734s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.101145s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.204305s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.012496s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.015360s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.014599s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.011042s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.084925s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.010950s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.010811s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.074490s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.068473s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.062460s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.077670s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.065664s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.099384s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.073044s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.055002s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.074180s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.077282s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.078214s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.056034s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.106496s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.050993s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.063179s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.059591s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.058794s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.058015s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.075093s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.061458s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.077443s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.078280s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.048366s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.079328s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.057091s] ... ok 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-8120ac83-a854-4240-8dde-eb1a1593e4e4 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}"} 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-8aaa1670-8979-490c-8f74-374dd1628df1 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-1977ee6d-6dc7-4075-a335-065abf56bd51 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-e2339e95-3608-40b7-9871-2eca38458f30 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'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-72adc46c-ea89-4d7f-b3a5-66b7fc0969b5 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': 'rebuild', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-832afd6b-6775-4444-b5aa-4c797a46385e 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/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-daca5a78-c0eb-4fe2-bedb-c2ed219bc833 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-e86489df-f84d-4911-9191-c096df53d7e1 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?persistent=blah {'boot_device': 'pxe'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21157ad7-84ca-428c-8a87-217d4107e3c9 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15ae6f91-0ecf-4eb9-a149-3a7209540761 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/states/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ade876e9-2697-4461-b349-e75cc54d896d 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-8be47151-0597-49eb-a5ec-e134cd8641b5 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-df60e0bd-6222-4353-ac7b-8ed819a95022 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'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4a93b818-1d2b-4c14-a5a1-164c428e2dc1 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-35445a3e-830f-444d-a35c-3bc4c24308d6 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/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-8e8c81d9-c70e-4bf1-b2d9-8158feb8cece 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/traits/CUSTOM_3 {} GOT:Response: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-2ea2d759-7f75-456a-b986-d0fa99d53a35 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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ed2900b-0569-45ed-abe3-b2ab729465c9 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/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-30833c1b-ef1d-4926-b14d-42137078299b 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}"}{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.088156s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.103020s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.157837s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.075524s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.080449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.082812s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.115201s] ... ok PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-e279b49b-e4e4-4225-b121-14ac120cb403 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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-4730d075-1b62-4c0b-b57e-ad49e3cb68e8 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-793a001b-5efa-4229-8e75-39c8d652175a 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}"} GET: /v1/ports {} GOT:{'ports': [{'uuid': 'a44bdc16-2739-4fa5-981c-33b45a57c949', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a44bdc16-2739-4fa5-981c-33b45a57c949', 'rel': 'self'}, {'href': 'http://localhost/ports/a44bdc16-2739-4fa5-981c-33b45a57c949', 'rel': 'bookmark'}]}, {'uuid': '0f4fd072-5276-42eb-b44b-3f85be500db4', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0f4fd072-5276-42eb-b44b-3f85be500db4', 'rel': 'self'}, {'href': 'http://localhost/ports/0f4fd072-5276-42eb-b44b-3f85be500db4', 'rel': 'bookmark'}]}, {'uuid': '18883e7b-9028-47ac-a790-20a13c0c926b', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/18883e7b-9028-47ac-a790-20a13c0c926b', 'rel': 'self'}, {'href': 'http://localhost/ports/18883e7b-9028-47ac-a790-20a13c0c926b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=18883e7b-9028-47ac-a790-20a13c0c926b'} GET: /v1/ports/detail?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1be23cf3-48c7-40f3-b864-1a4c17e68e15 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-02-18T09:14:06.681023+00:00', 'updated_at': None}]} 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:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9b6fab48-be61-41b8-9f83-7785fd75cdbe 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=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c411fdf8-72f9-49c5-a05b-ab862aed4632 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-de6537b0-f773-4994-87b7-7aa0c1d228ff 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?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-02-18T09:14:07.103173+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-02-18T09:14:07.183099+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-6249b0e7-511f-4461-821b-ebcec8a4e60f 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f9551a39-21f5-4a0b-aed3-8f109fd45833 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,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b267a0b8-7bd1-48db-89a7-60f34bf9af95 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-256b8b97-55cc-4d68-9546-4f7c73995324 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.TestListPorts.test_get_custom_fields_physical_network [0.094925s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.094264s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.096367s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.096401s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.013021s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.014211s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset [0.013551s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.110722s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.059773s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.068217s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.103926s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.101269s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.107046s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node [0.064530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.103412s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group [0.082066s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.078454s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.055702s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.118209s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.069385s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.079121s] ... ok DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b9a9871-d970-4774-856f-79f1a559663b 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-f72583dd-899e-4560-a71d-4a604ccc79b0 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}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2fde2208-1601-4110-82e9-d983705301b8 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-a98cf308-b9d8-4612-a1db-e43499bbc2d5 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-5364b839-36b8-46b3-afe8-6141567797e8 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}"} DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46d1831a-64c8-4cef-96f4-83dab64a2f8b 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}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/926c5d54-636a-4646-85c5-101a7765b31a GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e41d1e1e-c150-42cb-9b49-ecaeaa5d3a75 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': 'b7b0e9b2-0392-400c-9c50-d0afe84dc776', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b7b0e9b2-0392-400c-9c50-d0afe84dc776', 'rel': 'self'}, {'href': 'http://localhost/ports/b7b0e9b2-0392-400c-9c50-d0afe84dc776', 'rel': 'bookmark'}]}, {'uuid': '2847734b-3b6b-4ff2-b6a0-9f8076c856cd', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/2847734b-3b6b-4ff2-b6a0-9f8076c856cd', 'rel': 'self'}, {'href': 'http://localhost/ports/2847734b-3b6b-4ff2-b6a0-9f8076c856cd', 'rel': 'bookmark'}]}, {'uuid': '419c8a24-a147-4e0a-b736-7a7a4e6fdbfc', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/419c8a24-a147-4e0a-b736-7a7a4e6fdbfc', 'rel': 'self'}, {'href': 'http://localhost/ports/419c8a24-a147-4e0a-b736-7a7a4e6fdbfc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=419c8a24-a147-4e0a-b736-7a7a4e6fdbfc'} GET: /v1/ports?fields=address,uuid {} GOT:{'ports': [{'uuid': 'a7deee68-3130-49ec-a877-bab1f3952ae3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a7deee68-3130-49ec-a877-bab1f3952ae3', 'rel': 'self'}, {'href': 'http://localhost/ports/a7deee68-3130-49ec-a877-bab1f3952ae3', 'rel': 'bookmark'}]}, {'uuid': '6e2b04d4-e1a7-4d1f-8db6-6c8cf9053cfc', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/6e2b04d4-e1a7-4d1f-8db6-6c8cf9053cfc', 'rel': 'self'}, {'href': 'http://localhost/ports/6e2b04d4-e1a7-4d1f-8db6-6c8cf9053cfc', 'rel': 'bookmark'}]}, {'uuid': 'c575598e-5a1e-4709-9dce-760da197a2a3', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/c575598e-5a1e-4709-9dce-760da197a2a3', 'rel': 'self'}, {'href': 'http://localhost/ports/c575598e-5a1e-4709-9dce-760da197a2a3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=c575598e-5a1e-4709-9dce-760da197a2a3'} 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-02-18T09:14:08.187077+00:00', 'updated_at': None}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-97a00fd3-69a0-4893-ae9b-0d79c6703e0f 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:{'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-02-18T09:14:08.316860+00:00', 'updated_at': None}]} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': 'f01cbcf1-1d6f-40cf-86a8-f16410fcfce5', '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/f01cbcf1-1d6f-40cf-86a8-f16410fcfce5', 'rel': 'self'}, {'href': 'http://localhost/ports/f01cbcf1-1d6f-40cf-86a8-f16410fcfce5', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-02-18T09:14:08.386515+00:00', 'updated_at': None}, {'uuid': '5017f7c3-4b50-46e7-b8ff-a4b3b2991cf8', '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/5017f7c3-4b50-46e7-b8ff-a4b3b2991cf8', 'rel': 'self'}, {'href': 'http://localhost/ports/5017f7c3-4b50-46e7-b8ff-a4b3b2991cf8', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-02-18T09:14:08.389239+00:00', 'updated_at': None}]}{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.084020s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.088552s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.135949s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.081661s] ... ok 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=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': {}, '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-02-18T09:14:07.694403+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-02-18T09:14:07.788018+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-02-18T09:14:07.788018+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-02-18T09:14:07.896881+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-02-18T09:14:07.896881+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-02-18T09:14:08.002322+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-02-18T09:14:08.002322+00:00', 'updated_at': None} GET: /v1/ports {} GOT:{'ports': []} 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-02-18T09:14:08.177879+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': '0e8b9329-5669-4545-a7bd-87a9ea8b752f', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/0e8b9329-5669-4545-a7bd-87a9ea8b752f', 'rel': 'self'}, {'href': 'http://localhost/ports/0e8b9329-5669-4545-a7bd-87a9ea8b752f', 'rel': 'bookmark'}]}, {'uuid': '0503f516-8d1e-4d9c-b64a-8c838eb7c4f7', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0503f516-8d1e-4d9c-b64a-8c838eb7c4f7', 'rel': 'self'}, {'href': 'http://localhost/ports/0503f516-8d1e-4d9c-b64a-8c838eb7c4f7', 'rel': 'bookmark'}]}, {'uuid': 'a7f61615-ab5f-407f-8f3d-e2d2a3f96743', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a7f61615-ab5f-407f-8f3d-e2d2a3f96743', 'rel': 'self'}, {'href': 'http://localhost/ports/a7f61615-ab5f-407f-8f3d-e2d2a3f96743', 'rel': 'bookmark'}]}, {'uuid': '2c89365d-4990-4608-a17d-09cfd421b898', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/2c89365d-4990-4608-a17d-09cfd421b898', 'rel': 'self'}, {'href': 'http://localhost/ports/2c89365d-4990-4608-a17d-09cfd421b898', 'rel': 'bookmark'}]}, {'uuid': '9addf925-27d3-4fa1-8eb7-3a79bbd53935', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/9addf925-27d3-4fa1-8eb7-3a79bbd53935', 'rel': 'self'}, {'href': 'http://localhost/ports/9addf925-27d3-4fa1-8eb7-3a79bbd53935', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} GOT:{'ports': [{'uuid': 'b9fc3cd8-e491-4ea0-82c1-f02b3dbf0f59', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/b9fc3cd8-e491-4ea0-82c1-f02b3dbf0f59', 'rel': 'self'}, {'href': 'http://localhost/ports/b9fc3cd8-e491-4ea0-82c1-f02b3dbf0f59', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d3184481-ae53-4437-a8eb-379f98bac57f 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}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.077891s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.121157s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.106074s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.069636s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.105617s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id [0.099018s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.070414s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.052957s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal [0.101026s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.097545s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.093790s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.083929s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.091380s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.090415s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.099978s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.057040s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.059938s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.071748s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.103566s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.103634s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.096407s] ... ok 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:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-241f8d94-d08a-4d7a-962f-c6d46993434e 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/d198d4e7-407c-440b-851f-b3766918814d [{'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-da007fad-c177-43b2-a8c7-b3d6b974596b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "d198d4e7-407c-440b-851f-b3766918814d", "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/d198d4e7-407c-440b-851f-b3766918814d", "rel": "self"}, {"href": "http://localhost/ports/d198d4e7-407c-440b-851f-b3766918814d", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:08.835959+00:00", "updated_at": "2020-02-18T09:14:08.889148+00:00"} PATCH: /v1/ports/00b7518b-2c12-48e1-a410-b5e6ddaa3498 [{'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-b39b948f-e460-4889-9d62-d1212bf6c49b X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "00b7518b-2c12-48e1-a410-b5e6ddaa3498", "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/00b7518b-2c12-48e1-a410-b5e6ddaa3498", "rel": "self"}, {"href": "http://localhost/ports/00b7518b-2c12-48e1-a410-b5e6ddaa3498", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:08.939868+00:00", "updated_at": "2020-02-18T09:14:08.991267+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-6bbc98c6-971c-4e9a-8387-b12749623045 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-02-18T09:14:09.031988+00:00", "updated_at": "2020-02-18T09:14:09.085879+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-1b3536e8-456e-4c66-b185-8593e347b811 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-02-18T09:14:09.125633+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-3b645cdb-356b-4454-876c-0f02f83cea53 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-02-18T09:14:09.220585+00:00", "updated_at": "2020-02-18T09:14:09.274502+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-6cce4161-79a0-42a1-8b93-2da73840a3e9 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': '/portgroup_uuid', 'value': 'f3a17e3e-834a-4d8a-a202-5a7e993077d6', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4eba247f-f5ad-4092-baa6-d7d26744ed94 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": "f3a17e3e-834a-4d8a-a202-5a7e993077d6", "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-02-18T09:14:09.380170+00:00", "updated_at": "2020-02-18T09:14:09.441081+00:00"} 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-5e7f0bae-68f1-4e61-bbca-c7e251fec9f5 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-02-18T09:14:09.483841+00:00", "updated_at": "2020-02-18T09:14:09.540020+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-996092e3-63b6-4aa1-83d4-430194b2f599 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}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.068006s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.128508s] ... ok GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd6c6684-2afd-4638-8b3a-1a59a530e0bb 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=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?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'ports': []} GET: /v1/ports?node=test-node {} GOT:{'ports': [{'uuid': '4baa74f7-c8b5-4a20-b129-1686800c51ff', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/4baa74f7-c8b5-4a20-b129-1686800c51ff', 'rel': 'self'}, {'href': 'http://localhost/ports/4baa74f7-c8b5-4a20-b129-1686800c51ff', 'rel': 'bookmark'}]}, {'uuid': 'd6aeae75-ac84-44fe-95ad-f7fe315d5fe0', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/d6aeae75-ac84-44fe-95ad-f7fe315d5fe0', 'rel': 'self'}, {'href': 'http://localhost/ports/d6aeae75-ac84-44fe-95ad-f7fe315d5fe0', 'rel': 'bookmark'}]}, {'uuid': '5ae4ddb7-afcc-4505-b4e4-6dc41106f2fd', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/5ae4ddb7-afcc-4505-b4e4-6dc41106f2fd', 'rel': 'self'}, {'href': 'http://localhost/ports/5ae4ddb7-afcc-4505-b4e4-6dc41106f2fd', 'rel': 'bookmark'}]}]} 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-02-18T09:14:08.893244+00:00', 'updated_at': None}]} 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-ca6fabd7-c73b-4e73-99ce-8eba64aff114 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': '0b12945d-3e19-4b9b-9ad2-7cf42850b55e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/0b12945d-3e19-4b9b-9ad2-7cf42850b55e', 'rel': 'self'}, {'href': 'http://localhost/ports/0b12945d-3e19-4b9b-9ad2-7cf42850b55e', 'rel': 'bookmark'}]}, {'uuid': '3b6854b7-aa4e-4752-805e-0eb9408b1e36', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/3b6854b7-aa4e-4752-805e-0eb9408b1e36', 'rel': 'self'}, {'href': 'http://localhost/ports/3b6854b7-aa4e-4752-805e-0eb9408b1e36', 'rel': 'bookmark'}]}, {'uuid': 'facb8143-41fc-47fd-82eb-9b8368adf3ed', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/facb8143-41fc-47fd-82eb-9b8368adf3ed', 'rel': 'self'}, {'href': 'http://localhost/ports/facb8143-41fc-47fd-82eb-9b8368adf3ed', 'rel': 'bookmark'}]}]} GET: /v1/ports?fields=address&limit=2 {} GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/09158f9e-cb6f-413e-b217-f89dd4fd4e56', 'rel': 'self'}, {'href': 'http://localhost/ports/09158f9e-cb6f-413e-b217-f89dd4fd4e56', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/a9d2fc70-5c28-4c00-bbca-a3445636901f', 'rel': 'self'}, {'href': 'http://localhost/ports/a9d2fc70-5c28-4c00-bbca-a3445636901f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=a9d2fc70-5c28-4c00-bbca-a3445636901f'} 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-f3d67634-cb1d-421f-95d1-6cf3364a6b8d 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?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-24efc68c-13b7-491c-85b2-e309789ec7a3 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}"} 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-02-18T09:14:09.354272+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': {}, '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-02-18T09:14:09.425206+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-02-18T09:14:09.425206+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-02-18T09:14:09.528608+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-02-18T09:14:09.528608+00:00', 'updated_at': None}{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.110736s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.133908s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id [0.224780s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.232866s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.059276s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.056017s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.136630s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.062229s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node [0.064311s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.063244s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.066549s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.062801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.040848s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.063777s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.092237s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.069113s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.081401s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.099325s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.117191s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.062910s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.099603s] ... 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-02-18T09:14:09.662007+00:00', 'updated_at': None} GET: /v1/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f {} GOT:{'uuid': 'ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'self'}, {'href': 'http://localhost/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:09.795260+00:00', 'updated_at': None} GET: /v1/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f {} GOT:{'uuid': 'ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'self'}, {'href': 'http://localhost/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:09.795260+00:00', 'updated_at': None} GET: /ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f {} GOT:{'uuid': 'ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'self'}, {'href': 'http://localhost/ports/ac570c2a-1313-4bf8-82dc-a787cdf2ac9f', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:09.795260+00:00', 'updated_at': None} GET: /v1/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a {} GOT:{'uuid': 'c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'self'}, {'href': 'http://foo/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:10.009115+00:00', 'updated_at': None} GET: /v1/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a {} GOT:{'uuid': 'c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'self'}, {'href': 'http://foo/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:10.009115+00:00', 'updated_at': None} GET: /ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a {} GOT:{'uuid': 'c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'self'}, {'href': 'http://foo/ports/c2e2ae16-5eb8-46a5-a025-bc1ee352a13a', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:10.009115+00:00', 'updated_at': None} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '6f3a195d-1a69-4e30-9b43-6f04ea9fa280', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/6f3a195d-1a69-4e30-9b43-6f04ea9fa280', 'rel': 'self'}, {'href': 'http://localhost/ports/6f3a195d-1a69-4e30-9b43-6f04ea9fa280', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:10.149009+00:00', 'updated_at': None}]} 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/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': '4267e887-46dc-4efe-aae2-076025f74b02', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4267e887-46dc-4efe-aae2-076025f74b02', 'rel': 'self'}, {'href': 'http://localhost/ports/4267e887-46dc-4efe-aae2-076025f74b02', 'rel': 'bookmark'}]}, {'uuid': '82ff7604-de9a-4aa1-a1da-aa44c1a105e8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/82ff7604-de9a-4aa1-a1da-aa44c1a105e8', 'rel': 'self'}, {'href': 'http://localhost/ports/82ff7604-de9a-4aa1-a1da-aa44c1a105e8', 'rel': 'bookmark'}]}, {'uuid': 'c1859a14-fae7-4608-9d55-2338494e524f', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/c1859a14-fae7-4608-9d55-2338494e524f', 'rel': 'self'}, {'href': 'http://localhost/ports/c1859a14-fae7-4608-9d55-2338494e524f', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': 'b5e66073-0db7-4b75-91d5-d34d9173739a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b5e66073-0db7-4b75-91d5-d34d9173739a', 'rel': 'self'}, {'href': 'http://localhost/ports/b5e66073-0db7-4b75-91d5-d34d9173739a', 'rel': 'bookmark'}]}, {'uuid': '9655d9bc-409c-468a-b55c-3fcc9ad28509', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/9655d9bc-409c-468a-b55c-3fcc9ad28509', 'rel': 'self'}, {'href': 'http://localhost/ports/9655d9bc-409c-468a-b55c-3fcc9ad28509', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ef23ad38-9fbe-4e92-bb13-98089152f0fe 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-c2bdc21b-af6d-494b-9c8d-41b60c8e071c 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-ba46ed6e-3eca-42d9-980d-9b24f569e0b2 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/ports?sort_key=local_link_connection {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a79ca7b-217f-4ffb-8f37-38368bbbcfdc 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}"} PATCH: /v1/ports/af5b1c52-ea75-4e7b-b338-f2d99ced8adc [{'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-5a152b4f-3aff-4b0d-862f-e0ca74394e8e X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "af5b1c52-ea75-4e7b-b338-f2d99ced8adc", "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/af5b1c52-ea75-4e7b-b338-f2d99ced8adc", "rel": "self"}, {"href": "http://localhost/ports/af5b1c52-ea75-4e7b-b338-f2d99ced8adc", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:10.617421+00:00", "updated_at": "2020-02-18T09:14:10.668228+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated [0.101226s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal [0.163405s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.102361s] ... ok 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-d39195d8-16cc-46c8-b3df-84458dea101d 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/0dec10f4-57ab-44ba-b42d-905936270bb2 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f880d0f-15bd-4608-8f02-01cfe5b9be14 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "0dec10f4-57ab-44ba-b42d-905936270bb2", "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/0dec10f4-57ab-44ba-b42d-905936270bb2", "rel": "self"}, {"href": "http://localhost/ports/0dec10f4-57ab-44ba-b42d-905936270bb2", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:09.820438+00:00", "updated_at": "2020-02-18T09:14:09.949474+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-949823e0-d71b-414e-afb4-973d186b2e2e 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', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d57b2347-2d38-45ec-a662-aa7b758b628d 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/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4807380f-317e-4cf1-a1ae-440af636b4c7 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': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b7351ed1-dd37-4158-bdeb-4f0df58503fe 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-f6a6d3b3-1ffd-47bb-bc68-a9037566ed92 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': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f78cf9a-b4dd-4eec-9be7-82cc9f6ccb30 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': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6fbd60c9-96eb-40ae-a3da-6f432b07f20b 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-32045124-31af-4157-98cf-0cbee6229cd5 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-02-18T09:14:10.449314+00:00", "updated_at": "2020-02-18T09:14:10.508290+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-364fd531-77b3-4d22-8570-0b7fb7dba4a8 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': '/portgroup_uuid', 'value': '3e63451f-52b5-4353-bdd7-a1a28a70931a', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3caf5fe-7c78-4145-80b3-e92c286ff949 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": "3e63451f-52b5-4353-bdd7-a1a28a70931a", "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-02-18T09:14:10.614161+00:00", "updated_at": "2020-02-18T09:14:10.673816+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'c0241e33-7de3-4597-b1b1-7b67b2b96520', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '782bb444-e65c-4ebf-90b6-300b6ac39179', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3287c3d8-259d-48e7-83c7-508defff56d4 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": "782bb444-e65c-4ebf-90b6-300b6ac39179", "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-02-18T09:14:10.717752+00:00", "updated_at": "2020-02-18T09:14:10.782933+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.109062s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.197251s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.107732s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.063444s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.055815s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.059026s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.066874s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.106169s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal [0.098415s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.090812s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.063785s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same [0.099401s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.014682s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.015512s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.015349s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.014695s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.155919s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.137829s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.078775s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.270931s] ... ok 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-c11fedc7-330e-4772-9c90-3488d9bb2faa 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-02-18T09:14:10.873272+00:00", "updated_at": "2020-02-18T09:14:10.985446+00:00"} 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-ced39862-31e4-4915-868b-ff2dc22de637 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/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29a80663-67f9-43ba-a0af-c54008f89498 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-c91d8a52-eea7-468c-9b09-d746b74a0fcf 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-02-18T09:14:11.143434+00:00", "updated_at": "2020-02-18T09:14:11.211989+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-62425b8c-91bd-4e34-a005-8983b74d8d23 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}"} PATCH: /v1/ports/cee6fcdb-68aa-4aa4-96fc-436764c94264 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ffc13e94-0a41-4de5-9f3d-e4b62c567370 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 cee6fcdb-68aa-4aa4-96fc-436764c94264 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': '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-c6a99c85-b8e3-4ff0-b2a2-03aafde8d60a 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: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-3752f6ea-a1db-4356-aec4-f26e135b15cd 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': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-faef9a1a-facf-4c58-9723-1f6247b49d9b 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-02-18T09:14:11.733369+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port [0.103540s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.209517s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.075919s] ... ok PATCH: /v1/ports/e0e32ba3-cdb7-45e0-9e42-601fff4ad6b3 [{'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-e3ec2ef5-f39d-4104-b6f0-31617ffc8774 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "e0e32ba3-cdb7-45e0-9e42-601fff4ad6b3", "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/e0e32ba3-cdb7-45e0-9e42-601fff4ad6b3", "rel": "self"}, {"href": "http://localhost/ports/e0e32ba3-cdb7-45e0-9e42-601fff4ad6b3", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:10.758748+00:00", "updated_at": "2020-02-18T09:14:10.836676+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-909b0a14-7618-473d-8daa-cbd2ee2b4331 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': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f78889ce-95ac-4cfa-b243-0dda9676d5b3 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': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a529b2e2-e9f7-4af6-9a52-105571ec2d10 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}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/1f8d01a8-9d2a-4066-868e-a9460fd678f4 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-473d87b2-9503-43a6-a481-97c93fb3593d 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/a55ea915-f159-4aca-9f07-b0423c68146f [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7facd60-f8d1-435f-a811-ee7f1710d190 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "a55ea915-f159-4aca-9f07-b0423c68146f", "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/a55ea915-f159-4aca-9f07-b0423c68146f", "rel": "self"}, {"href": "http://localhost/ports/a55ea915-f159-4aca-9f07-b0423c68146f", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:11.227168+00:00", "updated_at": "2020-02-18T09:14:11.279745+00:00"} PATCH: /v1/ports/3635e6b0-2b12-48b8-943a-bb1b4ccf7f4d [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05c90ddb-5594-4a43-9bec-8bfdef37e837 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "3635e6b0-2b12-48b8-943a-bb1b4ccf7f4d", "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/3635e6b0-2b12-48b8-943a-bb1b4ccf7f4d", "rel": "self"}, {"href": "http://localhost/ports/3635e6b0-2b12-48b8-943a-bb1b4ccf7f4d", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:11.327793+00:00", "updated_at": "2020-02-18T09:14:11.379493+00:00"} 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-645d83b5-343c-426f-bb50-f69b560749bb 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-02-18T09:14:11.424569+00:00", "updated_at": "2020-02-18T09:14:11.483980+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-9c735295-db3e-499c-b543-77e5a9832a8c 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-02-18T09:14:11.424569+00:00", "updated_at": "2020-02-18T09:14:11.538825+00:00"} 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-4d30726b-7413-4770-a7c3-4f00cff63df1 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-40419111-c297-43e3-bedc-0e41e862f582 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-02-18T09:14:11.852740+00:00", "updated_at": "2020-02-18T09:14:11.938301+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.136547s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.088568s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.094322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.129110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.100691s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id [0.095978s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.067755s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.093362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.093866s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.096566s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.092994s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.064527s] ... ok 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-a88fadc4-293d-48d0-ab2e-1fc93b38d017 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-02-18T09:14:11.902505+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-02-18T09:14:11.902505+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-0b91b0fe-dcc9-48f8-8f82-e55454a724c2 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-e9865e34-0d78-429a-8dc8-36e956ec19d6 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', '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-52bac967-2b00-4ffa-8712-7f6ee89ff501 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-02-18T09:14:12.232752+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', '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-68be8c1b-e028-433b-b87c-d6f45a6947e7 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_info', 'switch_id'} .\", \"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: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-17c794e2-35df-4b9a-809e-378d43ca6775 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-02-18T09:14:12.395207+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': '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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a53a8bd4-47eb-4079-a278-ba8432f0267b 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}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.076812s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.173210s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.082006s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.064729s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.092361s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.084381s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.055961s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.077081s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.092813s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.093676s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.074784s] ... ok 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-4dc51e6b-b44d-428e-a337-e004a2b56bc9 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/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-4ad6ac90-97ee-4554-846f-afca1a6be726 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/91fea4db-799f-4f06-979a-e829fc1610f5 [{'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-a4d7584f-f517-485c-a08f-12308071846a X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "91fea4db-799f-4f06-979a-e829fc1610f5", "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/91fea4db-799f-4f06-979a-e829fc1610f5", "rel": "self"}, {"href": "http://localhost/ports/91fea4db-799f-4f06-979a-e829fc1610f5", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:12.213818+00:00", "updated_at": "2020-02-18T09:14:12.266258+00:00"} 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-6044854b-549a-466e-b0d6-ba017811bbac 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-02-18T09:14:12.305279+00:00", "updated_at": "2020-02-18T09:14:12.358772+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-7fb9b56d-aef2-48f0-9100-f3c9fbb3a55e 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-02-18T09:14:12.400634+00:00", "updated_at": "2020-02-18T09:14:12.459605+00:00"} 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-7e8f8b3a-4d86-43df-b542-7ca869feb415 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-02-18T09:14:12.501644+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-ec77abff-01a9-416a-b3c7-5f5815ac3b08 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': 'b791d1e1-2ac9-4101-84a2-23f0b35bcbe9', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8e2a03ec-56e9-42cd-aa63-0a34e9e7fda3 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': '8288242d-3536-4520-9777-54291a4dfefc', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d701907-adb0-40da-98c9-8e21ca240419 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-02-18T09:14:12.745758+00:00", "updated_at": null} 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-fdab6841-ddf7-4136-85ea-87bb683ab27d 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': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc1e78af-193a-4281-8bbf-5a4b7391c732 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-02-18T09:14:12.896612+00:00", "updated_at": "2020-02-18T09:14:12.948202+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}]{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.133549s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.125951s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.118604s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.077482s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.059497s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init [0.011844s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.018174s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.014457s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.014205s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.028657s] ... ok 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-fd61cfcb-118f-447c-9e33-8b34b1408d28 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-02-18T09:14:12.640171+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': '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-d919ac10-d2f3-4a87-b36f-afc981968796 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': 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-43171761-26bd-4405-8d22-dd0f77300c21 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-02-18T09:14:12.799500+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: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-05ea72b3-b7e5-4e78-b272-8f9f4d9ceca2 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-0a96b4e2-bf86-45f7-9be8-d15bc8e0e8ed 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-02-18T09:14:12.967851+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': '8254a01e-c6b9-4917-ad9c-598a349ab307', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-81471ca4-2a5a-49ac-a55e-299960fd7cbd 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 8254a01e-c6b9-4917-ad9c-598a349ab307 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': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4d75f922-53c9-4417-a959-05b052e9d646 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': '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-a3edf454-3e61-4917-a586-6856e9c94613 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': '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-e0e9be42-6708-441f-8aa3-d6247450e0bb 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}"}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.079502s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.139855s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.210444s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.084604s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.134227s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.337083s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.059458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.091385s] ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34fc424f-9815-42d5-bce6-d01d6d14fc3b 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-02-18T09:14:12.991447+00:00", "updated_at": "2020-02-18T09:14:13.077301+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-989e08fe-1477-45bd-abcb-d212478b13ce 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-02-18T09:14:13.147125+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-d89458b4-b7ca-40a5-84d2-3efefa17f06a 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': '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-9d32385e-aabe-4603-b299-0c345c581da7 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-02-18T09:14:13.523034+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-02-18T09:14:13.523034+00:00', 'updated_at': None} 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-4311ca3b-7885-48ca-bcb4-ff6e5eff24f3 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 {'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/aec0b118-e61c-432f-904f-7acde4c83b73 Openstack-Request-Id: req-06756a7a-15f5-41ac-b958-613edf8a4d97 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "aec0b118-e61c-432f-904f-7acde4c83b73", "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/aec0b118-e61c-432f-904f-7acde4c83b73", "rel": "self"}, {"href": "http://localhost/ports/aec0b118-e61c-432f-904f-7acde4c83b73", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-02-18T09:14:13.744512+00:00", "updated_at": null} GET: /v1/ports/aec0b118-e61c-432f-904f-7acde4c83b73 {} GOT:{'uuid': 'aec0b118-e61c-432f-904f-7acde4c83b73', '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/aec0b118-e61c-432f-904f-7acde4c83b73', 'rel': 'self'}, {'href': 'http://localhost/ports/aec0b118-e61c-432f-904f-7acde4c83b73', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-02-18T09:14:13.744512+00:00', 'updated_at': None} 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-80788370-06da-419f-96fa-06b6be4398f2 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'}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.117870s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.113010s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.089762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.056121s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.109413s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.092918s] ... ok 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-c85fa105-37fc-464b-af8f-0f4ba9466093 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-02-18T09:14:13.427539+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-02-18T09:14:13.427539+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': '97ce08db-51ad-4a5a-ae1e-7195a704bfe8'}, '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-839ea302-6f74-4769-b867-d410a89f3911 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": "97ce08db-51ad-4a5a-ae1e-7195a704bfe8"}, "internal_info": {"tenant_vif_port_id": "97ce08db-51ad-4a5a-ae1e-7195a704bfe8"}, "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-02-18T09:14:13.803390+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': '22d67a07-bad9-4317-b7ca-ac60f7fac45a'}, '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-76bb1768-ce99-497e-9005-dfd551815dd4 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": "22d67a07-bad9-4317-b7ca-ac60f7fac45a"}, "internal_info": {"tenant_vif_port_id": "22d67a07-bad9-4317-b7ca-ac60f7fac45a"}, "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-02-18T09:14:13.899293+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': 'a1a6e562-c846-48e1-b205-0531e52a3394'}, '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-cb3b5887-aa8b-4b53-89a0-723b8ecb0008 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': 'b51c5793-fadf-4585-bb00-f5fb82e815ac'}, '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-6cc4a4d1-40ef-4759-a922-4f9b67dcb289 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": "b51c5793-fadf-4585-bb00-f5fb82e815ac"}, "internal_info": {"tenant_vif_port_id": "b51c5793-fadf-4585-bb00-f5fb82e815ac"}, "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-02-18T09:14:14.119225+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'}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated [0.167115s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.134932s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.075354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.103232s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.106879s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.069834s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.103125s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.071397s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.068337s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b088d879-114d-4b7d-810d-2ccba2b7824b 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}"} 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-9862842e-495f-4a34-892f-82f2e454265b 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-237d32e0-a0e1-4013-a07f-d5b46caf6503 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'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-48483012-9ec9-4c69-919a-997fdd727021 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-02-18T09:14:14.206119+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-c4c28583-d604-4e67-bc70-a865c553def4 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-02-18T09:14:14.329678+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-5a266861-68e3-4b39-8d06-19bc5b33500b 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-02-18T09:14:14.444237+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-7961f6db-4ff7-47c7-acf2-2f44f3f802e3 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-02-18T09:14:14.547638+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-0411897d-6610-4d19-8494-e248188bf00e 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}"}{1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port [0.085345s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.103780s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.095759s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.175391s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports [0.078650s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.073452s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id [0.101043s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.113710s] ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a52705b3-7e08-4a84-b803-60a1b1039e9b 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-02-18T09:14:14.286469+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-a8f2aedb-6a84-4925-8522-eb5d0fbfa2f1 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': {'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-338b5100-8a32-48e9-a04d-ae99b26a49dd 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-02-18T09:14:14.467189+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-21ff0e76-597e-47cf-b572-24107f2ba903 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_info', 'hostname', 'switch_id'} .\", \"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-c31a1ece-7ff4-48d5-b000-4d7836c7500d 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': '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-dc93e335-cb66-4d6f-aed8-561f0d5537ce 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': '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-313834d9-de07-4c11-8335-c61bb16d5f9a 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-02-18T09:14:14.852143+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': '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-bf101835-d82c-49a4-9e0c-58136a4fd280 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: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f50eeb8b-4c4f-4642-a895-237826ddca1d 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-02-18T09:14:15.025629+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.098543s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.045426s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.072883s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.067595s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.056236s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.159454s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.086075s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.076940s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.102903s] ... 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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f2c83efb-cae4-448d-8e67-9e41bb9b53ce 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': {'vif_port_id': 'f6291128-babc-496f-9c87-cb645ae2fa09'}, '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-74c6ec4a-6764-444c-b88d-a4b48f50a528 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": "f6291128-babc-496f-9c87-cb645ae2fa09"}, "internal_info": {"tenant_vif_port_id": "f6291128-babc-496f-9c87-cb645ae2fa09"}, "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-02-18T09:14:14.836492+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': '331fedd5-9c65-4b28-ba36-6f51d90e88c5'}, '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-634f2c04-3c44-4bae-896e-e10018363477 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-8ad6c7c9-1bf1-494c-ba69-057cda8ca525 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-02-18T09:14:15.018283+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', 'internal_info': {'a': 'b'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c51c62a-5073-4ed1-b60c-189405a8002d 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': {'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-20089bc5-ce6b-4507-8d0f-be484225774c 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-02-18T09:14:15.296510+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-0dec0e13-afd9-4eac-8156-18bec99799eb 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': '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-f3573bf2-374e-4423-86f2-b6aff5cd6aab 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_portgroup.TestListPortgroups.test_collection_links_default_limit [0.137046s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.082017s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.114923s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.056371s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.089670s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.067592s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.071508s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.055724s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.103726s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.098606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.068891s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.056791s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.071197s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.054463s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.099161s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.072381s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.070947s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.091378s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.051188s] ... ok 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/pg.1 GOT:Response: 204 No Content Openstack-Request-Id: req-59dc932d-2a03-40c5-94f3-fb01dfdb938b 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-937b0ed8-c0e9-4a38-ad6a-7f682694b646 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\": \"\"}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d73e8347-9915-4bf4-af67-e01ce7e7a1cc 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?fields=address,uuid {} GOT:{'portgroups': [{'uuid': '5f5cbe0f-6f16-4114-b6a9-b985d77af2ec', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/5f5cbe0f-6f16-4114-b6a9-b985d77af2ec', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5f5cbe0f-6f16-4114-b6a9-b985d77af2ec', 'rel': 'bookmark'}]}, {'uuid': '4ec97136-0347-4bf9-9720-dd6d9007fceb', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/4ec97136-0347-4bf9-9720-dd6d9007fceb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4ec97136-0347-4bf9-9720-dd6d9007fceb', 'rel': 'bookmark'}]}, {'uuid': '5119bb22-a327-4280-911b-8b468e9105b3', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/5119bb22-a327-4280-911b-8b468e9105b3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5119bb22-a327-4280-911b-8b468e9105b3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=5119bb22-a327-4280-911b-8b468e9105b3'} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': 'e541487a-1639-472c-a0de-182c52290291', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/e541487a-1639-472c-a0de-182c52290291', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e541487a-1639-472c-a0de-182c52290291', 'rel': 'bookmark'}]}, {'uuid': '726fa9c0-2dee-472d-928d-1097b636c7ce', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/726fa9c0-2dee-472d-928d-1097b636c7ce', 'rel': 'self'}, {'href': 'http://localhost/portgroups/726fa9c0-2dee-472d-928d-1097b636c7ce', 'rel': 'bookmark'}]}, {'uuid': '5a8e7ecd-bfd9-4d1f-90b3-06f3d5f98bdf', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/5a8e7ecd-bfd9-4d1f-90b3-06f3d5f98bdf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5a8e7ecd-bfd9-4d1f-90b3-06f3d5f98bdf', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=5a8e7ecd-bfd9-4d1f-90b3-06f3d5f98bdf'} 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 {} 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-02-18T09:14:15.699460+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=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=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b9e5fc5-0bbf-4c78-8f91-2064b0f9e70e 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?node=test-node {} GOT:{'portgroups': [{'uuid': 'e35d7e4a-7048-421a-a6c5-0165cac7ef1e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/e35d7e4a-7048-421a-a6c5-0165cac7ef1e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e35d7e4a-7048-421a-a6c5-0165cac7ef1e', 'rel': 'bookmark'}]}, {'uuid': '5bc4204b-bac3-4484-8bcf-1242cf406652', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/5bc4204b-bac3-4484-8bcf-1242cf406652', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5bc4204b-bac3-4484-8bcf-1242cf406652', 'rel': 'bookmark'}]}, {'uuid': '1ea3673e-494d-4765-9722-489511402a9d', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/1ea3673e-494d-4765-9722-489511402a9d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1ea3673e-494d-4765-9722-489511402a9d', '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-02-18T09:14:16.099342+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'}]}]}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.094109s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.142898s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.118070s] ... ok 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-00aa0507-a76e-4936-872b-0aaa38f58bfa 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/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-71fa33da-7b56-425a-9818-b28d69c3a558 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/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-1614db8a-dc5b-42cc-9d98-691080acc639 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/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-36319869-ec1d-4b87-9b7b-49deb7c31741 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}"} GET: /v1/portgroups/?limit=3 {} GOT:{'portgroups': [{'uuid': '824683bb-7a97-413b-8f85-739b8ae892ab', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/824683bb-7a97-413b-8f85-739b8ae892ab', 'rel': 'self'}, {'href': 'http://localhost/portgroups/824683bb-7a97-413b-8f85-739b8ae892ab', 'rel': 'bookmark'}]}, {'uuid': 'aefc24f1-d8ef-404c-b023-341c7f2f25b3', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/aefc24f1-d8ef-404c-b023-341c7f2f25b3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/aefc24f1-d8ef-404c-b023-341c7f2f25b3', 'rel': 'bookmark'}]}, {'uuid': '03363b6a-4b14-47c6-8c44-eb628691bb3d', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/03363b6a-4b14-47c6-8c44-eb628691bb3d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/03363b6a-4b14-47c6-8c44-eb628691bb3d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=03363b6a-4b14-47c6-8c44-eb628691bb3d'} 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-02-18T09:14:15.942289+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-f2b273d2-af0c-4804-b167-bf20029905a2 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?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-02-18T09:14:16.070000+00:00', 'updated_at': None}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:{'portgroups': [{'uuid': 'e924be39-d20f-4813-bad1-d0b6d6b577b3', '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/e924be39-d20f-4813-bad1-d0b6d6b577b3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e924be39-d20f-4813-bad1-d0b6d6b577b3', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/e924be39-d20f-4813-bad1-d0b6d6b577b3/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e924be39-d20f-4813-bad1-d0b6d6b577b3/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.149439+00:00', 'updated_at': None}, {'uuid': '8503cca3-22fb-432c-ba46-439854b08a14', '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/8503cca3-22fb-432c-ba46-439854b08a14', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8503cca3-22fb-432c-ba46-439854b08a14', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/8503cca3-22fb-432c-ba46-439854b08a14/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8503cca3-22fb-432c-ba46-439854b08a14/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.147002+00:00', 'updated_at': None}, {'uuid': '4b5f6a19-0947-41fb-92eb-780faf768b42', '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/4b5f6a19-0947-41fb-92eb-780faf768b42', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4b5f6a19-0947-41fb-92eb-780faf768b42', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4b5f6a19-0947-41fb-92eb-780faf768b42/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4b5f6a19-0947-41fb-92eb-780faf768b42/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.143302+00:00', 'updated_at': None}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a4b49480-932a-4ac8-a1f6-6ca20b1e74fd 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=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46e3e744-d642-48f1-acaa-62ac99e9c502 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}"}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.062548s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.115362s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.140219s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.157414s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.083811s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.073232s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.073197s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.043372s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.053294s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.135812s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.068139s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.071147s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.115321s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.070015s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.078802s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.056170s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.054066s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.053989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.051889s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.066960s] ... ok GET: /v1/portgroups?fields=uuid,extra {} GOT:{'portgroups': [{'uuid': '7b77c30e-2e72-4f18-8d3e-e159cdf123cd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/7b77c30e-2e72-4f18-8d3e-e159cdf123cd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7b77c30e-2e72-4f18-8d3e-e159cdf123cd', 'rel': 'bookmark'}]}, {'uuid': '428e2af3-7e77-458c-936a-0c25a8590738', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/428e2af3-7e77-458c-936a-0c25a8590738', 'rel': 'self'}, {'href': 'http://localhost/portgroups/428e2af3-7e77-458c-936a-0c25a8590738', 'rel': 'bookmark'}]}, {'uuid': 'e0507f06-bfa4-4cc6-a049-69e39f081c22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/e0507f06-bfa4-4cc6-a049-69e39f081c22', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e0507f06-bfa4-4cc6-a049-69e39f081c22', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6d2434c9-dddc-42e7-872b-1d093147a95f 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-02-18T09:14:16.577558+00:00', 'updated_at': None} 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-02-18T09:14:16.686322+00:00', 'updated_at': None} GET: /v1/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb {} GOT:{'uuid': '379e1ed3-6f47-48ed-9b35-9d992b780bbb', '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/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.759799+00:00', 'updated_at': None} GET: /v1/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb {} GOT:{'uuid': '379e1ed3-6f47-48ed-9b35-9d992b780bbb', '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/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.759799+00:00', 'updated_at': None} GET: /portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb {} GOT:{'uuid': '379e1ed3-6f47-48ed-9b35-9d992b780bbb', '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/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/379e1ed3-6f47-48ed-9b35-9d992b780bbb/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:16.759799+00:00', 'updated_at': None} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '50992197-e276-48cd-b44a-ce2a7f62fe50', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/50992197-e276-48cd-b44a-ce2a7f62fe50', 'rel': 'self'}, {'href': 'http://localhost/portgroups/50992197-e276-48cd-b44a-ce2a7f62fe50', 'rel': 'bookmark'}]}, {'uuid': 'e013de44-7205-4d74-9ce3-b60511c7a693', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e013de44-7205-4d74-9ce3-b60511c7a693', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e013de44-7205-4d74-9ce3-b60511c7a693', 'rel': 'bookmark'}]}, {'uuid': 'e91bf926-a6d5-4546-a380-cff146f639ac', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e91bf926-a6d5-4546-a380-cff146f639ac', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e91bf926-a6d5-4546-a380-cff146f639ac', 'rel': 'bookmark'}]}, {'uuid': '72653a0b-d594-4a46-a83f-ca703cb8466a', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/72653a0b-d594-4a46-a83f-ca703cb8466a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/72653a0b-d594-4a46-a83f-ca703cb8466a', 'rel': 'bookmark'}]}, {'uuid': '6e5b1dcb-776f-4529-923c-1382ae20d3c9', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/6e5b1dcb-776f-4529-923c-1382ae20d3c9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6e5b1dcb-776f-4529-923c-1382ae20d3c9', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} GOT:{'portgroups': [{'uuid': '9f7934cc-6228-4a65-9c42-dcfdcf2ea4d8', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/9f7934cc-6228-4a65-9c42-dcfdcf2ea4d8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9f7934cc-6228-4a65-9c42-dcfdcf2ea4d8', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/7ce17f1e-b168-4285-86ff-72b0af004d2b/ports {} GOT:{'ports': [{'uuid': 'f1c33a81-2343-4a1c-897e-e343ea649c8a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'self'}, {'href': 'http://localhost/ports/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'bookmark'}]}, {'uuid': '172987e3-3d62-4f8c-a133-0688db4230a5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/172987e3-3d62-4f8c-a133-0688db4230a5', 'rel': 'self'}, {'href': 'http://localhost/ports/172987e3-3d62-4f8c-a133-0688db4230a5', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/7ce17f1e-b168-4285-86ff-72b0af004d2b/ports/detail {} GOT:{'ports': [{'uuid': 'f1c33a81-2343-4a1c-897e-e343ea649c8a', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '7ce17f1e-b168-4285-86ff-72b0af004d2b', '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/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'self'}, {'href': 'http://localhost/ports/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-02-18T09:14:17.094148+00:00', 'updated_at': None}, {'uuid': '172987e3-3d62-4f8c-a133-0688db4230a5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '7ce17f1e-b168-4285-86ff-72b0af004d2b', '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/172987e3-3d62-4f8c-a133-0688db4230a5', 'rel': 'self'}, {'href': 'http://localhost/ports/172987e3-3d62-4f8c-a133-0688db4230a5', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-02-18T09:14:17.096647+00:00', 'updated_at': None}]}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.361325s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.097994s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.058841s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.058606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.095603s] ... ok GET: /v1/portgroups {} GOT:{'portgroups': []} GET: /v1/portgroups?fields=address&limit=2 {} GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/1514a763-f848-4316-afdb-fcc47d3f1e5f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1514a763-f848-4316-afdb-fcc47d3f1e5f', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/8b9ef576-f5df-4a02-9d06-c5192009a34b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8b9ef576-f5df-4a02-9d06-c5192009a34b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=8b9ef576-f5df-4a02-9d06-c5192009a34b'} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4628e27f-d361-4d49-a62c-7ee7ebec4430 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?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-59ae4bf9-2979-4d5a-9195-18ba185c3876 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': '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-02-18T09:14:16.867914+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-02-18T09:14:16.939913+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?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ddfaec16-532b-4ee7-b2cb-4b0e96aa5916 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?address=aa:bb:cc:dd:ee:ff {} GOT:{'portgroups': []} GET: /v1/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-180ef502-855d-4577-befe-963d301297dd 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/606150f7-6c32-4d17-95ba-122504a41b17/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-beafe750-62a2-43ad-bb60-73034fd0c54c 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=uuid {} GOT:{'portgroups': [{'uuid': '8a50a2d4-7d6c-4190-9502-c7c0a96c559b', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/8a50a2d4-7d6c-4190-9502-c7c0a96c559b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8a50a2d4-7d6c-4190-9502-c7c0a96c559b', 'rel': 'bookmark'}]}, {'uuid': 'acfe4598-23c3-4ab4-8f3a-3dffb733e394', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/acfe4598-23c3-4ab4-8f3a-3dffb733e394', 'rel': 'self'}, {'href': 'http://localhost/portgroups/acfe4598-23c3-4ab4-8f3a-3dffb733e394', 'rel': 'bookmark'}]}, {'uuid': 'e36e9dd6-e422-4bf2-a2bf-a38947ba4df3', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e36e9dd6-e422-4bf2-a2bf-a38947ba4df3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e36e9dd6-e422-4bf2-a2bf-a38947ba4df3', 'rel': 'bookmark'}]}]} 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-90cef2f8-05a5-4c7f-baff-823ccb85fe8c 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2932d2b1-5f50-450d-9a07-c115d009df35 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-02-18T09:14:17.528759+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.094540s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.171937s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.163948s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.054650s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.063293s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.059664s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.091615s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.055908s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.087682s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.082429s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.056107s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.089868s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.061510s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.108559s] ... ok GET: /v1/portgroups/7ce17f1e-b168-4285-86ff-72b0af004d2b/ports?limit=1 {} GOT:{'ports': [{'uuid': 'f1c33a81-2343-4a1c-897e-e343ea649c8a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'self'}, {'href': 'http://localhost/ports/f1c33a81-2343-4a1c-897e-e343ea649c8a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=f1c33a81-2343-4a1c-897e-e343ea649c8a'} GET: /v1/portgroups/7ce17f1e-b168-4285-86ff-72b0af004d2b/ports/d09db68f-268f-43ac-83d2-3988c22d6048 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/7ce17f1e-b168-4285-86ff-72b0af004d2b/ports/eadab178-6ad5-47b0-aa0b-ee1e0749cadc {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d749c53b-22c6-4ec0-ace9-94227d5f7b48 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/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=mode {} GOT:{'portgroups': [{'uuid': '29aa25ac-ce3b-473e-85a2-9304e33a022b', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/29aa25ac-ce3b-473e-85a2-9304e33a022b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/29aa25ac-ce3b-473e-85a2-9304e33a022b', 'rel': 'bookmark'}]}, {'uuid': '67cc2cfe-fc91-4188-9c51-b65a9ef721fb', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/67cc2cfe-fc91-4188-9c51-b65a9ef721fb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/67cc2cfe-fc91-4188-9c51-b65a9ef721fb', 'rel': 'bookmark'}]}, {'uuid': '556ad0f1-7088-496e-9ab3-47611a16a72b', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/556ad0f1-7088-496e-9ab3-47611a16a72b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/556ad0f1-7088-496e-9ab3-47611a16a72b', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f62e5a6-f0b6-43f1-8e63-6dc710d0bd9f 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-3ed1c807-fc82-42fa-835e-b9b06226b993 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-67501c4e-79fe-4855-ba72-d9ce9a8dcdb4 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-6c9c9ffc-5ff6-42f8-9c14-a1ca082cc674 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-d79ac859-c685-4c23-8488-47597f7e3def 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-77df6f57-2268-4d7d-bce2-efcbbac547bd 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-02-18T09:14:17.838108+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8ff782c-95aa-431b-b97e-8c8543749766 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-02-18T09:14:17.928987+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-6d4fb7c0-9beb-4031-b5a4-22605743c577 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': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e0d7232-da18-45de-a4d3-a418c64c5e4a 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-02-18T09:14:18.074633+00:00", "updated_at": "2020-02-18T09:14:18.079903+00:00"}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.205877s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.074884s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.113620s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.110325s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.058752s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.083085s] ... ok 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-84567a54-e207-434a-a46b-c2d0c69f84a8 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-02-18T09:14:17.654457+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-eff0c570-c5e8-4754-bb5e-9698524cd64d 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/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-f131ffc9-f019-4e47-87c3-7d48da68199c 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-e664ff2b-9df6-4aca-b14e-fe86c14a131f 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': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-af2101b8-17f1-4e7d-bfe2-149ba482dbfa 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61b9b444-92a3-4863-8b79-84a2dbbff042 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-02-18T09:14:18.060729+00:00", "updated_at": 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-c4fc56c2-2aba-4a31-8441-cf6979e5597e 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/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2a68f57-ff02-4279-b71f-f9c4879d88ee 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-02-18T09:14:18.214936+00:00", "updated_at": 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-8e65b6b8-9514-4313-966a-68f8893ce9ac 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-02-18T09:14:18.347281+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-6f7a6c20-ae80-4ab4-8c90-5b1b86632c75 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-02-18T09:14:18.437659+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.099587s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.154810s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.124320s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.057967s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.044833s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.056091s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.046876s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.077709s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.112151s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id [0.097038s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.060674s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated [0.098883s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id [0.138274s] ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8649e18-5a9c-485a-a2be-69388b11ed83 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-02-18T09:14:18.074633+00:00", "updated_at": "2020-02-18T09:14:18.079903+00:00"} 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-80e7d16b-f80c-4043-b4f4-c1c3384fcf27 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': '/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-72ddf466-5168-4f63-ae7f-08340e1c7d77 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-02-18T09:14:18.374731+00:00", "updated_at": "2020-02-18T09:14:18.379728+00:00"} 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-4554b851-74fb-48eb-af3d-8e8ce784d3b1 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-82cf54a4-5829-4d4d-81ba-5ba4c2537004 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': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d4fac14-5962-4102-81ea-61866d069d1c 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-02-18T09:14:18.613450+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: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-bd92e7e0-b05b-4575-98f8-9f32523fc83d 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-02-18T09:14:18.830060+00:00", "updated_at": null} 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-802364b3-61ff-4fdc-aaf2-fcc56742d438 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-badaef9c-c6f3-45de-80b0-53e71b9be76d 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-02-18T09:14:19.003017+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.094112s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.119309s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.111569s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal [0.134723s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.046941s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.066530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal [0.099187s] ... ok 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-0901d874-6aa4-48c3-aa74-de0a0bba805d 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/848548a5-1836-4b93-912e-732784accd9a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5b6bc680-2d64-4c0b-b0b2-afebaaa6b803 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 848548a5-1836-4b93-912e-732784accd9a 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-9b6eebfa-525b-4ef7-ab63-c85b46fd98f6 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-61927ff6-1743-472d-bad8-a4a7a2d7781a 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-6749b54b-8d31-43ed-a803-658c0530e0b2 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-d15e578f-b75e-42b6-bf2c-60f5b9915a7d 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-02-18T09:14:18.888889+00:00", "updated_at": "2020-02-18T09:14:18.945240+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-3e64e3b6-4bc1-45b1-9bd0-d3254e81408f 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-02-18T09:14:18.989786+00:00", "updated_at": "2020-02-18T09:14:19.045004+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-45bccd7a-6902-4237-bf54-b926d70a033e 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-02-18T09:14:19.087159+00:00", "updated_at": "2020-02-18T09:14:19.170657+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-81f33920-6351-471c-a1ba-2f2c1b762e5b 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-02-18T09:14:19.261320+00:00", "updated_at": "2020-02-18T09:14:19.320537+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: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-caf2ac07-5932-4b5d-a2f1-425e94e86eba 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'}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.078908s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.093528s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same [0.152907s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.053364s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id [0.096325s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init [0.010560s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.088304s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.079780s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.062879s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.119485s] ... ok 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-07faf9bd-75ab-4bc3-9def-55b4da22f566 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-02-18T09:14:19.126936+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-aac3e5f3-0436-4609-aa1d-83a2a786abfd 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-02-18T09:14:19.225885+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-1d254f9e-0ae4-48cc-bd14-108a57c9c614 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-02-18T09:14:19.379114+00:00", "updated_at": "2020-02-18T09:14:19.439315+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-0477c276-7fbf-4ec0-a3b1-ffccaf89fd50 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-02-18T09:14:19.502449+00:00", "updated_at": "2020-02-18T09:14:19.594780+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-6418ac64-f714-4e33-aa79-8b870ff17e63 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-02-18T09:14:19.635097+00:00", "updated_at": "2020-02-18T09:14:19.692649+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-b1686571-e30f-4206-ac0a-99c63558d194 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}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.127576s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.199979s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.152458s] ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4cbe2eec-3060-45ee-b345-17167883be33 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d22704ee-e087-4eba-93f5-8d93285a0e47 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-01b077a3-2bce-466b-b5e9-25ecb1a54751 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-19117de2-81bc-4019-9c69-c17e4dd0fbd9 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-ecd6276c-25ec-4a5a-8640-88434b9a62ae 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, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, '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-3380ef06-195a-4e8e-8f4e-ae1ee3b30fa7 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-02-18T09:14:19.782203+00:00", "updated_at": null} 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-72e36948-e796-473d-9be7-b5ae6f263a33 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-38f79dea-59cb-4afc-b539-079804b53fcb 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-02-18T09:14:19.925190+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-02-18T09:14:19.925190+00:00', 'updated_at': None} 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-548fd9e2-8258-4668-b97a-1f974b4495d3 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-02-18T09:14:20.058490+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.156834s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id [0.116398s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.097949s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra [0.078437s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.049228s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.117570s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.058060s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.057889s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.087713s] ... ok 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-632c5a45-85eb-4dc0-b841-5b81c815f574 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-02-18T09:14:19.960595+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '0614b9e0-ba2c-494c-851c-cf85c2d044a0', 'name': '50adb5c1-61fc-4a45-9dcf-cda304b0a935', '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-a6729e9f-8c5b-4e8a-bec8-b35186047b50 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': '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-620a6d28-1380-4e1b-8ca5-05871b3ec1be 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-02-18T09:14:20.112254+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-02-18T09:14:20.112254+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-68855a34-18b9-4029-b625-37c199dc19ef 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-02-18T09:14:20.281655+00:00", "updated_at": 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-a28c40ff-19fd-406f-960a-100425aedeb8 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-02-18T09:14:20.366609+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-02-18T09:14:20.366609+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/8a95b458-a060-4b8f-9232-e8f607cbd938 Openstack-Request-Id: req-26fe73c6-61f0-4f4a-98e9-139e637c9618 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "8a95b458-a060-4b8f-9232-e8f607cbd938", "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/8a95b458-a060-4b8f-9232-e8f607cbd938", "rel": "self"}, {"href": "http://localhost/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938/ports", "rel": "self"}, {"href": "http://localhost/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938/ports", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:20.483089+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.142018s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.051172s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.094761s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.037723s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.134856s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.051109s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.099861s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.061474s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.070272s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.111665s] ... ok 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-02-18T09:14:20.058490+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-e4a189b3-7db1-455d-ab18-f5a6c7aeb013 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-02-18T09:14:20.235688+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-0c8562ed-6f46-43b3-a195-cc815dee1fdb 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-02-18T09:14:20.324045+00:00", "updated_at": null} POST: /v1/heartbeat/e9242107-c027-4cca-888c-a054db2b0983 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-836762dc-fac9-4df5-af6f-8f2e68e78c23 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 e9242107-c027-4cca-888c-a054db2b0983 could not be found.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-1dfc6ad9-2982-4d6e-b16c-8b26f2eb1a78 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: 202 Accepted Openstack-Request-Id: req-382dc7f7-7718-4c32-8710-777c54843e02 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-57f92bf8-179e-4941-8114-54f700175332 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-6984cff7-e2b8-48e9-94f6-7942e8795488 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/573d6ea0-c874-4de9-be0a-3167de91aa3a {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c0e18043-bd5a-41da-9007-1584679bfaa1 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 {} GOT:{'node': {'uuid': '62a731b1-57fe-4ff5-9cf8-e57e84a1929f', '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/62a731b1-57fe-4ff5-9cf8-e57e84a1929f', 'rel': 'self'}, {'href': 'http://localhost/nodes/62a731b1-57fe-4ff5-9cf8-e57e84a1929f', '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=a77067b6-d61d-40f7-89a7-cfc9e6c8672a {} GOT:{'node': {'uuid': 'a77067b6-d61d-40f7-89a7-cfc9e6c8672a', '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/a77067b6-d61d-40f7-89a7-cfc9e6c8672a', 'rel': 'self'}, {'href': 'http://localhost/nodes/a77067b6-d61d-40f7-89a7-cfc9e6c8672a', '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=dcd4c974-3dcb-4e33-8cf3-4e0f20cd4ebd {} GOT:{'node': {'uuid': 'dcd4c974-3dcb-4e33-8cf3-4e0f20cd4ebd', '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/dcd4c974-3dcb-4e33-8cf3-4e0f20cd4ebd', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcd4c974-3dcb-4e33-8cf3-4e0f20cd4ebd', '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}}{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.085030s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.130569s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.115348s] ... ok GET: /v1/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938 {} GOT:{'uuid': '8a95b458-a060-4b8f-9232-e8f607cbd938', '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/8a95b458-a060-4b8f-9232-e8f607cbd938', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8a95b458-a060-4b8f-9232-e8f607cbd938/ports', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:20.483089+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-c29d1471-d506-4fd8-887f-46bbecd86304 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', '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-df57e058-f559-4d87-be1b-55343e5524cc 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-02-18T09:14:20.695693+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-02-18T09:14:20.695693+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} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-992d1778-899c-4c12-9963-374eeaaaf3bb 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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca4dbce1-c9ed-45ef-8f3a-5218f33301ed 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': {}, '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-74e99e92-2928-4b6b-ab04-0b9fa5fa1cb8 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-8f660521-84c4-4a73-9bd7-9342d61ff19d 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-02-18T09:14:21.042420+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated [0.089420s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.103388s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.148097s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.085253s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.011062s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.039869s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.060520s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values [0.010733s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_mac_network_port_event [0.009809s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value [0.026602s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr [0.011490s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op [0.011823s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path [0.012448s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr [0.012051s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op [0.011797s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type [0.009732s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.130803s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type [0.010457s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value [0.009327s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_local_link_keys_mandatory [0.010007s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_local_link_mandatory_key [0.009604s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id [0.009670s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_with_optional [0.009530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid [0.009406s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid [0.009227s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id [0.009843s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key [0.009366s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.107547s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.010267s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.009967s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.009684s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.009167s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.009491s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.009071s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.009194s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.009364s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.009014s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.093077s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.010746s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait [0.010620s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.010429s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.010576s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.010151s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.066849s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.011518s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.011606s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.011287s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.010368s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.012477s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.011054s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.011469s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value [0.010617s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.011700s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values [0.009572s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.011783s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_event_missing_madatory_field [0.015082s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.011791s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_event_type [0.010175s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_missing_mandatory_fields_network_port_event [0.009911s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.012171s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_network_port_event [0.010389s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.011892s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_simple_event_type [0.009776s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.011396s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.010726s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value [0.025129s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.011336s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr [0.012792s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.011811s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr [0.012192s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.011562s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr [0.012247s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.012079s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path [0.012512s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.011180s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches [0.013846s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.012084s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring [0.010643s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.012475s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values [0.010892s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.012095s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values [0.010018s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id [0.009798s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.011540s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key [0.010685s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.013250s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.010232s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.011613s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_mandatory [0.010088s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.012362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.010481s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr [0.009764s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.014601s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr [0.011083s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.011175s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name [0.010860s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.012319s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name [0.010972s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.013539s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name [0.011001s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name [0.010449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.014600s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid [0.012375s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.012453s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type [0.010112s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.010636s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key [0.010514s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.012522s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.010828s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.013175s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.010251s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.010685s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.013754s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.010010s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.012819s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.009974s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.011415s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.010287s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.009530s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.012467s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.009959s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.009883s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.010626s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.010956s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.044435s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.010976s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.011180s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.010698s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.011520s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.011473s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.011254s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.010904s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.085182s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.011911s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.011137s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.011627s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.011729s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.012158s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.011332s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.012811s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.011593s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.016356s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.116971s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.018025s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.026212s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.014102s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.011616s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.011815s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.010410s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.010983s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.010499s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.112804s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.010998s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.010538s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.010822s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.010782s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.010937s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.010554s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.010757s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.010533s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.011049s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.010433s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.113353s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.012185s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.011757s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.011957s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.011570s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.010040s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.010870s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.011285s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.009768s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.082283s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.011778s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.009854s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.010071s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.013343s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.010153s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.010414s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.069805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.211198s] ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=57c1ec33-69c2-4265-94a8-63cbc857d796 {} GOT:{'node': {'uuid': '57c1ec33-69c2-4265-94a8-63cbc857d796', '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/57c1ec33-69c2-4265-94a8-63cbc857d796', 'rel': 'self'}, {'href': 'http://localhost/nodes/57c1ec33-69c2-4265-94a8-63cbc857d796', '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-1084e143-859c-4b60-8c22-f67a4c1f8b2a 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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-096136b8-1767-4ad1-ba06-14ac4764efff 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/ {} 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:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15561ad5-75ca-4e60-a181-0f3925e71302 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-93fb455e-58d3-48ee-b763-a90da6aa0ea7 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/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '64af4795-3734-4d11-8f50-c3d4ab1b3df4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/64af4795-3734-4d11-8f50-c3d4ab1b3df4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/64af4795-3734-4d11-8f50-c3d4ab1b3df4', 'rel': 'bookmark'}]}, {'uuid': '956a964c-9bd7-40ca-9a89-4ffa27afef25', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/956a964c-9bd7-40ca-9a89-4ffa27afef25', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/956a964c-9bd7-40ca-9a89-4ffa27afef25', 'rel': 'bookmark'}]}, {'uuid': 'd214bd95-8dca-471d-ac7c-e75182ed144b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/d214bd95-8dca-471d-ac7c-e75182ed144b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d214bd95-8dca-471d-ac7c-e75182ed144b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=d214bd95-8dca-471d-ac7c-e75182ed144b'} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '866988db-d849-4cc6-8cb7-a6e827f2a3dd', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/866988db-d849-4cc6-8cb7-a6e827f2a3dd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/866988db-d849-4cc6-8cb7-a6e827f2a3dd', 'rel': 'bookmark'}]}, {'uuid': '0eb16d94-35ff-4c9a-8ca1-6d17d15a29bd', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/0eb16d94-35ff-4c9a-8ca1-6d17d15a29bd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0eb16d94-35ff-4c9a-8ca1-6d17d15a29bd', 'rel': 'bookmark'}]}, {'uuid': '52c43815-c882-498a-80f1-1c6a4581cb16', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/52c43815-c882-498a-80f1-1c6a4581cb16', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/52c43815-c882-498a-80f1-1c6a4581cb16', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=52c43815-c882-498a-80f1-1c6a4581cb16'} GET: /v1/volume/connectors?detail=True&limit=3 {} GOT:{'connectors': [{'uuid': 'fa1fd79a-41b9-4162-a1a1-08a352aedce9', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/fa1fd79a-41b9-4162-a1a1-08a352aedce9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fa1fd79a-41b9-4162-a1a1-08a352aedce9', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:22.641801+00:00', 'updated_at': None}, {'uuid': '73e39cea-6904-4069-973e-8b842a550d8d', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/73e39cea-6904-4069-973e-8b842a550d8d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/73e39cea-6904-4069-973e-8b842a550d8d', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:22.644080+00:00', 'updated_at': None}, {'uuid': '8bdb60bd-02a5-452d-b757-5f60b9407cb3', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/8bdb60bd-02a5-452d-b757-5f60b9407cb3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8bdb60bd-02a5-452d-b757-5f60b9407cb3', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:22.646333+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=8bdb60bd-02a5-452d-b757-5f60b9407cb3'} 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 {} GOT:{'connectors': []} GET: /v1/volume/connectors?node=test-node {} GOT:{'connectors': [{'uuid': 'c3852378-4933-4e1a-8797-419372131f27', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c3852378-4933-4e1a-8797-419372131f27', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c3852378-4933-4e1a-8797-419372131f27', 'rel': 'bookmark'}]}, {'uuid': 'c1257ebc-fb03-4253-9d49-1c6a8952f46c', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c1257ebc-fb03-4253-9d49-1c6a8952f46c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c1257ebc-fb03-4253-9d49-1c6a8952f46c', 'rel': 'bookmark'}]}, {'uuid': '6c9c3996-3ca1-4498-9585-ea7cb27247a4', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6c9c3996-3ca1-4498-9585-ea7cb27247a4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6c9c3996-3ca1-4498-9585-ea7cb27247a4', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.107252s] ... 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82bc6aeb-ab16-4fd2-aac8-7f81e599454e 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}"} 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-d39e93cb-639e-4b92-a28d-a974fb12528b 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-02-18T09:14:21.297189+00:00", "updated_at": null} POST: /v1/heartbeat/test.1 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-80811b74-425a-4554-86ee-d56676a7798f 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&node_uuid=23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549 {} GOT:{'node': {'uuid': '23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', 'rel': 'self'}, {'href': 'http://localhost/nodes/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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=23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549 {} GOT:{'node': {'uuid': '23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', 'rel': 'self'}, {'href': 'http://localhost/nodes/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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=23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549 {} GOT:{'node': {'uuid': '23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', 'rel': 'self'}, {'href': 'http://localhost/nodes/23fc09ec-6dbf-4ea6-9fd0-d63e6dca8549', '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': 'e9969b33-a98d-4731-b00f-9527e19bf42c', '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/e9969b33-a98d-4731-b00f-9527e19bf42c', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9969b33-a98d-4731-b00f-9527e19bf42c', '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-30a55e61-3f58-44ce-b4e3-0078d211b61f 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&node_uuid=b6077998-25da-4464-8f3a-9bf6110ce7bd {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1587e16e-643b-46f2-9347-f5749eb18fdd 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/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'}]} 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': []} 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\": \"\"}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.053057s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.162063s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.087553s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.418088s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.090413s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.108322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.075655s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.076845s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.044140s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.064457s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.063583s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.161849s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.083089s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.043221s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.062908s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.128406s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.044517s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.075359s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.074284s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.043769s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.077055s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.085596s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.063394s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.099591s] ... ok GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '7908dac9-252c-463c-955f-4ada025066b1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/7908dac9-252c-463c-955f-4ada025066b1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7908dac9-252c-463c-955f-4ada025066b1', 'rel': 'bookmark'}]}, {'uuid': 'dac1ffb7-0e84-4373-bdda-6ecdad477a1a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/dac1ffb7-0e84-4373-bdda-6ecdad477a1a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dac1ffb7-0e84-4373-bdda-6ecdad477a1a', 'rel': 'bookmark'}]}, {'uuid': '74c5bd18-b3ab-4b11-9655-9dd27a4db71b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/74c5bd18-b3ab-4b11-9655-9dd27a4db71b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/74c5bd18-b3ab-4b11-9655-9dd27a4db71b', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?fields=connector_id&limit=2 {} GOT:{'connectors': [{'connector_id': 'test-connector_id-0', 'links': [{'href': 'http://localhost/v1/volume/connectors/a1c31891-146b-4bf3-9579-7ae7502819d8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a1c31891-146b-4bf3-9579-7ae7502819d8', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/96fee345-a425-40ea-a470-89d929ca9add', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/96fee345-a425-40ea-a470-89d929ca9add', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=96fee345-a425-40ea-a470-89d929ca9add'} 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-02-18T09:14:23.528301+00:00', 'updated_at': None} 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/da6e3915-40bb-4f50-ba2b-50d56fee98b9 {} GOT:{'uuid': 'da6e3915-40bb-4f50-ba2b-50d56fee98b9', '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/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:23.649901+00:00', 'updated_at': None} GET: /v1/volume/connectors/da6e3915-40bb-4f50-ba2b-50d56fee98b9 {} GOT:{'uuid': 'da6e3915-40bb-4f50-ba2b-50d56fee98b9', '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/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:23.649901+00:00', 'updated_at': None} GET: /volume/connectors/da6e3915-40bb-4f50-ba2b-50d56fee98b9 {} GOT:{'uuid': 'da6e3915-40bb-4f50-ba2b-50d56fee98b9', '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/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/da6e3915-40bb-4f50-ba2b-50d56fee98b9', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:23.649901+00:00', 'updated_at': None} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '6ea82ea0-09d2-473b-b573-0d5d029e102f', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6ea82ea0-09d2-473b-b573-0d5d029e102f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6ea82ea0-09d2-473b-b573-0d5d029e102f', 'rel': 'bookmark'}]}, {'uuid': 'd1ab643f-e2ea-44fa-9597-91e9e9e5b5f7', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/d1ab643f-e2ea-44fa-9597-91e9e9e5b5f7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d1ab643f-e2ea-44fa-9597-91e9e9e5b5f7', 'rel': 'bookmark'}]}, {'uuid': 'de846e1b-359d-4cce-a68e-8da5809444ef', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/de846e1b-359d-4cce-a68e-8da5809444ef', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/de846e1b-359d-4cce-a68e-8da5809444ef', 'rel': 'bookmark'}]}, {'uuid': 'fd6ef7ea-70d2-4bd4-b287-9c7833b8b529', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/fd6ef7ea-70d2-4bd4-b287-9c7833b8b529', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fd6ef7ea-70d2-4bd4-b287-9c7833b8b529', 'rel': 'bookmark'}]}, {'uuid': '00155e1e-9fa8-4a82-90fa-ef9577c4148f', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/00155e1e-9fa8-4a82-90fa-ef9577c4148f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/00155e1e-9fa8-4a82-90fa-ef9577c4148f', '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 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41ad4202-7fa6-4180-a6b3-d22e05198363 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-dc962e38-573f-423f-a767-2f1585ff1722 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': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-173a8e7c-1111-4f8b-81c1-0a3b06bc4fc6 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': '/value', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8ddd868-0f88-42bc-af06-4152e18054a4 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}"}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.061336s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.060695s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.143762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.118714s] ... ok DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1131d9c4-6db7-4b99-bf94-bcd4dbeb8bf8 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}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-394c8397-b6ee-4cda-a1a1-017511329fd8 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/?limit=3 {} GOT:{'connectors': [{'uuid': '59c36c09-c5a8-4368-a607-5093a2e1a756', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/59c36c09-c5a8-4368-a607-5093a2e1a756', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59c36c09-c5a8-4368-a607-5093a2e1a756', 'rel': 'bookmark'}]}, {'uuid': 'cb53bbb3-2636-449d-9233-49d94bf58f99', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/cb53bbb3-2636-449d-9233-49d94bf58f99', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cb53bbb3-2636-449d-9233-49d94bf58f99', 'rel': 'bookmark'}]}, {'uuid': 'a9f8224f-ab3b-479e-96d4-afb5d867700b', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a9f8224f-ab3b-479e-96d4-afb5d867700b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a9f8224f-ab3b-479e-96d4-afb5d867700b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=a9f8224f-ab3b-479e-96d4-afb5d867700b'} 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-02-18T09:14:23.531136+00:00', 'updated_at': None}]} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf4fd287-7768-4c27-bbc9-a2fc3a7f887b 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-2924a70b-bffc-4861-8b73-a31e6af33b2e 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-02-18T09:14:23.739255+00:00', 'updated_at': None}]} 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/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-729d684d-047a-476e-9a02-34fab265fb31 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/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-f4c9c847-4948-4909-8005-423b12289215 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?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?sort_key=uuid {} GOT:{'connectors': [{'uuid': '475a9b73-fade-41f8-94fb-057a1f147128', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/475a9b73-fade-41f8-94fb-057a1f147128', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/475a9b73-fade-41f8-94fb-057a1f147128', 'rel': 'bookmark'}]}, {'uuid': '91d40a72-5cfa-494d-ac77-4d5d55e0c780', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/91d40a72-5cfa-494d-ac77-4d5d55e0c780', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/91d40a72-5cfa-494d-ac77-4d5d55e0c780', 'rel': 'bookmark'}]}, {'uuid': 'fa3feaba-addb-4dfe-bdbd-dbe36beeca53', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/fa3feaba-addb-4dfe-bdbd-dbe36beeca53', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/fa3feaba-addb-4dfe-bdbd-dbe36beeca53', 'rel': 'bookmark'}]}]} 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-b5ba6fb3-56e9-4aa9-83cd-cf357d7c0547 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-02-18T09:14:24.226151+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.138022s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.112030s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.203170s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.108715s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.062270s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.122645s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.091241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.121534s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.038361s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.157678s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.061487s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.064730s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.058458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.061690s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.066487s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.098482s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.067715s] ... ok 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-7c838a17-9505-4032-befb-69a741eebc0d 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': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-80820fbd-b274-4345-887b-e9e9964acde6 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-cf73d626-1e02-470f-8f11-5333b2055dcf 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': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56a9e4ef-f1e8-4760-a68b-21d6d2d7ccd3 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-02-18T09:14:24.594612+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: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5f3f3977-e2a5-40d0-b2ce-973f61ba2bd6 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-b9386ba7-b577-410e-b0fe-d44ae1499def 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-02-18T09:14:24.869280+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-02-18T09:14:24.869280+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', '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-4eb9fe55-9f76-45d6-a14e-e23d01a6cce9 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/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-355be5da-b219-465c-9315-4fe3feb95929 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': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf5a1859-44a3-4c71-84d0-13b667e3512d 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/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-d980fbf4-6202-4536-857c-b09e221e5ecf 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-02-18T09:14:25.221311+00:00", "updated_at": null}{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.089552s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init [0.022644s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.133575s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.145781s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.131353s] ... 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-b8fe81f4-78c8-4d6b-8144-8078caf3e945 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24dd3456-344f-4705-9b2a-2309a2645472 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-02-18T09:14:24.506492+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-0b02435d-04c4-46ce-b066-88c9fbace90c 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-d220636d-fe35-4cf8-8968-448a2710f83e 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-02-18T09:14:24.746062+00:00", "updated_at": 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-fd72e166-f03a-4cce-a9df-d0e8678761f4 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-02-18T09:14:24.837990+00:00", "updated_at": "2020-02-18T09:14:24.842917+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-2b2a9ad7-4bb5-4159-a089-215f322423b6 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-02-18T09:14:24.837990+00:00", "updated_at": "2020-02-18T09:14:24.842917+00:00"} 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-e21175db-7713-471b-9a42-14bf5bc48d92 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': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-002e1780-7003-491b-9ac8-82b3c78bc7b7 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/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-02fdf6ab-c772-4a6e-80ef-a612c6a13bad 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-02-18T09:14:25.124717+00:00", "updated_at": "2020-02-18T09:14:25.129457+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-770a489b-0e98-4645-8b91-810819a297ac 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af26ec1d-a9bc-4fd0-b573-b394670b2bd4 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-02-18T09:14:25.291817+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-7731ce69-fbd0-4727-8d18-9371b17c17e5 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}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.069042s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.125372s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.097307s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.150584s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.040346s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.076985s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.061945s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.081495s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.067680s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.075782s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.042383s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.122632s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.055409s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.065180s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.054931s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.103110s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.110108s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.077313s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.042227s] ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aba22c8d-8cca-40df-abe7-c31261bf9468 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}"} GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'f84ec1c9-2bae-4010-84b0-da9eacf2593a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/f84ec1c9-2bae-4010-84b0-da9eacf2593a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f84ec1c9-2bae-4010-84b0-da9eacf2593a', 'rel': 'bookmark'}]}, {'uuid': 'fb8c8ec7-5c18-4d02-b09c-2eac02c78f1e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/fb8c8ec7-5c18-4d02-b09c-2eac02c78f1e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fb8c8ec7-5c18-4d02-b09c-2eac02c78f1e', 'rel': 'bookmark'}]}, {'uuid': '3b03a519-39c9-411f-b9ab-902c82f96f3b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/3b03a519-39c9-411f-b9ab-902c82f96f3b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/3b03a519-39c9-411f-b9ab-902c82f96f3b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=3b03a519-39c9-411f-b9ab-902c82f96f3b'} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '902cffb0-0026-4fff-b1fa-5676940d510a', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/902cffb0-0026-4fff-b1fa-5676940d510a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/902cffb0-0026-4fff-b1fa-5676940d510a', 'rel': 'bookmark'}]}, {'uuid': 'ae74ef3f-2c62-4c7b-aea7-3fedf582ca3f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ae74ef3f-2c62-4c7b-aea7-3fedf582ca3f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ae74ef3f-2c62-4c7b-aea7-3fedf582ca3f', 'rel': 'bookmark'}]}, {'uuid': '53cbc94a-c77e-453e-b814-6a85404e89db', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/53cbc94a-c77e-453e-b814-6a85404e89db', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/53cbc94a-c77e-453e-b814-6a85404e89db', '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=53cbc94a-c77e-453e-b814-6a85404e89db'} 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-02-18T09:14:25.721680+00:00', 'updated_at': None}]} 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-02-18T09:14:25.803423+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?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /v1/volume/targets?node=test-node {} GOT:{'targets': [{'uuid': '40b97ce1-b866-43c2-95b0-4919a8462eb3', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/40b97ce1-b866-43c2-95b0-4919a8462eb3', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/40b97ce1-b866-43c2-95b0-4919a8462eb3', 'rel': 'bookmark'}]}, {'uuid': 'e1e0906b-fb06-41e6-b992-cf4b42d97a95', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e1e0906b-fb06-41e6-b992-cf4b42d97a95', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e1e0906b-fb06-41e6-b992-cf4b42d97a95', 'rel': 'bookmark'}]}, {'uuid': '4c986e92-e066-471a-82ad-54902cd43eb8', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4c986e92-e066-471a-82ad-54902cd43eb8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4c986e92-e066-471a-82ad-54902cd43eb8', '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-67726284-6b5e-4e06-83f5-b555de0a2c75 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': '9317e89c-aea9-4f2f-9561-6bc5b89b2bc6', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9317e89c-aea9-4f2f-9561-6bc5b89b2bc6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9317e89c-aea9-4f2f-9561-6bc5b89b2bc6', 'rel': 'bookmark'}]}, {'uuid': '4dd0b1f6-895a-4e99-92be-c480b88523aa', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4dd0b1f6-895a-4e99-92be-c480b88523aa', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4dd0b1f6-895a-4e99-92be-c480b88523aa', 'rel': 'bookmark'}]}, {'uuid': '47f8b179-3655-48d5-a267-13f4fde299e4', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/47f8b179-3655-48d5-a267-13f4fde299e4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/47f8b179-3655-48d5-a267-13f4fde299e4', 'rel': 'bookmark'}]}, {'uuid': '85097346-a4a0-4b59-8bb4-768382f93786', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/85097346-a4a0-4b59-8bb4-768382f93786', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/85097346-a4a0-4b59-8bb4-768382f93786', 'rel': 'bookmark'}]}, {'uuid': '5dcb65d4-7adb-4af8-bad3-5b480be49898', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5dcb65d4-7adb-4af8-bad3-5b480be49898', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5dcb65d4-7adb-4af8-bad3-5b480be49898', 'rel': 'bookmark'}]}]}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.121080s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.136708s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.046581s] ... ok 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-824e8715-b77e-4456-9d1e-742ecde4a750 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': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9112d388-3e3b-415f-a226-2ad85f96afb7 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-02-18T09:14:25.620914+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/eadf73fa-64db-4852-aafb-7ab2c23f5d20 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7533f052-0dfa-4d63-a60f-277eb3e2d223 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 eadf73fa-64db-4852-aafb-7ab2c23f5d20 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: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-75483da3-170d-4202-85c7-2b26af64bd6f 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/62432885-d9df-4243-908f-1322fd654666 Openstack-Request-Id: req-9c389e09-4cb2-4864-850d-81ac833b58f3 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "62432885-d9df-4243-908f-1322fd654666", "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/62432885-d9df-4243-908f-1322fd654666", "rel": "self"}, {"href": "http://localhost/volume/connectors/62432885-d9df-4243-908f-1322fd654666", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:25.932749+00:00", "updated_at": null} GET: /v1/volume/connectors/62432885-d9df-4243-908f-1322fd654666 {} GOT:{'uuid': '62432885-d9df-4243-908f-1322fd654666', '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/62432885-d9df-4243-908f-1322fd654666', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/62432885-d9df-4243-908f-1322fd654666', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:25.932749+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': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-759c966b-eecf-45a0-99d7-f1da8ba5900f 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', '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-27d660cd-4b81-413e-92ab-7e830fb35227 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': '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-ca2949cc-e913-497a-99d3-cac3c87adc93 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-02-18T09:14:26.158902+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': '4efc958a-1b6a-4462-9678-4e7168edd29d', '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-7fe86f8e-fb8e-42fa-86ba-8007487073ce 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-86b57460-690b-4cf8-9e2a-6625302ce017 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-02-18T09:14:26.274675+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.372772s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.156986s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.162758s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.040355s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.092223s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.083825s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.059871s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.101778s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.094547s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.063142s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.102591s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.062992s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.062206s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.061305s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.059010s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.058576s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.058463s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.084795s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.097807s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.084037s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.094306s] ... ok 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-02-18T09:14:26.274675+00:00', 'updated_at': None} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-92604788-73de-4854-b84f-70e9b1843dc5 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: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-55a2a058-f1e4-4873-a3ad-b3552e99c656 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': 'ff35da46-8923-4a00-8f0f-cd48210c31d5', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ff35da46-8923-4a00-8f0f-cd48210c31d5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ff35da46-8923-4a00-8f0f-cd48210c31d5', 'rel': 'bookmark'}]}, {'uuid': 'dbfd18a3-478b-4259-9e03-08effd035632', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/dbfd18a3-478b-4259-9e03-08effd035632', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dbfd18a3-478b-4259-9e03-08effd035632', 'rel': 'bookmark'}]}, {'uuid': '562135a4-f24e-4095-9c25-ab0ddd58a03b', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/562135a4-f24e-4095-9c25-ab0ddd58a03b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/562135a4-f24e-4095-9c25-ab0ddd58a03b', '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=562135a4-f24e-4095-9c25-ab0ddd58a03b'} GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{'targets': [{'uuid': '90418987-0e24-45f9-88d5-b01df9087167', '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/90418987-0e24-45f9-88d5-b01df9087167', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/90418987-0e24-45f9-88d5-b01df9087167', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:26.990533+00:00', 'updated_at': None}, {'uuid': '0eeb90fc-1264-4d60-bdd1-f8df85884af6', '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/0eeb90fc-1264-4d60-bdd1-f8df85884af6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0eeb90fc-1264-4d60-bdd1-f8df85884af6', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:26.992908+00:00', 'updated_at': None}, {'uuid': 'a8c98fde-2944-4dad-b85d-e5d970480cf8', '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/a8c98fde-2944-4dad-b85d-e5d970480cf8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a8c98fde-2944-4dad-b85d-e5d970480cf8', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:26.995127+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=a8c98fde-2944-4dad-b85d-e5d970480cf8'} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0bba2340-360e-4022-a584-d1c01c3a0f12 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-816e4c52-611e-4bf5-b37f-2e25a129f55e 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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c5dd34d-ac52-4774-a55e-b1f9d1afb213 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?fields=uuid,extra {} GOT:{'targets': [{'uuid': '0228779c-53fb-40a6-8b61-4a25b8375b15', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/0228779c-53fb-40a6-8b61-4a25b8375b15', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0228779c-53fb-40a6-8b61-4a25b8375b15', 'rel': 'bookmark'}]}, {'uuid': '5f6c162a-8ff8-413d-bc31-5ecc637a982d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/5f6c162a-8ff8-413d-bc31-5ecc637a982d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5f6c162a-8ff8-413d-bc31-5ecc637a982d', 'rel': 'bookmark'}]}, {'uuid': 'e467316f-be9f-4346-929d-ee9b12914265', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/e467316f-be9f-4346-929d-ee9b12914265', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e467316f-be9f-4346-929d-ee9b12914265', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?fields=boot_index&limit=2 {} GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/1e307d7e-2b93-421b-b0a7-ae888d8971e7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1e307d7e-2b93-421b-b0a7-ae888d8971e7', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/5efbeabb-83e1-4967-a87b-ba84080666a7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5efbeabb-83e1-4967-a87b-ba84080666a7', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=5efbeabb-83e1-4967-a87b-ba84080666a7'} 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-02-18T09:14:27.468826+00:00', 'updated_at': None}{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.080705s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.145638s] ... 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=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-775398f4-0b97-4f07-8c87-994ac0d1c37b 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-31ec71db-3c2b-458a-8613-79a224a98f1f 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-dc8b9c26-6840-4f59-90a6-f37e01eb6038 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-8af0e2dd-738c-45be-a243-7a176485b2ca 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-02-18T09:14:26.772022+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-f29c04fa-43df-43b2-b99d-e99a893a2258 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': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfaf2eae-74f5-467a-a69f-430725533085 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-02-18T09:14:26.927122+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-d0402e75-170f-49cf-a8a4-cc2af6e46140 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/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fed73e76-73a1-432c-bb19-310fbd457c87 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': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c2e2ff8c-61de-49f5-bc27-74c9716f626b 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-e60f4a8b-68a7-47ed-abfb-c428819f1db5 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': 100, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-06c7aebf-0b1f-4dbc-b41c-268f2d8f718e 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': '/boot_index', 'value': 0, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c3e2a1c-b445-4ab2-9d6c-91382d2cfcdb 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': '/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-140d3767-6b71-4018-b152-45f7c734f73f 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-02-18T09:14:27.450858+00:00", "updated_at": "2020-02-18T09:14:27.456474+00:00"}{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.100152s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.181449s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.135588s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.294623s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.138439s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.044652s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.102739s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.059592s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.061007s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.062363s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.088935s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.115388s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.058391s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.081683s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init [0.010133s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated [0.030441s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.151667s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.062344s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.059959s] ... ok 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-5dbe187a-2b3c-406b-9080-70a035d2efee 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-02-18T09:14:27.578019+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-54c78f58-3a1a-468d-9a22-c495e8445d5d 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-55396f37-743b-472b-875a-1d62aa0f34c1 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-02-18T09:14:27.867144+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/6bc06286-20ee-48ef-b698-99943d8c75a4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-efb7deb0-ecd2-4086-82e9-f095a30af9a9 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 6bc06286-20ee-48ef-b698-99943d8c75a4 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': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51e0ef7f-b1a1-4d8c-a88a-224964ca1eb0 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/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-ed006401-7558-4219-b608-771550759aa2 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-02-18T09:14:28.211799+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-02-18T09:14:28.211799+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-eade1d15-804e-4b30-84bf-dfff9d43ac2d 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-02-18T09:14:28.327296+00:00", "updated_at": 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-0afb1f6a-68e2-4633-9760-31c246ce1128 {"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-9cc415da-8bad-4c21-a2f7-be63b8b8cbc5 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.067397s] ... ok {1} ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions [0.162912s] ... ok {1} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.022974s] ... ok {1} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.020759s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.018977s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.021682s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.035441s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.036846s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.036997s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.036042s] ... ok 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/c54ffb49-cacb-4313-bf01-aca02d8ab418 {} GOT:{'uuid': 'c54ffb49-cacb-4313-bf01-aca02d8ab418', '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/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:27.718737+00:00', 'updated_at': None} GET: /v1/volume/targets/c54ffb49-cacb-4313-bf01-aca02d8ab418 {} GOT:{'uuid': 'c54ffb49-cacb-4313-bf01-aca02d8ab418', '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/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:27.718737+00:00', 'updated_at': None} GET: /volume/targets/c54ffb49-cacb-4313-bf01-aca02d8ab418 {} GOT:{'uuid': 'c54ffb49-cacb-4313-bf01-aca02d8ab418', '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/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c54ffb49-cacb-4313-bf01-aca02d8ab418', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:27.718737+00:00', 'updated_at': None} GET: /v1/volume/targets?sort_key=uuid {} GOT:{'targets': [{'uuid': '00e3b4bb-329c-4935-a19a-8538087b03d7', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/00e3b4bb-329c-4935-a19a-8538087b03d7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/00e3b4bb-329c-4935-a19a-8538087b03d7', 'rel': 'bookmark'}]}, {'uuid': '14fd2880-0f8d-4ed6-a239-1564551aa558', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/14fd2880-0f8d-4ed6-a239-1564551aa558', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/14fd2880-0f8d-4ed6-a239-1564551aa558', 'rel': 'bookmark'}]}, {'uuid': 'def29db0-7089-4c48-bb82-68161bd1807e', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/def29db0-7089-4c48-bb82-68161bd1807e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/def29db0-7089-4c48-bb82-68161bd1807e', 'rel': 'bookmark'}]}]} 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-0ec73184-5ba0-45f2-98bb-3f4f5fd378a3 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-b3080caa-002a-4e6f-baab-61954afcb80c 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-02-18T09:14:28.156591+00:00", "updated_at": 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-65887896-5ca8-49fa-aa86-0d2f4e920fe1 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-8d6babf2-6f37-4bf4-8512-faddbd9bbe71 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-02-18T09:14:28.306527+00:00", "updated_at": "2020-02-18T09:14:28.314760+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-9aae8ad7-a84e-4845-bb29-e0db10512dc2 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-02-18T09:14:28.306527+00:00", "updated_at": "2020-02-18T09:14:28.314760+00:00"} 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-bd96b61f-7ec9-444e-9109-2a081eb43343 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': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d70e7e43-35a4-4d7b-aa0e-6db1c32eac20 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-535aa2ef-0288-473a-82f0-84f424c8fe91 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-02-18T09:14:28.584742+00:00", "updated_at": null}{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.137489s] ... ok {1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.046868s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.011519s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.224561s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.018631s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.016516s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.022877s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.124626s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.084023s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.023651s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.069164s] ... ok {1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.020630s] ... ok {1} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.039005s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.034283s] ... ok {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.039320s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.121294s] ... ok {1} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.029421s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.037340s] ... ok {1} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.029469s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.057178s] ... 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.051597s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.020042s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.019617s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.061363s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.020258s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.020456s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.016591s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.059563s] ... ok {1} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.018995s] ... ok Error while running foo: bar. 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_bad [0.018240s] ... ok {1} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.014501s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure [0.077111s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.077795s] ... ok 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-2f33a797-728c-4fde-90e2-4019c8e6b4a8 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': {'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-e54c1176-5ba5-4582-977c-a1c415d84561 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-02-18T09:14:28.989879+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-02-18T09:14:28.989879+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-045b6101-ecc5-4ce3-9e77-1c0636034f3a 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/e6c040b1-fbb1-4641-af3b-fe3841af2941 Openstack-Request-Id: req-e611f023-4c77-402b-93cb-d4ac5eddb677 X-Openstack-Ironic-Api-Maximum-Version: 1.58 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.58 {"uuid": "e6c040b1-fbb1-4641-af3b-fe3841af2941", "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/e6c040b1-fbb1-4641-af3b-fe3841af2941", "rel": "self"}, {"href": "http://localhost/volume/targets/e6c040b1-fbb1-4641-af3b-fe3841af2941", "rel": "bookmark"}], "created_at": "2020-02-18T09:14:29.185850+00:00", "updated_at": null} GET: /v1/volume/targets/e6c040b1-fbb1-4641-af3b-fe3841af2941 {} GOT:{'uuid': 'e6c040b1-fbb1-4641-af3b-fe3841af2941', '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/e6c040b1-fbb1-4641-af3b-fe3841af2941', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e6c040b1-fbb1-4641-af3b-fe3841af2941', 'rel': 'bookmark'}], 'created_at': '2020-02-18T09:14:29.185850+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-eda13299-88c8-4576-b02c-1a79f798f640 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': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b672dd1-3891-4a7c-9402-ce3cd3bbca0a 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-509715e2-ee46-4155-a4ea-b6b132c74bf3 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-7596745a-7d0c-44cd-a996-324094469a54 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}"}{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.068041s] ... ok {0} ironic.tests.unit.api.test_acl.TestACL.test_authenticated [0.128195s] ... ok {0} ironic.tests.unit.api.test_acl.TestACL.test_non_admin [0.083160s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.100634s] ... ok {0} ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header [0.065747s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.020913s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.019593s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.088620s] ... ok {0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.022381s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin [0.019845s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.028828s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.086343s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.019054s] ... ok {0} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.018131s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.034186s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.081125s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.038255s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.033895s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.082928s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.035243s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.035625s] ... ok {0} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.035774s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.080627s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client [0.017765s] ... ok {0} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.037738s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.030821s] ... ok {0} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.022743s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.023651s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.012120s] ... ok {0} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.036507s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.011695s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.009616s] ... ok {0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.030432s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.025332s] ... ok {0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.028044s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.025554s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer [0.016031s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.015048s] ... ok {0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.048081s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.018938s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.014947s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.015464s] ... ok {0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.043381s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.015455s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.015794s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.066644s] ... 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': 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-b8c661b5-9759-4b47-9577-20b6429f1fe1 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-ee27900a-f4c0-4d5c-8555-c7728bd062c9 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/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-5fcb007d-84cd-41dc-a333-f15df8460bef {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8fe5af6-fd77-4af3-b303-9e457a72af76 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-caeb1875-bf93-494c-be73-37b32d46bcff {"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-687c2bb2-e956-49f1-90c7-aa24273ee2eb {"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-536d5c29-fdb4-4ff0-adef-9b9a2dffb6e7 {"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-106a44b6-9a1b-41cb-bf33-ef69e2d301b9 {"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: /v1/foo {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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'}], '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'}], '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'}}{0} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.048065s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.066508s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.050968s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.107789s] ... ok {0} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option [0.054048s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.022226s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.064193s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.021679s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.018700s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.024689s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.057321s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.016544s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.015672s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.015497s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.015094s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.068666s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.016594s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.015700s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.022546s] ... ok "max-count" must be a positive value. 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.020530s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.023613s] ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.015305s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.019866s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.017012s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.021380s] ... ok This is badINFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.018421s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.023522s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.042301s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.022875s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.065497s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.013928s] ... ok {1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.011786s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.010645s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.009443s] ... ok {0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions [0.241127s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.009484s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.018325s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.020373s] ... ok {1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.017937s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.010496s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound [0.010715s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.087321s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.011497s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.022465s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.012175s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.011353s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.010405s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.010281s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.088833s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.016797s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.012737s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.032796s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.012159s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.009175s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.012128s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.011902s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.028199s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.157774s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.013680s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.053268s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.077531s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.049190s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.042506s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request [0.086039s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.066148s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value [0.086617s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.057833s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.031888s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.080247s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.031664s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail [0.020713s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.013322s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.010602s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.010832s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.083506s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror [0.012880s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.011875s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.017400s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.014901s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code [0.011298s] ... ok {1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.010983s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.081318s] ... ok {1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.013742s] ... ok {1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.013869s] ... ok {1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.014353s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.018866s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_esp_imageimg [0.019517s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.085022s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg [0.018089s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts [0.018294s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise [0.013090s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session [0.014224s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.018664s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.023280s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.018833s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.023178s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.019289s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.011022s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context [0.010406s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.020493s] ... ok {0} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.012296s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_deploy_iso [0.030195s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.032769s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails [0.024000s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.012384s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.026780s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.013256s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.025010s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.032439s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.025326s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.012739s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.017270s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.020030s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present [0.013140s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format [0.012808s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.013599s] ... ok {1} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.013581s] ... ok {0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.108923s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.016707s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.016562s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.016068s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.016198s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.015765s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.016198s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.018448s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.015343s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.015656s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.016997s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.015495s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.014829s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.015549s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.019505s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.013794s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.043106s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.028513s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.063416s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.029538s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.028461s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.064052s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.033415s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.029884s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults [0.061008s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.031951s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.015666s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.021121s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.032247s] ... ok {0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.024664s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_serialize_objects [0.039790s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.030165s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.030423s] ... ok {0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.076347s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.031403s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.007828s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.008138s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.011619s] ... ok {1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.006943s] ... ok {0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.068865s] ... ok {0} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.063151s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.069783s] ... ok {0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.012288s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.010092s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.010690s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.009563s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.009790s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.017571s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.078151s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed [0.011379s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.012059s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [0.012658s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.012375s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.010810s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000576s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.010560s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.010563s] ... ok {1} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.086777s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.012850s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.017375s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.014703s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.026699s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.010509s] ... ok {1} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.076011s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.010785s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.009633s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.009963s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.010005s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.012382s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.010744s] ... ok {1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.087748s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.053001s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.073556s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.047987s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.018110s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.074781s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.055880s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.046163s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.067910s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.017411s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.028768s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_segmented [0.028742s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra [0.070306s] ... ok {0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.022907s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror [0.019238s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success [0.015939s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.072637s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.025769s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href [0.011910s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error [0.011156s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.011083s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.010704s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.010350s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra [0.075012s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.016168s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.012435s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.019339s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.014145s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso [0.016228s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.013423s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError [0.013486s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.015641s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.019078s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.016168s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.014129s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.021506s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.019693s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.019276s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.022091s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token [0.039397s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.022268s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.019822s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.023896s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_esp_image [0.022621s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.097087s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails [0.025805s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.022053s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount [0.024982s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.011838s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.079740s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.016898s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails [0.020068s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.012024s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size [0.011331s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.018351s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.079255s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.011420s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.014279s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.013641s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.015389s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.012753s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.012972s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.013022s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.094833s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.018238s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.011855s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_serialization [0.019972s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.018782s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.012194s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.016345s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.102628s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.033158s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.037577s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.028900s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.099221s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_no_blacklisted_methods [0.030884s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.028585s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.075237s] ... ok {0} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.028930s] ... ok {0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.008176s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.072492s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.078398s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.075209s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.071379s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.076578s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.077132s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.073700s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.067956s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.075193s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.075038s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.067937s] ... ok {0} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.065466s] ... ok {0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.062160s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.279965s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.071269s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.069092s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.090885s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.027534s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra [0.075357s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.060180s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra [0.071416s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.063994s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.072200s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.061411s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.060879s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.074476s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.060780s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.027371s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.026192s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.117605s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.027410s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.041069s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.014259s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.014312s] ... ok {0} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.117885s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.028820s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.012206s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.011197s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.029213s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.013689s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.014212s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.014056s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.015920s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.014187s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.013198s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.019586s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet [0.014053s] ... ok {1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.013811s] ... ok {1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.013007s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.019557s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.020846s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.027195s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.026918s] ... ok {1} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.015020s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member [0.020390s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.077265s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api [0.018063s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get [0.018361s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.017390s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.017608s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.092835s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.066697s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.092785s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.073910s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.024008s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.023934s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.025464s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.102705s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.071627s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe [0.096836s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.026347s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.025406s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.098987s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.071645s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.071920s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.096438s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.077431s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.025559s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_local_boot [0.112452s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.058134s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.059664s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.109446s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.060183s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.027476s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.027831s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.110744s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.031879s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.036225s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.025875s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.099644s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.036254s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.027092s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.072031s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.036954s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.028485s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.012444s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.014023s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_local_boot [0.087737s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.015064s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.011659s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.011550s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.012062s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.025133s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.076441s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.026837s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.029007s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.027319s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_rescue [0.089564s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.030704s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.026505s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.062065s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.026587s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.025414s] ... ok {0} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.029446s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info [0.074599s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api [0.018187s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.065973s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.054158s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_without_is_whole_disk_image [0.083106s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create [0.208743s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get [0.018396s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api [0.016484s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password [0.015626s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options [0.084413s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create [0.016889s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api [0.016008s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password [0.015779s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.009973s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.077672s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.024025s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.062576s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.023410s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.021112s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.023466s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.066307s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.022319s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_pass [0.022875s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.057872s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_three [0.027798s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.022193s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.022213s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.021585s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.020926s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.084261s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.075561s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.105473s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.076356s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.072192s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.104571s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.080923s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue [0.109517s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.081351s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.028733s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.027076s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.100529s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe [0.069494s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs [0.079250s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.072004s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.082641s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.055497s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.076114s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.033114s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.077838s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.054693s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.020899s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.021289s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.024994s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.024249s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.021877s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.057895s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.021364s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_one [0.022664s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_two [0.022195s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.057709s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.015359s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.013880s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi [0.072825s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.078505s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_ipxe_ipv6 [0.067114s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash [0.021778s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.075786s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash [0.022981s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.021278s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.021472s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.023818s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi [0.076631s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.024775s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.052923s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.076524s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.027174s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.055380s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.079884s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.055227s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.014318s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.014081s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.013434s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.014974s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.015248s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.081369s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.016419s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.014365s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.015108s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.015240s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.011662s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.011861s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.087287s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.013483s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.012266s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.011554s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.011341s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.012009s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.061014s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.034166s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.055001s] ... ok {1} ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start [0.039395s] ... ok {1} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.011610s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.072857s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.061526s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.067154s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta [0.061769s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.014232s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios [0.069543s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.015617s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.014886s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.024986s] ... ok {1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper [0.017572s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.023832s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.017167s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.010657s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.022585s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.011213s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.010425s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.022715s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.012884s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.010134s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.022113s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.012559s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.012420s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir [0.024135s] ... ok {1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.013349s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.011004s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe [0.023892s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.011256s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.010121s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash [0.023956s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.012351s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash [0.022190s] ... ok {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.023100s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.012581s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.022422s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.014066s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.014943s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.014616s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.041000s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.017121s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.021945s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.020303s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.044908s] ... ok {0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.037010s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.014560s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.013855s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.013166s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.013215s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.012868s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.013682s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.013526s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.013784s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.013271s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.013663s] ... ok {0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.009804s] ... ok {0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.009619s] ... ok {0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.010029s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.199326s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.009892s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.009709s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.009790s] ... ok {0} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.011961s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.011266s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.013138s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.011635s] ... ok {0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.010972s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.010435s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.010369s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.010679s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.010265s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.176399s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.053529s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.052994s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.069896s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.171543s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.063555s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails [0.064918s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.106495s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.064279s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.103901s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.061446s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.027163s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.061506s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.092423s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [0.066149s] ... ok {0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object [0.059235s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper [0.012561s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.086280s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.012730s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.013608s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.028982s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.010622s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.018212s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.015109s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.108433s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.011510s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.011909s] ... ok {0} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id [0.025025s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.010868s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.010228s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.010230s] ... ok {0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.010580s] ... ok {1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.094933s] ... ok {0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.011596s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.013937s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.013157s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.011569s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.049849s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.014430s] ... ok {0} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.029810s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.012495s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.010669s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.043977s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.136222s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.046332s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.044851s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.067937s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.046074s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.121264s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.103494s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure [0.016287s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success [0.017254s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.011562s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.011529s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.108031s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.171096s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.180212s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.090461s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.167996s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.036591s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.083737s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.106481s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.256999s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.092609s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.089063s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.159745s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.090243s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.156562s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.166547s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.161112s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.094341s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.059408s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.018092s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces [0.016033s] ... ok {0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.106166s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.163405s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.165059s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.160653s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.605189s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.291267s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.257845s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.170710s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.231510s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.353545s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.043588s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.196810s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.164790s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.159146s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.160078s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.065758s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.065945s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.192567s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.053997s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.019651s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.068929s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.044917s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.161003s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.068271s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.072209s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.196294s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.168954s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.176852s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.215886s] ... ok {0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.045447s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.214889s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.244666s] ... ok {1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.234160s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.243057s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.254401s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.247494s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.251153s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.236722s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.281935s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.239849s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.243991s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.431152s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.200974s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.057334s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.056840s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.238769s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.218885s] ... ok {0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.229276s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.202490s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.227751s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.055207s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.228207s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.205493s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.268885s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.042149s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.071581s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.238292s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.205885s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.239967s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.214111s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.204162s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.265786s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance [0.072478s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.079052s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.073095s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.204014s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.046841s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.069453s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.076557s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.043444s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.228632s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.069268s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.076277s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_no_skip_step [0.238569s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.108320s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.092879s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.068592s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_polling [0.236416s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.267593s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_skip_step [0.224534s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.287803s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_clean_step_oob_reboot_fail [0.289872s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_deploy_step_oob_reboot [0.240354s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.028162s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.290901s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.071083s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked [0.045574s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.070287s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.069038s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.261318s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps [0.065725s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step [0.064297s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception [0.067925s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.357098s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.308331s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.217310s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.217212s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.486491s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.248337s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.240208s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.247904s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.220034s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.209396s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat [0.238683s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.208333s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.195645s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version [0.240123s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.116603s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.077304s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.081676s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated [0.280499s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.045463s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort [0.083191s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.076066s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.046827s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.082719s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name [0.089247s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.279696s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.253932s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.262719s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.252696s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.249977s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_no_skip [0.065879s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.254995s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.236563s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated [0.208042s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.509153s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.097455s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.098668s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.339953s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.239467s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.230614s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.253601s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.228646s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.253717s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.108626s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.219618s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.108825s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.091432s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.224458s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.188200s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.260586s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual [0.227102s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.110953s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.317138s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.105801s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.125085s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.240728s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.212486s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps [0.068270s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.217356s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.459018s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.255470s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.316548s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.252647s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_polling [0.234973s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.465049s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.098967s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step [0.419952s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.232753s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.224715s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.258722s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.206063s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.263397s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.115638s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.318685s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.117068s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.111643s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.114758s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.311368s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.106532s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.108160s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip [0.066339s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.240615s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step [0.066754s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.240239s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.242681s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.213071s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.223708s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.203575s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.245044s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.204178s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.234721s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.235547s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.242905s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.230747s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.242579s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.260368s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.279339s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.462450s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.304129s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.283837s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old [0.287451s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.255487s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.209388s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok [0.288521s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.227282s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old [0.274595s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_and_user_data_as_dict [0.291306s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old [0.253386s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict [0.284001s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old [0.289133s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict_with_meta_data [0.285482s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_console [0.259951s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.325179s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps [0.305382s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_with_network_data [0.283265s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps [0.449370s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.294467s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.199727s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.261106s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.219583s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.227392s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.294362s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.224619s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.278264s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.227268s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.269043s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.225762s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps [0.243433s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.164559s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.105768s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated [0.216184s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.104621s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.063547s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc [0.245813s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.249229s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.225922s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.088136s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.248690s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.099945s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.265771s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.233743s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.199453s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.065292s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.230523s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.225826s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.227432s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.207082s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.215305s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.431427s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.214646s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.243131s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.068063s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.216676s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.108866s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.163279s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.204120s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.017549s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.017723s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.016314s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.016835s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.017151s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.016709s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.019348s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.016700s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.016672s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.016011s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.017294s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.207184s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.074510s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.240533s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.236135s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.259125s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.228030s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.206262s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.251370s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.027186s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.025180s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.023206s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.022897s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.041759s] ... 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) {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.045130s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.048211s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.039167s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.040420s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.039747s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.017703s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.018287s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.018212s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.021381s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.018014s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.018396s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.019225s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.018503s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.016813s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.015977s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.017887s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management [0.133902s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.131338s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.374028s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.145252s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.141729s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.058482s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.059373s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.073634s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.040498s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [2.218197s] ... ok {1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.066226s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.238635s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.286066s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok [0.223393s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.251372s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.099319s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error [0.226185s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.295798s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait [0.225679s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.241802s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting [0.224473s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.198886s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state [0.224026s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.235600s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error [0.212074s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify [0.431918s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.236653s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.137381s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.082207s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.235486s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.081859s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.081754s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.017380s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.020757s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.016247s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.227827s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.162944s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.235610s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.018381s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.019618s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.018868s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.166786s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.021356s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.017663s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.021722s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.019062s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.097352s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.148813s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.187910s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.152524s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.198435s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.027050s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.048110s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.154934s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.027652s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.024780s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.025198s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.029159s] ... 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_wrong_provision_state_on_upgrade_lock [0.041690s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.159064s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.020375s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.017305s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.017306s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.017336s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.019240s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.022290s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.015907s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.020093s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.164250s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.017670s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.025185s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.016643s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.016339s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.159857s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.119415s] ... ok {1} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.160922s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake [0.168921s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.134230s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.218665s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.069535s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.141361s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.055145s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.082802s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.056798s] ... ok {0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.058177s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.068994s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.064704s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old [0.283897s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.094787s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.073214s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.075092s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.076853s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.342693s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.127385s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.138525s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old [0.280880s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.090189s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.086103s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.017492s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.059617s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.023738s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.087717s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.106112s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.080016s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.512029s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.090691s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.107028s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.094617s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old [0.285081s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.161248s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.314188s] ... ok {0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.171873s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.219724s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.246709s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.080859s] ... ok {1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.254999s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.316607s] ... ok {1} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive [0.045858s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.014416s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.014900s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.013410s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.014184s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.013754s] ... ok {1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.014496s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.098026s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old [0.288798s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.099641s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.120953s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.097343s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.306037s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old [0.288749s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.196743s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.592301s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.086940s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.081512s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift [0.049927s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.241914s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.048183s] ... ok {0} ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.049702s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.014242s] ... ok {0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.014241s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.130907s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.034488s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.097184s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.032979s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.032538s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.087878s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.073385s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.099939s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.122224s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.094246s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.655874s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.328732s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.081964s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.081377s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.082286s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.072263s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.071107s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.081787s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.081693s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.047286s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.077635s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.219925s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.071546s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.071636s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.069254s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.066457s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.071790s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.121840s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.119270s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.126464s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.127661s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.129751s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.194837s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.210771s] ... ok {1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.195429s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [3.107984s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.071867s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.084461s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.072311s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.066565s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.055534s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.134124s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.011406s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.021728s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.022084s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.021776s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.021235s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.012224s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.013009s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.015593s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.015678s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.015000s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.016784s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.197083s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.016610s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.016214s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.016320s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.016653s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.016663s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.016103s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.016624s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.019721s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.025277s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.015674s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.015609s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.016084s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.015521s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.031662s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.026016s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.029948s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.017132s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.017542s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.017792s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.021825s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.405900s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.018094s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.016148s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.017137s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.017699s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.017139s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.017105s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.017534s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.017800s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.017874s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.017179s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.017604s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.245575s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.077118s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.079806s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.070300s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.053591s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.082185s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.066060s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.073921s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.043186s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.069004s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.066857s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.082171s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.072490s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.090174s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_user_steps [0.070169s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.084485s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.074605s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.087095s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.069364s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.081762s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_steps [0.072565s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.071847s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.077506s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.223641s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.061383s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.084127s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.072746s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.071451s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.072486s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.229247s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.073080s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.066991s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.090540s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.223014s] ... ok {1} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_ok [0.067429s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.011024s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.009722s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.009915s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.014419s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.012508s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.080045s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.012720s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.011991s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.011743s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.045187s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.015462s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.012600s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.012571s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.013290s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.073770s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.031980s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.030255s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.029181s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.081231s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.031855s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.025861s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.027148s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.080062s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.026291s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.045898s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.032674s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.028934s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.030446s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.074522s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.012189s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.013423s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.011166s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.013447s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.011006s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.076672s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.015246s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.014115s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.012880s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.011818s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.012662s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.014461s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.013706s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.086624s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.013098s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.013452s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.013017s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.012228s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.014897s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.015804s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.014073s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.014384s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.132389s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.017710s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.013398s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.012112s] ... ok {1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.013225s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.078984s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.142888s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.084988s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.142004s] ... ok {1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.074450s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation [0.068720s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.124863s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.069111s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.070705s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.074680s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.209227s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.066280s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.062903s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.014470s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.091309s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.198406s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.091168s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.088858s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.206084s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.193492s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.311951s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.199539s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.130555s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.100502s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.209713s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.106004s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.073355s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.043306s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.107687s] ... 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_manager.VifTestCase.test_vif_attach_raises_network_error [0.078131s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.112445s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.069069s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.071926s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.115133s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.072365s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.043429s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.101472s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.014810s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.024594s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.024686s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.023842s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.012669s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.108866s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.017000s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.015434s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.017145s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.021604s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.016733s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.017473s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.118648s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.019036s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.017510s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.017881s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.017227s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.016565s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.017607s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.017787s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.117257s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.018531s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.022814s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.019367s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.067944s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.043070s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.028672s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.072666s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.036274s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.016648s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.065716s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.017266s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.015393s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.015730s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.016829s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.067083s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.017149s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.015657s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.015483s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.015782s] ... ok {0} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.018413s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.106110s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.070851s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.100420s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.066473s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.067138s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.109308s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.010972s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.010421s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.009997s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.077453s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.073217s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.070327s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.071750s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.068432s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.071338s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.090335s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.072340s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.075598s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.077738s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_driver_steps [0.069040s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.076094s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.075101s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.072248s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.077000s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.076613s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.083080s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.080217s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.072196s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.075179s] ... ok {1} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.014774s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.070580s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.070522s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.072698s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.077637s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.071697s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.072304s] ... 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.ModelsMigrationsSyncPostgres.test_models_sync ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... 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_walk_versions ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} 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.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.014221s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_error [0.082776s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.014286s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.013753s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.012190s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.016787s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.013357s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.015230s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.010657s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.014627s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.010227s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.012297s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.017350s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.015961s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.016032s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.023328s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.011778s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.025055s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.029123s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.030892s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.026676s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.025962s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.031432s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.025964s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.027155s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.027236s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.048288s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.028007s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.040852s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.029001s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.023095s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.033189s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.041327s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.030970s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.039117s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.031036s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.024938s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.025178s] ... ok {1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.057339s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.031430s] ... ok {1} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions [0.047904s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.033682s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.029876s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.073604s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.032285s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.257142s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.012155s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.011626s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.011749s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.011872s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.012336s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.327355s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.012072s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.013616s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.013864s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.013265s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.012203s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.013237s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.086994s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.013925s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.012658s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.025877s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.025857s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.011863s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.070846s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.085695s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.067548s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.072729s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.420008s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.077922s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.030342s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.044622s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.071917s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.260024s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.075359s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.065860s] ... ok {1} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.077418s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.027367s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.035117s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.025130s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.106852s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.036516s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.034941s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.098342s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.039433s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.035524s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.038672s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.099877s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.020192s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.020352s] ... ok {1} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.020222s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.100160s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.061869s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.032196s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.024202s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.023443s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.104487s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.029657s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.024941s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.033557s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.022388s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.111602s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.024277s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.023803s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock [0.021435s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.067534s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.020198s] ... ok {1} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.023573s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.020458s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.071393s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.026504s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.024980s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.029377s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.024720s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.107547s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.028218s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.029011s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.024558s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.026906s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.109852s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.027215s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.012238s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.010888s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.029030s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.011406s] ... ok {1} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.017960s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.026902s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.034103s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.081233s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.024805s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.039452s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.073276s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.028191s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.025835s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.031942s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.076445s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.023652s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.034056s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.078392s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.028462s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.025904s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.025640s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.077709s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.031210s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.043871s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.024650s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.081807s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.071839s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.070502s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.073499s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.074143s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.078009s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.074060s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.528267s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.076713s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.052485s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.025840s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.078217s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.048214s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.072143s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.048327s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.024373s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.025990s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.079396s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.034836s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.034858s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.076368s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.053842s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.026604s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.072562s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.033031s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.028944s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.024176s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.041675s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.042128s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.037629s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.061052s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.017909s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.034947s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.037011s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.047760s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.037762s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {0} 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.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_version ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql' is unavailable: Could not connect {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.103518s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.024778s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.049416s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.028769s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.018970s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.044744s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.026884s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.028330s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.056440s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.049771s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.075138s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.023598s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.058021s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.039206s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.024124s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.023640s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.059639s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.025743s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.058568s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.042580s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.043127s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.051405s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.041273s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.042357s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.025075s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.037190s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.039363s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.026070s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.053814s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.036101s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.048996s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.036499s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.027573s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.022104s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.025227s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.022146s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.022140s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.038742s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.047050s] ... ok {0} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model [0.019469s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.037812s] ... ok {0} ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null [0.036864s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.043023s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.038029s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.025790s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.113394s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.032275s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.033308s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.032610s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.031448s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.117925s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.027132s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.025038s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.028666s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.027952s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.026630s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.036448s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.035131s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.207677s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.029545s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.024043s] ... ok {1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.028431s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.028700s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.030951s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.153297s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.030180s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.027392s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.037272s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.040477s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.029961s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.028481s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.027336s] ... ok {1} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.024614s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.026223s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.279384s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.029346s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.024819s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.038069s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.035840s] ... ok {1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.026881s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.025003s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.027576s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.033905s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.023654s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.028334s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.027128s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.237813s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.023812s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.017075s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.045064s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.015769s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.011849s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.010384s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.079818s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.023426s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.029766s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.025071s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.057028s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.023565s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.025573s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra [0.082300s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.035187s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.041439s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra [0.080946s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.030175s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.018966s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.035379s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.083934s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.033423s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.019512s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.018168s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.080297s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.027778s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.015798s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.080824s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.060665s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.037432s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.029861s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.081916s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.031768s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.026537s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.078681s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.041807s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.020618s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.021757s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.084802s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.023710s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.021201s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.022580s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.028310s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.086088s] ... ok {0} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.023358s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.016967s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.019716s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.021920s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.078701s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.020670s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.031564s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.029141s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.094438s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.028065s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.024728s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.020470s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.077911s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.028879s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.028031s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.026059s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.084610s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.033709s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.025857s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.031838s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.089679s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.038715s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.069667s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.087855s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.106831s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.071025s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.087515s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.073459s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.527854s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.093639s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.103344s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot [0.100747s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated [0.084031s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.070430s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.070102s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.520914s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.070086s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.027419s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.026817s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.024237s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.026278s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot [0.092186s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.025054s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.023573s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.026804s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.031901s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.082876s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.039383s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.026234s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.021605s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.026376s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.029553s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.027050s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.020765s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.028852s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.043367s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.025031s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.014263s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.014603s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.021141s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.093864s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.057526s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.057882s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.093357s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.015108s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.055514s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.102821s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.026058s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.073063s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.028777s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.024304s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.024258s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.067109s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.057363s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config [0.079259s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.049993s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.040380s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config [0.078329s] ... 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 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.074842s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config [0.056303s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.191815s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config [0.069667s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.043126s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.040847s] ... 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. {1} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail [0.080105s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.028084s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.059784s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.032601s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client [0.134648s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol [0.022470s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.049770s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port [0.022725s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.046194s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus [0.071487s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.070317s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure [0.072047s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.059703s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties [0.035671s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.034123s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.018831s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.036072s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail [0.076709s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.038449s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.040720s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk [0.099225s] ... ok {0} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.037500s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.024615s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.023615s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.034410s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports [0.105412s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.025286s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail [0.026470s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.025099s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue [0.026715s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.024682s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid [0.024988s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.025727s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix [0.024621s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.028006s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.028585s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.022651s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs [0.075827s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.026625s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe [0.027171s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.026764s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list [0.029044s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.027378s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device [0.030582s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.027001s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode [0.030101s] ... ok {0} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.031002s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail [0.034152s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.024575s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list [0.028322s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.031993s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode [0.028612s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.025833s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device [0.033763s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.033053s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change [0.031525s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.033881s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.023174s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device [0.037631s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.027316s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode [0.034870s] ... ok {0} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.021652s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.023165s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step [0.038963s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.023645s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step [0.033852s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.029658s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step [0.035569s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.028025s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.032709s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue [0.075607s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.034973s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.026877s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.029161s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data [0.080389s] ... ok {0} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.030648s] ... ok {0} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.010880s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.010787s] ... ok {0} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.010585s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.024974s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.073088s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.077153s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.075214s] ... 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.327291s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.076197s] ... 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.095337s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.073900s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy [0.095591s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.072828s] ... ok {0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.090795s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job [0.109557s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state [0.054859s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.087611s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off [0.070964s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy [0.099503s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on [0.074028s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 [0.041925s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.089243s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 [0.036896s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 [0.037401s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.067608s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.022458s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level [0.041378s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all [0.036874s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only [0.038133s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.097569s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration [0.038619s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete [0.038896s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry [0.093327s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level [0.046858s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb [0.039400s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb [0.039593s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_with_smartnic_port [0.106252s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job [0.044633s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail [0.027965s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config [0.027593s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance [0.092846s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config [0.027212s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime [0.025778s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.071064s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail [0.028978s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs [0.026788s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail [0.027548s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_with_smartnic_port [0.072474s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks [0.031943s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail [0.026371s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.069907s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail [0.025605s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks [0.023398s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.060866s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.022243s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.020241s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.020613s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing [0.133476s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.077695s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved [0.109756s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.078263s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.078881s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space [0.107054s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.085114s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.023311s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled [0.108698s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.024209s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.022089s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.022821s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.021400s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks [0.127982s] ... ok 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. {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail [0.073093s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot [0.069397s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks [0.104120s] ... 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. {0} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail [0.061492s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info [0.022712s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port [0.023000s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host [0.023703s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level [0.131194s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password [0.024117s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path [0.023123s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol [0.022672s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username [0.023394s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks [0.137979s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled [0.067527s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure [0.065161s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks [0.126049s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode [0.070552s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode [0.065952s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy [0.130182s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list [0.066687s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks [0.084421s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk [0.065973s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device [0.068898s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware [0.096347s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties [0.056742s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes [0.052943s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu [0.070376s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job [0.029267s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail [0.024845s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi [0.081098s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs [0.023859s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail [0.022869s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid [0.022906s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device [0.084755s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail [0.070448s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom [0.026009s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode [0.084712s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios [0.026391s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi [0.028610s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device [0.027194s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail [0.082959s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent [0.028424s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable [0.025277s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate [0.055696s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent [0.028363s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting [0.026600s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable [0.031929s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled [0.020317s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail [0.019298s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step [0.024183s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device [0.036634s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info [0.037270s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties [0.015330s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices [0.033981s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state [0.044671s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac [0.041106s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device [0.053654s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail [0.039843s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean [0.192631s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean [0.064310s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy [0.052933s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean [0.070977s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy [0.062400s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update [0.031307s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status [0.022824s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs [0.015274s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes [0.014239s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail [0.033659s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties [0.015189s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout [0.044715s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state [0.039871s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail [0.041171s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout [0.042568s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only [0.022778s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps [0.023199s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job [0.030377s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config [0.017193s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config [0.015505s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail [0.014849s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail [0.014832s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail [0.014233s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot [0.013778s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk [0.014646s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk [0.014665s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers [0.013620s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail [0.013751s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_cleaning_foreign_drives [0.077470s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean [0.069741s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy [0.075632s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change [0.070011s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size [0.072251s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks [0.073931s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers [0.066058s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks [0.061089s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 [0.070740s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean [0.066288s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change [0.064861s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_non_realtime_controller [0.068907s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode [0.040458s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data [0.033227s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices [0.041039s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail [0.050273s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail [0.046971s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot [4.892873s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail [0.049660s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties [0.030738s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout [2.573471s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry [4.043183s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info [0.014239s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath [0.017292s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary [0.013223s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties [0.031507s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order [0.037084s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.055684s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.051930s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.048610s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.057591s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.059835s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.051930s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.040623s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.046871s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.043673s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.061098s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.062510s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.056974s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.060530s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.043243s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.042932s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.031980s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.032721s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.036227s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info [0.013303s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.012416s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance [0.031380s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso [0.014107s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver [0.021257s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.041021s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.044119s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.055345s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.049006s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name [0.013709s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image [0.045638s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url [0.049861s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.015683s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam [0.045716s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam [0.045074s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid [0.044703s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image [0.046476s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image [0.054676s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.052316s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.067940s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.052673s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.050150s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.050651s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.058967s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.056640s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.057907s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso [0.047181s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.069676s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.063921s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.046161s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.064351s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.057981s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.054794s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.076589s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.072838s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.075041s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.064168s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.051012s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.044512s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_glance [0.050798s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver [0.051119s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver_exc [0.054644s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.044322s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.045324s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.050557s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.053981s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.048908s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.055428s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.046985s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.014803s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.047184s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.051697s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.050923s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.042747s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.021392s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.018193s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.041613s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.041211s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.221960s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.081648s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.044224s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.041042s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.039782s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.043024s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.023262s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.030797s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.030413s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.016598s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.015098s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.013913s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.043833s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.044335s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.049554s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.049826s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.040624s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.049653s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true [0.040992s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.015260s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.017732s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.013082s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.012884s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.012669s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.012735s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.012507s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.013403s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.041943s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.041279s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.018700s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.007821s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.025263s] ... ok {0} 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.023098s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.022214s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.020904s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.018389s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.007259s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.006161s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.006071s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.006359s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.006201s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.006321s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.063849s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.062441s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.063021s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.007648s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.006503s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.053531s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.052608s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.059508s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.042780s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.013426s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.014844s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.014326s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.013658s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.013592s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.013348s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.013661s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.061959s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.048305s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.038550s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.025150s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.027344s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error [0.052887s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error [0.053127s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs [0.047326s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.044608s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.042829s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.044935s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.046717s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.046489s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.045322s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.051705s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.064080s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.044664s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached [20.416430s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.068557s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.056958s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.068614s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.065330s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.065262s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.060396s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.059172s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.055194s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.056506s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.051423s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.045850s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.018458s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.018830s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.039503s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.044205s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.041633s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.039129s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout [2.714446s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state [0.039565s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states [0.029875s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.056620s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.047734s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.048031s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.046328s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.045694s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.034188s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.040072s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.039201s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.040764s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.035308s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.062128s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.067214s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.065430s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.056782s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.069097s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.058209s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.061392s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.057924s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.069226s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.049318s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.046633s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.065368s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.048691s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.063235s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.063458s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.039352s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.041101s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.041571s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.038166s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.040705s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.038547s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.037651s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.037073s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.044080s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.049258s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.041840s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.041561s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.194645s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.043767s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.044884s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.049263s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.044200s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.014036s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.014032s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.013661s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.014099s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.014019s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.014141s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.017100s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.042651s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.013673s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.058882s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.060852s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.014294s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.043201s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.045783s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.014529s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.041252s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.040893s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.043793s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.051689s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.049461s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot_active [0.069790s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_iscsi [0.056427s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_missing_root_uuid [0.048663s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.067345s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.050275s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.067251s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.081143s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.079286s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.080824s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.304614s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.072871s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift [0.086238s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_without_copy [0.088831s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.062884s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.102945s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.082499s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_conn_problem [0.059017s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_invalid_trusted_boot_value [0.034805s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_image_source [0.035122s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.038138s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.036433s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.033328s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.037421s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_secure_boot_false [0.052524s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_without_secure_boot [0.053814s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.043875s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.050866s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.061484s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.057512s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.050057s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.050818s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.056661s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot [0.053141s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.058332s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.180326s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.014219s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_glance_image [0.050336s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.047553s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_whole_disk_image [0.050665s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.048416s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.068885s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.082226s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.092531s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.051618s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.047374s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.064341s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.075136s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.072579s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.065325s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.072576s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.065639s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.076791s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.006325s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.013230s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.012551s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.012406s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.038533s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.013463s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.012496s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.012853s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.012059s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware [0.035839s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.012615s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.034252s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.231241s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.117987s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.038160s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.038432s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.040735s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false [0.037107s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap [0.036600s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.121501s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.032482s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.033157s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.047979s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.040421s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.051941s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.041221s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.030508s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.039323s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok [0.040402s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.044901s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.041847s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.041804s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios [0.174954s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom [0.176844s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe [0.197196s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate [0.033694s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail [0.034007s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.041356s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.036622s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.031376s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.021470s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.031958s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.032599s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.032726s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.061467s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.059697s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state [0.046488s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.030752s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.042103s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.037986s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate [0.031171s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail [0.033272s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.031438s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.034899s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.012786s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.012159s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.012532s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.012118s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.031096s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.035051s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.036545s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.034008s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.033915s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.034198s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.033372s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.070345s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.043298s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.043303s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.065739s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.067743s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.049222s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.043443s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.046247s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.050897s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.050130s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.047887s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra [0.044612s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.045573s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure [0.042485s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.109077s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.114003s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.116136s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.111751s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.110303s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.113813s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.111908s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.110221s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.048201s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.046290s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.047176s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.046552s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.042720s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.044558s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.043388s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.043430s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.045398s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.046086s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.039750s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.048334s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.044297s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.044412s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.019857s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.022863s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra [0.040754s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.016869s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.016797s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.020712s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.021175s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.044317s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.044406s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra [0.047691s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.043153s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.043917s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.081905s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.040568s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.039783s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.045716s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.043427s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.043793s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.044380s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.085157s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.045411s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.058858s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.044897s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra [0.049744s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.036507s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.047514s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.055079s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.048831s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local [0.050581s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc [0.048915s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.045741s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.036989s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.039990s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.038386s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.041060s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.040872s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.039087s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.041726s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.040280s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.041977s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.063971s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.041650s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.074608s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.058288s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.040814s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.039788s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.062893s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.029903s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.052452s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.174059s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_filename [0.030993s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_with_qs [0.029963s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_floppy_image [0.031760s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__cleanup_iso_image [0.032560s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_everything [0.036934s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_specific [0.033254s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.033049s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.035854s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.032213s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_floppy_image [0.030846s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_bios [0.031111s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_iso_image_uefi [0.034641s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_local [0.039687s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.037960s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.031800s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.030147s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.030701s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.061057s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.085414s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.083254s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.053020s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.031608s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_uefi_boot [0.033013s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu [0.035197s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.037640s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.049595s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu [0.043326s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.044929s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive [0.030931s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.030043s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.030659s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.030768s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.041472s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.064376s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.040744s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.065726s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.033003s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.033022s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot [4.754933s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state [42.093377s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail [0.045993s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [12.824689s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.032496s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_auto [0.037646s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_basic [0.038124s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_address [0.040298s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_username [0.037830s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry [0.038083s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.013355s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.012360s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.014797s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.012250s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.013455s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.013566s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.040163s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.047520s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.048480s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.053666s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.040678s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.055631s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.054306s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.051305s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.047527s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.070101s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.061544s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.061408s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.051395s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.045982s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.069587s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.039340s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.038284s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered [0.038023s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.041244s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.039760s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.048882s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.050532s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.049378s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.045934s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.050201s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.050618s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.060542s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.062052s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.042872s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false [0.044565s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy [0.067274s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image [0.066125s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies [0.073526s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started [0.044181s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands [0.042463s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done [0.043537s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race [0.039883s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.082680s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false_with_smartnic_port [0.087552s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.058307s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.043267s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.014002s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.039498s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.078802s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.083233s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_capabilities_as_string [0.232913s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities [0.091023s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite [0.095480s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.089749s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot [0.081531s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.044568s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.044093s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.055097s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.048558s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.037398s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.036244s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.051292s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.037649s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.039323s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.038590s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.041330s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.012704s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_glance [0.012279s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot [0.048824s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail [0.041906s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered [0.023204s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail [0.104851s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.041389s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.037724s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid [0.037383s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning [0.046417s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot [0.059897s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail [0.052985s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail [0.042299s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch [0.066409s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command [0.049755s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running [0.040354s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown [0.041275s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails [0.049802s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails [0.049563s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot [0.050937s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition [0.049040s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot [0.049569s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated [0.057444s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed [0.052697s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails [0.084005s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete [0.052987s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue [0.047343s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result [0.049795s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.050544s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.055288s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.092886s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step [0.060905s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_reboot_to_instance [0.061471s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_cleaning_deploying [0.094111s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.119188s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue [0.055578s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.112087s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save [0.059076s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_in_other_step [0.046387s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps [0.042538s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.008443s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.011183s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.006828s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.006350s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.006518s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.006821s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.007079s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.014270s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.007799s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep [0.007274s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.007497s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.008646s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.008872s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.007045s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.011658s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.009418s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.012822s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.013545s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.009971s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.011064s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.018561s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.024353s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.019104s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.021636s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.020725s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.019477s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.011234s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.010886s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.011375s] ... ok {0} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.014890s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.017376s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.016997s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step [0.043385s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running [0.045908s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch [0.045226s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.034561s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.032977s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.010801s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.009606s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.010112s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.009808s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.044990s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.043387s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device [0.007646s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.010140s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.014326s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.014895s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.014101s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.018137s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.014699s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.014615s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.014175s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.043346s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.015489s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.016342s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option [0.014736s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value [0.014855s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config [0.015065s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.015286s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.172192s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.097896s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.056739s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.162456s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.006924s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.006130s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.005993s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.008681s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid [0.005876s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.005858s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.006141s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.006036s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.006493s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi [0.014782s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises [0.007241s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label [0.012614s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition [0.012250s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot [0.014154s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios [0.012248s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios [0.012523s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi [0.012397s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap [0.014187s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode [0.012504s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_sparse [0.016007s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive [0.015710s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update [0.006768s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped [0.008957s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update [0.010771s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises [0.006923s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image [0.006680s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image [0.006117s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot [0.006016s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.006648s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image [0.006121s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.006060s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image [0.006250s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image [0.006034s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.006021s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.063563s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image [0.047627s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_is_md5 [0.067384s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.069013s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.013826s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.203496s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.062486s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.045394s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached [12.257396s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate [0.057497s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info [0.023052s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.109405s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme [0.022799s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.022120s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.067098s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address [0.024627s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.022539s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.021313s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.067031s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca [0.024541s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image [0.023124s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.023483s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop [0.027709s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.014717s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.020742s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate [0.063776s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.020693s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.019890s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.028141s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.027816s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.106730s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.029495s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.022347s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.027432s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.016004s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.011968s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.011725s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image [0.011781s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.115319s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.018347s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.017425s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.016370s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.014514s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.013516s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished [0.017899s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector [0.016903s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.116858s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error [0.018453s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties [0.015018s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok [0.014567s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.101051s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.101555s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.108214s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.114097s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.109616s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.112867s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.069791s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.060064s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.056980s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.061036s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.052783s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc [0.052706s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.068570s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone [1.088679s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error [0.017830s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok [0.019162s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error [0.020383s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok [0.018024s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver [0.108602s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.012447s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.012371s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.012581s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.012471s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.012457s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.012264s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.014996s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.094190s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.012624s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.012600s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.012785s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.012075s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.012160s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.012248s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.012185s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.012172s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver [0.109814s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.070912s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url [0.070525s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.066028s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image [0.070563s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.069137s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.023113s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.077801s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.071420s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.080496s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.072849s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.093178s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.073579s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.075943s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok [0.094028s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.096016s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.068652s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.086697s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.071667s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.069011s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.102382s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.067307s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.093964s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.065314s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.065228s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.072393s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.072844s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.089073s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.067818s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local [0.106725s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.068390s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1 [0.066953s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2 [0.071987s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.073215s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.072109s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.323515s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.076133s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.074373s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.123128s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.079066s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.111936s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.070252s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.081803s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.068533s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.067609s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.067862s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.077600s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.072350s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.068886s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.100416s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.068682s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.083362s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.069312s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.090022s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.074614s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.023317s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.025077s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.070776s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.039592s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.025320s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.071096s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.070090s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile [0.147193s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.201512s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.068109s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.073482s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.056949s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.077592s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.075058s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.075752s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.035237s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.070093s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.028357s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.026077s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.072408s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.078906s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.070630s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.074769s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.079769s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.029066s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.029391s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.080212s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.028281s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.027294s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.028018s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.089229s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.026532s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.026232s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.030770s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.076358s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password [0.026184s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception [0.023673s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password [0.024630s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.090052s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception [0.027220s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.024966s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.023949s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.071282s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.023572s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.026961s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.023351s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.071951s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.027159s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.028695s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.026922s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.028424s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.025561s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.256385s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.039092s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false [0.039482s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.016396s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.013174s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.013783s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.014121s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.012555s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.012547s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.012317s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.015973s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.012357s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.012730s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.007127s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.017404s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.019079s] ... 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.007826s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.024918s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.022686s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.023899s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.024046s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.024920s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.019417s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.007230s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.006812s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.006867s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.006669s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.006702s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.006435s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.064584s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.043087s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.058188s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.063620s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.058493s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.055313s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.013785s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.014308s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.014328s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.014746s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.060307s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.059290s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.040831s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.038425s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.057070s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.069529s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.041286s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.026835s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.018731s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception [0.055397s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs [0.043548s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.043526s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.045241s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.048026s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.045467s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.045811s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.043246s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.049015s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.045114s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.045809s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.045631s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.050570s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.073633s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.054811s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.030570s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.027958s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.031840s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.094420s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.034139s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.031596s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.081229s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.032289s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.078804s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.072513s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.098731s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.252158s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.030207s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.029486s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.101406s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.029254s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.064796s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.091490s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.074687s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.096512s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.086767s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.097130s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.084491s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.097896s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.058562s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.066048s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.095025s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.070620s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.086650s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.067441s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.098307s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.093938s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.089593s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.141389s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.074112s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.089312s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.060651s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component [0.099267s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.076628s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.074534s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url [0.092166s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.074713s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component [0.075696s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.070069s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.073283s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.064887s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.074784s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.067584s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.093049s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.044252s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot [0.062474s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot_active [0.068582s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot [0.057622s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_active [0.062534s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.049450s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.074046s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.068899s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.080102s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.078846s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.080833s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.079105s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.073857s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.074021s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.075412s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.091540s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.074336s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.035941s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.032699s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.034991s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.033737s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.037408s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.036414s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.034241s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.036447s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.060101s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master [0.044349s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot [0.069093s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi [0.068612s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy [0.052773s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_fast_track [0.073356s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false [0.054145s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false_with_smartnic_port [0.056336s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_with_deployment_reboot [0.056136s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.069837s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step [0.063962s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps [0.057561s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting [0.042108s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false [0.060767s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_with_smartnic_port [0.062458s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate [0.033763s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false [0.034749s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails [0.040461s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy [0.065853s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid [0.100645s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay [0.054416s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral [0.061325s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default [0.013778s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch [0.013042s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label [0.013276s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot [0.012502s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified [0.013011s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image [0.012200s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url [0.031249s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url [0.030304s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints [0.030478s] ... ok {0} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path [0.012768s] ... 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.016583s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.006629s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.005999s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.034526s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.049032s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.044386s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.042622s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.070554s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.058710s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.051534s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.049070s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.053225s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.033978s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot [0.053680s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi [0.060200s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.066635s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.285090s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.075708s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.075359s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.068260s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.078114s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.199556s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.091419s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists [0.034436s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props [0.034553s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.035701s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.036754s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.040768s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.036250s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy_with_smartnic_port [0.164765s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare [0.072666s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk [0.108083s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate [0.049630s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate [0.040214s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.038997s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.046318s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.076273s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.060897s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.063274s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.038074s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.050626s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.047452s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.045309s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.044444s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.011417s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.010996s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.010327s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.011078s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.010892s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.013497s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.010656s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.010430s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.009844s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.009863s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.010265s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.010314s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.009493s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.009280s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.009010s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.010306s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.012942s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.009384s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.009572s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.014784s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.014888s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.009953s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.012953s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.010107s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.009990s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.009213s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.009125s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.013166s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.009351s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.009342s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.009190s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.010639s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.080572s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.034643s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.044010s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.045065s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.031742s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.060396s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.057527s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.055667s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.070138s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.064302s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.070948s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.050192s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.067771s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.076744s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.085771s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.090165s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.064969s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.051452s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.062771s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.070704s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.041169s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.040350s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.044125s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.042878s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.044288s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.074838s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.039535s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.042999s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.039956s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.041525s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.039644s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.042655s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.041965s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.013670s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.014422s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.040638s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.013590s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.013263s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.012771s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.015274s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.058693s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.045573s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.049384s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.046734s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.043439s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.038010s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.036964s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.014925s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.043814s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.034511s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot [0.062998s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot [0.055570s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_active [0.067126s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.068729s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.198804s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.064895s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.068033s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.076023s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.073239s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.073808s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.330005s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.077434s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.078338s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.083100s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.077007s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.066995s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.093064s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.093679s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_image_doesnt_exists [0.036285s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.035510s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.035567s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.037890s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.033975s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_with_secure_boot [0.047740s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_without_secure_boot [0.049311s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot [0.051507s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot_false [0.049615s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.052324s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.051869s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot [0.057847s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.039482s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.051111s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.049624s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.058956s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.063573s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_non_glance_image [0.061145s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.041785s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.053204s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.078836s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.077466s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.077309s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.088970s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.075229s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.070446s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.079359s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.071853s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.006428s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.013576s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.012968s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.013270s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.013040s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.039587s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security [0.012938s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.012589s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.012835s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.012443s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.012825s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.012778s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.012413s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.012467s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.012129s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.012674s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.015063s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.040347s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.033162s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.012805s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.030268s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.119887s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.037464s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.038683s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.051846s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.042999s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok [0.046915s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng [0.046118s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices [0.040246s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng [0.049157s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk [0.170894s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.026956s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe [0.176549s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.029957s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.040022s] ... 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.032300s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.018696s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.026245s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.017080s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object [0.018655s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.013517s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.035100s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.032300s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.033064s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.033307s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.034553s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.057594s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.040045s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.041178s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.039173s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.039234s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.034073s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.032803s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.034172s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.012883s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.012430s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.166924s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.035540s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.035886s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.037433s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.034430s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.032675s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.039976s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.044841s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.049770s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.064291s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.064666s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.067036s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.064856s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.042827s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.046566s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.047699s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.040770s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.045001s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra [0.044810s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.049615s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.044352s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.042944s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.046792s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.039515s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.041840s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.045735s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id [0.046049s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail [0.051046s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id [0.049165s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key [0.048506s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.119509s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.110286s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.108301s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.111814s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.042918s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.041564s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.047410s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.043076s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.040822s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.042042s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.042965s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.047753s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.052722s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.053362s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.043527s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.043474s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.052138s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.054796s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.054890s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.023006s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.023622s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.047116s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.044245s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra [0.015079s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id [0.043894s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.042909s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.042039s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.046745s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.043270s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.044754s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.042659s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.047444s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.043671s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.044782s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.039329s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.014614s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.045808s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.051356s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.038967s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.039009s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.053416s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.041601s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.040199s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.082670s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.047034s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.046741s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.047060s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.041496s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid [0.042826s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.042980s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.044201s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info [0.051548s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.057372s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.052228s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net [0.015742s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.041416s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.046542s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.056511s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.040139s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.042180s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.037961s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot [0.048079s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.036892s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.037737s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.039419s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.038145s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.014469s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.043131s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.042473s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.039281s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.040285s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.041460s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.065621s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.077402s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.073056s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.044302s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.074236s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.078189s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.061157s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.073146s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.072108s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error [0.013238s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__append_filename_param_without_qs [0.029528s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_not_inserted [0.032953s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__eject_vmedia_unknown [0.032802s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_boot_iso [0.034930s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__prepare_deploy_iso [0.030685s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_copy [0.051337s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_local_link [0.052992s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__publish_image_swift [0.042514s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__unpublish_image_swift [0.039426s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.039678s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.034951s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_loading_error [0.013683s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.032793s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.029972s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.032514s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.030154s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.031006s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.038233s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.036335s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.022199s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.017419s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.080015s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.051944s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_bios_boot [0.034910s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.165486s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.043417s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.043862s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.042138s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.045208s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.031124s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.033703s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.032804s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.031329s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.037574s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.029358s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.029055s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.065054s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error [0.013517s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.037959s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.037486s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.032644s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.030343s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error [0.012765s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.064045s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [9.030691s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.011507s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.010472s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.010133s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.009475s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.009634s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.041978s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.038485s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.041559s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.040736s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.041952s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.037428s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.037819s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.041430s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.043024s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.039520s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.038784s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.039682s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.008779s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.008091s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.008766s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.008983s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.011976s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.008662s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.008760s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.008746s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.009622s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.008500s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.008689s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.008192s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.008579s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.008622s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.008583s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.008495s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.008714s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.008222s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.008577s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.008355s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.009536s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.009094s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.009568s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.008739s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.008687s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id [0.013011s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client [0.022140s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config [0.013006s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none [0.038838s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device [0.039941s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state [0.040825s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail [0.038900s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout [0.040560s] ... ok {0} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate [0.038663s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.006054s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.005917s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.006304s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.005931s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.006177s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.005966s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.009240s] ... ok {0} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.007973s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.005905s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.006087s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.005924s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.006041s] ... ok {0} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.007850s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.006428s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.014373s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.014560s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.009627s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.008773s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.007123s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.009565s] ... ok {0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.007211s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.008087s] ... ok {0} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.006879s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.006424s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.008016s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.006263s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.008123s] ... ok {0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.009692s] ... 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.040791s] ... 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.039624s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.037215s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.036222s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.037738s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.038499s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.036152s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.037321s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.037913s] ... ok {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.014469s] ... ok {0} ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces [0.038743s] ... ok {0} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.042744s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.041086s] ... ok {0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.040771s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.038558s] ... ok {0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.036921s] ... ok {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.042082s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.039181s] ... ok {0} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.013814s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.008359s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.008082s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.008770s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.010915s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.015231s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.048550s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.045933s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.047445s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.013575s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.013092s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.011993s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.052972s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.012876s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.041256s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.009415s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.009885s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.009276s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.009223s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.019534s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.009495s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.008931s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.009321s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.009088s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.009124s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.024000s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.008006s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.009644s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.008268s] ... ok {0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.010430s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.009273s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.008882s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.010379s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.009211s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.008981s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.010188s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.010086s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.010382s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.009208s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.009075s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.009746s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.011401s] ... ok {0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.009152s] ... ok {0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.006127s] ... ok {0} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.005842s] ... ok {0} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.005691s] ... ok {0} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.006023s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.006120s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.005802s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.006189s] ... ok {0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.005824s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.008786s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.008527s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.008821s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.008495s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.008933s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.008983s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.008863s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.008363s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.008805s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.008413s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.008808s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.008408s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.008785s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.008435s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.008887s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.008382s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.010828s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.009187s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.010162s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.009526s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.009615s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.009527s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.011024s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.010034s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.009504s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.010392s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.008536s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.010786s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.009794s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.009900s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.009452s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.009386s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.009365s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.010232s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.009158s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.009554s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.011891s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.011335s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.011618s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.011382s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.010611s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.008853s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.009009s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.008421s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.008637s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.008535s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.005844s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.006096s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.011716s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.011710s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.005785s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.005757s] ... ok {0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.005941s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.006404s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.005997s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.005817s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.005725s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.008740s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.005745s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.005690s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.006011s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.006011s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.007014s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.006974s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.008015s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.005932s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.005824s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.007090s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.006635s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.006175s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.005652s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.005689s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.005982s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.005676s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.005888s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.006106s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.005698s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.005772s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.006213s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.005842s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.005735s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.005931s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.006773s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.007232s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.006655s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.007851s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.006570s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.006474s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.005941s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.007205s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.006268s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.007093s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.007027s] ... ok {0} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.055752s] ... ok {0} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.058548s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.009084s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.008377s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.008069s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.008329s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.007981s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.008382s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.008208s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.008461s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.008090s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.008261s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.009196s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.009140s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.011225s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.010491s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.008997s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.009277s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.008330s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.008507s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.007946s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.018008s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.008530s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.009237s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.008991s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.009292s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.009216s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.009146s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.009652s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.009607s] ... ok {0} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.009400s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.009937s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.012439s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.009095s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.008890s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.009238s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.007918s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.010213s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.018625s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.010360s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.010859s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.009015s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.009253s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.009232s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.008798s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.008262s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.010158s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.006621s] ... ok {0} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.007232s] ... ok func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. func1() migrated 10 of 15 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. Running batches of 50 until migrations have been completed. Data migrations have completed. Running batches of 50 until migrations have been completed. Data migrations have not completed. Please re-run. Running batches of 50 until migrations have been completed. Data migrations have completed. {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [30.721969s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [24.850144s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.065867s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_session [0.040689s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_disabled_sessions_cache [0.036893s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_basic_session_caching [0.040594s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_session_reuse [0.038163s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_expire_old_sessions [0.043804s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system [0.038965s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found [0.038815s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.014340s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.015407s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.012920s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.012670s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.012321s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.013573s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.012675s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.045458s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.043384s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data [0.049952s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.041226s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.041629s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.061655s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.063956s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.051296s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.063769s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.058178s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.067034s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.054585s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.062150s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.061760s] ... ok {1} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.056342s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.054358s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.055843s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.042074s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.051201s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.042549s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.046014s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.039830s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.047218s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.047424s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.050870s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.038119s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.038040s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.061173s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.059254s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url [0.072333s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies [0.067199s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.050661s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.083560s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start [0.043168s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done [0.043667s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands [0.045053s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response [0.042415s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running [0.040892s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.042530s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.086255s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.070048s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.040641s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.068154s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.042206s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.062801s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.096869s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.074530s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise [0.058132s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance [0.074032s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error [0.100910s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot [0.218455s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image [0.083356s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 [0.082841s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.082225s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.042212s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.082533s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.038365s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.037982s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.037285s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.012433s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook [0.024294s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot [0.039536s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.038297s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid [0.037150s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_on_software_raid [0.040167s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail [0.100207s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi [0.037939s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image [0.038682s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep [0.040091s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch [0.050914s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot [0.056275s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook [0.053133s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook [0.015114s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy [0.047601s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception [0.084628s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails [0.057210s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off [0.051674s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails [0.082795s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails [0.053913s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_with_smartnic_port [0.044060s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result [0.046389s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc [0.049166s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.062809s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.059071s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_deploy [0.062043s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails [0.051494s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.050942s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.236048s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.234327s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.274870s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step_polling [0.061881s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.062372s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean [0.059171s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation [0.092494s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step [0.045888s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_no_steps_list [0.038913s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps [0.048780s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface [0.043682s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.007212s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.007180s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.007073s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.006375s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.006936s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.006918s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image [0.006675s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive [0.006864s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target [0.006903s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port [0.006638s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata [0.006856s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.006837s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.008313s] ... ok {1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.008789s] ... ok {1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.007037s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.010427s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.010073s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.008473s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.008811s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.009930s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.011860s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.815042s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.012998s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.011932s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.008863s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.008315s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.008538s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.008250s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.013056s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.018223s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.016517s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.017261s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.020087s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.019100s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.019467s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.021408s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.017895s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.020492s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.049481s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps [0.039970s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.014594s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.017552s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.013766s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.014957s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface [0.040438s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps [0.048937s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities [0.041307s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none [0.040830s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.055786s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.054551s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.056672s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.044758s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.045517s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.049321s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.048193s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.023623s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.024173s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.032771s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.034678s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.010104s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.010401s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.009094s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.008681s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.008429s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.013110s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.008449s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.040199s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra [0.040453s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield [0.007347s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.008906s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.013063s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.013526s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.013178s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.013560s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.012687s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.016055s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.012800s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.013144s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.039731s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.013007s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.014658s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.012944s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority [0.012465s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev [0.012689s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.014379s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.014852s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.059119s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.006630s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.005963s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.005940s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.006297s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false [0.005920s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true [0.005949s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.006195s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.006073s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.006113s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability [0.006395s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device [0.006806s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi [0.012821s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot [0.014636s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral [0.014124s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive [0.013196s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch [0.012483s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral [0.014138s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option [0.012477s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image [0.016629s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises [0.018601s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup [0.020647s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection [0.007005s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_override_attempts [0.007014s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.006800s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.006277s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.006368s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.061060s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.046073s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.048860s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.062699s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_none [0.066908s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.052633s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.039742s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.039602s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.049363s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.065786s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.081233s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.173000s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.055484s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.009863s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.009436s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.015265s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail [0.013371s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.012165s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.012396s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.012105s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.008913s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.008535s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.008026s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.007048s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.007187s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.005896s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.007843s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.008130s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image_linkfail [0.016628s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.010346s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.011829s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.010406s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.008927s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.007936s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.007894s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.007108s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.007791s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.007513s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.009021s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.008720s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.008726s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.009324s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.009561s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.094011s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.092246s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.039978s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored [0.010909s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting [0.010272s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting [0.012242s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok [0.012036s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client [0.605508s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.008498s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.007953s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.007847s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.007738s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.007953s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.009072s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.007450s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.007569s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.007506s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.007439s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.014122s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.012817s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.013036s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.039219s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.037293s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.040223s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.042603s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.041771s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device [0.040336s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok [0.042699s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent [0.048096s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.039646s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.038037s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.046705s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.045691s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.039713s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.038240s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.040036s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.042696s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.041461s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.043910s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.042870s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.043947s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.114879s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.039134s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.040694s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.032555s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.016218s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.015766s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_wait [0.016107s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.019948s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password [0.017739s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.016873s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.015997s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.015719s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception [0.014234s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password [0.014135s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception [0.013926s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.018541s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.015630s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.015086s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.014590s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.015214s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.016317s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.015286s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.016338s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.015344s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.015896s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [1.046333s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [2.048183s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.018353s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.027866s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.019040s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.016200s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.016263s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.022740s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.016545s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.037468s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.041128s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.031595s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.031800s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.030988s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.037653s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.038203s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.045248s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.040586s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.044089s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.033017s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.031514s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.035349s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.051256s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.055874s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.054585s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.065185s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.069823s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.074809s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.209509s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.321918s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true [0.300038s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.075153s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.077262s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.077773s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.072479s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.066464s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.068783s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.090875s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.096947s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_conn_problem [0.057186s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.035880s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_image_source [0.033825s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot [0.034228s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.033796s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.043936s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up [0.044503s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot [0.058409s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties [0.030521s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning [0.040041s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_fast_track [0.050224s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active [0.040360s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying [0.060190s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down [0.068996s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning [0.038006s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_with_smartnic_port [0.073293s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path [0.014363s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size [0.038304s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image [0.039773s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image_no_root [0.040096s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail [0.092854s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id [0.096029s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail [0.095831s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image [0.066236s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images [0.025250s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure [0.104255s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch_none [0.013751s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified [0.012480s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port [0.015875s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image_no_root [0.012474s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path [0.012683s] ... ok {1} ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout [0.026164s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.006828s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.006587s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.006008s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.006205s] ... ok {1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.006020s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.048098s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot [0.059189s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active [0.065779s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active [0.061315s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid [0.044869s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.067192s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.070844s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid [0.046464s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.074563s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.065556s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.066868s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always [0.074521s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false [0.073474s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true [0.071115s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default [0.074123s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false [0.071310s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never [0.069125s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false [0.445755s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true [0.071808s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.074438s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.073731s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.078750s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.097273s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.093942s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.069125s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem [0.059695s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value [0.033438s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.032314s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.032249s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source [0.032401s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.035446s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy [0.166665s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active [0.054886s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning [0.075319s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing [0.057237s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch [0.049173s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.043663s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_another_boot_interface [0.037010s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.046029s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.048469s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.019081s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.047887s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.045377s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.044852s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.046887s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.049659s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.054849s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.042082s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.041121s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.044035s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.042564s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.045190s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.042839s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.045319s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.011203s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.010138s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.010598s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.010268s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.009470s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.009453s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.012405s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.009780s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.009311s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.010131s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.009154s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.016500s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.012933s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.009537s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.009517s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.010394s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.011673s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.009309s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.010106s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.010521s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.011155s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.009533s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.009832s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.010244s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.010269s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.009401s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.009465s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.015771s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.011854s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.010286s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [4.017393s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.011229s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.012959s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.012218s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.016037s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.015560s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.026043s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.011454s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.024159s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.017328s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.026766s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.011795s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.024130s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.011071s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.010087s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.011316s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.010840s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.014489s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.011638s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.010232s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.010206s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.010002s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.041843s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.043220s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.044815s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.040730s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.039949s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.008804s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.008284s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.008887s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.008136s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.008253s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.008204s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.008421s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.008255s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.011146s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.008109s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.008511s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.008075s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.008669s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.008048s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.008227s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.009641s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info [0.013682s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config [0.013638s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port [0.012756s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id [0.012626s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device [0.038777s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail [0.039044s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none [0.043829s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties [0.015512s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices [0.041392s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail [0.040994s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate [0.041405s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail [0.039381s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties [0.014934s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot [0.042512s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout [0.041588s] ... ok {1} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power [0.042853s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.006665s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.006027s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.006403s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.005893s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.007110s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.006199s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.005919s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.007040s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.006307s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.006189s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.006235s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.006219s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.008755s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.007082s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.007018s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.008054s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.005716s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.008133s] ... ok {1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.008074s] ... 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.040884s] ... 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.041204s] ... 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.045492s] ... 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_idrac [0.042981s] ... 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_raid [0.043214s] ... 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_redfish_management_and_power [0.043875s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.040107s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.042778s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.038647s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.040969s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.040026s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.039529s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.039296s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.042023s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.040936s] ... ok {1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.039896s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.041456s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.010655s] ... ok {1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.039330s] ... ok {1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_with_no_raid [0.042036s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.039808s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.040336s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.041130s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.039539s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.042577s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.038302s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.043090s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.041618s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.040836s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.043267s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.041404s] ... ok {1} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.039425s] ... ok {1} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.037806s] ... ok {1} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.040734s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.039858s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.042582s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.010588s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.010317s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.009649s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.008218s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.013570s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.013860s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.044269s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.052199s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.052653s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.014217s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.013796s] ... ok {1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.017018s] ... ok {1} ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces [0.040742s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.009431s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.010216s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.010359s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.010926s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.012232s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.010631s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.010344s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.009678s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.020354s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.011768s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.010233s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.009909s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.009761s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.022129s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.010440s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.168310s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.011768s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.011812s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.012117s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.012044s] ... ok {1} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.011562s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.009498s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.010068s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.009754s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.006201s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.005800s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.005777s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.006108s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.005705s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.006101s] ... ok {1} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.006115s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.009101s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.009647s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.009933s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.011584s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.009348s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.009471s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.009103s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.009184s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.008421s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.008840s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.008769s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.010296s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.010199s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.009555s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.008559s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.008898s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.008399s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.008815s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.008524s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.008847s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.008367s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.008772s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.008390s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.008902s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.008404s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.008915s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.009232s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.012277s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.008925s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.008761s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.008464s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.008826s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.008436s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.008849s] ... ok {1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.008419s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.008908s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.008778s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.009183s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.009270s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.009828s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.009658s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.009496s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.043054s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.019847s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.011396s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.011357s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.011650s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.011718s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.009241s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.009289s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.012727s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.012638s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.008824s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.005724s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.012154s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.006712s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.005954s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.005871s] ... ok {1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.006404s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.006125s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.006903s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.005875s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.005939s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.005921s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.005869s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.005841s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.005907s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.005724s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.005746s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.006878s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.005759s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.006636s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.006354s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.006062s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.005717s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.005699s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.005884s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.006819s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.005876s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.006231s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.006642s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.007988s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.006541s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.006713s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.005761s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.008093s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.016221s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.009471s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.008907s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.008656s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.009749s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.009273s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.009957s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.009450s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.009227s] ... ok {1} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.023623s] ... ok {1} ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one [0.019543s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address [0.009222s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.010571s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.009842s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.011841s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.010844s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.025128s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.009803s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.010397s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.009168s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all [0.024262s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.010485s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.011141s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.010761s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.008638s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.010739s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.023731s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.009059s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.010155s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.010465s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.009736s] ... ok {1} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.011079s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.011700s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.010116s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.009808s] ... ok {1} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.010606s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.010592s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.009700s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.010280s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.010440s] ... ok {1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.020119s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.007135s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.007891s] ... ok GET: /v1/ {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83e47f28-74aa-4d69-9ddf-52eb07843e11 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.json {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d022a98e-4b8e-427a-bfa0-b0f665fa55b3 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: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5de113fb-7882-4f21-9897-cfb397bf78ea {"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-45de9197-0eb7-411f-ac43-d70eed341b9d {"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-b695ffc9-12f6-4a0c-8e1b-f5e6d7be6468 {"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-34118027-c18b-4062-ae06-ac3dcc300196 {"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-a3fa8abe-d73f-4c10-8f63-9fc82b611102 {"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: / {} 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'}} 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'}} foo() migrated 15 of 15 objects. func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. func1() migrated 10 of 10 objects. Malformed option m1key1=value1 Malformed option m1.key1value1 ====== Totals ====== Ran: 6014 tests in 381.5869 sec. - Passed: 6002 - Skipped: 12 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 641.2221 sec. ============== Worker Balance ============== - Worker 0 (3007 tests) => 0:04:23.320585 - Worker 1 (3007 tests) => 0:06:21.586897 + exit 0 Processing files: openstack-ironic-common-13.0.3-0.20191202201522.cfa58af.el8.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/lib/python3.6/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.exhHO9 + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev4 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/share/doc/openstack-ironic-common + cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/share/doc/openstack-ironic-common + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.p6TJWG + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev4 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64/usr/share/licenses/openstack-ironic-common + exit 0 Provides: config(openstack-ironic-common) = 1:13.0.3-0.20191202201522.cfa58af.el8 openstack-ironic-common = 1:13.0.3-0.20191202201522.cfa58af.el8 python3.6dist(ironic) = 13.0.3.dev4 python3dist(ironic) = 13.0.3.dev4 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.20191202201522.cfa58af.el8.noarch Provides: openstack-ironic-api = 1:13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.noarch Provides: openstack-ironic-conductor = 1:13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.noarch Provides: python3-ironic-tests = 1:13.0.3-0.20191202201522.cfa58af.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.20191202201522.cfa58af.el8.x86_64 Wrote: /builddir/build/RPMS/openstack-ironic-common-13.0.3-0.20191202201522.cfa58af.el8.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-13.0.3-0.20191202201522.cfa58af.el8.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-13.0.3-0.20191202201522.cfa58af.el8.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-13.0.3-0.20191202201522.cfa58af.el8.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.CLqJ8I + umask 022 + cd /builddir/build/BUILD + cd ironic-13.0.3.dev4 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-13.0.3-0.20191202201522.cfa58af.el8.x86_64 + exit 0 Child return code was: 0